From b2eb0b1c746eba837f5f095d4eb3a294ce1e187d Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Mon, 20 May 2024 17:30:55 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20launch=20=F0=9F=9A=80=20(#1?= =?UTF-8?q?49)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintignore | 1 - .eslintrc.cjs | 4 +- .github/ISSUE_TEMPLATE.md | 39 + .github/PULL_REQUEST_TEMPLATE.md | 41 + .github/workflows/deploy-prod.yml | 27 +- .github/workflows/deploy-staging.yml | 29 +- .github/workflows/destroy-staging.yml | 30 - .gitignore | 4 - .prettierignore | 1 - CONTRIBUTING.md | 6 +- CONTRIBUTORS.md | 14 +- README.md | 8 +- apps/api/bronya.config.ts | 16 +- apps/api/package.json | 13 +- apps/api/src/global.d.ts | 6 +- apps/api/src/lib/utils.ts | 4 +- apps/api/src/routes/v1/graphql/+endpoint.ts | 15 +- apps/api/src/routes/v1/graphql/lib.ts | 6 +- .../src/routes/v1/rest/calendar/+endpoint.ts | 2 +- .../api/src/routes/v1/rest/calendar/schema.ts | 2 +- apps/api/src/routes/v1/rest/courses/schema.ts | 2 +- .../v1/rest/enrollmentHistory/+endpoint.ts | 2 +- .../routes/v1/rest/enrollmentHistory/lib.ts | 2 +- .../v1/rest/enrollmentHistory/schema.ts | 2 +- .../routes/v1/rest/grades/{id}/+endpoint.ts | 6 +- .../api/src/routes/v1/rest/grades/{id}/lib.ts | 8 +- .../src/routes/v1/rest/grades/{id}/schema.ts | 2 +- apps/api/src/routes/v1/rest/larc/schema.ts | 2 +- apps/api/src/routes/v1/rest/studyRooms/lib.ts | 6 +- apps/api/src/routes/v1/rest/websoc/+config.ts | 2 +- .../routes/v1/rest/websoc/APILambdaClient.ts | 4 +- apps/api/src/routes/v1/rest/websoc/schema.ts | 4 +- .../src/routes/v1/rest/websoc/{id}/+config.ts | 2 +- apps/api/src/routes/v1/rest/week/+endpoint.ts | 2 +- apps/api/src/routes/v1/rest/week/lib.ts | 2 +- apps/docs/babel.config.js | 3 - .../application-architecture/index.md | 29 - .../application-architecture/tools.md | 32 - .../contributors-guide/getting-started.md | 74 - .../docs/developers-guide/api-versioning.md | 20 - .../docs/developers-guide/fair-use-policy.md | 96 - .../docs/developers-guide/getting-started.md | 28 - .../docs/docs/developers-guide/graphql-api.md | 10 - .../rest-api/guides/typescript-integration.md | 64 - .../developers-guide/rest-api/overview.md | 46 - .../rest-api/reference/calendar.md | 61 - .../rest-api/reference/courses.md | 356 - .../rest-api/reference/enrollment-history.md | 132 - .../rest-api/reference/grades.md | 467 -- .../rest-api/reference/instructors.md | 307 - .../rest-api/reference/larc.md | 106 - .../rest-api/reference/study-rooms.md | 157 - .../rest-api/reference/websoc.md | 586 -- .../rest-api/reference/week.md | 161 - apps/docs/docusaurus.config.js | 111 - apps/docs/package.json | 43 - apps/docs/sidebars.js | 49 - apps/docs/src/css/custom.css | 42 - apps/docs/src/pages/index.module.css | 27 - apps/docs/src/pages/index.tsx | 38 - apps/docs/src/pages/sandbox/index.tsx | 27 - apps/docs/src/pages/sandbox/styles.module.css | 4 - apps/docs/static/img/banner.png | Bin 64450 -> 0 bytes apps/docs/static/img/favicon.png | Bin 3822 -> 0 bytes apps/docs/static/img/icssc.png | Bin 12301 -> 0 bytes apps/docs/tsconfig.json | 8 - libs/lambda/package.json | 2 +- libs/lambda/src/compress.ts | 4 +- libs/lambda/src/response.ts | 2 +- libs/uc-irvine-lib/package.json | 11 +- libs/uc-irvine-lib/src/registrar/index.ts | 2 +- libs/uc-irvine-lib/src/websoc/index.ts | 2 +- libs/uc-irvine-lib/tsconfig.json | 2 +- libs/websoc-utils/package.json | 4 +- libs/websoc-utils/src/index.ts | 18 +- package.json | 10 +- packages/types/README.md | 4 +- packages/types/package.json | 2 +- packages/types/types/response.ts | 11 +- packages/websoc-fuzzy-search/.gitignore | 1 - packages/websoc-fuzzy-search/LICENSE | 21 - packages/websoc-fuzzy-search/README.md | 130 - .../websoc-fuzzy-search/input/aliases.json | 8 - .../input/departments.json | 118 - .../input/ge-categories.json | 12 - .../websoc-fuzzy-search/input/schools.json | 19 - packages/websoc-fuzzy-search/package.json | 32 - packages/websoc-fuzzy-search/setup.ts | 251 - packages/websoc-fuzzy-search/src/constants.ts | 25 - packages/websoc-fuzzy-search/src/helpers.ts | 202 - packages/websoc-fuzzy-search/src/index.ts | 98 - packages/websoc-fuzzy-search/src/regex.ts | 10 - packages/websoc-fuzzy-search/src/types.ts | 56 - packages/websoc-fuzzy-search/tsup.config.ts | 12 - pnpm-lock.yaml | 7421 +---------------- pnpm-workspace.yaml | 4 +- renovate.json | 15 - services/calendar-scraper/package.json | 2 +- services/calendar-scraper/src/index.ts | 2 +- services/larc-scraper/package.json | 2 +- services/larc-scraper/src/index.ts | 2 +- services/larc-scraper/src/lib.ts | 2 +- services/websoc-proxy/package.json | 2 +- services/websoc-scraper-v2/package.json | 2 +- tools/cdk/package.json | 13 +- tools/cdk/src/app/docs.ts | 47 - tools/cdk/src/app/services.ts | 2 +- tools/cdk/src/stacks/docs.ts | 100 - tools/degreeworks-scraper/package.json | 2 +- ...PIOfflineClient.ts => APIOfflineClient.ts} | 20 +- .../src/components/AuditParser.ts | 14 +- .../src/components/index.ts | 2 +- tools/grades-updater/README.md | 2 +- tools/grades-updater/package.json | 2 +- tools/grades-updater/src/lib.ts | 2 +- tools/grades-updater/src/sanitize-data.ts | 2 +- tools/grades-updater/src/upload-data.ts | 2 +- tools/registrar-scraper/package.json | 2 +- tools/registrar-scraper/src/index.ts | 2 +- .../src/instructor-scraper/index.ts | 2 +- tools/registrar-scraper/src/lib.ts | 4 +- .../src/prereq-scraper/index.ts | 2 +- tools/study-room-scraper/package.json | 2 +- tools/study-room-scraper/src/index.ts | 2 +- .../src/study-room-scraper.ts | 2 +- tsconfig.json | 8 +- 126 files changed, 467 insertions(+), 11692 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 apps/docs/babel.config.js delete mode 100644 apps/docs/docs/contributors-guide/application-architecture/index.md delete mode 100644 apps/docs/docs/contributors-guide/application-architecture/tools.md delete mode 100644 apps/docs/docs/contributors-guide/getting-started.md delete mode 100644 apps/docs/docs/developers-guide/api-versioning.md delete mode 100644 apps/docs/docs/developers-guide/fair-use-policy.md delete mode 100644 apps/docs/docs/developers-guide/getting-started.md delete mode 100644 apps/docs/docs/developers-guide/graphql-api.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/guides/typescript-integration.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/overview.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/calendar.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/courses.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/enrollment-history.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/grades.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/instructors.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/larc.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/study-rooms.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/websoc.md delete mode 100644 apps/docs/docs/developers-guide/rest-api/reference/week.md delete mode 100644 apps/docs/docusaurus.config.js delete mode 100644 apps/docs/package.json delete mode 100644 apps/docs/sidebars.js delete mode 100644 apps/docs/src/css/custom.css delete mode 100644 apps/docs/src/pages/index.module.css delete mode 100644 apps/docs/src/pages/index.tsx delete mode 100644 apps/docs/src/pages/sandbox/index.tsx delete mode 100644 apps/docs/src/pages/sandbox/styles.module.css delete mode 100644 apps/docs/static/img/banner.png delete mode 100644 apps/docs/static/img/favicon.png delete mode 100644 apps/docs/static/img/icssc.png delete mode 100644 apps/docs/tsconfig.json delete mode 100644 packages/websoc-fuzzy-search/.gitignore delete mode 100644 packages/websoc-fuzzy-search/LICENSE delete mode 100644 packages/websoc-fuzzy-search/README.md delete mode 100644 packages/websoc-fuzzy-search/input/aliases.json delete mode 100644 packages/websoc-fuzzy-search/input/departments.json delete mode 100644 packages/websoc-fuzzy-search/input/ge-categories.json delete mode 100644 packages/websoc-fuzzy-search/input/schools.json delete mode 100644 packages/websoc-fuzzy-search/package.json delete mode 100644 packages/websoc-fuzzy-search/setup.ts delete mode 100644 packages/websoc-fuzzy-search/src/constants.ts delete mode 100644 packages/websoc-fuzzy-search/src/helpers.ts delete mode 100644 packages/websoc-fuzzy-search/src/index.ts delete mode 100644 packages/websoc-fuzzy-search/src/regex.ts delete mode 100644 packages/websoc-fuzzy-search/src/types.ts delete mode 100644 packages/websoc-fuzzy-search/tsup.config.ts delete mode 100644 tools/cdk/src/app/docs.ts delete mode 100644 tools/cdk/src/stacks/docs.ts rename tools/degreeworks-scraper/src/components/{PPAPIOfflineClient.ts => APIOfflineClient.ts} (50%) diff --git a/.eslintignore b/.eslintignore index 4ffcedad..33be2adf 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,4 @@ .cdk.staging -.docusaurus cdk.out coverage build diff --git a/.eslintrc.cjs b/.eslintrc.cjs index df5bb637..7c098713 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -7,7 +7,7 @@ const config = { root: true, parser: "@typescript-eslint/parser", parserOptions: { - project: ["./tsconfig.json", "./apps/docs/tsconfig.json"], + project: ["./tsconfig.json"], sourceType: "module", }, plugins: ["import", "@typescript-eslint"], @@ -38,7 +38,7 @@ const config = { }, ], }, - ignorePatterns: ["docusaurus.config.js", "*.cjs"], + ignorePatterns: ["*.cjs"], env: { es2020: true, node: true, diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..0cdc5ae7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,39 @@ + + +## Expected Behavior + + + + +## Current Behavior + + + + +## Possible Solution + + + + +## Steps to Reproduce (for bugs) + + + + +1. +2. +3. +4. + +## Context + + + + +## Your Environment + + + +- Environment name and version: +- Operating system and version: +- Link to your project, or a minimal reproducible example: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..7d09c34e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,41 @@ + + +## Description + + + +## Related Issue + + + + + + +## Motivation and Context + + + +## How Has This Been Tested? + + + + + +## Screenshots (if appropriate): + +## Types of changes + + + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to change) + +## Checklist: + + + + +- [ ] My code follows the code style of this project. +- [ ] My change requires a change to the documentation. +- [ ] I have updated the documentation accordingly. diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index dfe12f26..915d85a1 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -36,7 +36,7 @@ jobs: environment: name: production - url: https://api-next.peterportal.org + url: https://anteaterapi.com steps: - name: Checkout repository @@ -53,31 +53,6 @@ jobs: - name: Deploy API CloudFormation stack run: pnpm --filter="@apps/api" cdk-app deploy - - deploy-documentation: - name: Deploy documentation CloudFormation stack and production environment - - runs-on: ubuntu-latest - - environment: - name: production-docs - url: https://docs.api-next.peterportal.org - - steps: - - name: Checkout repository - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - - name: Setup Node.js and pnpm - uses: ./.github/actions/setup-node-and-pnpm - - - name: Install dependencies - run: pnpm install -P false --frozen-lockfile - - - name: Build documentation - run: pnpm build --filter="@apps/docs" - - - name: Deploy documentation CloudFormation stack - run: pnpm --filter="@tools/cdk" docs deploy deploy-services: name: Deploy services CloudFormation stack and production environment diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index be6e91a5..ea28a657 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -40,7 +40,7 @@ jobs: environment: name: staging-${{ github.event.pull_request.number }} - url: https://staging-${{ github.event.pull_request.number }}.api-next.peterportal.org + url: https://staging-${{ github.event.pull_request.number }}.anteaterapi.com steps: - name: Checkout repository @@ -57,30 +57,3 @@ jobs: - name: Deploy API CloudFormation stack run: pnpm --filter="@apps/api" cdk-app deploy - - deploy-documentation: - name: Deploy documentation CloudFormation stack and staging environment for pull request - - if: (!contains(github.event.pull_request.labels.*.name, 'no deploy')) - - runs-on: ubuntu-latest - - environment: - name: staging-${{ github.event.pull_request.number }}-docs - url: https://staging-${{ github.event.pull_request.number }}-docs.api-next.peterportal.org - - steps: - - name: Checkout repository - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - - name: Setup Node.js and pnpm - uses: ./.github/actions/setup-node-and-pnpm - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Build documentation - run: pnpm build --filter="@apps/docs" - - - name: Deploy documentation CloudFormation stack - run: pnpm --filter="@tools/cdk" docs deploy diff --git a/.github/workflows/destroy-staging.yml b/.github/workflows/destroy-staging.yml index 09f7896a..c78db7ec 100644 --- a/.github/workflows/destroy-staging.yml +++ b/.github/workflows/destroy-staging.yml @@ -60,33 +60,3 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} environment: staging-${{ github.event.pull_request.number }} onlyDeactivateDeployments: true - - destroy-documentation: - name: Destroy documentation CloudFormation stack and staging environment for pull request - - if: (github.event.action == 'labeled' && github.event.label.name == 'no deploy') || github.event.action == 'closed' - - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - - name: Setup Node.js and pnpm - uses: ./.github/actions/setup-node-and-pnpm - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Build documentation - run: pnpm build --filter="@apps/docs" - - - name: Destroy documentation CloudFormation stack - run: pnpm --filter="@tools/cdk" docs destroy - - - name: Set documentation staging environment as inactive - uses: strumwolf/delete-deployment-environment@a4825dd9648c57da8437a4885c3fcad58beac69c # v3.0.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} - environment: staging-${{ github.event.pull_request.number }}-docs - onlyDeactivateDeployments: true diff --git a/.gitignore b/.gitignore index 00e89624..583c898a 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,3 @@ tools/grades-updater/outputData # grades-updater logs tools/grades-updater/logs - -# docusaurus -.docusaurus -build/ diff --git a/.prettierignore b/.prettierignore index d8786f59..672e83fc 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,4 @@ .cdk.staging -.docusaurus cdk.out coverage build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6838bf3f..1efc949e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,5 @@ -# Contributing to PeterPortal API +# Contributing to Anteater API -Thank you for your interest in contributing to PeterPortal API! +Thank you for your interest in contributing to Anteater API! -Our Contributor's Guide has moved [here](https://docs.api-next.peterportal.org/docs/contributors-guide/getting-started). +Our Contributor's Guide has moved [here](https://docs.icssc.club/anteaterapi/contributors-guide/getting-started). diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 25f6cca1..6364b034 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -12,7 +12,7 @@ Contributors are listed below in alphabetical order of their GitHub username. ## [Legacy API](https://github.com/icssc/peterportal-public-api) Contributors -API-Next contributors who have also contributed to the Legacy API are not listed here. +Contributors to Anteater API who have also contributed to the Legacy API are not listed here. - Akshay ([@akins1](https://github.com/akins1)) - Audrey Lam ([@alam7989](https://github.com/alam7989)) @@ -32,17 +32,23 @@ API-Next contributors who have also contributed to the Legacy API are not listed - Tianjiao Huang ([@tjhu](https://github.com/tjhu)) - Ye Min Aung ([@ym-aung](https://github.com/ym-aung)) -## API-Next Contributors +## Anteater API Contributors -An up-to-date list of contributors to this repository is available [here](https://github.com/icssc/peterportal-api-next/graphs/contributors). +An up-to-date list of individuals who have contributed code to this repository is available [here](https://github.com/icssc/peterportal-api-next/graphs/contributors). This list also includes individuals who have contributed in other ways, including (but not limited to) creating issues, providing feedback, etc. +- Dalton Adcock ([@adcockdalton](https://github.com/adcockdalton)) +- Alexander Liu ([@alexanderl19](https://github.com/alexanderl19)) +- Andrew Wang ([@andrew-wang0](https://github.com/andrew-wang0)) +- Brian Vo ([@ap0nia](https://github.com/ap0nia)) - Benson Jing ([@bensonjing](https://github.com/bensonjing)) -- Brian Vo ([@bevm0](https://github.com/bevm0)) - Christopher Kwong ([@ChrisK-wong](https://github.com/ChrisK-wong)) - Daniel Boghossian ([@Dg155](https://github.com/Dg155)) - Ethan Deng ([@ethand605](https://github.com/ethand605)) +- Kevin Wu ([@KevinWu098](https://github.com/KevinWu098)) - Yizhen Liu ([@imliuyzh](https://github.com/imliuyzh)) +- Jordan Yee ([@jordany33](https://github.com/jordany33)) - Minh Nguyen ([@MinhxNguyen7](https://github.com/MinhxNguyen7)) - Randy Huynh ([@RandyHuynh5815](https://github.com/RandyHuynh5815)) +- Sanskar Mishra ([@sanskarm7](https://github.com/sanskarm7)) - Frederick Dong ([@Voark](https://github.com/Voark)) - Yasper De Jong ([@y-dejong](https://github.com/y-dejong)) diff --git a/README.md b/README.md index 3e45e914..f0c43b96 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,6 @@ -![PeterPortal API logo banner](apps/docs/static/img/banner.png) - ## ℹ️ About -PeterPortal API is a student-developed and maintained project that aims to provide software developers with easy access to publicly available data from the University of California, Irvine. This includes but is not limited to information on courses, instructors, past grade distributions, and much more. - -The _Next_ version of the PeterPortal API is rewritten from the ground up, with special emphasis placed on providing a superior experience for developers and users. This will help to further our mission of encouraging fellow student developers to create open-source applications that benefit the Anteater community. +Anteater API (formerly PeterPortal API _Next_) is a student-developed and maintained project that aims to provide software developers with easy access to publicly available data from the University of California, Irvine. This includes but is not limited to information on courses, instructors, past grade distributions, and much more. ## 🔨 Built with @@ -18,7 +14,7 @@ The _Next_ version of the PeterPortal API is rewritten from the ground up, with ## 📖 Documentation -Our documentation can be found [here](https://docs.api-next.peterportal.org). +Our documentation can be found [here](https://docs.icssc.club/anteaterapi). ## 🤝 Contributing diff --git a/apps/api/bronya.config.ts b/apps/api/bronya.config.ts index 860b780f..a810e9fe 100644 --- a/apps/api/bronya.config.ts +++ b/apps/api/bronya.config.ts @@ -88,7 +88,7 @@ const prismaQueryEngineFile = "libquery_engine-linux-arm64-openssl-3.0.x.so.node /** * Namespace for virtual files. */ -const namespace = "peterportal-api-next:virtual"; +const namespace = "anteater-api:virtual"; /** * Shared ESBuild options. @@ -246,9 +246,9 @@ function getStage() { * in order to support development functionality. */ export async function main(): Promise { - const id = "peterportal-api-next"; + const id = "anteater-api"; - const zoneName = "peterportal.org"; + const zoneName = "anteaterapi.com"; const app = new App(); @@ -280,6 +280,7 @@ export async function main(): Promise { statusCode: "500", templates: { "application/json": JSON.stringify({ + success: false, timestamp: "$context.requestTime", requestId: "$context.requestId", statusCode: 500, @@ -294,6 +295,7 @@ export async function main(): Promise { statusCode: "404", templates: { "application/json": JSON.stringify({ + success: false, timestamp: "$context.requestTime", requestId: "$context.requestId", statusCode: 404, @@ -329,20 +331,20 @@ export async function main(): Promise { // Set up the custom domain name and A record for the API. synthesized.api.addDomainName(`${id}-${stage}-domain`, { - domainName: `${stage === "prod" ? "" : `${stage}.`}api-next.peterportal.org`, + domainName: `${stage === "prod" ? "" : `${stage}.`}anteaterapi.com`, certificate: Certificate.fromCertificateArn( synthesized.api, - "peterportal-cert", + "anteaterapi-cert", process.env.CERTIFICATE_ARN ?? "", ), }); new ARecord(synthesized.api, `${id}-${stage}-a-record`, { - zone: HostedZone.fromHostedZoneAttributes(synthesized.api, "peterportal-hosted-zone", { + zone: HostedZone.fromHostedZoneAttributes(synthesized.api, "anteaterapi-hosted-zone", { zoneName, hostedZoneId: process.env.HOSTED_ZONE_ID ?? "", }), - recordName: `${stage === "prod" ? "" : `${stage}.`}api-next`, + recordName: `${stage === "prod" ? "zone root" : `${stage}`}`, target: RecordTarget.fromAlias(new ApiGateway(synthesized.api)), }); diff --git a/apps/api/package.json b/apps/api/package.json index 9304fd79..b310ab69 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -2,17 +2,8 @@ "name": "@apps/api", "version": "0.0.0", "private": true, - "description": "The workspace for PeterPortal API", + "description": "The workspace for the API", "keywords": [], - "homepage": "https://github.com/icssc/peterportal-api-next", - "bugs": { - "url": "https://github.com/icssc/peterportal-api-next/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/icssc/peterportal-api-next", - "directory": "apps/api" - }, "license": "MIT", "type": "module", "scripts": { @@ -20,6 +11,7 @@ "dev": "bunny dev-api" }, "dependencies": { + "@anteater-api/types": "workspace:^", "@apollo/server": "4.10.0", "@aws-sdk/client-lambda": "3.525.0", "@graphql-tools/load-files": "7.0.0", @@ -30,7 +22,6 @@ "@libs/uc-irvine-lib": "workspace:^", "@libs/utils": "workspace:^", "@libs/websoc-utils": "workspace:^", - "@peterportal-api/types": "workspace:^", "@services/websoc-proxy": "workspace:^", "aws-cdk-lib": "2.131.0", "cheerio": "1.0.0-rc.12", diff --git a/apps/api/src/global.d.ts b/apps/api/src/global.d.ts index 462254b5..d9c6e3a0 100644 --- a/apps/api/src/global.d.ts +++ b/apps/api/src/global.d.ts @@ -10,17 +10,17 @@ */ declare module "virtual:courses" { // eslint-disable-next-line @typescript-eslint/consistent-type-imports - declare const courses: Record; + declare const courses: Record; } /** * Virtual module for caching instructor information during build time. */ declare module "virtual:instructors" { // eslint-disable-next-line @typescript-eslint/consistent-type-imports - declare const instructors: Record; + declare const instructors: Record; } declare module "virtual:studyRooms" { // eslint-disable-next-line @typescript-eslint/consistent-type-imports - declare const studyRooms: Record; + declare const studyRooms: Record; } diff --git a/apps/api/src/lib/utils.ts b/apps/api/src/lib/utils.ts index ad99526c..c2cc3593 100644 --- a/apps/api/src/lib/utils.ts +++ b/apps/api/src/lib/utils.ts @@ -1,4 +1,3 @@ -import type { Course as PrismaCourse, StudyRoom as PrismaStudyRoom } from "@libs/db"; import type { Course, CourseLevel, @@ -7,7 +6,8 @@ import type { InstructorPreview, PrerequisiteTree, StudyRoom, -} from "@peterportal-api/types"; +} from "@anteater-api/types"; +import type { Course as PrismaCourse, StudyRoom as PrismaStudyRoom } from "@libs/db"; const days = ["Su", "M", "Tu", "W", "Th", "F", "Sa"]; diff --git a/apps/api/src/routes/v1/graphql/+endpoint.ts b/apps/api/src/routes/v1/graphql/+endpoint.ts index a01f6ca0..a491b367 100644 --- a/apps/api/src/routes/v1/graphql/+endpoint.ts +++ b/apps/api/src/routes/v1/graphql/+endpoint.ts @@ -3,10 +3,7 @@ import { parse } from "node:url"; import type { HTTPGraphQLRequest } from "@apollo/server"; import { ApolloServer, HeaderMap } from "@apollo/server"; -import { - ApolloServerPluginLandingPageLocalDefault, - ApolloServerPluginLandingPageProductionDefault, -} from "@apollo/server/plugin/landingPage/default"; +import { ApolloServerPluginLandingPageLocalDefault } from "@apollo/server/plugin/landingPage/default"; import { loadFilesSync } from "@graphql-tools/load-files"; import { mergeTypeDefs } from "@graphql-tools/merge"; import { compress, logger } from "@libs/lambda"; @@ -23,11 +20,7 @@ const responseHeaders: APIGatewayProxyResult["headers"] = { const graphqlServer = new ApolloServer({ introspection: true, - plugins: [ - process.env.NODE_ENV === "development" - ? ApolloServerPluginLandingPageLocalDefault() - : ApolloServerPluginLandingPageProductionDefault({ footer: false }), - ], + plugins: [ApolloServerPluginLandingPageLocalDefault()], resolvers, typeDefs: mergeTypeDefs(loadFilesSync(join(__dirname, "schema/*.graphql"))), }); @@ -69,14 +62,12 @@ export const ANY: APIGatewayProxyHandler = async (event) => { } else { delete responseHeaders["content-encoding"]; } - const ret = { + return { body, headers: responseHeaders, isBase64Encoded: !!method, statusCode, }; - console.log(ret); - return ret; } catch { return { body: "", diff --git a/apps/api/src/routes/v1/graphql/lib.ts b/apps/api/src/routes/v1/graphql/lib.ts index a73f6e2a..eb1fb46b 100644 --- a/apps/api/src/routes/v1/graphql/lib.ts +++ b/apps/api/src/routes/v1/graphql/lib.ts @@ -1,14 +1,14 @@ +import type { RawResponse } from "@anteater-api/types"; import type { BaseContext, HTTPGraphQLResponse } from "@apollo/server"; import type { IFieldResolver } from "@graphql-tools/utils"; -import type { RawResponse } from "@peterportal-api/types"; import { GraphQLError } from "graphql/error"; function getBaseUrl() { switch (process.env.NODE_ENV) { case "production": - return `https://api-next.peterportal.org`; + return `https://anteaterapi.com`; case "staging": - return `https://${process.env.STAGE}.api-next.peterportal.org`; + return `https://${process.env.STAGE}.anteaterapi.com`; default: return `http://localhost:${process.env.API_PORT ?? 8080}`; } diff --git a/apps/api/src/routes/v1/rest/calendar/+endpoint.ts b/apps/api/src/routes/v1/rest/calendar/+endpoint.ts index 55e7644b..8b797334 100644 --- a/apps/api/src/routes/v1/rest/calendar/+endpoint.ts +++ b/apps/api/src/routes/v1/rest/calendar/+endpoint.ts @@ -1,6 +1,6 @@ +import type { QuarterDates } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; import { createHandler } from "@libs/lambda"; -import type { QuarterDates } from "@peterportal-api/types"; import { QuerySchema } from "./schema"; diff --git a/apps/api/src/routes/v1/rest/calendar/schema.ts b/apps/api/src/routes/v1/rest/calendar/schema.ts index 2a6747c1..5da95875 100644 --- a/apps/api/src/routes/v1/rest/calendar/schema.ts +++ b/apps/api/src/routes/v1/rest/calendar/schema.ts @@ -1,4 +1,4 @@ -import { quarters } from "@peterportal-api/types"; +import { quarters } from "@anteater-api/types"; import { z } from "zod"; export const QuerySchema = z diff --git a/apps/api/src/routes/v1/rest/courses/schema.ts b/apps/api/src/routes/v1/rest/courses/schema.ts index 0687c044..17756cce 100644 --- a/apps/api/src/routes/v1/rest/courses/schema.ts +++ b/apps/api/src/routes/v1/rest/courses/schema.ts @@ -1,4 +1,4 @@ -import { anyArray, divisionCodes, geCodes } from "@peterportal-api/types"; +import { anyArray, divisionCodes, geCodes } from "@anteater-api/types"; import { z } from "zod"; import { flattenStringsAndSplit } from "../../../../lib/utils"; diff --git a/apps/api/src/routes/v1/rest/enrollmentHistory/+endpoint.ts b/apps/api/src/routes/v1/rest/enrollmentHistory/+endpoint.ts index 6cfc7dd8..c6831fea 100644 --- a/apps/api/src/routes/v1/rest/enrollmentHistory/+endpoint.ts +++ b/apps/api/src/routes/v1/rest/enrollmentHistory/+endpoint.ts @@ -1,6 +1,6 @@ +import type { EnrollmentHistory } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; import { createHandler } from "@libs/lambda"; -import type { EnrollmentHistory } from "@peterportal-api/types"; import { transformResults } from "./lib"; import { QuerySchema } from "./schema"; diff --git a/apps/api/src/routes/v1/rest/enrollmentHistory/lib.ts b/apps/api/src/routes/v1/rest/enrollmentHistory/lib.ts index d6916e7c..18637de8 100644 --- a/apps/api/src/routes/v1/rest/enrollmentHistory/lib.ts +++ b/apps/api/src/routes/v1/rest/enrollmentHistory/lib.ts @@ -1,5 +1,5 @@ +import type { EnrollmentHistory, Meeting } from "@anteater-api/types"; import type { WebsocEnrollmentHistory, WebsocEnrollmentHistoryEntry } from "@libs/db"; -import type { EnrollmentHistory, Meeting } from "@peterportal-api/types"; const stringifyDate = (date: Date) => `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`; diff --git a/apps/api/src/routes/v1/rest/enrollmentHistory/schema.ts b/apps/api/src/routes/v1/rest/enrollmentHistory/schema.ts index b79560da..cacef42c 100644 --- a/apps/api/src/routes/v1/rest/enrollmentHistory/schema.ts +++ b/apps/api/src/routes/v1/rest/enrollmentHistory/schema.ts @@ -1,4 +1,4 @@ -import { quarters, sectionTypes } from "@peterportal-api/types"; +import { quarters, sectionTypes } from "@anteater-api/types"; import { z } from "zod"; export const QuerySchema = z diff --git a/apps/api/src/routes/v1/rest/grades/{id}/+endpoint.ts b/apps/api/src/routes/v1/rest/grades/{id}/+endpoint.ts index ba76cfea..092ed719 100644 --- a/apps/api/src/routes/v1/rest/grades/{id}/+endpoint.ts +++ b/apps/api/src/routes/v1/rest/grades/{id}/+endpoint.ts @@ -1,11 +1,11 @@ -import { PrismaClient } from "@libs/db"; -import { logger, createHandler } from "@libs/lambda"; import type { AggregateGradesByCourse, AggregateGradesByOffering, GradesOptions, RawGrades, -} from "@peterportal-api/types"; +} from "@anteater-api/types"; +import { PrismaClient } from "@libs/db"; +import { logger, createHandler } from "@libs/lambda"; import { ZodError } from "zod"; import { diff --git a/apps/api/src/routes/v1/rest/grades/{id}/lib.ts b/apps/api/src/routes/v1/rest/grades/{id}/lib.ts index 9a0ac2a2..ac76b54e 100644 --- a/apps/api/src/routes/v1/rest/grades/{id}/lib.ts +++ b/apps/api/src/routes/v1/rest/grades/{id}/lib.ts @@ -1,5 +1,3 @@ -import type { GradesSection, Prisma } from "@libs/db"; -import { notNull } from "@libs/utils"; import type { AggregateGrades, AggregateGradesByOffering, @@ -11,8 +9,10 @@ import type { RawGrades, AggregateGradesByCourse, AggregateGradeByCourseHeader, -} from "@peterportal-api/types"; -import { geCodes } from "@peterportal-api/types"; +} from "@anteater-api/types"; +import { geCodes } from "@anteater-api/types"; +import type { GradesSection, Prisma } from "@libs/db"; +import { notNull } from "@libs/utils"; import type { Query } from "./schema"; diff --git a/apps/api/src/routes/v1/rest/grades/{id}/schema.ts b/apps/api/src/routes/v1/rest/grades/{id}/schema.ts index b9e2a795..37e45ca5 100644 --- a/apps/api/src/routes/v1/rest/grades/{id}/schema.ts +++ b/apps/api/src/routes/v1/rest/grades/{id}/schema.ts @@ -1,4 +1,4 @@ -import { anyArray, divisionCodes, geCodes, quarters } from "@peterportal-api/types"; +import { anyArray, divisionCodes, geCodes, quarters } from "@anteater-api/types"; import { z } from "zod"; export const QuerySchema = z.object({ diff --git a/apps/api/src/routes/v1/rest/larc/schema.ts b/apps/api/src/routes/v1/rest/larc/schema.ts index 88f28e81..b7c0123e 100644 --- a/apps/api/src/routes/v1/rest/larc/schema.ts +++ b/apps/api/src/routes/v1/rest/larc/schema.ts @@ -1,4 +1,4 @@ -import { quarters } from "@peterportal-api/types"; +import { quarters } from "@anteater-api/types"; import { z } from "zod"; export const QuerySchema = z.object({ diff --git a/apps/api/src/routes/v1/rest/studyRooms/lib.ts b/apps/api/src/routes/v1/rest/studyRooms/lib.ts index 83c4807e..822a0dc1 100644 --- a/apps/api/src/routes/v1/rest/studyRooms/lib.ts +++ b/apps/api/src/routes/v1/rest/studyRooms/lib.ts @@ -1,4 +1,4 @@ -import { TimeSlot, StudyLocation } from "@peterportal-api/types"; +import { TimeSlot, StudyLocation } from "@anteater-api/types"; import { studyLocations } from "libs/uc-irvine-lib/src/spaces"; import { getStudySpaces } from "libs/uc-irvine-lib/src/spaces"; import { studyRooms } from "virtual:studyRooms"; @@ -29,8 +29,8 @@ export function parseTimeSlots(slots: Slot[]): { [id: string]: TimeSlot[] } { end, booked: !!slot.className && slot.className === "s-lc-eq-checkout", }; - timeSlots[roomId] ??= [] - timeSlots[roomId].push(timeSlot) + timeSlots[roomId] ??= []; + timeSlots[roomId].push(timeSlot); }); return timeSlots; } diff --git a/apps/api/src/routes/v1/rest/websoc/+config.ts b/apps/api/src/routes/v1/rest/websoc/+config.ts index 8d989d98..bf81ec43 100644 --- a/apps/api/src/routes/v1/rest/websoc/+config.ts +++ b/apps/api/src/routes/v1/rest/websoc/+config.ts @@ -26,7 +26,7 @@ export const overrides: ApiPropsOverride = { new PolicyStatement({ effect: Effect.ALLOW, resources: [ - `arn:aws:lambda:${process.env["AWS_REGION"]}:${process.env["ACCOUNT_ID"]}:function:peterportal-api-next-services-prod-websoc-proxy-function`, + `arn:aws:lambda:${process.env["AWS_REGION"]}:${process.env["ACCOUNT_ID"]}:function:anteater-api-services-prod-websoc-proxy-function`, ], actions: ["lambda:InvokeFunction"], }), diff --git a/apps/api/src/routes/v1/rest/websoc/APILambdaClient.ts b/apps/api/src/routes/v1/rest/websoc/APILambdaClient.ts index 169ea84c..9cef80e6 100644 --- a/apps/api/src/routes/v1/rest/websoc/APILambdaClient.ts +++ b/apps/api/src/routes/v1/rest/websoc/APILambdaClient.ts @@ -1,8 +1,8 @@ +import type { Department, TermData } from "@anteater-api/types"; import type { LambdaClientConfig } from "@aws-sdk/client-lambda"; import { InvokeCommand, LambdaClient } from "@aws-sdk/client-lambda"; import { zeroUUID } from "@libs/lambda"; import type { WebsocAPIResponse } from "@libs/uc-irvine-lib/websoc"; -import type { Department, TermData } from "@peterportal-api/types"; import type { APIGatewayProxyEvent, APIGatewayProxyResult, Context } from "aws-lambda"; /** @@ -48,7 +48,7 @@ export class APILambdaClient { } const res = await this.client.send( new InvokeCommand({ - FunctionName: "peterportal-api-next-services-prod-websoc-proxy-function", + FunctionName: "anteater-api-services-prod-websoc-proxy-function", Payload: new TextEncoder().encode(JSON.stringify({ body: JSON.stringify(body) })), }), ); diff --git a/apps/api/src/routes/v1/rest/websoc/schema.ts b/apps/api/src/routes/v1/rest/websoc/schema.ts index f7184b03..efca7ba5 100644 --- a/apps/api/src/routes/v1/rest/websoc/schema.ts +++ b/apps/api/src/routes/v1/rest/websoc/schema.ts @@ -1,4 +1,3 @@ -import { $Enums } from "@libs/db"; import { anyArray, cancelledCoursesOptions, @@ -7,7 +6,8 @@ import { geCodes, quarters, sectionTypes, -} from "@peterportal-api/types"; +} from "@anteater-api/types"; +import { $Enums } from "@libs/db"; import { z } from "zod"; import { flattenDayStringsAndSplit, flattenStringsAndSplit } from "../../../../lib/utils"; diff --git a/apps/api/src/routes/v1/rest/websoc/{id}/+config.ts b/apps/api/src/routes/v1/rest/websoc/{id}/+config.ts index 8a6fa1e7..bd9baa7f 100644 --- a/apps/api/src/routes/v1/rest/websoc/{id}/+config.ts +++ b/apps/api/src/routes/v1/rest/websoc/{id}/+config.ts @@ -26,7 +26,7 @@ export const overrides: ApiPropsOverride = { new PolicyStatement({ effect: Effect.ALLOW, resources: [ - `arn:aws:lambda:${process.env["AWS_REGION"]}:${process.env["ACCOUNT_ID"]}:function:peterportal-api-next-services-prod-websoc-proxy-function`, + `arn:aws:lambda:${process.env["AWS_REGION"]}:${process.env["ACCOUNT_ID"]}:function:anteater-api-services-prod-websoc-proxy-function`, ], actions: ["lambda:InvokeFunction"], }), diff --git a/apps/api/src/routes/v1/rest/week/+endpoint.ts b/apps/api/src/routes/v1/rest/week/+endpoint.ts index 9c77d9e2..875df9b4 100644 --- a/apps/api/src/routes/v1/rest/week/+endpoint.ts +++ b/apps/api/src/routes/v1/rest/week/+endpoint.ts @@ -1,6 +1,6 @@ +import type { WeekData } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; import { createHandler } from "@libs/lambda"; -import type { WeekData } from "@peterportal-api/types"; import { ZodError } from "zod"; import { getQuarter, getWeek } from "./lib"; diff --git a/apps/api/src/routes/v1/rest/week/lib.ts b/apps/api/src/routes/v1/rest/week/lib.ts index cec9f82f..a1b85625 100644 --- a/apps/api/src/routes/v1/rest/week/lib.ts +++ b/apps/api/src/routes/v1/rest/week/lib.ts @@ -1,5 +1,5 @@ +import type { Quarter } from "@anteater-api/types"; import type { CalendarTerm } from "@libs/db"; -import type { Quarter } from "@peterportal-api/types"; const DAY_MS = 24 * 60 * 60 * 1000; const WEEK_MS = 7 * DAY_MS; diff --git a/apps/docs/babel.config.js b/apps/docs/babel.config.js deleted file mode 100644 index bfd75dbd..00000000 --- a/apps/docs/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve("@docusaurus/core/lib/babel/preset")], -}; diff --git a/apps/docs/docs/contributors-guide/application-architecture/index.md b/apps/docs/docs/contributors-guide/application-architecture/index.md deleted file mode 100644 index f033f5af..00000000 --- a/apps/docs/docs/contributors-guide/application-architecture/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# Application Architecture - -PeterPortal API consists of four main components: - -- the API, -- the maintenance tooling used to keep the API's data up to date, -- the documentation for the API (that's this site!), -- and various services that the API or its tooling uses. - -Broadly speaking, each of these components are managed by an [AWS CDK](https://aws.amazon.com/cdk/) application. This allows us to manage almost all of our infrastructure as code, with a few notable exceptions. The first two components are rather more complex, so they get their own pages. - -## Documentation - -This is a bit meta, isn't it? You know, reading documentation about the API's documentation site on the API's documentation site? - -Anyway, our documentation is built with [Docusaurus](https://docusaurus.io/), so adding new documentation is as easy as writing standard Markdown. For fancier docs, Docusaurus also supports MDX and React, which is why we're able to provide [Apollo Sandbox](https://www.apollographql.com/docs/graphos/explorer/sandbox/) within the documentation site for all your GraphQL experimentation needs. - -When the time comes to deploy the site to staging or production, the built contents are uploaded into an [S3](https://aws.amazon.com/s3/) bucket, then served using a [CloudFront](https://aws.amazon.com/cloudfront/) distribution to the desired subdomain. - -## Services - -### WebSoc Proxy Service - -The `websoc-proxy-service` encapsulates the `@libs/websoc-api-next` module, allowing the WebSoc route to invoke it only when requests to WebSoc are necessary. This improves performance for cached responses, since fetching and parsing WebSoc responses are slow and require additional machinery. Like most services used in/by the API, the WebSoc proxy service is deployed as a Lambda, and is warmed every five minutes to minimize latency caused by cold starts. diff --git a/apps/docs/docs/contributors-guide/application-architecture/tools.md b/apps/docs/docs/contributors-guide/application-architecture/tools.md deleted file mode 100644 index 686d1d78..00000000 --- a/apps/docs/docs/contributors-guide/application-architecture/tools.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# Tools - -## Grades Updater - -The `grades-updater` takes spreadsheets containing grades data, which we get from the UCI [Public Records Office](https://pro.uci.edu/), and sanitizes them. The sanitized data is then uploaded to our database so that users can consume the data. - -## Unified Scraper - -The `unified-scraper` combines the three main scrapers--for courses, instructors, and course prerequisites--into one component, which populates our course and instructor data. - -## WebSoc Scraper - -The `websoc-scraper-v2` periodically scrapes the contents of WebSoc, and uploads it to our database. - -### Interlude: Why V2? - -In the early days of this project, we had a radically different approach to caching WebSoc. Instead of getting all the data at once, which we deemed infeasible at the time, we would instead scrape reactively, caching requests that we only actually received. The idea was that after the initial cache miss, the most popular requests would all be cache hits, so things would still be fast. - -The problem came when it came to applying WebSoc filters; since we were also using [DynamoDB](https://aws.amazon.com/dynamodb/) at the time, there were some operations that we simply could not support without incurring a full-table scan, which takes a lot of time and resources. - -Ultimately, we decided to scrap the old scraping approach, and adopted the current one. - -### Technical Details - -The scraper runs in a Docker container hosted on [Fargate](https://aws.amazon.com/fargate/), which was necessary because scraping WebSoc takes too much time and memory for Lambda. In accordance with the Registrar's requirements, we pause for 500 milliseconds between each department or GE category that we scrape, and 3 minutes between each term we scrape, so as not to overload the WebSoc servers. - -To determine which terms to scrape, we use the `@libs/registrar-api` module, and we get the start and end dates for all available terms for academic years that include the current calendar year, the previous calendar year, and the next calendar year. We then filter out the terms that have already ended, since the data for those terms are not likely to be accessed frequently enough to warrant storing it in our cache. Once we've identified the terms to scrape, it's just a matter of iterating over all the departments. diff --git a/apps/docs/docs/contributors-guide/getting-started.md b/apps/docs/docs/contributors-guide/getting-started.md deleted file mode 100644 index 854951ed..00000000 --- a/apps/docs/docs/contributors-guide/getting-started.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# Getting Started - -Welcome to the **Contributor's Guide** for PeterPortal API. This part of the documentation covers how to contribute to the project, as well as some technical details that may aid you in your journey in doing so. - -If you're a developer who's interested in using PeterPortal API in your next project, welcome! We've got you covered in the Developer's Guide [here](/docs/developers-guide/getting-started). - -## Setting up your development environment - -To begin, you'll need to install the correct version of Node.js. We recommend using the [Node Version Manager (`nvm`)](https://github.com/nvm-sh/nvm), which is a painless way to ensure that you will always be using the correct version of Node.js. - -PeterPortal API targets the latest LTS version of Node.js. If you choose not to use `nvm`, please be aware that code tested with other versions of Node.js may not work as expected during our testing and deployment procedures. The rest of this guide will assume that you will be using `nvm`. - -After installing nvm per the instructions in its repository, execute the following command: - -```shell -nvm install lts/* -``` - -This will install the correct version of Node.js (if it hasn't already been installed) and set it as the active version. - -You'll also need `pnpm`, which is a fast and space-efficient alternative to `npm`. Its installation instructions can be found [here](https://pnpm.io/installation). Once you have `pnpm` installed, you're ready to roll! - -## Forking/branching and cloning - -If you are an external contributor, start off by creating a fork of the repository. If you are a member of the ICSSC Projects Committee, you should instead create a new branch on the repository. - -Either way, once you've cloned the repository or your fork, you should execute the following commands: - -```shell -cd peterportal-api-next -nvm use -pnpm i -``` - -These commands will install the dependencies and perform any necessary setup tasks for you to start developing. - -If you're a returning contributor, it's a good idea to synchronize your fork and/or your local repository with the main repository before starting any development work. This ensures that your changes will be built on the latest version of the code. - -## Committing your changes - -Once you've made some changes to the code using your favorite text editor or IDE, you'll want to commit your changes to your branch or fork. PeterPortal API uses a tool called [Commitizen](https://commitizen.github.io/cz-cli/), which helps you automatically format your commit message according to the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. - -To use Commitizen, simply run the following command after staging your changes using `git add`: - -```shell -pnpm -w commit -``` - -You can also write commit messages manually using `git commit`, but do note that our system will reject any commit messages that don't meet the spec. - -## Drafting and testing - -After you've committed and pushed your first changes, we strongly recommend that you create a draft pull request. This will help others to keep track of your progress, and also allows for your code to be deployed to staging if you so choose, so you can test your new feature as if it had been deployed to production. The title of the pull request should also follow the Conventional Commits spec, as mentioned above. - -Unlike some other projects, we do not require you to test any API-related changes locally, as the database is only accessible to members of the ICSSC Projects Committee and select external contributors. If you would like access to the database, feel free to ask in the relevant channel on our [Discord server](https://discord.gg/Zu8KZHERtJ). Alternatively, you can set up your own MariaDB instance locally, but that is beyond the scope of this tutorial. - -## Review process - -Once you've completed all the changes that you believe to be within scope of the current pull request, you can mark the pull request ready for review, at which point a member of Projects will review your changes. - -If your first attempt isn't approved immediately, don't fret! Very few changes pass code review on the first try, and the review process helps you and us by ensuring that we write good code. Please respond to any requests for changes in a timely manner and re-request reviews when necessary. - -Your changes will typically be merged shortly after getting approved, and the changes should be deployed soon after that. Congratulations on making your first contribution to PeterPortal API! - -## Contact us - -Still lost after reading this guide? If you ever need help, please don't hesitate to ask around on our [Discord server](https://discord.gg/Zu8KZHERtJ). - -If you'd like to learn more about the technical details of PeterPortal API, feel free to read on! diff --git a/apps/docs/docs/developers-guide/api-versioning.md b/apps/docs/docs/developers-guide/api-versioning.md deleted file mode 100644 index db51e0b0..00000000 --- a/apps/docs/docs/developers-guide/api-versioning.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# API Versioning - -The API follows [Semantic Versioning](https://semver.org/), with the major version being reflected in the first path part of each endpoint's path. - -As per Semantic Versioning, any breaking changes will only be released in a new major version. These include the following: - -- Removing an endpoint, parameter, or response field -- Adding a new required parameter or making a previously optional parameter required -- Changing the type of a response field -- Removing valid values for a parameter - -Any non-breaking changes will be added directly to the current latest major version. These include the following: - -- Adding or deprecating an endpoint, optional parameter, or response field -- Adding or deprecating valid values for a parameter diff --git a/apps/docs/docs/developers-guide/fair-use-policy.md b/apps/docs/docs/developers-guide/fair-use-policy.md deleted file mode 100644 index 95ff3e1f..00000000 --- a/apps/docs/docs/developers-guide/fair-use-policy.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# Fair Use Policy - -Thank you for considering PeterPortal API for your next project! We're glad to be able to help you in your endeavors. - -Before proceeding, please read through this page in its entirety. By sending a request to the API, it means that you have done so and accept all of its terms. - -## Rate Limits - -PeterPortal API does not currently have strict rate limits. We understand that student projects—especially those made for a hackathon—may experience sudden traffic spikes, and we do not want these applications to stop working due to circumstances outside the developers' control. - -With that being said, we ask that all developers refrain from purposefully sending large amounts of requests in a short interval, or making malicious requests with the intent to exploit vulnerabilities in the API. We reserve the right to blacklist IP addresses making such requests. - -If you do believe you have discovered a security vulnerability in PeterPortal API, please open an issue [here](https://github.com/icssc/peterportal-api-next). Since we do not serve sensitive data, there is no need to report such issues separately, nor is there an email address for such purposes. - -## Setting the `Referer` header - -While not required to use the API, we would greatly appreciate it if you could set the `Referer` header to the homepage of the application making the requests. For example, if your web application lives at https://panteate.github.io/awesome-project, or if you are hosting documentation for your non-web application there, we ask that you set that as the `Referer`. - -Setting the `Referer` header allows us to determine which endpoints are most used by which applications, allowing us to increase the capacity if necessary, or make further optimizations if we note that these endpoints are slow. If we have determined that your application is making too many requests, the header will make it easier for us to determine who to contact and speed up the resolution process. By providing a meaningful `Referer` header, you would also be helping yourself in addition to helping us. - -The following is a non-exhaustive list of code snippets for doing so using various HTTP libraries. If the library you're using isn't present below, please don't hesitate to open a pull request! - -### Fetch API - -
-Code - -```js -import fetch from "cross-fetch"; // ESM import -// const fetch = require("cross-fetch"); // CJS import - -const res = await fetch( - "https://api-next.peterportal.org/v1/rest/websoc" + - new URLSearchParams({ - year: "2023", - quarter: "Spring", - department: "COMPSCI", - }), - { - headers: { - Referer: "https://panteate.github.io/awesome-project", - // other headers - }, - // other options - }, -); -``` - -
- -### Axios - -
-Code - -```js -import axios from "axios"; // ESM import -// const axios = require("axios"); // CJS import - -const res = await axios.get("https://api-next.peterportal.org/v1/rest/websoc", { - params: { - year: "2023", - quarter: "Spring", - department: "COMPSCI", - }, - headers: { - Referer: "https://panteate.github.io/awesome-project", - // other headers - }, - // other options -}); -``` - -
- -### Requests - -
-Code - -```py -import requests - -res = requests.get("https://api-next.peterportal.org/v1/rest/websoc", - params={"year": "2023", "quarter": "Spring", "department": "COMPSCI"}, - headers={"referer": "https://panteate.github.io/awesome-project", # other headers - } # other options - ) -``` - -
diff --git a/apps/docs/docs/developers-guide/getting-started.md b/apps/docs/docs/developers-guide/getting-started.md deleted file mode 100644 index a82de201..00000000 --- a/apps/docs/docs/developers-guide/getting-started.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# Getting Started - -Welcome to the **Developer's Guide** for PeterPortal API. This part of the documentation covers how to properly use PeterPortal API for your own projects. - -If you're a developer who's interested in helping to improve PeterPortal API, first of all please accept our thanks. We've got you covered in the Contributor's Guide [here](/docs/contributors-guide/getting-started). - -## What is an API? - -API stands for **A**pplication **P**rogramming **I**nterface. In essence, it is a way for programs to communicate with each other using a set of agreed-upon definitions and protocols. - -PeterPortal API offers both REST and GraphQL APIs, both of which use standard HTTP verbs and status codes, and return structured data using JSON. - -## What is the difference between REST and GraphQL? - -REST stands for **RE**presentational **S**tate **T**ransfer. A REST API has endpoints, each of which represents a resource. When a request is made to an endpoint, the server responds with a representation of the state of the resource, hence the name. Each HTTP verb (`GET`, `POST`, etc.) represents a different action on the resource being requested. - -GraphQL is a query language for APIs. It is more flexible than REST, since you can query multiple endpoints in the same request, and also include only fields from the endpoint(s) that are relevant. However, it does have a slightly higher learning curve, and may require additional work to integrate into your application. - -The correct API to use will almost always depend on your use case; there is no single correct answer. - -## How do I start using PeterPortal API? - -Unlike some other Web APIs, PeterPortal API does not require API keys or authentication, so you can start using this API immediately. However, in order to ensure a good experience for all users of the API, we ask that you read and abide by the [Fair Use Policy](fair-use-policy). diff --git a/apps/docs/docs/developers-guide/graphql-api.md b/apps/docs/docs/developers-guide/graphql-api.md deleted file mode 100644 index 8c207f93..00000000 --- a/apps/docs/docs/developers-guide/graphql-api.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# GraphQL API - -The GraphQL API allows for access to the same resources that can be accessed through the REST API. - -You can try using the GraphQL API through [Apollo Sandbox](/sandbox) (also available through the navbar), which is a lightweight web-based IDE for GraphQL queries. The Sandbox also contains up-to-date documentation on the different queries available, so you can develop and test all of your queries from within a single page. diff --git a/apps/docs/docs/developers-guide/rest-api/guides/typescript-integration.md b/apps/docs/docs/developers-guide/rest-api/guides/typescript-integration.md deleted file mode 100644 index 0f8675ae..00000000 --- a/apps/docs/docs/developers-guide/rest-api/guides/typescript-integration.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# TypeScript Integration - -We provide a types package on the npm Registry to provide intelligent code completion when working with response objects, as well as a way to safely protect against erroneous or failed requests. - -To start using the package in your TypeScript project, run the following command: - -```bash npm2yarn -npm install peterportal-api-next-types -``` - -The following is a code snippet that uses the Fetch API to make requests, but this should work with all HTTP libraries that return the response as an object. You may have to use `JSON.parse` if your library returns a string instead. - -
-Code - -```ts -import type { RawResponse, WebsocAPIResponse } from "peterportal-api-next-types"; -import { isErrorResponse } from "peterportal-api-next-types"; - -try { - const res = await fetch( - "https://api-next.peterportal.org/v1/rest/websoc" + - new URLSearchParams({ - year: "2023", - quarter: "Spring", - department: "COMPSCI", - }), - { - headers: { - Referer: "https://docs.api-next.peterportal.org", - }, - }, - ); - const json: RawResponse = await res.json(); - // These fields are always available regardless of whether the request - // succeeded or failed. - console.log(json.timestamp); - console.log(json.requestId); - console.log(json.statusCode); - if (isErrorResponse(json)) { - // If the request failed, the error message and details will be logged to - // standard error. - console.error(json.error); - console.error(json.message); - } else { - // If the request was successful, all courses in the COMPSCI department for - // Spring 2023 will be logged to standard output. - // If you are using an editor that supports intelligent code completion, - // typing json.payload.s in this block should show the `schools` array of - // the WebSoc API response type. - console.log(json.payload); - } -} catch (e) { - // If fetch itself failed, the error message will be logged to standard error. - console.error(e); -} -``` - -
diff --git a/apps/docs/docs/developers-guide/rest-api/overview.md b/apps/docs/docs/developers-guide/rest-api/overview.md deleted file mode 100644 index dfede95e..00000000 --- a/apps/docs/docs/developers-guide/rest-api/overview.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -# Overview - -## Request Schema - -All requests to the REST API are to be made over HTTPS, using the URL https://api-next.peterportal.org/v1/rest. - -Some endpoints have query parameters with the type `string | string[]`. This means that it is permitted to pass multiple values to the parameter in question, by repeating the parameter name and/or passing in a comma-delimited string. - -For example, if `arg` is such a parameter, then the following query strings are all valid inputs and have the same result. - -- `?arg=foo&arg=bar&arg=baz&arg=quux` -- `?arg=foo,bar&arg=baz&arg=quux` -- `?arg=foo,bar&arg=baz,quux` -- `?arg=foo,bar,baz,quux` - -## Response Schema - -All responses, successful or otherwise, will be sent as JSON, and are guaranteed to contain the following fields: - -| Field | Type | Description | Example | -| ------------ | -------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `timestamp` | `string` | When (in CLF format) the request was processed. | `"04/Mar/2023:21:04:09 +0000"` | -| `requestId` | `string` | The unique identifier of the request. | A [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier). | -| `statusCode` | `number` | The [HTTP status code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) of the request. | `200` | - -Successful responses will additionally contain the `payload` field, which will include the requested data. - -Erroneous responses will instead contain the following fields: - -| Field | Type | Description | Example | -| --------- | -------- | ------------------------------------------------------------ | ----------------------------- | -| `error` | `string` | The message phrase associated with the status code. | `Bad Request` | -| `message` | `string` | The error that occurred while trying to process the request. | `Parameter year not provided` | - -## Compression - -By default, the API compresses responses that are larger than 128 KB using gzip. This is done to improve performance and network efficiency. - -If your usecase does not support compressed responses, make sure to send the `Accept-Encoding` header with an empty value. This will ensure that the response will be returned in plaintext. Note that doing so may fail for endpoints that return large amounts of data. - -The API supports both gzip and DEFLATE. If only DEFLATE is passed in the `Accept-Encoding` header, then it will be used. Otherwise, gzip will be used. diff --git a/apps/docs/docs/developers-guide/rest-api/reference/calendar.md b/apps/docs/docs/developers-guide/rest-api/reference/calendar.md deleted file mode 100644 index 33b388ef..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/calendar.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Calendar - -The calendar endpoint allows users to fetch important dates for the given quarter, such as when instruction begins and ends, and when final exams begin and end. - -## Query parameters - -#### `year` string Required - -The year to query. - -#### `quarter` Fall | Winter | Spring | Summer1 | Summer10wk | Summer2 Required - -The quarter to query. Case-sensitive. - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/calendar?year=2023&quarter=Spring" -``` - - - - -### Response - - - - -```json -{ - "instructionStart": "2023-04-03T00:00:00.000Z", - "instructionEnd": "2023-06-09T00:00:00.000Z", - "finalsStart": "2023-06-10T00:00:00.000Z", - "finalsEnd": "2023-06-15T00:00:00.000Z" -} -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/calendar.ts -type QuarterDates = { - instructionStart: string; - instructionEnd: string; - finalsStart: string; - finalsEnd: string; -}; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/courses.md b/apps/docs/docs/developers-guide/rest-api/reference/courses.md deleted file mode 100644 index c5835322..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/courses.md +++ /dev/null @@ -1,356 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Courses - -The courses endpoint allows users to get information on courses offered at UCI. - -## Get a course with the given course number - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses/COMPSCI162" -``` - - - - -### Response - - - - -```json -{ - "id": "COMPSCI162", - "department": "COMPSCI", - "courseNumber": "162", - "courseNumeric": 162, - "school": "Donald Bren School of Information and Computer Sciences", - "title": "Formal Languages and Automata", - "courseLevel": "Upper Division (100-199)", - "minUnits": 4, - "maxUnits": 4, - "description": "Formal aspects of describing and recognizing languages by grammars and automata. Parsing regular and context-free languages. Ambiguity, nondeterminism. Elements of computability; Turning machines, random access machines, undecidable problems, NP-completeness.", - "departmentName": "Computer Science", - "instructorHistory": ["goodrich", "whayes", "mikes", "vazirani"], - "prerequisiteTree": { - "AND": [ - "I&C SCI 6B", - "I&C SCI 6D", - { - "OR": ["MATH 2B", "AP CALCULUS BC"] - }, - { - "OR": ["CSE 46", "I&C SCI 46"] - } - ] - }, - "prerequisiteList": [ - "I&C SCI 46", - "CSE 46", - "MATH 2B", - "AP CALCULUS BC", - "I&C SCI 6B", - "I&C SCI 6D" - ], - "prerequisiteText": "(I&C SCI 46 OR CSE 46) AND (MATH 2B OR AP CALCULUS BC) AND I&C SCI 6B AND I&C SCI 6D", - "prerequisiteFor": [], - "repeatability": "", - "gradingOption": "", - "concurrent": "", - "sameAs": "LSCI 102.", - "restriction": "School of Info & Computer Sci students have first consideration for enrollment. Cognitive Sciences Majors have first consideration for enrollment. Language Science Majors have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.", - "overlap": "", - "corequisites": "", - "geList": [], - "geText": "", - "terms": [ - "2023 Spring", - "2022 Winter", - "2021 Spring", - "2020 Spring", - "2019 Spring", - "2018 Winter", - "2017 Winter", - "2015 Fall", - "2015 Winter", - "2014 Winter" - ] -} -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/courses.ts -type Course = { - id: string; - department: string; - courseNumber: string; - courseNumeric: number; - school: string; - title: string; - courseLevel: CourseLevel; - minUnits: number; - maxUnits: number; - description: string; - departmentName: string; - instructorHistory: string[]; - prerequisiteTree: PrerequisiteTree; - prerequisiteList: string[]; - prerequisiteText: string; - prerequisiteFor: string[]; - repeatability: string; - gradingOption: string; - concurrent: string; - sameAs: string; - restriction: string; - overlap: string; - corequisites: string; - geList: GECategory[]; - geText: string; - terms: string[]; -}; -``` - - - - -## Get courses that match the specified constraints - -### Query parameters - -#### `department` string - -The department the course(s) are in. - -#### `courseNumber` string - -The course number of the course(s). - -#### `courseNumeric` string - -The numeric part of the course number of the course(s). - -#### `titleContains` string - -A substring of the courses' titles. - -#### `courseLevel` ANY | LowerDiv | UpperDiv | Graduate - -The course level of the courses. Case-sensitive. Defaults to ANY. - -#### `minUnits` string - -The minimum number of units that can be earned by taking any of the courses. - -#### `maxUnits` string - -The maximum number of units that can be earned by taking any of the courses. - -#### `descriptionContains` string - -A substring of the courses' descriptions. - -#### `taughtByInstructors` string | string[] - -The UCInetID(s) of the instructor(s), one of whom have taught one of the courses. - -#### `geCategory` ANY | GE-1A | GE-1B | GE-2 | GE-3 | GE-4 | GE-5A | GE-5B | GE-6 | GE-7 | GE-8 - -The GE category of the courses. Case-sensitive. Defaults to ANY. - -#### `taughtInTerms` string | string[] - -The term(s) in which the course(s) were taught. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses" -``` - - - - -### Response - - - - -
-Get all courses belonging to a department - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses?department=COMPSCI" -``` - -```json -[{ "id": "COMPSCI103", "...": "..." }, "..."] -``` - -
- -
-Get all COMPSCI courses with the same numeric part - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses?department=COMPSCI&courseNumeric=122" -``` - -```json -[ - { "id": "COMPSCI122A", "...": "..." }, - { "id": "COMPSCI122B", "...": "..." }, - { "id": "COMPSCI122C", "...": "..." }, - { "id": "COMPSCI122D", "...": "..." } -] -``` - -
- -
-Get all graduate COMPSCI courses - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses?department=COMPSCI&courseLevel=Graduate" -``` - -```json -[{ "id": "COMPSCI200S", "...": "..." }, "..."] -``` - -
- -
-Get all courses taught by mikes and/or eppstein - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses?taughtByInstructors=mikes,eppstein" -``` - -```json -[ - { - "id": "COMPSCI161", - "foo": "...", - "instructorHistory": ["...", "eppstein", "...", "mikes", "..."], - "bar": "..." - }, - { - "id": "COMPSCI162", - "foo": "...", - "instructorHistory": ["...", "mikes", "..."], - "bar": "..." - }, - { - "id": "COMPSCI163", - "foo": "...", - "instructorHistory": ["...", "eppstein", "..."], - "bar": "..." - } -] -``` - -
- -
-Get all GE-2 courses - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses?geCategory=GE-2" -``` - -```json -[{ "id": "ARTHIS55", "...": "..." }, "..."] -``` - -
- -
-Get all COMPSCI upper division courses that were taught in 2023 Spring or 2023 Winter - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses?department=COMPSCI&courseLevel=UpperDiv&taughtInTerms=2023%20Spring,2023%20Winter" -``` - -```json -[ - { "id": "COMPSCI111", "...": "...", "terms": ["2023 Spring", "..."] }, - "...", - { "id": "COMPSCI116", "...": "...", "terms": ["2023 Winter", "..."] }, - "...", - { "id": "COMPSCI121", "...": "...", "terms": ["2023 Spring", "2023 Winter", "..."] } -] -``` - -
- -
- - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/courses.ts -type CourseResponse = Course[]; -``` - - -
- -## Get all courses - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses/all" -``` - - - - -### Response - - - - -```json -[ - { - "id": "ACENG139W", - "...": "..." - }, - { - "id": "ACENG200", - "...": "..." - }, - "..." -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/courses.ts -type CourseResponse = Course[]; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/enrollment-history.md b/apps/docs/docs/developers-guide/rest-api/reference/enrollment-history.md deleted file mode 100644 index 6e81a5cb..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/enrollment-history.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Enrollment History - -The enrollment history endpoint allows users to view the changes in enrollment data (total enrolled, max capacity, waitlist, etc.) for a specific course's sections. - -## Query parameters for all endpoints - -#### `year` string - -The year to include. - -#### `quarter` Fall | Winter | Spring | Summer1 | Summer10wk | Summer2 - -The quarter to include. Case-sensitive. - -#### `instructor` string - -The shortened name of the instructor to include. (Ex.: `SHINDLER, M.`) - -#### `courseNumber` string - -The course number to include. (Ex.: 161) - -#### `sectionCode` string - -The five-digit section code to include. - -#### `sectionType` | Act | Col | Dis | Fld | Lab | Lec | Qiz | Res | Sem | Stu | Tap | Tut - -The section type code. Case-sensitive. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/enrollmentHistory?year=2022&quarter=Fall&department=I%26C%20SCI&courseNumber=46" -``` - - - - -### Response - - - - -```json -[ - { - "year": "2022", - "quarter": "Fall", - "sectionCode": 35730, - "department": "I&C SCI", - "courseNumber": "46", - "sectionType": "Lec", - "sectionNum": "A", - "units": "4", - "instructors": ["SHINDLER, M.", "GARZA RODRIGUE, A.", "GILA, O."], - "meetings": [{ "days": "MWF", "time": "8:00- 8:50", "bldg": ["EH 1200"] }], - "finalExam": "Mon, Dec 5, 8:00-10:00am", - "dates": ["2022-05-17", "2022-05-18", "..."], - "maxCapacityHistory": ["220", "220", "220", "..."], - "totalEnrolledHistory": ["5", "5", "7", "..."], - "waitlistHistory": ["n/a", "n/a", "n/a", "..."], - "waitlistCapHistory": ["0", "0", "0", "..."], - "requestedHistory": ["7", "8", "11", "..."], - "newOnlyReservedHistory": ["0", "0", "0", "..."], - "statusHistory": ["OPEN", "OPEN", "OPEN", "..."] - }, - { - "year": "2022", - "quarter": "Fall", - "sectionCode": 35740, - "department": "I&C SCI", - "courseNumber": "46", - "sectionType": "Lec", - "sectionNum": "B", - "units": "4", - "instructors": ["SHINDLER, M.", "DICKERSON, M."], - "meetings": [{ "days": "MWF", "time": "10:00-10:50", "bldg": ["SSLH 100"] }], - "finalExam": "Mon, Dec 5, 10:30-12:30pm", - "dates": ["2022-05-17", "2022-05-18", "..."], - "maxCapacityHistory": ["220", "220", "220", "..."], - "totalEnrolledHistory": ["38", "44", "58", "..."], - "waitlistHistory": ["n/a", "n/a", "n/a", "..."], - "waitlistCapHistory": ["0", "0", "0", "..."], - "requestedHistory": ["41", "49", "66", "..."], - "newOnlyReservedHistory": ["0", "0", "0", "..."], - "statusHistory": ["OPEN", "OPEN", "OPEN", "..."] - } -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/calendar.ts -type EnrollmentHistory = { - year: string; - quarter: Quarter; - sectionCode: string; - department: string; - courseNumber: string; - sectionType: string; - sectionNum: string; - units: string; - instructors: string[]; - meetings: string[]; - finalExam: string; - dates: string[]; - maxCapacityHistory: string[]; - totalEnrolledHistory: string[]; - waitlistHistory: string[]; - waitlistCapHistory: string[]; - requestedHistory: string[]; - newOnlyReservedHistory: string[]; - statusHistory: string[]; -}; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/grades.md b/apps/docs/docs/developers-guide/rest-api/reference/grades.md deleted file mode 100644 index 2b9e140c..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/grades.md +++ /dev/null @@ -1,467 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Grades - -PeterPortal API maintains a database of past grades dating back to 2014 Summer Session 1. This database is updated from the [Public Records Office](https://pro.uci.edu/) as soon as they are available. This endpoint allows users to query that database with any desired filters. - -Please note that due to the size of the database, not providing any filters for the grades statistics endpoints will most likely result in an error. If you must fetch all data from the database at once, please consider doing so by year. - -## Query parameters for all endpoints - -#### `year` string - -The year to include. - -#### `quarter` Fall | Winter | Spring | Summer1 | Summer10wk | Summer2 - -The quarter to include. Case-sensitive. - -#### `instructor` string - -The shortened name of the instructor to include. (Ex.: SHINDLER, M.) - -#### `department` string - -The department to include. - -#### `courseNumber` string - -The course number to include. (Ex.: 161) - -#### `sectionCode` string - -The five-digit section code to include. - -#### `division` LowerDiv | UpperDiv | Graduate - -The course level/division code to include. Case-sensitive. - -#### `ge` GE-1A | GE-1B | GE-2 | GE-3 | GE-4 | GE-5A | GE-5B | GE-6 | GE-7 | GE-8 - -Which GE category to include. Case-sensitive. - -#### `excludePNP` boolean - -Whether to exclude sections that only reported Pass/No-Pass grades. - -## Get raw grade statistics for certain sections - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/grades/raw?year=2022&quarter=Fall§ionCode=35730" -``` - - - - -### Response - - - - -```json -[ - { - "year": "2022", - "quarter": "Fall", - "sectionCode": "35730", - "department": "I&C SCI", - "courseNumber": "46", - "courseNumeric": 46, - "geCategories": ["GE-5B"], - "gradeACount": 34, - "gradeBCount": 19, - "gradeCCount": 40, - "gradeDCount": 0, - "gradeFCount": 18, - "gradePCount": 3, - "gradeNPCount": 5, - "gradeWCount": 4, - "averageGPA": 2.45, - "instructors": ["GARZA RODRIGUE, A.", "GILA, O.", "SHINDLER, M."] - } -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/grades.ts -type RawGrades = { - year: string; - quarter: string; - sectionCode: string; - department: string; - courseNumber: string; - courseNumeric: number; - geCategories: GE[]; - instructors: string[]; - gradeACount: number; - gradeBCount: number; - gradeCCount: number; - gradeDCount: number; - gradeFCount: number; - gradePCount: number; - gradeNPCount: number; - gradeWCount: number; - averageGPA: number; -}[]; -``` - - - - -## Get aggregate grade statistics for certain sections - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/grades/aggregate?year=2022&quarter=Fall&courseNumber=46" -``` - - - - -### Response - - - - -```json -{ - "sectionList": [ - { - "year": "2022", - "quarter": "Fall", - "sectionCode": "35730", - "department": "I&C SCI", - "courseNumber": "46", - "courseNumeric": 46, - "geCategories": ["GE-5B"], - "instructors": ["GARZA RODRIGUE, A.", "GILA, O.", "SHINDLER, M."] - }, - { - "year": "2022", - "quarter": "Fall", - "sectionCode": "35740", - "department": "I&C SCI", - "courseNumber": "46", - "courseNumeric": 46, - "geCategories": ["GE-5B"], - "instructors": ["DICKERSON, M.", "SHINDLER, M."] - } - ], - "gradeDistribution": { - "gradeACount": 95, - "gradeBCount": 83, - "gradeCCount": 103, - "gradeDCount": 0, - "gradeFCount": 33, - "gradePCount": 4, - "gradeNPCount": 7, - "gradeWCount": 10, - "averageGPA": 2.63 - } -} -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/grades.ts -type AggregateGrades = { - sectionList: { - year: string; - quarter: string; - department: string; - courseNumber: string; - sectionCode: string; - geCategories: GE[]; - instructors: string[]; - }[]; - gradeDistribution: { - gradeACount: number; - gradeBCount: number; - gradeCCount: number; - gradeDCount: number; - gradeFCount: number; - gradePCount: number; - gradeNPCount: number; - gradeWCount: number; - averageGPA: number; - }; -}; -``` - - - - -## Get lists of valid options for the given filters - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/grades/options?department=COMPSCI" -``` - - - - -### Response - - - - -```json -{ - "years": ["2022", "2021", "2020", "2019", "2018", "2017", "2016", "2015", "2014"], - "departments": ["COMPSCI"], - "courseNumbers": ["103", "111", "112", "113", "114", "115", "116", "117", "118", "..."], - "sectionCodes": [ - "34000", - "34010", - "34015", - "34020", - "34030", - "34035", - "34040", - "34050", - "34055", - "34060", - "..." - ], - "instructors": [ - "ABBASPOUR TEHR, M.", - "ABDU JYOTHI, S.", - "ABRAHAM, D.", - "ADDANKI, G.", - "ADHIKARI, A.", - "AGARWAL, N.", - "AGNIHOTRI, M.", - "AHMED, I.", - "AL SUDAIS, S.", - "..." - ] -} -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/grades.ts -type GradesOptions = { - years: string[]; - departments: string[]; - courseNumbers: string[]; - sectionCodes: string[]; - instructors: string[]; -}; -``` - - - - -## Get grade statistics aggregated by course for certain sections - -Formally, if two sections have the same department code and course number, then they will be aggregated together for the purposes of this endpoint. For queries that involve an entire department, this is equivalent to running an aggregate query for each course number, but much faster. - -Note that graduate students who are listed as instructors on WebSoc may also be included. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/grades/aggregateByCourse?year=2023&department=COMPSCI" -``` - - - - -### Response - - - - -```json -[ - { - "department": "COMPSCI", - "courseNumber": "103", - "gradeACount": 80, - "gradeBCount": 11, - "gradeCCount": 10, - "gradeDCount": 4, - "gradeFCount": 5, - "gradePCount": 11, - "gradeNPCount": 8, - "gradeWCount": 0, - "averageGPA": 3.415 - }, - { - "department": "COMPSCI", - "courseNumber": "111", - "gradeACount": 112, - "gradeBCount": 100, - "gradeCCount": 35, - "gradeDCount": 13, - "gradeFCount": 13, - "gradePCount": 13, - "gradeNPCount": 2, - "gradeWCount": 2, - "averageGPA": 3.11625 - }, - "..." -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/grades.ts -type AggregateGradesByCourse = { - department: string; - courseNumber: string; - gradeACount: number; - gradeBCount: number; - gradeCCount: number; - gradeDCount: number; - gradeFCount: number; - gradePCount: number; - gradeNPCount: number; - gradeWCount: number; - averageGPA: number; -}[]; -``` - - - - -## Get grade statistics aggregated by course/instructor for certain sections - -Formally, if two sections have the same department code, course number, and instructor name, then they will be aggregated together for the purposes of this endpoint. For queries that involve an entire department, this is equivalent to running an aggregate query for each course number-instructor pair, but much faster. - -Note that graduate students who are listed as instructors on WebSoc may also be included. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/grades/aggregateByOffering?year=2023&department=COMPSCI&courseNumber=161" -``` - - - - -### Response - - - - -```json -[ - { - "department": "COMPSCI", - "courseNumber": "161", - "instructor": "FRISHBERG, D.", - "gradeACount": 165, - "gradeBCount": 42, - "gradeCCount": 59, - "gradeDCount": 0, - "gradeFCount": 14, - "gradePCount": 0, - "gradeNPCount": 0, - "gradeWCount": 2, - "averageGPA": 3.23 - }, - { - "department": "COMPSCI", - "courseNumber": "161", - "instructor": "KALOGIANNIS, F.", - "gradeACount": 165, - "gradeBCount": 42, - "gradeCCount": 59, - "gradeDCount": 0, - "gradeFCount": 14, - "gradePCount": 0, - "gradeNPCount": 0, - "gradeWCount": 2, - "averageGPA": 3.23 - }, - { - "department": "COMPSCI", - "courseNumber": "161", - "instructor": "PANAGEAS, I.", - "gradeACount": 101, - "gradeBCount": 115, - "gradeCCount": 48, - "gradeDCount": 15, - "gradeFCount": 12, - "gradePCount": 0, - "gradeNPCount": 0, - "gradeWCount": 2, - "averageGPA": 2.935 - }, - { - "department": "COMPSCI", - "courseNumber": "161", - "instructor": "SHINDLER, M.", - "gradeACount": 165, - "gradeBCount": 42, - "gradeCCount": 59, - "gradeDCount": 0, - "gradeFCount": 14, - "gradePCount": 0, - "gradeNPCount": 0, - "gradeWCount": 2, - "averageGPA": 3.23 - } -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/grades.ts -type AggregateGradesByOffering = { - department: string; - courseNumber: string; - instructor: string; - gradeACount: number; - gradeBCount: number; - gradeCCount: number; - gradeDCount: number; - gradeFCount: number; - gradePCount: number; - gradeNPCount: number; - gradeWCount: number; - averageGPA: number; -}[]; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/instructors.md b/apps/docs/docs/developers-guide/rest-api/reference/instructors.md deleted file mode 100644 index 226969f5..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/instructors.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Instructors - -The instructors endpoint allows users to get information on instructors who currently teach (or have taught) at UCI. This endpoint should include data on lecturers and professors, but most likely not graduate students in teaching roles, since information for the latter is not available through the General Catalogue. - -## Get an instructor with the given UCInetID - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/instructors/mikes" -``` - - - - -### Response - - - - -```json -{ - "ucinetid": "mikes", - "name": "Michael Shindler", - "shortenedName": "SHINDLER, M.", - "title": "Associate Professor of Teaching", - "email": "mikes@uci.edu", - "department": "Computer Science", - "schools": ["Donald Bren School of Information and Computer Sciences"], - "relatedDepartments": ["COMPSCI", "IN4MATX", "I&C SCI", "SWE", "STATS"], - "courseHistory": { - "COMPSCI 162": ["2023 Spring", "2021 Spring", "2020 Spring"], - "I&C SCI 193": ["2023 Spring"], - "...": "..." - } -} -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/instructors.ts -type Instructor = { - ucinetid: string; - name: string; - shortenedName: string; - title: string; - email: string; - department: string; - schools: string[]; - relatedDepartments: string[]; - courseHistory: Record; -}; -``` - - - - -## Get courses that match the specified constraints - -### Query parameters - -#### `nameContains` string - -A substring of the instructors' names. - -#### `shortenedName` string - -The shortened name (i.e. WebSoc name) of the instructor(s). - -:::caution - -Using this parameter will typically only return one entry; however, in some cases, multiple instructors may share the same shortened name. This may be because one or more of the instructors are emeriti, or because the last name-first initial combo is too common. Be sure to double-check the response. - -::: - -#### `titleContains` string - -A substring of the instructors' titles. - -#### `departmentContains` string - -A substring of the instructors' department names. - -#### `schoolsContains` string | string[] - -The set of schools with which the instructors are affiliated. - -#### `relatedDepartmentsContains` string | string[] - -The set of departments with which the instructors are affiliated. - -#### `taughtInTerms` string | string[] - -The term(s) in which the instructors taught at least one course. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/instructors" -``` - - - - -### Response - - - - -
-Get all instructors whose names contain the string "Eric" - -```bash -curl "https://api-next.peterportal.org/v1/rest/instructors?nameContains=Eric" -``` - -```json -[ - { - "ucinetid": "crooksr", - "name": "Roderic Nicholaus Crooks", - "shortenedName": "CROOKS, R.", - "...": "..." - }, - "...", - { - "ucinetid": "emj", - "name": "Eric D Mjolsness", - "shortenedName": "MJOLSNESS, E.", - "...": "..." - }, - "..." -] -``` - -
- -
-Get all instructors whose shortened name is "BLAKE, D." - -```bash -curl "https://api-next.peterportal.org/v1/rest/instructors?shortenedName=BLAKE, D." -``` - -```json -[ - { "ucinetid": "dhblake", "name": "David H Blake", "shortenedName": "BLAKE, D.", "...": "..." }, - { "ucinetid": "drblake", "name": "Donald R Blake", "shortenedName": "BLAKE, D.", "...": "..." } -] -``` - -
- -
-Get all professors emeriti of the Computer Science department - -```bash -curl "https://api-next.peterportal.org/v1/rest/instructors?titleContains=Emeritus&departmentContains=Computer%20Science" -``` - -```json -[ - "...", - { - "ucinetid": "dhirschb", - "name": "Dan Hirschberg", - "shortenedName": "HIRSCHBERG, D.", - "...": "..." - }, - "...", - { - "ucinetid": "pattis", - "name": "Richard Eric Pattis", - "shortenedName": "PATTIS, R.", - "...": "..." - }, - "..." -] -``` - -
- -
-Get all lecturers affiliated with the I&C SCI or PHYSICS departments - -```bash -curl "https://api-next.peterportal.org/v1/rest/courses?titleContains=Lecturer&relatedDepartmentsContains=I%26C%20SCI,PHYSICS" -``` - -```json -[ - { - "ucinetid": "abahrehb", - "name": "Amirfarshad Bahrehbakhsh", - "shortenedName": "BAHREHBAKHSH, A.", - "bar": "..." - }, - "...", - { - "ucinetid": "alfaro", - "name": "Shannon L Alfaro", - "shortenedName": "ALFARO, S.", - "bar": "..." - }, - "..." -] -``` - -
- -
-Get all department chairs who taught in 2023 Spring - -```bash -curl "https://api-next.peterportal.org/v1/rest/instructors?titleContains=Department%20Chair&taughtInTerms=2023%20Spring" -``` - -```json -[ - { - "ucinetid": "abiendar", - "name": "Anke Biendarra", - "shortenedName": "BIENDARRA, A.", - "...": "..." - }, - { - "ucinetid": "alexac15", - "name": "Alexandre Chan", - "shortenedName": "CHAN, A.", - "...": "..." - }, - "..." -] -``` - -
- -
- - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/instructors.ts -type Instructors = Instructor[]; -``` - - -
- -## Get all instructors - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/instructors/all" -``` - - - - -### Response - - - - -```json -[ - { - "ucinetid": "aaaziz1", - "...": "..." - }, - { - "ucinetid": "aabrewer", - "...": "..." - }, - "..." -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/instructors.ts -type Instructors = Instructor[]; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/larc.md b/apps/docs/docs/developers-guide/rest-api/reference/larc.md deleted file mode 100644 index 0f92f484..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/larc.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# LARC - -The LARC endpoint allows users to fetch the available LARC sections for a given quarter. - -## Query parameters - -#### `year` string Required - -The year to query. - -#### `quarter` Fall | Winter | Spring | Summer1 | Summer10wk | Summer2 Required - -The quarter to query. Case-sensitive. - -Note that it appears that 10-week Summer Sessions do not have LARC sessions, so querying this endpoint with that option will always return an empty array. - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/larc?year=2023&quarter=Summer1" -``` - - - - -### Response - - - - -```json -[ - { - "courseInfo": { - "courseNumber": "CHEM 1C", - "courseName": "General Chemistry" - }, - "sections": [ - { - "day": "MW", - "time": "9:00-10:50a", - "instructor": "Noam Levi", - "building": "ON LINE" - }, - { - "day": "MW", - "time": "11:00a-12:50p", - "instructor": "Noam Levi", - "building": "ON LINE" - } - ] - }, - { - "courseInfo": { - "courseNumber": "CHEM 51B", - "courseName": "Organic Chemistry" - }, - "sections": [ - { - "day": "MW", - "time": "1:00-2:50p", - "instructor": "Ashley Shah", - "building": "ON LINE" - }, - { - "day": "MW", - "time": "3:00-4:50p", - "instructor": "Ashley Shah", - "building": "ON LINE" - } - ] - } -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/larc.ts -type LarcCourse = { - courseInfo: { - courseNumber: string; - sameAs?: string; - courseName: string; - }; - sections: { - days: string; - time: string; - instructor: string; - bldg: string; - }[]; -}[]; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/study-rooms.md b/apps/docs/docs/developers-guide/rest-api/reference/study-rooms.md deleted file mode 100644 index 317952d1..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/study-rooms.md +++ /dev/null @@ -1,157 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Study Rooms - -The study rooms endpoint allows users to get information and availability of study rooms that can be reserved at UCI libraries. - -## Query parameters - -#### `location` string - -The location of the study rooms to query. Five locations are available to query: - -| location | name | -| -------- | -------------------------- | -| Langson | Langson Library | -| Gateway | Gateway Study Center | -| Science | Science Library | -| MRC | Multimedia Resource Center | -| GML | Grunigen Medical Library | - -#### `start` string Required - -The start date of time slots to query. YYYY-MM-DD format. - -#### `end` string Required - -The end date of time slots to query. YYYY-MM-DD format. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/studyRooms/Science?start=2024-04-26&end=2024-04-30" -``` - -```bash -curl "https://api-next.peterportal.org/v1/rest/studyRooms?location=Science&start=2024-04-26&end=2024-04-30" -``` - - - - -### Response - - - - -```json -{ - "id": "Science", - "name": "Science Library", - "lid": "6580", - "rooms": [ - { - "id": "44667", - "name": "Science 371", - "capacity": 8, - "location": "Science Library", - "description": "This Collaborative Technology Work Space is located on the upper level of the 2nd Floor Grand Reading Room. Access via the stairway halfway through the Grand Reading Room. Digital display available. Bring your own laptop.", - "directions": "Access via the elevators or stairway, on the upper level of the Grand Reading Room.", - "techEnhanced": true, - "timeSlots": [ - { - "date": "2024-04-27", - "start": "13:00:00", - "end": "13:30:00", - "booked": false - } - "..." - ] - } - "..." - ] -} -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/types/types/studyRoom -type StudyLocation = { - id: string; - lid: string; - name: string; - rooms: { - id: string; - name: string; - capacity: number; - location: string; - description?: string; - directions?: string; - timeSlots?: { - date: string; - start: string; - end: string; - booked: boolean; - }[]; - techEnhanced?: boolean; - }[]; -}; -``` - - - - -## Get all study rooms - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/studyRooms/all?start=2024-04-26&end=2024-04-30" -``` - - - - -### Response - - - - -```json -[ - { - "id": "Langson", - "...": "..." - }, - { - "id": "Gateway", - "...": "..." - }, - "..." -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/types/types/studyRoom -type StudyLocations = StudyLocation[]; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/websoc.md b/apps/docs/docs/developers-guide/rest-api/reference/websoc.md deleted file mode 100644 index 30579cf2..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/websoc.md +++ /dev/null @@ -1,586 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# WebSoc - -The WebSoc (Web Schedule of Classes) endpoint allows programmatic access to the UCI Schedule of Classes. - -PeterPortal API maintains a cache of all WebSoc data, which is updated every hour. By default, the endpoint will return data from the cache if it can, falling back to WebSoc on a cache miss. This improves the overall response time, but may result in stale data. - -## Query the Schedule of Classes - -### Query parameters - -#### `year` string Required - -The year to query. - -#### `quarter` Fall | Winter | Spring | Summer1 | Summer10wk | Summer2 Required - -The quarter to query. Case-sensitive. - -#### `cache` boolean - -Whether to query the cache at all; defaults to `true`. If this is set to `false`, then the endpoint will query WebSoc directly instead. Note that disabling the cache for large queries may result in a timeout. - -#### `cacheOnly` boolean - -Whether to use the cache exclusively; defaults to `false`. If this is set to `true`, then none of the following parameters marked with **\*** are required, but cache misses will not result in a fallback query. - -#### `includeCoCourses` boolean - -When querying by GE categories, the default behavior of WebSoc is to return only the main section of the course that satisfies the desired GE category. Setting this flag to `true` also returns any co-courses (discussions, labs, etc.) associated with the main section, but requires `cacheOnly` to also be set to `true`. - -To preserve backwards compatibility with WebSoc, this defaults to `false`. - -#### `ge`**\*** ANY | GE-1A | GE-1B | GE-2 | GE-3 | GE-4 | GE-5A | GE-5B | GE-6 | GE-7 | GE-8 - -The GE category code. Case-sensitive. Defaults to ANY. - -#### `department`**\*** string - -The department code. - -#### `sectionCodes`**\*** string | string[] - -The five-digit section code(s). - -#### `instructorName`**\*** string - -Any substring of the desired instructor's last name. To search an exact last -name, append a comma to the parameter. - -If `cacheOnly` is `false`, at least one of the parameters marked with **\*** must be provided and must not be ANY. - -#### `building` string - -The building code. - -#### `room` string - -The room number. - -If the room number is provided, the building code must be provided. - -#### `division` ANY | LowerDiv | UpperDiv | Graduate - -The course level/division code. Case-sensitive. Defaults to ANY. - -#### `courseNumber` string | string[] - -The course number(s) and/or range(s). (Ex.: 122A, 160-169) - -#### `courseTitle` string - -Any substring of the course title. - -#### `sectionType` ANY | Act | Col | Dis | Fld | Lab | Lec | Qiz | Res | Sem | Stu | Tap | Tut - -The section type code. Case-sensitive. Defaults to ANY. - -#### `units` string | string[] - -The number(s) of units approved for the section and/or the string `VAR` for any -section with variable units. - -#### `days` string | string[] - -The day(s) that a section meets on. (Ex.: `MWF`) - -#### `startTime` string - -The time on or after which a section starts. - -#### `endTime` string - -The time by which a section ends. - -#### `maxCapacity` string - -The maximum capacity of a section. (Ex.: `>200`, `<21`, `=69`) - -#### `fullCourses` ANY | SkipFull | SkipFullWaitlist | FullOnly | OverEnrolled - -Which sections to exclude based on their enrollment status. Case-sensitive. Defaults to ANY. - -#### `cancelledCourses` Exclude | Include | Only - -Which sections to exclude based on their cancellation status. Case-sensitive. Defaults to Exclude. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/websoc" -``` - - - - -### Response - - - - -
-Section with no final exam - -```bash -curl "https://api-next.peterportal.org/v1/rest/websoc?year=2023&quarter=Spring§ionCodes=34271" -``` - -```json -{ - "schools": [ - { - "schoolName": "Donald Bren School of Information and Computer Sciences", - "schoolComment": "...", - "departments": [ - { - "deptComment": "...", - "sectionCodeRangeComments": [], - "courseNumberRangeComments": ["..."], - "deptCode": "COMPSCI", - "deptName": "Computer Science", - "courses": [ - { - "deptCode": "COMPSCI", - "courseComment": "", - "prerequisiteLink": "https://www.reg.uci.edu/cob/prrqcgi?term=202314&dept=COMPSCI&action=view_by_term#162", - "courseNumber": "162", - "courseTitle": "FORMAL LANG & AUTM", - "sections": [ - { - "sectionCode": "34271", - "sectionType": "Dis", - "sectionNum": "A", - "units": "0", - "instructors": ["DEES, M.", "CHIU, A.", "SHINDLER, M."], - "meetings": [ - { - "timeIsTBA": false, - "bldg": ["SSH 100"], - "days": "Tu", - "startTime": { "hour": 19, "minute": 0 }, - "endTime": { "hour": 19, "minute": 50 } - } - ], - "finalExam": { - "examStatus": "NO_FINAL", - "dayOfWeek": null, - "month": null, - "day": null, - "startTime": null, - "endTime": null, - "bldg": null - }, - "maxCapacity": "249", - "numCurrentlyEnrolled": { - "totalEnrolled": "170", - "sectionEnrolled": "169" - }, - "numOnWaitlist": "", - "numWaitlistCap": "", - "numRequested": "219", - "numNewOnlyReserved": "", - "restrictions": "A", - "status": "OPEN", - "sectionComment": "\n\t\t\t

Same as 65131 (LSCI 102, Dis A).

\n\t\t\t " - } - ] - } - ] - } - ] - } - ] -} -``` - -
- -
-Section with TBA meeting time and final exam - -```bash -curl "https://api-next.peterportal.org/v1/rest/websoc?year=2023&quarter=Spring§ionCodes=34160" -``` - -```json -{ - "schools": [ - { - "schoolName": "Donald Bren School of Information and Computer Sciences", - "schoolComment": "...", - "departments": [ - { - "deptComment": "...", - "sectionCodeRangeComments": [], - "courseNumberRangeComments": ["..."], - "deptCode": "COMPSCI", - "deptName": "Computer Science", - "courses": [ - { - "deptCode": "COMPSCI", - "courseComment": "", - "prerequisiteLink": "https://www.reg.uci.edu/cob/prrqcgi?term=202314&dept=COMPSCI&action=view_by_term#143A", - "courseNumber": "143A", - "courseTitle": "PRNCPLS OPERTNG SYS", - "sections": [ - { - "sectionCode": "34160", - "sectionType": "Lec", - "sectionNum": "A", - "units": "4", - "instructors": ["BIC, L.", "GIYAHCHI, T.", "YI, S."], - "meetings": [ - { - "timeIsTBA": true, - "bldg": ["ON LINE"], - "days": null, - "startTime": null, - "endTime": null - } - ], - "finalExam": { - "examStatus": "TBA_FINAL", - "dayOfWeek": null, - "month": null, - "day": null, - "startTime": null, - "endTime": null, - "bldg": null - }, - "maxCapacity": "125", - "numCurrentlyEnrolled": { "totalEnrolled": "124", "sectionEnrolled": "" }, - "numOnWaitlist": "", - "numWaitlistCap": "", - "numRequested": "186", - "numNewOnlyReserved": "", - "restrictions": "A", - "status": "OPEN", - "sectionComment": "" - } - ] - } - ] - } - ] - } - ] -} -``` - -
- -
-Section with a final exam held in the same location as the lecture - -```bash -curl "https://api-next.peterportal.org/v1/rest/websoc?year=2023&quarter=Spring§ionCodes=34270" -``` - -```json -{ - "schools": [ - { - "schoolName": "Donald Bren School of Information and Computer Sciences", - "schoolComment": "...", - "departments": [ - { - "deptComment": "...", - "sectionCodeRangeComments": [], - "courseNumberRangeComments": ["..."], - "deptCode": "COMPSCI", - "deptName": "Computer Science", - "courses": [ - { - "deptCode": "COMPSCI", - "courseComment": "", - "prerequisiteLink": "https://www.reg.uci.edu/cob/prrqcgi?term=202314&dept=COMPSCI&action=view_by_term#162", - "courseNumber": "162", - "courseTitle": "FORMAL LANG & AUTM", - "sections": [ - { - "sectionCode": "34270", - "sectionType": "Lec", - "sectionNum": "A", - "units": "4", - "instructors": ["SHINDLER, M."], - "meetings": [ - { - "timeIsTBA": false, - "bldg": ["ALP 2300"], - "days": "MWF", - "startTime": { "hour": 10, "minute": 0 }, - "endTime": { "hour": 10, "minute": 50 } - } - ], - "finalExam": { - "examStatus": "SCHEDULED_FINAL", - "dayOfWeek": "Mon", - "month": 5, - "day": 12, - "startTime": { "hour": 10, "minute": 30 }, - "endTime": { "hour": 12, "minute": 30 }, - "bldg": ["ALP 2300"] - }, - "maxCapacity": "249", - "numCurrentlyEnrolled": { "totalEnrolled": "170", "sectionEnrolled": "169" }, - "numOnWaitlist": "", - "numWaitlistCap": "", - "numRequested": "246", - "numNewOnlyReserved": "", - "restrictions": "A", - "status": "OPEN", - "sectionComment": "\n\t\t\t

Same as 65130 (LSCI 102, Lec A).

\n\t\t\t " - } - ] - } - ] - } - ] - } - ] -} -``` - -
- -
-Section with multiple meetings and final exam held in a different location - -```bash -curl "https://api-next.peterportal.org/v1/rest/websoc?year=2023&quarter=Spring§ionCodes=44000" -``` - -```json -{ - "schools": [ - { - "schoolName": "School of Physical Sciences", - "schoolComment": "...", - "departments": [ - { - "deptComment": "...", - "sectionCodeRangeComments": [], - "courseNumberRangeComments": [], - "deptCode": "MATH", - "deptName": "Mathematics", - "courses": [ - { - "deptCode": "MATH", - "courseComment": "...", - "prerequisiteLink": "https://www.reg.uci.edu/cob/prrqcgi?term=202314&dept=MATH&action=view_by_term#2A", - "courseNumber": "2A", - "courseTitle": "CALCULUS I", - "sections": [ - { - "sectionCode": "44000", - "sectionType": "Lec", - "sectionNum": "A", - "units": "4", - "instructors": ["HUBER, K."], - "meetings": [ - { - "timeIsTBA": false, - "bldg": ["ON LINE"], - "days": "WF", - "startTime": { "hour": 10, "minute": 0 }, - "endTime": { "hour": 10, "minute": 50 } - }, - { - "timeIsTBA": false, - "bldg": ["ALP 1300"], - "days": "M", - "startTime": { "hour": 10, "minute": 0 }, - "endTime": { "hour": 10, "minute": 50 } - } - ], - "finalExam": { - "examStatus": "SCHEDULED_FINAL", - "dayOfWeek": "Sat", - "month": 5, - "day": 10, - "startTime": { "hour": 13, "minute": 30 }, - "endTime": { "hour": 15, "minute": 30 }, - "bldg": ["HIB 100"] - }, - "maxCapacity": "295", - "numCurrentlyEnrolled": { "totalEnrolled": "282", "sectionEnrolled": "" }, - "numOnWaitlist": "", - "numWaitlistCap": "", - "numRequested": "593", - "numNewOnlyReserved": "", - "restrictions": "A", - "status": "OPEN", - "sectionComment": "" - } - ] - } - ] - } - ] - } - ] -} -``` - -
- -
- - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/websoc.ts -type WebsocAPIResponse = { - schools: { - schoolName: string; - schoolComment: string; - departments: { - deptName: string; - deptCode: string; - deptComment: string; - courses: { - deptCode: string; - courseNumber: string; - courseTitle: string; - courseComment: string; - prerequisiteLink: string; - sections: { - sectionCode: string; - sectionType: string; - sectionNum: string; - units: string; - instructors: string[]; - meetings: { - timeIsTBA: boolean; - bldg: string[]; - days: string | null; - startTime: { hour: number; minute: number } | null; - endTime: { hour: number; minute: number } | null; - }[]; - finalExam: { - examStatus: "NO_FINAL" | "TBA_FINAL" | "SCHEDULED_FINAL"; - month: number | null; - day: number | null; - startTime: { hour: number; minute: number } | null; - endTime: { hour: number; minute: number } | null; - bldg: string[] | null; - }; - maxCapacity: string; - numCurrentlyEnrolled: { - totalEnrolled: string; - sectionEnrolled: string; - }; - numOnWaitlist: string; - numWaitlistCap: string; - numRequested: string; - numNewOnlyReserved: string; - restrictions: string; - status: "OPEN" | "Waitl" | "FULL" | "NewOnly"; - sectionComment: string; - }[]; - }[]; - sectionCodeRangeComments: string[]; - courseNumberRangeComments: string[]; - }[]; - }[]; -}; -``` - - -
- -## Get a list of available departments - -### Query parameters - -None. - -### Response - - - - -```json -[ - { - "deptLabel": "ALL: Include All Departments", - "deptValue": "ALL" - }, - { - "deptLabel": "AC ENG: Academic English", - "deptValue": "AC ENG" - }, - "..." -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/websoc.ts -type DepartmentList = { - deptLabel: string; - deptValue: string; -}[]; -``` - - - - -## Get a list of available departments - -### Query parameters - -None. - -### Response - - - - -```json -[ - { - "shortName": "2023 Summer2", - "longName": "2023 Summer Session 2" - }, - { - "shortName": "2023 Summer10wk", - "longName": "2023 10-wk Summer" - }, - { - "shortName": "2023 Summer1", - "longName": "2023 Summer Session 1" - }, - { - "shortName": "2023 Spring", - "longName": "2023 Spring Quarter" - }, - "..." -] -``` - - - - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/websoc.ts -type TermList = { - shortName: `${string} ${Quarter}`; - longName: string; -}[]; -``` - - - diff --git a/apps/docs/docs/developers-guide/rest-api/reference/week.md b/apps/docs/docs/developers-guide/rest-api/reference/week.md deleted file mode 100644 index c5d8156b..00000000 --- a/apps/docs/docs/developers-guide/rest-api/reference/week.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -pagination_prev: null -pagination_next: null ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Week - -The week endpoint allows users to get what week of instruction it is, what term(s) are currently in progress or in finals, and a pretty display string for the relevant information. - -## Query parameters - -#### `year` string - -The year to query. - -#### `month` string - -The month to query. - -#### `day` string - -The day to query. - -Note that all parameters must either be provided, in which case the response will be for the given date, or empty, in which case the response will be for today. - -### Code sample - - - - -```bash -curl "https://api-next.peterportal.org/v1/rest/week" -``` - - - - -### Response - - - - -
-School not in session - -```bash -curl "https://api-next.peterportal.org/v1/rest/week?year=2023&month=3&day=25" -``` - -```json -{ - "weeks": [-1], - "quarters": ["N/A"], - "display": "Enjoy your break! 😎" -} -``` - -
- -
-One term in session - -```bash -curl "https://api-next.peterportal.org/v1/rest/week?year=2023&month=5&day=1" -``` - -```json -{ - "weeks": [5], - "quarters": ["Spring Quarter 2023"], - "display": "Week 5 • Spring Quarter 2023" -} -``` - -
- -
-One term in finals - -```bash -curl "https://api-next.peterportal.org/v1/rest/week?year=2023&month=6&day=15" -``` - -```json -{ - "weeks": [-1], - "quarters": ["Spring Quarter 2023"], - "display": "Finals Week • Spring Quarter 2023. Good luck! 🤞" -} -``` - -
- -
-Two terms in session, same week numbers - -```bash -curl "https://api-next.peterportal.org/v1/rest/week?year=2023&month=6&day=26" -``` - -```json -{ - "weeks": [1, 1], - "quarters": ["Summer Session I 2023", "Summer Session 10WK 2023"], - "display": "Week 1 • Summer Session I 2023 | Summer Session 10WK 2023" -} -``` - -
- -
-Two terms in session, different week numbers - -```bash -curl "https://api-next.peterportal.org/v1/rest/week?year=2023&month=8&day=7" -``` - -```json -{ - "weeks": [7, 1], - "quarters": ["Summer Session 10WK 2023", "Summer Session II 2023"], - "display": "Week 7 • Summer Session 10WK 2023 | Week 1 • Summer Session II 2023" -} -``` - -
- -
-One term in session and another term in finals - -```bash -curl "https://api-next.peterportal.org/v1/rest/week?year=2023&month=9&day=1" -``` - -```json -{ - "weeks": [4, -1], - "quarters": ["Summer Session II 2023", "Summer Session 10WK 2023"], - "display": "Finals • Summer Session 10WK 2023. Good luck! 🤞 | Week 4 • Summer Session II 2023" -} -``` - -
- -
- - -```typescript -// https://github.com/icssc/peterportal-api-next/blob/main/packages/peterportal-api-next-types/types/week.ts -type WeekData = { - weeks: number[]; - quarters: string[]; - display: string; -}[]; -``` - - -
diff --git a/apps/docs/docusaurus.config.js b/apps/docs/docusaurus.config.js deleted file mode 100644 index bbfde86e..00000000 --- a/apps/docs/docusaurus.config.js +++ /dev/null @@ -1,111 +0,0 @@ -// @ts-check - -const lightCodeTheme = require("prism-react-renderer/themes/github"); -const darkCodeTheme = require("prism-react-renderer/themes/dracula"); - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: "PeterPortal API Docs", - tagline: "An API that provides easy access to public data from UC Irvine", - favicon: "img/favicon.png", - url: "https://docs.api-next.peterportal.org", - baseUrl: "/", - i18n: { - defaultLocale: "en", - locales: ["en"], - }, - - presets: [ - [ - "classic", - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - sidebarPath: require.resolve("./sidebars.js"), - editUrl: "https://github.com/icssc/peterportal-api-next/tree/main/apps/docs/", - showLastUpdateTime: true, - remarkPlugins: [[require("@docusaurus/remark-plugin-npm2yarn"), { sync: true }]], - }, - theme: { - customCss: require.resolve("./src/css/custom.css"), - }, - }), - ], - ], - - plugins: [ - [ - "docusaurus-plugin-dotenv", - { - systemvars: true, - silent: true, - }, - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - navbar: { - title: "PeterPortal API", - logo: { - alt: "PeterPortal Logo", - src: "img/favicon.png", - }, - items: [ - { - type: "doc", - docId: "developers-guide/getting-started", - position: "left", - label: "Developer's Guide", - }, - { - type: "doc", - docId: "contributors-guide/getting-started", - position: "left", - label: "Contributor's Guide", - }, - { - position: "left", - label: "Sandbox", - href: "/sandbox", - }, - { - href: "https://github.com/icssc/peterportal-api-next", - className: "header-github-link", - "aria-label": "GitHub repository", - position: "right", - }, - ], - }, - footer: { - logo: { - src: "img/icssc.png", - alt: "ICS Student Council Logo", - href: "https://icssc.club", - }, - style: "dark", - links: [ - { - label: "Discord", - href: "https://discord.gg/Zu8KZHERtJ", - }, - { - label: "Fellowship", - href: "https://fellowship.icssc.club", - }, - { - label: "GitHub", - href: "https://github.com/icssc", - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} ICSSC Projects. Built with Docusaurus.`, - }, - prism: { - theme: lightCodeTheme, - darkTheme: darkCodeTheme, - }, - }), -}; - -module.exports = config; diff --git a/apps/docs/package.json b/apps/docs/package.json deleted file mode 100644 index 4b14ea72..00000000 --- a/apps/docs/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "@apps/docs", - "version": "0.0.0", - "private": true, - "description": "The documentation site for API", - "scripts": { - "build": "docusaurus build", - "dev": "docusaurus start" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "dependencies": { - "@apollo/sandbox": "2.5.1", - "@docusaurus/core": "2.4.3", - "@docusaurus/preset-classic": "2.4.3", - "@docusaurus/remark-plugin-npm2yarn": "2.4.3", - "@docusaurus/theme-classic": "2.4.3", - "@mdx-js/react": "1.6.22", - "clsx": "1.2.1", - "docusaurus-plugin-dotenv": "1.0.1", - "prism-react-renderer": "1.3.5", - "prismjs": "1.29.0", - "react": "17.0.2", - "react-dom": "17.0.2" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "2.4.3", - "@docusaurus/types": "2.4.3", - "@tsconfig/docusaurus": "2.0.2", - "@types/node": "20.11.24", - "typescript": "5.3.3" - } -} diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js deleted file mode 100644 index 56f6b20d..00000000 --- a/apps/docs/sidebars.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check - -/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const sidebars = { - developersGuideSidebar: [ - "developers-guide/getting-started", - "developers-guide/fair-use-policy", - "developers-guide/api-versioning", - { - type: "category", - label: "REST API", - items: [ - "developers-guide/rest-api/overview", - { - type: "category", - label: "Guides", - items: ["developers-guide/rest-api/guides/typescript-integration"], - }, - { - type: "category", - label: "Reference", - items: [ - "developers-guide/rest-api/reference/calendar", - "developers-guide/rest-api/reference/courses", - "developers-guide/rest-api/reference/enrollment-history", - "developers-guide/rest-api/reference/grades", - "developers-guide/rest-api/reference/instructors", - "developers-guide/rest-api/reference/larc", - "developers-guide/rest-api/reference/study-rooms", - "developers-guide/rest-api/reference/websoc", - "developers-guide/rest-api/reference/week", - ], - }, - ], - }, - "developers-guide/graphql-api", - ], - contributorsGuideSidebar: [ - "contributors-guide/getting-started", - { - type: "category", - label: "Application Architecture", - link: { type: "doc", id: "contributors-guide/application-architecture/index" }, - items: ["contributors-guide/application-architecture/tools"], - }, - ], -}; - -module.exports = sidebars; diff --git a/apps/docs/src/css/custom.css b/apps/docs/src/css/custom.css deleted file mode 100644 index 1bc64f2d..00000000 --- a/apps/docs/src/css/custom.css +++ /dev/null @@ -1,42 +0,0 @@ -:root { - --ifm-color-primary: #5b6ba0; - --ifm-color-primary-dark: #526090; - --ifm-color-primary-darker: #4d5b88; - --ifm-color-primary-darkest: #404b70; - --ifm-color-primary-light: #6a79aa; - --ifm-color-primary-lighter: #7280af; - --ifm-color-primary-lightest: #8a96bc; - --ifm-background-color: #f1f1f1; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - -[data-theme="dark"] { - --ifm-color-primary: #bec4da; - --ifm-color-primary-dark: #a4accb; - --ifm-color-primary-darker: #97a1c4; - --ifm-color-primary-darkest: #707dae; - --ifm-color-primary-light: #d8dce9; - --ifm-color-primary-lighter: #e5e7f0; - --ifm-color-primary-lightest: #ffffff; - --ifm-background-color: #222222; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} - -.header-github-link:hover { - opacity: 0.6; -} - -.header-github-link::before { - content: ""; - width: 1.5rem; - height: 1.5rem; - 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/apps/docs/src/pages/index.module.css b/apps/docs/src/pages/index.module.css deleted file mode 100644 index 3ccab73a..00000000 --- a/apps/docs/src/pages/index.module.css +++ /dev/null @@ -1,27 +0,0 @@ -.banner { - padding: 4rem 0; - text-align: center; - position: relative; - overflow: hidden; -} - -[data-theme="dark"] .banner { - background-color: #a0a6b1; -} - -@media screen and (max-width: 996px) { - .banner { - padding: 2rem; - } -} - -.buttons { - display: flex; - align-items: center; - justify-content: center; -} - -.gettingStartedButton { - background-color: #ff86b4; - border-color: #ff86b4; -} diff --git a/apps/docs/src/pages/index.tsx b/apps/docs/src/pages/index.tsx deleted file mode 100644 index f5046fe8..00000000 --- a/apps/docs/src/pages/index.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import Link from "@docusaurus/Link"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import Heading from "@theme/Heading"; -import Layout from "@theme/Layout"; -import clsx from "clsx"; -import React from "react"; - -import styles from "./index.module.css"; - -function HomepageHeader() { - const { siteConfig } = useDocusaurusContext(); - return ( -
-
- - PeterPortal API - -

{siteConfig.tagline}

-
- - Get Started - -
-
-
- ); -} - -export default function Home() { - return ( - - - - ); -} diff --git a/apps/docs/src/pages/sandbox/index.tsx b/apps/docs/src/pages/sandbox/index.tsx deleted file mode 100644 index a0fda3eb..00000000 --- a/apps/docs/src/pages/sandbox/index.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { ApolloSandbox } from "@apollo/sandbox/react"; -import BrowserOnly from "@docusaurus/BrowserOnly"; -import Layout from "@theme/Layout"; -import React from "react"; - -import styles from "./styles.module.css"; - -export default function Sandbox() { - return ( - "Loading..."}> - {() => { - const baseUrl = - process.env.NODE_ENV === "development" - ? `http://localhost:${process.env.API_PORT || 8080}` - : `https://${window.location.hostname.replace(/-?docs/, "").replace(/^\./, "")}`; - return ( - - - - ); - }} - - ); -} diff --git a/apps/docs/src/pages/sandbox/styles.module.css b/apps/docs/src/pages/sandbox/styles.module.css deleted file mode 100644 index f542406e..00000000 --- a/apps/docs/src/pages/sandbox/styles.module.css +++ /dev/null @@ -1,4 +0,0 @@ -.apolloSandbox { - height: calc(100vh - 3.75rem); - overflow: hidden; -} diff --git a/apps/docs/static/img/banner.png b/apps/docs/static/img/banner.png deleted file mode 100644 index ed75a45df6b6e791b6f66e239af4b0d67991b30d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64450 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 diff --git a/apps/docs/static/img/favicon.png b/apps/docs/static/img/favicon.png deleted file mode 100644 index 0e4852253346c1ae6912a1ce0a1b09790f0d518e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3822 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 AtN;K2 diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json deleted file mode 100644 index 075ad523..00000000 --- a/apps/docs/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@tsconfig/docusaurus/tsconfig.json", - "compilerOptions": { - "baseUrl": ".", - "skipLibCheck": true - }, - "exclude": ["cdk/"] -} diff --git a/libs/lambda/package.json b/libs/lambda/package.json index 5952bf1e..8c234105 100644 --- a/libs/lambda/package.json +++ b/libs/lambda/package.json @@ -11,7 +11,7 @@ "winston": "3.12.0" }, "devDependencies": { - "@peterportal-api/types": "workspace:^", + "@anteater-api/types": "workspace:^", "@types/aws-lambda": "8.10.135" } } diff --git a/libs/lambda/src/compress.ts b/libs/lambda/src/compress.ts index 2c9c35c5..e1dd41b3 100644 --- a/libs/lambda/src/compress.ts +++ b/libs/lambda/src/compress.ts @@ -38,8 +38,8 @@ export function compress(body: string, acceptEncoding?: string): CompressionResu return { body }; } - const matchingAlgorithm = compressionAlgorithmEntries.find( - (algorithm) => acceptEncoding?.includes(algorithm[0]), + const matchingAlgorithm = compressionAlgorithmEntries.find((algorithm) => + acceptEncoding?.includes(algorithm[0]), ); // If accept-encoding is present and not empty, prioritize gzip over deflate. diff --git a/libs/lambda/src/response.ts b/libs/lambda/src/response.ts index 3038f91d..bc399834 100644 --- a/libs/lambda/src/response.ts +++ b/libs/lambda/src/response.ts @@ -1,4 +1,4 @@ -import type { ErrorResponse, Response } from "@peterportal-api/types"; +import type { ErrorResponse, Response } from "@anteater-api/types"; import type { APIGatewayProxyResult } from "aws-lambda"; import { compress } from "./compress"; diff --git a/libs/uc-irvine-lib/package.json b/libs/uc-irvine-lib/package.json index 613f1e7b..52c8ba77 100644 --- a/libs/uc-irvine-lib/package.json +++ b/libs/uc-irvine-lib/package.json @@ -4,15 +4,6 @@ "private": true, "description": "Libraries to interface with various UC Irvine data sources", "keywords": [], - "homepage": "https://docs.api-next.peterportal.org", - "bugs": { - "url": "https://github.com/icssc/peterportal-api-next/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/icssc/peterportal-api-next", - "directory": "libs/uc-irvine-lib" - }, "license": "MIT", "type": "module", "exports": { @@ -52,8 +43,8 @@ "src" ], "dependencies": { + "@anteater-api/types": "workspace:^", "@ap0nia/camaro": "6.2.5", - "@peterportal-api/types": "workspace:^", "cheerio": "1.0.0-rc.12", "cross-fetch": "4.0.0" }, diff --git a/libs/uc-irvine-lib/src/registrar/index.ts b/libs/uc-irvine-lib/src/registrar/index.ts index f519a24a..e0df1b89 100644 --- a/libs/uc-irvine-lib/src/registrar/index.ts +++ b/libs/uc-irvine-lib/src/registrar/index.ts @@ -1,4 +1,4 @@ -import type { QuarterDates } from "@peterportal-api/types"; +import type { QuarterDates } from "@anteater-api/types"; import { load } from "cheerio"; import fetch from "cross-fetch"; diff --git a/libs/uc-irvine-lib/src/websoc/index.ts b/libs/uc-irvine-lib/src/websoc/index.ts index f276b27d..704c9efe 100644 --- a/libs/uc-irvine-lib/src/websoc/index.ts +++ b/libs/uc-irvine-lib/src/websoc/index.ts @@ -1,5 +1,5 @@ +import type { Department, TermData } from "@anteater-api/types"; import { transform } from "@ap0nia/camaro"; -import type { Department, TermData } from "@peterportal-api/types"; import { load } from "cheerio"; import fetch from "cross-fetch"; diff --git a/libs/uc-irvine-lib/tsconfig.json b/libs/uc-irvine-lib/tsconfig.json index 5d9248b2..dc787c60 100644 --- a/libs/uc-irvine-lib/tsconfig.json +++ b/libs/uc-irvine-lib/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": ["../../tsconfig.json"], + "extends": ["../../tsconfig.json"] } diff --git a/libs/websoc-utils/package.json b/libs/websoc-utils/package.json index f5d78005..ad0ce396 100644 --- a/libs/websoc-utils/package.json +++ b/libs/websoc-utils/package.json @@ -7,7 +7,7 @@ "main": "src/index.ts", "types": "src/index.ts", "dependencies": { - "@libs/uc-irvine-lib": "workspace:^", - "@peterportal-api/types": "workspace:^" + "@anteater-api/types": "workspace:^", + "@libs/uc-irvine-lib": "workspace:^" } } diff --git a/libs/websoc-utils/src/index.ts b/libs/websoc-utils/src/index.ts index dd2c36e6..9fcab49b 100644 --- a/libs/websoc-utils/src/index.ts +++ b/libs/websoc-utils/src/index.ts @@ -1,11 +1,3 @@ -import type { - WebsocAPIResponse, - WebsocCourse, - WebsocDepartment, - WebsocSchool, - WebsocSection, - WebsocSectionMeeting, -} from "@libs/uc-irvine-lib/websoc"; import type { DayOfWeek, WebsocAPIResponse as NormalizedResponse, @@ -15,7 +7,15 @@ import type { WebsocSchool as NormalizedSchool, WebsocSection as NormalizedSection, WebsocSectionMeeting as NormalizedMeeting, -} from "@peterportal-api/types"; +} from "@anteater-api/types"; +import type { + WebsocAPIResponse, + WebsocCourse, + WebsocDepartment, + WebsocSchool, + WebsocSection, + WebsocSectionMeeting, +} from "@libs/uc-irvine-lib/websoc"; export type EnhancedSection = { school: WebsocSchool; diff --git a/package.json b/package.json index c50c74c3..5aa138b7 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "peterportal-api-next", - "version": "1.0.0-rc.3", + "name": "anteater-api", + "version": "1.0.0", "private": true, - "description": "The official PeterPortal API-Next monorepo", - "homepage": "https://docs.api-next.peterportal.org", + "description": "The official Anteater API monorepo", + "homepage": "https://docs.icssc.club/anteaterapi", "license": "MIT", "type": "module", "scripts": { "build": "turbo run build", - "ci:tsc": "npx tsc -p . --noEmit && npx tsc -p apps/docs --noEmit", + "ci:tsc": "npx tsc -p . --noEmit", "commit": "cz", "deploy": "turbo run deploy", "destroy": "turbo run destroy", diff --git a/packages/types/README.md b/packages/types/README.md index 89aa9139..a3fa0929 100644 --- a/packages/types/README.md +++ b/packages/types/README.md @@ -1,3 +1,3 @@ -# peterportal-api-next-types +# @anteater-api/types -This package contains the type definitions for PeterPortal API _Next_. They can be used to ensure type safety when handling API responses, but are not by any means required to use the API. +This package contains the type definitions for Anteater API. They can be used to ensure type safety when handling API responses, but are not by any means required to use the API. diff --git a/packages/types/package.json b/packages/types/package.json index 851e2d72..f4a4227d 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,5 +1,5 @@ { - "name": "@peterportal-api/types", + "name": "@anteater-api/types", "version": "1.0.0-rc.3", "description": "", "license": "MIT", diff --git a/packages/types/types/response.ts b/packages/types/types/response.ts index 7cbf0df5..9c06206a 100644 --- a/packages/types/types/response.ts +++ b/packages/types/types/response.ts @@ -46,16 +46,9 @@ export type ErrorResponse = BaseResponse & { }; /** - * The type alias for a response returned from the REST API. You should use - * ``isErrorResponse`` to determine whether the request was successful. + * The type alias for a response returned from the REST API. You should test the value of `success` + * to determine whether the request was successful. * * @typeParam T The payload type of the REST API endpoint being queried. */ export type RawResponse = Response | ErrorResponse; - -/** - * Type guard for determining whether the given ``RawResponse`` object is an - * ``ErrorResponse`` or a ``Response``. - * @param r The object to test. - */ -export const isErrorResponse = (r: RawResponse): r is ErrorResponse => r.success == false; diff --git a/packages/websoc-fuzzy-search/.gitignore b/packages/websoc-fuzzy-search/.gitignore deleted file mode 100644 index ea1472ec..00000000 --- a/packages/websoc-fuzzy-search/.gitignore +++ /dev/null @@ -1 +0,0 @@ -output/ diff --git a/packages/websoc-fuzzy-search/LICENSE b/packages/websoc-fuzzy-search/LICENSE deleted file mode 100644 index 19bdadd9..00000000 --- a/packages/websoc-fuzzy-search/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022-2023 ICSSC Projects - -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/packages/websoc-fuzzy-search/README.md b/packages/websoc-fuzzy-search/README.md deleted file mode 100644 index 6b2f3d57..00000000 --- a/packages/websoc-fuzzy-search/README.md +++ /dev/null @@ -1,130 +0,0 @@ -# websoc-fuzzy-search - -A fuzzy search module for various course (including department, GE category) and instructor data from UCI. - -The module name is a misnomer, since we don't get our data from WebSoc at all (but rather from the Catalogue), but it's stuck. - -## Installation - -`npm install --save websoc-fuzzy-search` - -or - -`yarn add websoc-fuzzy-search` - -or - -`pnpm install websoc-fuzzy-search` - -## Documentation - -### Types - -#### CourseLevel - -`CourseLevel` is an integer literal that holds one of the following values. - -| Literal Value | Meaning | -| :-----------: | :---------------------------------------: | -| `0` | Lower Division courses (1-99) | -| `1` | Upper Division courses (100-199) | -| `2` | Graduate/Professional Only courses (200+) | - -#### GECategory - -`GECategory` is a string literal that holds one of the following values. - -| Literal Value | Meaning | -| :-----------: | :----------------------------: | -| `GE-1A` | Lower Division Writing | -| `GE-1B` | Upper Division Writing | -| `GE-2` | Science and Technology | -| `GE-3` | Social and Behavioral Sciences | -| `GE-4` | Arts and Humanities | -| `GE-5A` | Quantitative Literacy | -| `GE-5B` | Formal Reasoning | -| `GE-6` | Language other than English | -| `GE-7` | Multicultural Studies | -| `GE-8` | International/Global Issues | - -#### ResultType - -`ResultType` is a string literal that holds one of the following values. The internal value is used to sort the final -response. - -| Literal Value | Internal Value | -| :-----------: | :------------: | -| `GE_CATEGORY` | `4` | -| `DEPARTMENT` | `3` | -| `COURSE` | `2` | -| `INSTRUCTOR` | `1` | - -#### FilterOptions - -`FilterOptions` represents any desired `Metadata` attributes in the final result(s). It has four possible fields, all of -which are optional. - -A list of acceptable values for `department`s and `school`s can be found in the source data -[here](https://github.com/icssc/wfs-scripts/tree/main/sources). - -| Field | Type | Description | -| :-----------: | :-------------: | :---------------------------------------------------: | -| `courseLevel` | `CourseLevel[]` | The course level(s) to match. (Courses only) | -| `geList` | `GECategory[]` | The GE categor(y/ies) to match. (Courses only) | -| `department` | `string[]` | The department(s) to match. (Courses and Instructors) | -| `school` | `string[]` | The school(s) to match. (Courses and Instructors) | - -#### SearchParams - -`SearchParams` represents the parameters for which to search. It has four possible fields, all of which are optional. - -| Field | Type | Description | -| :-------------: | :-------------: | :---------------------------------------------------: | -| `query` | `string` | The search query. | -| `numResults` | `number` | The maximum number of results to return. | -| `resultType` | `ResultType` | Which type of result to return exclusively. | -| `filterOptions` | `FilterOptions` | Any `Metadata` attributes the result(s) must possess. | - -#### SearchResult - -`SearchResult` represents a single object matched by the fuzzy search process. - -| Field | Type | Description | -| :--------: | :----------: | :-----------------------------------------------------: | -| `type` | `ResultType` | The type of the result matched. | -| `name` | `string` | The descriptive name of the result matched. | -| `metadata` | `any` | Any metadata relevant to the result matched. (Optional) | - -Two interfaces extend upon this interface; each has a different type for the `metadata` field and its own type guard -function for TypeScript compatibility. - -#### CourseMetadata - -| Field | Type | Description | -| :-----------: | :------------: | :-----------------------------------------------: | -| `department` | `string` | The department that offers this course. | -| `number` | `string` | The course number. | -| `geList` | `GECategory[]` | GE categor(y/ies), if any, this course satisfies. | -| `courseLevel` | `CourseLevel` | The level of this course. | -| `school` | `string` | The school/academic unit this course falls under. | - -#### InstructorMetadata - -| Field | Type | Description | -| :----------: | :--------: | :-----------------------------------------------: | -| `ucinetid` | `string` | The instructor's UCINetID. | -| `school` | `string[]` | The school(s) to which this instructor belong(s). | -| `department` | `string[]` | The department to which this instructor belongs. | - -### Functions - -#### search - -Signature: `search(params?: SearchParams): Record` - -Performs a fuzzy-search query based on the parameters given (if any), and returns a mapping of unique string -identifiers to `SearchResult` objects. - -#### `isCourseSearchResult` and `isInstructorSearchResult` - -These type guard functions are provided for TypeScript-based projects and are fairly self-explanatory. diff --git a/packages/websoc-fuzzy-search/input/aliases.json b/packages/websoc-fuzzy-search/input/aliases.json deleted file mode 100644 index 5a616e99..00000000 --- a/packages/websoc-fuzzy-search/input/aliases.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "bio": ["BIO SCI"], - "cs": ["COMPSCI"], - "ess": ["EARTHSS"], - "ics": ["I&C SCI"], - "inf": ["IN4MATX"], - "wr": ["WRITING"] -} diff --git a/packages/websoc-fuzzy-search/input/departments.json b/packages/websoc-fuzzy-search/input/departments.json deleted file mode 100644 index 7aa3ffeb..00000000 --- a/packages/websoc-fuzzy-search/input/departments.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "Academic Personnel": "ACPE", - "Academic Planning": "ACPL", - "Advanced Power & Energy Program": "APEP", - "African American Studies": "AFAM", - "Anthropology": "ANTHRO", - "Art History": "ART HIS", - "Arts-Dance": "DANCE", - "Arts-Dean's Office": "ADO", - "Arts-Drama": "DRAMA", - "Arts-Music": "MUSIC", - "Arts-Studio Art": "ASA", - "Asian American Studies": "ASIANAM", - "Beckman Laser Institute": "BLI", - "Biological Sciences-Minority Programs": "BSMP", - "Biomedical Engineering": "BME", - "Call Center": "CALL", - "Center For Embedded Cyber-Physical Systems": "CFECPS", - "Center for Educational Partnerships": "CFEP", - "Chemical & Biomolecular Engineering": "CBE", - "Chemistry": "CHEM", - "Chicano/Latino Studies": "CHC/LAT", - "Civil & Environmental Engineering": "ENGRCEE", - "Classics": "CLASSIC", - "Clinical Pharmacy Practice": "CPP", - "Cognitive Science": "COGS", - "Comparative Literature": "COM LIT", - "Computer Science": "COMPSCI", - "Criminology, Law & Society": "CRM/LAW", - "DOM General Internal Medicine": "DOMGIM", - "Developmental and Cell Biology": "DEV BIO", - "Donald Bren School of Information and Computer Sciences": "ICS", - "Earth System Science": "EARTHSS", - "East Asian Studies": "EAS", - "Ecology & Evolutionary Biology": "ECO EVO", - "Economics": "ECON", - "Education": "EDUC", - "Education - Writing Project": "EDWP", - "Electrical Engineering & Computer Science": "EECS", - "English": "ENGLISH", - "Environ & Occ Health Faculty": "EOHF", - "Environ & Occupational Health": "EOH", - "Epidemiology & Biostats Faclty": "EBFC", - "European Languages and Studies": "ELS", - "Executive Vice Chancellor": "XVC", - "Facilities Management": "FAMA", - "Film & Media Studies": "FLM&MDA", - "Gender and Sexuality Studies": "GEN&SEX", - "Global & International Studies": "GIS", - "Graduate Division": "GRAD", - "Health": "HLTH", - "Henry Samueli School of Engineering": "HSSE", - "History": "HISTORY", - "Humanities Core": "HMC", - "Humanities Graduate Office": "HMGO", - "Humanities Research Institute": "HMRI", - "Informatics": "IN4MATX", - "Inpatient Pharmacy": "INPH", - "Irvine Institute for Clinical and Translational Science": "IICTS", - "Language Science": "LSCI", - "Logic & Philosophy of Science": "LPS", - "Materials Science and Engineering": "MSE", - "Mathematics": "MATH", - "Mechanical & Aerospace Engineering": "MAE", - "Molecular Biology & Biochemistry": "MOL BIO", - "Neurobiology and Behavior": "NEURBIO", - "OVPTL - Administration": "OAD", - "OVPTL - Summer Session": "OSS", - "Occupational & Environ Health": "OEH", - "Office of Inclusive Excellence": "OIE", - "Office of Research": "OFRE", - "Ophthalmology Clinical": "OPCL", - "Paul Merage School of Business": "PMSB", - "Pharmaceutical Sciences": "PHRMSCI", - "Philosophy": "PHILOS", - "Physical Sciences": "PHY SCI", - "Physics and Astronomy": "PHAS", - "Political Science": "POL SCI", - "Pop Hlth & Disease Prev Faclty": "PHDPF", - "Provost General Operations": "PGO", - "Psychological Science": "PSCI", - "Public Health/ Administration": "PHA", - "Religious Studies": "REL STD", - "SOM - Anatomy & Neurobiology": "SAN", - "SOM - Biological Chemistry": "SBC", - "SOM - Department of Medicine": "SDM", - "SOM - Emergency Medicine": "SEM", - "SOM - Microbiology & Molecular Genetics": "SMMG", - "SOM - Neurology": "SNL", - "SOM - Neurosurgery": "SNS", - "SOM - Orthopaedic Surgery": "SOS", - "SOM - Otolaryngology": "SOT", - "SOM - Pathology": "SPA", - "SOM - Pediatrics": "SPE", - "SOM - Physiology & Biophysics": "SPB", - "SOM - Plastic Surgery": "SPS", - "SOM - Psychiatry & Human Behavior": "SPHB", - "SOM - Radiological Sciences": "SRS", - "SOM - Surgery": "SSU", - "SOM - Urology": "SUR", - "School of Biological Sciences": "BIO SCI", - "School of Humanities": "HUMAN", - "School of Law": "LAW", - "School of Social Sciences": "SOC SCI", - "Social Ecology": "SOCECOL", - "Social Ecology Administration": "SEA", - "Social Science Graduate Office": "SSGO", - "Social Sciences Undergraduate Student Affairs": "SSUSA", - "Sociology": "SOCIOL", - "Spanish & Portuguese": "ESPT", - "Statistics": "STATS", - "Sue & Bill Gross School of Nursing": "GNUR", - "Surgery - Beckman Laser": "SBL", - "Temporary Employment Services": "TES", - "Thesaurus Linguae Graecae": "TLG", - "Urban Planning & Public Policy": "UPPP", - "VC Health Affairs Administration": "VCHAA" -} diff --git a/packages/websoc-fuzzy-search/input/ge-categories.json b/packages/websoc-fuzzy-search/input/ge-categories.json deleted file mode 100644 index 75e10115..00000000 --- a/packages/websoc-fuzzy-search/input/ge-categories.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "GE-1A": ["Lower Division Writing"], - "GE-1B": ["Upper Division Writing"], - "GE-2": ["Science and Technology"], - "GE-3": ["Social and Behavioral Sciences"], - "GE-4": ["Arts and Humanities"], - "GE-5A": ["Quantitative Literacy"], - "GE-5B": ["Formal Reasoning"], - "GE-6": ["Language other than English"], - "GE-7": ["Multicultural Studies"], - "GE-8": ["International/Global Issues"] -} diff --git a/packages/websoc-fuzzy-search/input/schools.json b/packages/websoc-fuzzy-search/input/schools.json deleted file mode 100644 index 86d5bd94..00000000 --- a/packages/websoc-fuzzy-search/input/schools.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "Division of Undergraduate Education": "DUE", - "Claire Trevor School of the Arts": "ART", - "School of Biological Sciences": "BIO", - "The Paul Merage School of Business": "BUS", - "School of Education": "EDU", - "The Henry Samueli School of Engineering": "ENG", - "School of Humanities": "HUM", - "Donald Bren School of Information and Computer Sciences": "ICS", - "Interdisciplinary Studies": "IDS", - "School of Law": "LAW", - "School of Medicine": "MED", - "Sue and Bill Gross School of Nursing": "NUR", - "School of Pharmacy and Pharmaceutical Sciences": "PHR", - "School of Physical Sciences": "PHY", - "Program in Public Health": "PHL", - "School of Social Ecology": "SEC", - "School of Social Sciences": "SSC" -} diff --git a/packages/websoc-fuzzy-search/package.json b/packages/websoc-fuzzy-search/package.json deleted file mode 100644 index f8da5a97..00000000 --- a/packages/websoc-fuzzy-search/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "websoc-fuzzy-search", - "version": "1.0.1", - "description": "Fuzzy search for WebSoc data", - "license": "MIT", - "type": "module", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "files": [ - "dist/index.d.ts", - "dist/index.js" - ], - "scripts": { - "prebuild": "dotenv -e ../../.env.production -- tsx setup.ts", - "build": "tsup", - "prebuild:debug": "dotenv -e ../../.env.development -- tsx setup.ts -d", - "build:debug": "tsup" - }, - "dependencies": { - "base64-arraybuffer": "1.0.2", - "pako": "2.1.0" - }, - "devDependencies": { - "@peterportal-api/types": "workspace:^", - "@types/pako": "2.0.3", - "@types/pluralize": "0.0.33", - "cross-fetch": "4.0.0", - "pluralize": "8.0.0", - "tsup": "8.0.2", - "tsx": "4.7.1" - } -} diff --git a/packages/websoc-fuzzy-search/setup.ts b/packages/websoc-fuzzy-search/setup.ts deleted file mode 100644 index 991204c7..00000000 --- a/packages/websoc-fuzzy-search/setup.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; -import { normalize } from "node:path"; -import { gzipSync } from "node:zlib"; - -import type { Course, Instructor, RawResponse } from "@peterportal-api/types"; -import fetch from "cross-fetch"; -import pluralize from "pluralize"; - -// data sources -const aliases = JSON.parse(readFileSync("./input/aliases.json", { encoding: "utf8" })); -const departments = JSON.parse(readFileSync("./input/departments.json", { encoding: "utf8" })); -const geCategories = JSON.parse(readFileSync("./input/ge-categories.json", { encoding: "utf8" })); -const schools = JSON.parse(readFileSync("./input/schools.json", { encoding: "utf8" })); - -// output configuration -const outputDir = normalize("./output/"); -const outputFile = normalize(`${outputDir}index.ts`); - -// Roman numeral map -// Stops at 8 because that's the highest Roman numeral encountered in the cache (as of 2022-04-08) -const romans: Record = { - i: "1", - ii: "2", - iii: "3", - iv: "4", - v: "5", - vi: "6", - vii: "7", - viii: "8", -}; - -// words to filter out -const toFilter = ["", "a", "o", "an", "at", "in", "it", "of", "on", "to", "and", "for", "the"]; - -// types -type DataObject = { - courses: Record< - string, - { - department: string; - department_name: string; - number: string; - ge_list: string[]; - course_level: string; - school: string; - title: string; - } - >; - instructors: Record< - string, - { - ucinetid: string; - shortened_name: string; - name: string; - schools: string[]; - department: string; - } - >; -}; - -// convert titles to keywords -function keywordize(s: string) { - return s - .toLowerCase() - .replace(/u\.s\./g, "us") - .replace(/[&'(),\-/:]/g, " ") - .split(" ") - .map((x) => (Object.keys(romans).includes(x) ? [x, romans[x]] : x)) - .flat() - .map((x) => (x === "us" || x === "we" ? x : pluralize(x, 1))) - .filter((x) => !toFilter.includes(x)); -} - -// convert GE categories to keywords -function keywordizeGE(s: string) { - s = s.toLowerCase(); - const r = Object.keys(romans).filter((x) => s.includes(romans[x]))[0]; - return [ - s, - s.replace("-", ""), - s.replace(romans[r], r), - s.replace("-", "").replace(romans[r], r), - s.slice(3).replace(romans[r], r), - ]; -} - -// convert proper names to lowercase and filter out middle initials -function keywordizeName(s: string) { - const delimiters = ["-", " ", ""]; - return [ - ...new Set( - [s, s, s] - .map((x, i) => - x - .toLowerCase() - .replace("-", delimiters[i]) - .split(" ") - .filter((name) => name.length > 1 && !name.includes(".")), - ) - .flat(), - ), - ]; -} - -// add object to set if keyword exists, create new set if not -function associate(d: Record>, k: string, o: string) { - Object.keys(d).includes(k) ? d[k].add(o) : (d[k] = new Set([o])); -} - -// parse the data into the format we want, and write it to the output -function parseAndWriteData(d: DataObject) { - console.time("Index built in"); - console.log("Parsing data..."); - - // GE categories - const parsedData: { - aliases: Record>; - keywords: Record>; - objects: Record; - } = { - aliases: {}, - keywords: {}, - objects: geCategories, - }; - for (const [key, value] of Object.entries(parsedData.objects)) { - parsedData.objects[key].unshift("GE_CATEGORY"); - for (const keyword of [ - keywordizeGE(key), - keywordize(key), - keywordize(value[0] as string), - ].flat()) { - associate(parsedData.keywords, keyword, key); - } - } - - // department aliases - for (const [key, value] of Object.entries(aliases)) { - for (const department of value as string) { - associate(parsedData.aliases, key, department); - associate(parsedData.keywords, key, department); - } - } - - // departments and courses - for (const [key, value] of Object.entries(d.courses)) { - if (!Object.keys(parsedData.objects).includes(value.department)) { - parsedData.objects[value.department] = ["DEPARTMENT", value.department_name]; - for (const keyword of [ - value.department.toLowerCase(), - keywordize(value.department_name), - ].flat()) { - associate(parsedData.keywords, keyword, value.department); - } - } - parsedData.objects[key] = [ - "COURSE", - value.title, - [ - value.department, - value.number, - value.ge_list - .map((x) => - Object.keys(parsedData.objects).filter( - (y) => - parsedData.objects[y][0] === "GE_CATEGORY" && - x.replace("&", "and").includes(parsedData.objects[y][1] as string), - ), - ) - .flat(), - value.course_level[0] === "L" ? 0 : value.course_level[0] === "U" ? 1 : 2, - schools[value.school], - ], - ]; - for (const keyword of keywordize(value.title)) { - associate(parsedData.keywords, keyword, key); - } - } - - // instructors - for (const instructor of Object.values(d.instructors)) { - parsedData.objects[instructor.shortened_name] = [ - "INSTRUCTOR", - instructor.name, - [ - instructor.ucinetid, - instructor.schools.map((x) => schools[x]), - departments[instructor.department], - ], - ]; - associate(parsedData.keywords, instructor.ucinetid, instructor.shortened_name); - for (const keyword of keywordizeName(instructor.name)) { - associate(parsedData.keywords, keyword, instructor.shortened_name); - } - } - - // write the index using a replacer for Sets - console.log("Writing parsed data..."); - const data = JSON.stringify(parsedData, (_, v) => (v instanceof Set ? [...v] : v)); - if (!existsSync(normalize(outputDir))) mkdirSync(normalize(outputDir)); - writeFileSync( - `${outputFile}`, - ["-d", "--debug"].includes(process.argv[2]) - ? "export let index: any = " + data - : 'import{decode as a}from"base64-arraybuffer";import{ungzip as' + - ' b}from"pako";let c=new' + - " TextDecoder;export" + - ' let index=JSON.parse(c.decode(b(a("' + - gzipSync(data).toString("base64") + - '"))))', - ); - console.log(`Wrote index to file ${outputFile}`); - console.timeEnd("Index built in"); -} - -async function main() { - const d: DataObject = { courses: {}, instructors: {} }; - console.log("Fetching data..."); - console.time("Data fetched in"); - const coursesRes = await fetch("https://api-next.peterportal.org/v1/rest/courses/all"); - const coursesJson: RawResponse = await coursesRes.json(); - if (!coursesJson.success) throw new Error("Could not fetch courses from API."); - coursesJson.payload.forEach( - ({ id, department, departmentName, courseNumber, geList, courseLevel, school, title }) => { - d.courses[id] = { - department, - department_name: departmentName, - number: courseNumber, - ge_list: geList, - course_level: courseLevel, - school, - title, - }; - }, - ); - const instructorsRes = await fetch("https://api-next.peterportal.org/v1/rest/instructors/all"); - const instructorsJson: RawResponse = await instructorsRes.json(); - if (!instructorsJson.success) throw new Error("Could not fetch instructors from API."); - instructorsJson.payload.forEach(({ ucinetid, shortenedName, name, schools, department }) => { - d.instructors[ucinetid] = { - ucinetid, - shortened_name: shortenedName, - name, - schools: schools as [], - department, - }; - }); - console.timeEnd("Data fetched in"); - parseAndWriteData(d); -} - -main().then(); diff --git a/packages/websoc-fuzzy-search/src/constants.ts b/packages/websoc-fuzzy-search/src/constants.ts deleted file mode 100644 index 051ebac7..00000000 --- a/packages/websoc-fuzzy-search/src/constants.ts +++ /dev/null @@ -1,25 +0,0 @@ -// mapping of types to numbers for compare -export const types: Record = { - GE_CATEGORY: 4, - DEPARTMENT: 3, - COURSE: 2, - INSTRUCTOR: 1, -}; - -// Roman numeral map -// Stops at 8 because that's the highest Roman numeral encountered in the cache (as of 2022-04-08) -export const romans: Record = { - i: "1", - ii: "2", - iii: "3", - iv: "4", - v: "5", - vi: "6", - vii: "7", - viii: "8", -}; - -// field names -export const fieldNames = ["type", "name", "metadata"]; -export const courseFieldNames = ["department", "number", "geList", "courseLevel", "school"]; -export const instructorFieldNames = ["ucinetid", "school", "department"]; diff --git a/packages/websoc-fuzzy-search/src/helpers.ts b/packages/websoc-fuzzy-search/src/helpers.ts deleted file mode 100644 index 9da18311..00000000 --- a/packages/websoc-fuzzy-search/src/helpers.ts +++ /dev/null @@ -1,202 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore -import { index } from "../output"; - -import { types, fieldNames, courseFieldNames, instructorFieldNames } from "./constants"; -import { matchCourseNum, tokenizeCourseNum } from "./regex"; -import type { - CourseMetadata, - FilterOptions, - InstructorMetadata, - ResultType, - SearchResult, -} from "./types"; - -// comparison function for sorting responses -function compare(a: string, b: string) { - // compare object types in the order GE->department->course->instructor - const aType = index.objects[a][0]; - const bType = index.objects[b][0]; - if (aType !== bType) return Math.sign(types[bType] - types[aType]); - // special ordering for course numbers that checks in the order department->numeral->prefix->suffix - if (aType === "COURSE") { - const aDept = index.objects[a][2][0]; - const bDept = index.objects[b][2][0]; - if (aDept === bDept) { - const [aPre, aNum, aSuf] = Object.values( - index.objects[a][2][1].match(tokenizeCourseNum).groups, - ); - const [bPre, bNum, bSuf] = Object.values( - index.objects[b][2][1].match(tokenizeCourseNum).groups, - ); - if (aNum === bNum) { - return aPre === bPre ? lexOrd(aSuf, bSuf) : lexOrd(aPre, bPre); - } - return lexOrd(parseInt(aNum as string), parseInt(bNum as string)); - } - return lexOrd(aDept, bDept); - } - // standard lexicographical ordering for everything else - return lexOrd(a, b); -} - -// shorthand for the lexicographical ordering ternary -function lexOrd(a: T, b: T) { - return a === b ? 0 : a < b ? -1 : 1; -} - -// given an array of keys, return a mapping of those keys to their results in index.objects -export function expandResponse( - response?: string[], - numResults?: number, - resultTypes?: ResultType, - filterOptions?: FilterOptions, -) { - response = resultTypes - ? response?.filter((x) => resultTypes.includes(index.objects[x][0])) - : response; - if (filterOptions) { - for (const [k, v] of Object.entries(filterOptions)) { - if (!v.length) continue; - response = response?.filter( - (x) => index.objects[x][2][k] && v.every((y: string) => index.objects[x][2][k].includes(y)), - ); - } - } - return response - ?.sort(compare) - .slice(0, numResults) - .reduce( - (obj, key) => { - obj[key] = index.objects[key].reduce( - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - (prev, curr, index) => { - prev[fieldNames[index]] = curr; - return prev; - }, - {} as SearchResult, - ); - if (obj[key].type === "COURSE" || obj[key].type === "INSTRUCTOR") { - obj[key].metadata = ( - obj[key].metadata as unknown as Array - ).reduce( - (prev, curr, index) => { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - prev[(obj[key].type === "COURSE" ? courseFieldNames : instructorFieldNames)[index]] = - curr; - return prev; - }, - {} as CourseMetadata | InstructorMetadata, - ); - } - return obj; - }, - {} as Record, - ); -} - -// search on a single course number, with or without department -export function searchCourseNumber(courseNum: string) { - const response = []; - const matchGroups = courseNum.match(matchCourseNum)?.groups; - // next check if a department was matched - if (matchGroups?.department) { - for (const [alias, department] of Object.entries(index.aliases)) { - for (const dept of department as string[]) { - courseNum = courseNum.replace( - new RegExp(`^${alias}(?=[bcdehmnps]?\\d{1,3}[a-z]{0,4})`), - dept.toString(), - ); - } - } - response.push( - ...Object.keys(index.objects).filter((x) => - x.includes(courseNum.replace(" ", "").toUpperCase()), - ), - ); - // if not then we're dealing with a bare course number without the department - } else { - response.push( - ...Object.keys(index.objects).filter( - (x) => - index.objects[x][0] === "COURSE" && - index.objects[x][2][1].includes(matchGroups?.number.toUpperCase()), - ), - ); - } - return [...new Set(response)]; -} - -// search on a single GE category -export function searchGECategory(geCategory: string) { - return [ - geCategory, - ...Object.keys(index.objects).filter( - (x) => - index.objects[x][2] && - index.objects[x][2][2] && - index.objects[x][2][2].includes(geCategory), - ), - ]; -} - -// search on a single keyword -export function searchKeyword(keyword: string, numResults?: number) { - keyword = keyword.toLowerCase(); - const response = []; - // match all keywords - const keyArrMap = Object.keys(index.keywords) - .filter((x) => x.includes(keyword)) - .sort((a, b) => - a.length === b.length ? lexOrd(a, b) : lexOrd(a.length.toString(), b.length.toString()), - ) - .reduce( - (obj, val) => { - obj[val] = index.keywords[val]; - return obj; - }, - {} as Record, - ); - // prioritize exact keyword matches - let exactDeptMatch = false; - for (const kw of Object.keys(keyArrMap)) { - if (kw === keyword) { - response.push(...keyArrMap[kw]); - for (const key of keyArrMap[kw]) { - // prioritize exact department matches - if ( - index.objects[key][0] === "DEPARTMENT" && - (keyword.toUpperCase() === key || - (index.aliases[keyword] && index.aliases[keyword].includes(key))) - ) { - response.push( - ...Object.keys(index.objects).filter( - (x) => index.objects[x][2] && index.objects[x][2][0] === key, - ), - ); - exactDeptMatch = true; - } - } - delete keyArrMap[kw]; - break; - } - } - // add everything else if no exact department match was found - if (!exactDeptMatch) response.push(...Object.values(keyArrMap).flat()); - // if there are bare departments and not enough responses, add the courses from that department - for (const key of response) { - if ( - index.objects[key][0] === "DEPARTMENT" && - response.length <= (numResults ?? Number.MAX_SAFE_INTEGER) - ) { - response.push( - ...Object.keys(index.objects).filter( - (x) => index.objects[x][2] && index.objects[x][2][0] === key, - ), - ); - } - } - return [...new Set(response)]; -} diff --git a/packages/websoc-fuzzy-search/src/index.ts b/packages/websoc-fuzzy-search/src/index.ts deleted file mode 100644 index 45ca47f1..00000000 --- a/packages/websoc-fuzzy-search/src/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { romans } from "./constants"; -import { expandResponse, searchCourseNumber, searchGECategory, searchKeyword } from "./helpers"; -import { matchCourseNum, matchGECategory } from "./regex"; -import type { SearchParams } from "./types"; - -// perform a search -export default function search(params?: SearchParams) { - const { query, numResults, resultType, filterOptions } = params ?? { - filterOptions: undefined, - numResults: Number.MAX_SAFE_INTEGER, - resultType: undefined, - query: "", - }; - // try matching GE categories first - if (query?.match(matchGECategory)?.groups?.number) { - const geCategories = query - .split(",") - .map((x) => x.replace(" ", "").replace(matchGECategory, `ge-$$`)) - .filter((x) => x); - for (const i in geCategories) { - const num = geCategories[i]?.match(matchGECategory)?.groups?.number; - geCategories[i] = geCategories[i] - .replace(num as string, romans[num as string] ?? num) - .toUpperCase(); - } - if (geCategories.length === 1) { - // check whether the GE category actually exists; if only one entry was found, then it is invalid, because - // searchGECategory() returns all classes that fulfill that category in addition to the category itself - const response = searchGECategory(geCategories[0]); - if (response.length !== 1) - return expandResponse(response, numResults, resultType, filterOptions); - } else { - return expandResponse( - [...new Set(geCategories.map((x) => searchGECategory(x)).flat())], - numResults, - resultType, - filterOptions, - ); - } - } - // if at least one course number-like object (CNLO) was matched, search only for course numbers - // match with the regex without space first since matches on all course numbers - if (query?.match(matchCourseNum)) { - const courseNums = query - ?.split(",") - .map((x) => x.replace(/ /g, "")) - .filter((x) => x); - // if only one CNLO was matched, just run a single query - if (courseNums.length === 1) { - return expandResponse( - searchCourseNumber(courseNums[0]), - numResults, - resultType, - filterOptions, - ); - } - // for every CNLO matched, make sure it is a fully-qualified course number (FQCN); - // that is, one that has a department or department alias and a number - // (cs161 is a FQCN, while the numeral 161 is not) - // if a bare numeral is found, assume that the last department or department alias applies - // to that numeral, and then normalized - // if all numbers given are bare numerals, then perform no normalization - let lastDept = courseNums[0]?.match(matchCourseNum)?.groups?.department; - for (const i in courseNums) { - const currDept = courseNums[i]?.match(matchCourseNum)?.groups?.department; - if (!currDept) { - courseNums[i] = courseNums[i].replace(matchCourseNum, `${lastDept}$`); - } else if (currDept !== lastDept) { - lastDept = currDept; - } - } - return expandResponse( - [...new Set(courseNums.map((courseNum) => searchCourseNumber(courseNum)).flat())], - numResults, - resultType, - filterOptions, - ); - } - const keywords = query?.split(" "); - // if only one keyword was given, just run a single query - if (keywords?.length === 1) { - return expandResponse( - searchKeyword(keywords?.[0], numResults), - numResults, - resultType, - filterOptions, - ); - } - // take the results of all queries and return their intersection - return expandResponse( - keywords - ?.map((keyword) => searchKeyword(keyword, numResults)) - .reduce((array, response) => array.filter((x) => response.includes(x))), - numResults, - resultType, - filterOptions, - ); -} diff --git a/packages/websoc-fuzzy-search/src/regex.ts b/packages/websoc-fuzzy-search/src/regex.ts deleted file mode 100644 index 1b9a4660..00000000 --- a/packages/websoc-fuzzy-search/src/regex.ts +++ /dev/null @@ -1,10 +0,0 @@ -// regex to match GE category -export const matchGECategory = - /(?(?:ge)?)(?-?)(?[1-8]|(?:iv|v?i{0,3}))(?[ab]?)/; - -// regex to match department and/or course number without space -export const matchCourseNum = - /(?([ &/a-z]{1,2}4?[ &/a-z]*)?)(?[a-z]?\d{1,3}[a-z]{0,4})/; - -// regex to tokenize a course number into its prefix/numeral/suffix -export const tokenizeCourseNum = /(?[A-Z]?)(?\d{1,3})(?[A-Z]{0,4})/; diff --git a/packages/websoc-fuzzy-search/src/types.ts b/packages/websoc-fuzzy-search/src/types.ts deleted file mode 100644 index 252dea50..00000000 --- a/packages/websoc-fuzzy-search/src/types.ts +++ /dev/null @@ -1,56 +0,0 @@ -export type CourseLevel = 0 | 1 | 2; -export type GECategory = - | "GE-1A" - | "GE-1B" - | "GE-2" - | "GE-3" - | "GE-4" - | "GE-5A" - | "GE-5B" - | "GE-6" - | "GE-7" - | "GE-8"; -export type ResultType = "GE_CATEGORY" | "DEPARTMENT" | "COURSE" | "INSTRUCTOR"; -export interface FilterOptions { - courseLevel?: CourseLevel[]; - geList?: GECategory[]; - department?: string[]; - school?: string[]; -} -export interface SearchParams { - query?: string; - numResults?: number; - resultType?: ResultType; - filterOptions?: FilterOptions; -} -export interface SearchResult { - type: ResultType; - name: string; - metadata: CourseMetadata | InstructorMetadata; -} -export interface CourseMetadata { - department: string; - number: string; - geList: GECategory[]; - courseLevel: CourseLevel; - school: string; -} -export interface InstructorMetadata { - ucinetid: string; - school: string[]; - department: string; -} -export interface CourseSearchResult extends SearchResult { - metadata: CourseMetadata; -} -export interface InstructorSearchResult extends SearchResult { - metadata: InstructorMetadata; -} - -export function isCourseSearchResult(sr: SearchResult): sr is CourseSearchResult { - return "number" in sr.metadata; -} - -export function isInstructorSearchResult(sr: SearchResult): sr is InstructorSearchResult { - return "ucinetid" in sr.metadata; -} diff --git a/packages/websoc-fuzzy-search/tsup.config.ts b/packages/websoc-fuzzy-search/tsup.config.ts deleted file mode 100644 index 065be78b..00000000 --- a/packages/websoc-fuzzy-search/tsup.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from "tsup"; - -const config: ReturnType = defineConfig({ - bundle: true, - clean: true, - dts: true, - external: ["base64-arraybuffer", "pako"], - entry: ["src/index.ts"], - format: ["esm"], - minify: true, -}); -export default config; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e7bc262..9aebe91e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,6 +86,9 @@ importers: apps/api: dependencies: + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types '@apollo/server': specifier: 4.10.0 version: 4.10.0(graphql@16.8.1) @@ -116,9 +119,6 @@ importers: '@libs/websoc-utils': specifier: workspace:^ version: link:../../libs/websoc-utils - '@peterportal-api/types': - specifier: workspace:^ - version: link:../../packages/types '@services/websoc-proxy': specifier: workspace:^ version: link:../../services/websoc-proxy @@ -163,61 +163,6 @@ importers: specifier: 4.7.1 version: 4.7.1 - apps/docs: - dependencies: - '@apollo/sandbox': - specifier: 2.5.1 - version: 2.5.1(graphql@16.8.1)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/core': - specifier: 2.4.3 - version: 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/preset-classic': - specifier: 2.4.3 - version: 2.4.3(@algolia/client-search@4.17.1)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/remark-plugin-npm2yarn': - specifier: 2.4.3 - version: 2.4.3 - '@docusaurus/theme-classic': - specifier: 2.4.3 - version: 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@mdx-js/react': - specifier: 1.6.22 - version: 1.6.22(react@17.0.2) - clsx: - specifier: 1.2.1 - version: 1.2.1 - docusaurus-plugin-dotenv: - specifier: 1.0.1 - version: 1.0.1(webpack@5.84.1) - prism-react-renderer: - specifier: 1.3.5 - version: 1.3.5(react@17.0.2) - prismjs: - specifier: 1.29.0 - version: 1.29.0 - react: - specifier: 17.0.2 - version: 17.0.2 - react-dom: - specifier: 17.0.2 - version: 17.0.2(react@17.0.2) - devDependencies: - '@docusaurus/module-type-aliases': - specifier: 2.4.3 - version: 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/types': - specifier: 2.4.3 - version: 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@tsconfig/docusaurus': - specifier: 2.0.2 - version: 2.0.2 - '@types/node': - specifier: 20.11.24 - version: 20.11.24 - typescript: - specifier: 5.3.3 - version: 5.3.3 - libs/db: dependencies: '@prisma/client': @@ -234,7 +179,7 @@ importers: specifier: 3.12.0 version: 3.12.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types '@types/aws-lambda': @@ -243,12 +188,12 @@ importers: libs/uc-irvine-lib: dependencies: + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types '@ap0nia/camaro': specifier: 6.2.5 version: 6.2.5 - '@peterportal-api/types': - specifier: workspace:^ - version: link:../../packages/types cheerio: specifier: 1.0.0-rc.12 version: 1.0.0-rc.12 @@ -260,12 +205,12 @@ importers: libs/websoc-utils: dependencies: + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types '@libs/uc-irvine-lib': specifier: workspace:^ version: link:../uc-irvine-lib - '@peterportal-api/types': - specifier: workspace:^ - version: link:../../packages/types packages/types: {} @@ -278,7 +223,7 @@ importers: specifier: 2.1.0 version: 2.1.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../types '@types/pako': @@ -312,7 +257,7 @@ importers: specifier: workspace:^ version: link:../../libs/utils devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types esbuild: @@ -337,7 +282,7 @@ importers: specifier: 4.0.0 version: 4.0.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types esbuild: @@ -359,7 +304,7 @@ importers: specifier: workspace:^ version: link:../../libs/websoc-utils devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types '@types/aws-lambda': @@ -374,6 +319,9 @@ importers: services/websoc-scraper-v2: dependencies: + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types '@libs/db': specifier: workspace:^ version: link:../../libs/db @@ -383,9 +331,6 @@ importers: '@libs/utils': specifier: workspace:^ version: link:../../libs/utils - '@peterportal-api/types': - specifier: workspace:^ - version: link:../../packages/types winston: specifier: 3.12.0 version: 3.12.0 @@ -424,12 +369,12 @@ importers: tools/degreeworks-scraper: dependencies: + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types '@libs/db': specifier: workspace:^ version: link:../../libs/db - '@peterportal-api/types': - specifier: workspace:^ - version: link:../../packages/types cross-fetch: specifier: 4.0.0 version: 4.0.0 @@ -471,7 +416,7 @@ importers: specifier: 4.7.0 version: 4.7.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types '@types/node': @@ -514,7 +459,7 @@ importers: specifier: 3.12.0 version: 3.12.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types esbuild: @@ -536,7 +481,7 @@ importers: specifier: ^3.11.0 version: 3.11.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types esbuild: @@ -550,129 +495,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /@algolia/autocomplete-core@1.8.2: - resolution: {integrity: sha512-mTeshsyFhAqw/ebqNsQpMtbnjr+qVOSKXArEj4K0d7sqc8It1XD0gkASwecm9mF/jlOQ4Z9RNg1HbdA8JPdRwQ==} - dependencies: - '@algolia/autocomplete-shared': 1.8.2 - dev: false - - /@algolia/autocomplete-preset-algolia@1.8.2(@algolia/client-search@4.17.1)(algoliasearch@4.17.1): - resolution: {integrity: sha512-J0oTx4me6ZM9kIKPuL3lyU3aB8DEvpVvR6xWmHVROx5rOYJGQcZsdG4ozxwcOyiiu3qxMkIbzntnV1S1VWD8yA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - dependencies: - '@algolia/autocomplete-shared': 1.8.2 - '@algolia/client-search': 4.17.1 - algoliasearch: 4.17.1 - dev: false - - /@algolia/autocomplete-shared@1.8.2: - resolution: {integrity: sha512-b6Z/X4MczChMcfhk6kfRmBzPgjoPzuS9KGR4AFsiLulLNRAAqhP+xZTKtMnZGhLuc61I20d5WqlId02AZvcO6g==} - dev: false - - /@algolia/cache-browser-local-storage@4.17.1: - resolution: {integrity: sha512-e91Jpu93X3t3mVdQwF3ZDjSFMFIfzSc+I76G4EX8nl9RYXgqcjframoL05VTjcD2YCsI18RIHAWVCBoCXVZnrw==} - dependencies: - '@algolia/cache-common': 4.17.1 - dev: false - - /@algolia/cache-common@4.17.1: - resolution: {integrity: sha512-fvi1WT8aSiGAKrcTw8Qg3RYgcwW8GZMHcqEm4AyDBEy72JZlFBSY80cTQ75MslINjCHXLDT+9EN8AGI9WVY7uA==} - dev: false - - /@algolia/cache-in-memory@4.17.1: - resolution: {integrity: sha512-NbBt6eBWlsXc5geSpfPRC5dkIB/0Ptthw8r0yM5Z7D3sPlYdnTZSO9y9XWXIptRMwmZe4cM8iBMN8y0tzbcBkA==} - dependencies: - '@algolia/cache-common': 4.17.1 - dev: false - - /@algolia/client-account@4.17.1: - resolution: {integrity: sha512-3rL/6ofJvyL+q8TiWM3qoM9tig+SY4gB1Vbsj+UeJPnJm8Khm+7OS+r+mFraqR6pTehYqN8yGYoE7x4diEn4aA==} - dependencies: - '@algolia/client-common': 4.17.1 - '@algolia/client-search': 4.17.1 - '@algolia/transporter': 4.17.1 - dev: false - - /@algolia/client-analytics@4.17.1: - resolution: {integrity: sha512-Bepr2w249vODqeBtM7i++tPmUsQ9B81aupUGbDWmjA/FX+jzQqOdhW8w1CFO5kWViNKTbz2WBIJ9U3x8hOa4bA==} - dependencies: - '@algolia/client-common': 4.17.1 - '@algolia/client-search': 4.17.1 - '@algolia/requester-common': 4.17.1 - '@algolia/transporter': 4.17.1 - dev: false - - /@algolia/client-common@4.17.1: - resolution: {integrity: sha512-+r7kg4EgbFnGsDnoGSVNtXZO8xvZ0vzf1WAOV7sqV9PMf1bp6cpJP/3IuPrSk4t5w2KVl+pC8jfTM7HcFlfBEQ==} - dependencies: - '@algolia/requester-common': 4.17.1 - '@algolia/transporter': 4.17.1 - dev: false - - /@algolia/client-personalization@4.17.1: - resolution: {integrity: sha512-gJku9DG/THJpfsSlG/az0a3QIn+VVff9kKh8PG8+7ZfxOHS+C+Y5YSeZVsC+c2cfoKLPo3CuHIiJ/p86erR3bA==} - dependencies: - '@algolia/client-common': 4.17.1 - '@algolia/requester-common': 4.17.1 - '@algolia/transporter': 4.17.1 - dev: false - - /@algolia/client-search@4.17.1: - resolution: {integrity: sha512-Q5YfT5gVkx60PZDQBqp/zH9aUbBdC7HVvxupiHUgnCKqRQsRZjOhLest7AI6FahepuZLBZS62COrO7v+JvKY7w==} - dependencies: - '@algolia/client-common': 4.17.1 - '@algolia/requester-common': 4.17.1 - '@algolia/transporter': 4.17.1 - dev: false - - /@algolia/events@4.0.1: - resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - dev: false - - /@algolia/logger-common@4.17.1: - resolution: {integrity: sha512-Us28Ot+fLEmX9M96sa65VZ8EyEEzhYPxfhV9aQyKDjfXbUdJlJxKt6wZpoEg9RAPSdO8IjK9nmuW2P8au3rRsg==} - dev: false - - /@algolia/logger-console@4.17.1: - resolution: {integrity: sha512-iKGQTpOjHiE64W3JIOu6dmDvn+AfYIElI9jf/Nt6umRPmP/JI9rK+OHUoW4pKrBtdG0DPd62ppeNXzSnLxY6/g==} - dependencies: - '@algolia/logger-common': 4.17.1 - dev: false - - /@algolia/requester-browser-xhr@4.17.1: - resolution: {integrity: sha512-W5mGfGDsyfVR+r4pUFrYLGBEM18gs38+GNt5PE5uPULy4uVTSnnVSkJkWeRkmLBk9zEZ/Nld8m4zavK6dtEuYg==} - dependencies: - '@algolia/requester-common': 4.17.1 - dev: false - - /@algolia/requester-common@4.17.1: - resolution: {integrity: sha512-HggXdjvVFQR0I5l7hM5WdHgQ1tqcRWeyXZz8apQ7zPWZhirmY2E9D6LVhDh/UnWQNEm7nBtM+eMFONJ3bZccIQ==} - dev: false - - /@algolia/requester-node-http@4.17.1: - resolution: {integrity: sha512-NzFWecXT6d0PPsQY9L+/qoK2deF74OLcpvqCH+Vh3mh+QzPsFafcBExdguAjZsAWDn1R6JEeFW7/fo/p0SE57w==} - dependencies: - '@algolia/requester-common': 4.17.1 - dev: false - - /@algolia/transporter@4.17.1: - resolution: {integrity: sha512-ZM+qhX47Vh46mWH8/U9ihvy98HdTYpYQDSlqBD7IbiUbbyoCMke+qmdSX2MGhR2FCcXBSxejsJKKVAfbpaLVgg==} - dependencies: - '@algolia/cache-common': 4.17.1 - '@algolia/logger-common': 4.17.1 - '@algolia/requester-common': 4.17.1 - dev: false - - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - dev: false - /@antfu/utils@0.7.6: resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} dev: false @@ -708,31 +530,6 @@ packages: long: 4.0.0 dev: false - /@apollo/sandbox@2.5.1(graphql@16.8.1)(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-3QMm0gAdNNOaJqw8k6ez4/pXROgs0jy2eCTJY26bv/eQEM+U/HajuLgQsM26dxt/mtxBLLO0B4wg11S/fFGchg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@types/whatwg-mimetype': 3.0.0 - eventemitter3: 3.1.0 - graphql-ws: 5.13.1(graphql@16.8.1) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - subscriptions-transport-ws: 0.11.0(graphql@16.8.1) - whatwg-mimetype: 3.0.0 - zen-observable-ts: 1.1.0 - transitivePeerDependencies: - - bufferutil - - graphql - - utf-8-validate - dev: false - /@apollo/server-gateway-interface@1.1.1(graphql@16.8.1): resolution: {integrity: sha512-pGwCl/po6+rxRmDMFgozKQo2pbsSwE91TpsDBAOgf74CRDPXHHtM88wbwjab0wMMZh95QfR45GGyDIdhY24bkQ==} peerDependencies: @@ -1440,1560 +1237,154 @@ packages: '@babel/highlight': 7.18.6 dev: false - /@babel/compat-data@7.22.3: - resolution: {integrity: sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==} + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} dev: false - /@babel/core@7.12.9: - resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} + requiresBuild: true dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.22.3 - '@babel/helper-module-transforms': 7.22.1 - '@babel/helpers': 7.22.3 - '@babel/parser': 7.22.3 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.1 - '@babel/types': 7.22.3 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - lodash: 4.17.21 - resolve: 1.22.4 - semver: 5.7.1 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 dev: false - /@babel/core@7.22.1: - resolution: {integrity: sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==} - engines: {node: '>=6.9.0'} + /@bronya.js/api-construct@0.11.4: + resolution: {integrity: sha512-zR5G9wn9IYzy4T68fnh6S6helxjc2eaf6c0emyqY3Z6H4HpSNttK1XBnFRC+yUThYJDpcisvM3LK0ia8z+chuQ==} + engines: {node: '>=18', pnpm: ^8.0.0} dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.22.3 - '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) - '@babel/helper-module-transforms': 7.22.1 - '@babel/helpers': 7.22.3 - '@babel/parser': 7.22.3 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.1 - '@babel/types': 7.22.3 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 + '@bronya.js/cli': 0.11.4 + '@bronya.js/core': 0.11.4 + acorn: 8.10.0 + acorn-typescript: 1.4.5(acorn@8.10.0) + aws-cdk-lib: 2.131.0(constructs@10.2.69) + body-parser: 1.20.2 + chokidar: 3.5.3 + consola: 3.2.3 + constructs: 10.2.69 + cors: 2.8.5 + defu: 6.1.2 + express: 4.18.2 + fs-extra: 11.1.1 + jiti: 1.20.0 transitivePeerDependencies: - supports-color - dev: false - - /@babel/generator@7.22.3: - resolution: {integrity: sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.3 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 - dev: false - - /@babel/helper-annotate-as-pure@7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.3 - dev: false + dev: true - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.3: - resolution: {integrity: sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.3 - dev: false + /@bronya.js/cli@0.11.4: + resolution: {integrity: sha512-0aABMJmIhQiIl6gqn2dcXtQCme5RC3BcN1syDxI72H3+RJrKV7Reusw/R8z5ev9lUKc6kPay+OmD7Ck2z0zYCg==} + engines: {node: '>=18', pnpm: ^8.0.0} + dev: true - /@babel/helper-compilation-targets@7.22.1(@babel/core@7.22.1): - resolution: {integrity: sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + /@bronya.js/core@0.11.4: + resolution: {integrity: sha512-DCRxoGsE8a63f5G/bslYi7MK3xPO6j70vXrxUEwRq5k2CtT54KcHejySzkSg3eA7FSes5l4K4LZk8yPHGi9TAQ==} + engines: {node: '>=18', pnpm: ^8.0.0} + hasBin: true dependencies: - '@babel/compat-data': 7.22.3 - '@babel/core': 7.22.1 - '@babel/helper-validator-option': 7.21.0 - browserslist: 4.21.5 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: false - - /@babel/helper-create-class-features-plugin@7.22.1(@babel/core@7.22.1): - resolution: {integrity: sha512-SowrZ9BWzYFgzUMwUmowbPSGu6CXL5MSuuCkG3bejahSpSymioPmuLdhPxNOc9MjuNGjy7M/HaXvJ8G82Lywlw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-member-expression-to-functions': 7.22.3 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.22.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.18.6 - semver: 6.3.1 + '@bronya.js/cli': 0.11.4 + acorn: 8.10.0 + acorn-typescript: 1.4.5(acorn@8.10.0) + aws-cdk-lib: 2.131.0(constructs@10.2.69) + body-parser: 1.20.2 + chokidar: 3.5.3 + consola: 3.2.3 + constructs: 10.2.69 + cors: 2.8.5 + defu: 6.1.2 + express: 4.18.2 + jiti: 1.20.0 transitivePeerDependencies: - supports-color + dev: true + + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true dev: false - /@babel/helper-create-regexp-features-plugin@7.22.1(@babel/core@7.22.1): - resolution: {integrity: sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - regexpu-core: 5.3.2 - semver: 6.3.1 + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} dev: false - /@babel/helper-define-polyfill-provider@0.4.0(@babel/core@7.22.1): - resolution: {integrity: sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==} - peerDependencies: - '@babel/core': ^7.4.0-0 + /@commitlint/cli@19.0.3(@types/node@20.11.24)(typescript@5.3.3): + resolution: {integrity: sha512-mGhh/aYPib4Vy4h+AGRloMY+CqkmtdeKPV9poMcZeImF5e3knQ5VYaSeAM0mEzps1dbKsHvABwaDpafLUuM96g==} + engines: {node: '>=v18'} + hasBin: true dependencies: - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.4 - semver: 6.3.1 + '@commitlint/format': 19.0.3 + '@commitlint/lint': 19.0.3 + '@commitlint/load': 19.0.3(@types/node@20.11.24)(typescript@5.3.3) + '@commitlint/read': 19.0.3 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + yargs: 17.7.2 transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-environment-visitor@7.22.1: - resolution: {integrity: sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==} - engines: {node: '>=6.9.0'} + - '@types/node' + - typescript dev: false - /@babel/helper-function-name@7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} - engines: {node: '>=6.9.0'} + /@commitlint/config-conventional@19.0.3: + resolution: {integrity: sha512-vh0L8XeLaEzTe8VCxSd0gAFvfTK0RFolrzw4o431bIuWJfi/yRCHJlsDwus7wW2eJaFFDR0VFXJyjGyDQhi4vA==} + engines: {node: '>=v18'} dependencies: - '@babel/template': 7.21.9 - '@babel/types': 7.22.3 + '@commitlint/types': 19.0.3 + conventional-changelog-conventionalcommits: 7.0.2 dev: false - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - engines: {node: '>=6.9.0'} + /@commitlint/config-validator@19.0.3: + resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 + '@commitlint/types': 19.0.3 + ajv: 8.12.0 dev: false - /@babel/helper-member-expression-to-functions@7.22.3: - resolution: {integrity: sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==} - engines: {node: '>=6.9.0'} + /@commitlint/ensure@19.0.3: + resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 + '@commitlint/types': 19.0.3 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 dev: false - /@babel/helper-module-imports@7.21.4: - resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.3 + /@commitlint/execute-rule@19.0.0: + resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} + engines: {node: '>=v18'} dev: false - /@babel/helper-module-transforms@7.22.1: - resolution: {integrity: sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==} - engines: {node: '>=6.9.0'} + /@commitlint/format@19.0.3: + resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} + engines: {node: '>=v18'} dependencies: - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-simple-access': 7.21.5 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.1 - '@babel/types': 7.22.3 - transitivePeerDependencies: - - supports-color + '@commitlint/types': 19.0.3 + chalk: 5.3.0 dev: false - /@babel/helper-optimise-call-expression@7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} - engines: {node: '>=6.9.0'} + /@commitlint/is-ignored@19.0.3: + resolution: {integrity: sha512-MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 + '@commitlint/types': 19.0.3 + semver: 7.6.0 dev: false - /@babel/helper-plugin-utils@7.10.4: - resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} - dev: false - - /@babel/helper-plugin-utils@7.21.5: - resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.22.1): - resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-wrap-function': 7.20.5 - '@babel/types': 7.22.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-replace-supers@7.22.1: - resolution: {integrity: sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-member-expression-to-functions': 7.22.3 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.1 - '@babel/types': 7.22.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-simple-access@7.21.5: - resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.3 - dev: false - - /@babel/helper-skip-transparent-expression-wrappers@7.20.0: - resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.3 - dev: false - - /@babel/helper-split-export-declaration@7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.3 - dev: false - - /@babel/helper-string-parser@7.21.5: - resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-validator-option@7.21.0: - resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-wrap-function@7.20.5: - resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.21.0 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.1 - '@babel/types': 7.22.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helpers@7.22.3: - resolution: {integrity: sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.1 - '@babel/types': 7.22.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} - engines: {node: '>=6.9.0'} - requiresBuild: true - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: false - - /@babel/parser@7.22.3: - resolution: {integrity: sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.22.3 - dev: false - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-6r4yRwEnorYByILoDRnEqxtojYKuiIv9FojW2E8GUKo9eWBwbKcd9IiZOZpdyXc64RmyGGyPu3/uAcrz/dq2kQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-transform-optional-chaining': 7.22.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9): - resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@babel/plugin-transform-parameters': 7.22.3(@babel/core@7.12.9) - dev: false - - /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.22.1): - resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.1): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.1): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.1): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.1): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.1): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.22.1): - resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-import-attributes@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-i35jZJv6aO7hxEbIWQ41adVfOzjm9dcYDNeWlBMd8p0ZQRtNUCBrmGwZt+H5lb+oOC9a3svp956KP0oWGA1YsA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.1): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.1): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9): - resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.22.1): - resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.1): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.1): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.1): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.1): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.1): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.1): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.1): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.1): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-typescript@7.21.4(@babel/core@7.22.1): - resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-arrow-functions@7.21.5(@babel/core@7.22.1): - resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-async-generator-functions@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-36A4Aq48t66btydbZd5Fk0/xJqbpg/v4QWI4AH4cYHBXy9Mu42UOupZpebKFiCFNT9S9rJFcsld0gsv0ayLjtA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.1) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.22.1): - resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.22.1): - resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-class-properties@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-mASLsd6rhOrLZ5F3WbCxkzl67mmOnqik0zrg5W6D/X0QMW7HtvnoL1dRARLKIbMP3vXwkwziuLesPqWVGIl6Bw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-class-static-block@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-5BirgNWNOx7cwbTJCOmKFJ1pZjwk5MUfMIwiBBvsirCJMZeQgs5pk6i1OlkVg+1Vef5LfBahFOrdCnAWvkVKMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-classes@7.21.0(@babel/core@7.22.1): - resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-replace-supers': 7.22.1 - '@babel/helper-split-export-declaration': 7.18.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-computed-properties@7.21.5(@babel/core@7.22.1): - resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/template': 7.21.9 - dev: false - - /@babel/plugin-transform-destructuring@7.21.3(@babel/core@7.22.1): - resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.22.1): - resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-dynamic-import@7.22.1(@babel/core@7.22.1): - resolution: {integrity: sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.3 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-export-namespace-from@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-5Ti1cHLTDnt3vX61P9KZ5IG09bFXp4cDVFJIAeCZuxu9OXXJJZp5iP0n/rzM2+iAutJY+KWEyyHcRaHlpQ/P5g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-for-of@7.21.5(@babel/core@7.22.1): - resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.22.1): - resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) - '@babel/helper-function-name': 7.21.0 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-json-strings@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-IuvOMdeOOY2X4hRNAT6kwbePtK21BUyrAEgLKviL8pL6AEEVUVcqtRdN/HJXBLGIbt9T3ETmXRnFedRRmQNTYw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-literals@7.18.9(@babel/core@7.22.1): - resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-logical-assignment-operators@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-CbayIfOw4av2v/HYZEsH+Klks3NC2/MFIR3QR8gnpGNNPEaq2fdlVCRYG/paKs7/5hvBLQ+H70pGWOHtlNEWNA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.22.1): - resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-transforms': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.22.1): - resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-transforms': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-simple-access': 7.21.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-modules-systemjs@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-transforms': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-named-capturing-groups-regex@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-new-target@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-nullish-coalescing-operator@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-CpaoNp16nX7ROtLONNuCyenYdY/l7ZsR6aoVa7rW7nMWisoNoQNIH5Iay/4LDyRjKMuElMqXiBoOQCDLTMGZiw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-numeric-separator@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-+AF88fPDJrnseMh5vD9+SH6wq4ZMvpiTMHh58uLs+giMEyASFVhcT3NkoyO+NebFCNnpHJEq5AXO2txV4AGPDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-object-rest-spread@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-38bzTsqMMCI46/TQnJwPPpy33EjLCc1Gsm2hRTF6zTMWnKsN61vdrpuzIEGQyKEhDSYDKyZHrrd5FMj4gcUHhw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.3 - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-transform-parameters': 7.22.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-replace-supers': 7.22.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-optional-catch-binding@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-bnDFWXFzWY0BsOyqaoSXvMQ2F35zutQipugog/rqotL2S4ciFOKlRYUu9djt4iq09oh2/34hqfRR2k1dIvuu4g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-optional-chaining@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-63v3/UFFxhPKT8j8u1jTTGVyITxl7/7AfOqK8C5gz1rHURPUGe3y5mvIf68eYKGoBNahtJnTxBKug4BQOnzeJg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-parameters@7.22.3(@babel/core@7.12.9): - resolution: {integrity: sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-parameters@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-private-methods@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-fC7jtjBPFqhqpPAE+O4LKwnLq7gGkD3ZmC2E3i4qWH34mH3gOg2Xrq5YMHUq6DM30xhqM1DNftiRaSqVjEG+ug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-private-property-in-object@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-C7MMl4qWLpgVCbXfj3UW8rR1xeCnisQ0cU7YJHV//8oNBS0aCIVg1vFnZXxOckHhEpQyqNNkWmvSEWnMLlc+Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-react-constant-elements@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-b5J6muxQYp4H7loAQv/c7GO5cPuRA6H5hx4gO+/Hn+Cu9MRQU0PNiUoWq1L//8sq6kFSNxGXFb2XTaUfa9y+Pg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/plugin-transform-react-jsx': 7.22.3(@babel/core@7.22.1) - dev: false - - /@babel/plugin-transform-react-jsx@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-JEulRWG2f04a7L8VWaOngWiK6p+JOSpB+DAtwfJgOaej1qdbNxqtK7MwTBHjUA10NeFcszlFNqCdbRcirzh2uQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.1) - '@babel/types': 7.22.3 - dev: false - - /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-regenerator@7.21.5(@babel/core@7.22.1): - resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - regenerator-transform: 0.15.1 - dev: false - - /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-runtime@7.22.2(@babel/core@7.22.1): - resolution: {integrity: sha512-ewgWBw1pAoqFg9crO6yhZAQoKWN/iNEGqAmuYegZp+xEpvMHGyLxt0SgPZ9bWG6jx4eff6jQ4JILt5zwj/EoTg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.21.5 - babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.1) - babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.1) - babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.1) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-spread@7.20.7(@babel/core@7.22.1): - resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - dev: false - - /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.22.1): - resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.22.1): - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-typescript@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-pyjnCIniO5PNaEuGxT28h0HbMru3qCVrMqVgVOz/krComdIrY9W6FCLBq9NWHY8HDGaUlan+UhmZElDENIfCcw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-unicode-escapes@7.21.5(@babel/core@7.22.1): - resolution: {integrity: sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-unicode-property-regex@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-5ScJ+OmdX+O6HRuMGW4kv7RL9vIKdtdAj9wuWUKy1wbHY3jaM/UlyIiC1G7J6UJiiyMukjjK0QwL3P0vBd0yYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.22.1): - resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/plugin-transform-unicode-sets-regex@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-hNufLdkF8vqywRp+P55j4FHXqAX2LRUccoZHH7AFn1pq5ZOO2ISKW9w13bFZVjBoTqeve2HOgoJCcaziJVhGNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - dev: false - - /@babel/preset-env@7.22.2(@babel/core@7.22.1): - resolution: {integrity: sha512-UPNK9pgphMULvA2EMKIWHU90C47PKyuvQ8pE1MzH7l9PgFcRabdrHhlePpBuWxYZQ+TziP2nycKoI5C1Yhdm9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.3 - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-proposal-private-property-in-object': 7.21.0(@babel/core@7.22.1) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.1) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.1) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.1) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.22.1) - '@babel/plugin-syntax-import-attributes': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.1) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.1) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.1) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.1) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.1) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-arrow-functions': 7.21.5(@babel/core@7.22.1) - '@babel/plugin-transform-async-generator-functions': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.22.1) - '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-block-scoping': 7.21.0(@babel/core@7.22.1) - '@babel/plugin-transform-class-properties': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-class-static-block': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-classes': 7.21.0(@babel/core@7.22.1) - '@babel/plugin-transform-computed-properties': 7.21.5(@babel/core@7.22.1) - '@babel/plugin-transform-destructuring': 7.21.3(@babel/core@7.22.1) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.22.1) - '@babel/plugin-transform-dynamic-import': 7.22.1(@babel/core@7.22.1) - '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-export-namespace-from': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-for-of': 7.21.5(@babel/core@7.22.1) - '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.22.1) - '@babel/plugin-transform-json-strings': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.22.1) - '@babel/plugin-transform-logical-assignment-operators': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.22.1) - '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.22.1) - '@babel/plugin-transform-modules-systemjs': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-new-target': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-numeric-separator': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-object-rest-spread': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-optional-catch-binding': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-optional-chaining': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-parameters': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-private-methods': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-private-property-in-object': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-regenerator': 7.21.5(@babel/core@7.22.1) - '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.22.1) - '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.22.1) - '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.22.1) - '@babel/plugin-transform-unicode-escapes': 7.21.5(@babel/core@7.22.1) - '@babel/plugin-transform-unicode-property-regex': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-unicode-sets-regex': 7.22.3(@babel/core@7.22.1) - '@babel/preset-modules': 0.1.5(@babel/core@7.22.1) - '@babel/types': 7.22.3 - babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.1) - babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.1) - babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.1) - core-js-compat: 3.30.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/preset-modules@0.1.5(@babel/core@7.22.1): - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.22.1) - '@babel/types': 7.22.3 - esutils: 2.0.3 - dev: false - - /@babel/preset-react@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-lxDz1mnZ9polqClBCVBjIVUypoB4qV3/tZUDb/IlYbW1kiiLaXaX+bInbRjl+lNQ/iUZraQ3+S8daEmoELMWug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-react-jsx': 7.22.3(@babel/core@7.22.1) - '@babel/plugin-transform-react-jsx-development': 7.18.6(@babel/core@7.22.1) - '@babel/plugin-transform-react-pure-annotations': 7.18.6(@babel/core@7.22.1) - dev: false - - /@babel/preset-typescript@7.21.5(@babel/core@7.22.1): - resolution: {integrity: sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.1) - '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.22.1) - '@babel/plugin-transform-typescript': 7.22.3(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: false - - /@babel/runtime-corejs3@7.22.3: - resolution: {integrity: sha512-6bdmknScYKmt8I9VjsJuKKGr+TwUb555FTf6tT1P/ANlCjTHCiYLhiQ4X/O7J731w5NOqu8c1aYHEVuOwPz7jA==} - engines: {node: '>=6.9.0'} - dependencies: - core-js-pure: 3.30.2 - regenerator-runtime: 0.13.11 - dev: false - - /@babel/runtime@7.22.3: - resolution: {integrity: sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.11 - - /@babel/template@7.21.9: - resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.21.4 - '@babel/parser': 7.22.3 - '@babel/types': 7.22.3 - dev: false - - /@babel/traverse@7.22.1: - resolution: {integrity: sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.22.3 - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.22.3 - '@babel/types': 7.22.3 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/types@7.22.3: - resolution: {integrity: sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: false - - /@bronya.js/api-construct@0.11.4: - resolution: {integrity: sha512-zR5G9wn9IYzy4T68fnh6S6helxjc2eaf6c0emyqY3Z6H4HpSNttK1XBnFRC+yUThYJDpcisvM3LK0ia8z+chuQ==} - engines: {node: '>=18', pnpm: ^8.0.0} - dependencies: - '@bronya.js/cli': 0.11.4 - '@bronya.js/core': 0.11.4 - acorn: 8.10.0 - acorn-typescript: 1.4.5(acorn@8.10.0) - aws-cdk-lib: 2.131.0(constructs@10.2.69) - body-parser: 1.20.2 - chokidar: 3.5.3 - consola: 3.2.3 - constructs: 10.2.69 - cors: 2.8.5 - defu: 6.1.2 - express: 4.18.2 - fs-extra: 11.1.1 - jiti: 1.20.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@bronya.js/cli@0.11.4: - resolution: {integrity: sha512-0aABMJmIhQiIl6gqn2dcXtQCme5RC3BcN1syDxI72H3+RJrKV7Reusw/R8z5ev9lUKc6kPay+OmD7Ck2z0zYCg==} - engines: {node: '>=18', pnpm: ^8.0.0} - dev: true - - /@bronya.js/core@0.11.4: - resolution: {integrity: sha512-DCRxoGsE8a63f5G/bslYi7MK3xPO6j70vXrxUEwRq5k2CtT54KcHejySzkSg3eA7FSes5l4K4LZk8yPHGi9TAQ==} - engines: {node: '>=18', pnpm: ^8.0.0} - hasBin: true - dependencies: - '@bronya.js/cli': 0.11.4 - acorn: 8.10.0 - acorn-typescript: 1.4.5(acorn@8.10.0) - aws-cdk-lib: 2.131.0(constructs@10.2.69) - body-parser: 1.20.2 - chokidar: 3.5.3 - consola: 3.2.3 - constructs: 10.2.69 - cors: 2.8.5 - defu: 6.1.2 - express: 4.18.2 - jiti: 1.20.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: false - - /@colors/colors@1.6.0: - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} - dev: false - - /@commitlint/cli@19.0.3(@types/node@20.11.24)(typescript@5.3.3): - resolution: {integrity: sha512-mGhh/aYPib4Vy4h+AGRloMY+CqkmtdeKPV9poMcZeImF5e3knQ5VYaSeAM0mEzps1dbKsHvABwaDpafLUuM96g==} - engines: {node: '>=v18'} - hasBin: true - dependencies: - '@commitlint/format': 19.0.3 - '@commitlint/lint': 19.0.3 - '@commitlint/load': 19.0.3(@types/node@20.11.24)(typescript@5.3.3) - '@commitlint/read': 19.0.3 - '@commitlint/types': 19.0.3 - execa: 8.0.1 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - typescript - dev: false - - /@commitlint/config-conventional@19.0.3: - resolution: {integrity: sha512-vh0L8XeLaEzTe8VCxSd0gAFvfTK0RFolrzw4o431bIuWJfi/yRCHJlsDwus7wW2eJaFFDR0VFXJyjGyDQhi4vA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 19.0.3 - conventional-changelog-conventionalcommits: 7.0.2 - dev: false - - /@commitlint/config-validator@19.0.3: - resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 19.0.3 - ajv: 8.12.0 - dev: false - - /@commitlint/ensure@19.0.3: - resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 19.0.3 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - dev: false - - /@commitlint/execute-rule@19.0.0: - resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} - engines: {node: '>=v18'} - dev: false - - /@commitlint/format@19.0.3: - resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 19.0.3 - chalk: 5.3.0 - dev: false - - /@commitlint/is-ignored@19.0.3: - resolution: {integrity: sha512-MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 19.0.3 - semver: 7.6.0 - dev: false - - /@commitlint/lint@19.0.3: - resolution: {integrity: sha512-uHPyRqIn57iIplYa5xBr6oNu5aPXKGC4WLeuHfqQHclwIqbJ33g3yA5fIA+/NYnp5ZM2EFiujqHFaVUYj6HlKA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/is-ignored': 19.0.3 - '@commitlint/parse': 19.0.3 - '@commitlint/rules': 19.0.3 - '@commitlint/types': 19.0.3 + /@commitlint/lint@19.0.3: + resolution: {integrity: sha512-uHPyRqIn57iIplYa5xBr6oNu5aPXKGC4WLeuHfqQHclwIqbJ33g3yA5fIA+/NYnp5ZM2EFiujqHFaVUYj6HlKA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/is-ignored': 19.0.3 + '@commitlint/parse': 19.0.3 + '@commitlint/rules': 19.0.3 + '@commitlint/types': 19.0.3 dev: false /@commitlint/load@19.0.3(@types/node@20.11.24)(typescript@5.3.3): @@ -3091,797 +1482,6 @@ packages: kuler: 2.0.0 dev: false - /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - dev: false - - /@docsearch/css@3.4.0: - resolution: {integrity: sha512-Hg8Xfma+rFwRi6Y/pfei4FJoQ1hdVURmmNs/XPoMTCPAImU+d5yxj+M+qdLtNjWRpfWziU4dQcqY94xgFBn2dg==} - dev: false - - /@docsearch/react@3.4.0(@algolia/client-search@4.17.1)(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-ufrp5879XYGojgS30ZAp8H4qIMbahRHB9M85VDBP36Xgz5QjYM54i1URKj5e219F7gqTtOivfztFTij6itc0MQ==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0' - react-dom: '>= 16.8.0 < 19.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - dependencies: - '@algolia/autocomplete-core': 1.8.2 - '@algolia/autocomplete-preset-algolia': 1.8.2(@algolia/client-search@4.17.1)(algoliasearch@4.17.1) - '@docsearch/css': 3.4.0 - algoliasearch: 4.17.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - transitivePeerDependencies: - - '@algolia/client-search' - dev: false - - /@docusaurus/core@2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-dWH5P7cgeNSIg9ufReX6gaCl/TmrGKD38Orbwuz05WPhAQtFXHd5B8Qym1TiXfvUNvwoYKkAJOJuGe8ou0Z7PA==} - engines: {node: '>=16.14'} - hasBin: true - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@babel/core': 7.22.1 - '@babel/generator': 7.22.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.1) - '@babel/plugin-transform-runtime': 7.22.2(@babel/core@7.22.1) - '@babel/preset-env': 7.22.2(@babel/core@7.22.1) - '@babel/preset-react': 7.22.3(@babel/core@7.22.1) - '@babel/preset-typescript': 7.21.5(@babel/core@7.22.1) - '@babel/runtime': 7.22.3 - '@babel/runtime-corejs3': 7.22.3 - '@babel/traverse': 7.22.1 - '@docusaurus/cssnano-preset': 2.4.3 - '@docusaurus/logger': 2.4.3 - '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/react-loadable': 5.5.2(react@17.0.2) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-common': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - '@slorber/static-site-generator-webpack-plugin': 4.0.7 - '@svgr/webpack': 6.5.1 - autoprefixer: 10.4.14(postcss@8.4.26) - babel-loader: 8.3.0(@babel/core@7.22.1)(webpack@5.84.1) - 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(webpack@5.84.1) - core-js: 3.30.2 - css-loader: 6.8.0(webpack@5.84.1) - css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(webpack@5.84.1) - cssnano: 5.1.15(postcss@8.4.26) - del: 6.1.1 - detect-port: 1.5.1 - escape-html: 1.0.3 - eta: 2.2.0 - file-loader: 6.2.0(webpack@5.84.1) - fs-extra: 10.1.0 - html-minifier-terser: 6.1.0 - html-tags: 3.3.1 - html-webpack-plugin: 5.5.1(webpack@5.84.1) - import-fresh: 3.3.0 - leven: 3.1.0 - lodash: 4.17.21 - mini-css-extract-plugin: 2.7.6(webpack@5.84.1) - postcss: 8.4.26 - postcss-loader: 7.3.1(postcss@8.4.26)(typescript@5.3.3)(webpack@5.84.1) - prompts: 2.4.2 - react: 17.0.2 - react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.3.3)(webpack@5.84.1) - react-dom: 17.0.2(react@17.0.2) - react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@17.0.2) - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.84.1) - react-router: 5.3.4(react@17.0.2) - react-router-config: 5.1.1(react-router@5.3.4)(react@17.0.2) - react-router-dom: 5.3.4(react@17.0.2) - rtl-detect: 1.0.4 - semver: 7.5.4 - serve-handler: 6.1.5 - shelljs: 0.8.5 - terser-webpack-plugin: 5.3.9(webpack@5.84.1) - tslib: 2.5.2 - update-notifier: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.84.1) - wait-on: 6.0.1 - webpack: 5.84.1 - webpack-bundle-analyzer: 4.8.0 - webpack-dev-server: 4.15.0(webpack@5.84.1) - webpack-merge: 5.9.0 - webpackbar: 5.0.2(webpack@5.84.1) - transitivePeerDependencies: - - '@docusaurus/types' - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/cssnano-preset@2.4.3: - resolution: {integrity: sha512-ZvGSRCi7z9wLnZrXNPG6DmVPHdKGd8dIn9pYbEOFiYihfv4uDR3UtxogmKf+rT8ZlKFf5Lqne8E8nt08zNM8CA==} - engines: {node: '>=16.14'} - dependencies: - cssnano-preset-advanced: 5.3.10(postcss@8.4.26) - postcss: 8.4.26 - postcss-sort-media-queries: 4.4.1(postcss@8.4.26) - tslib: 2.6.2 - dev: false - - /@docusaurus/logger@2.4.3: - resolution: {integrity: sha512-Zxws7r3yLufk9xM1zq9ged0YHs65mlRmtsobnFkdZTxWXdTYlWWLWdKyNKAsVC+D7zg+pv2fGbyabdOnyZOM3w==} - engines: {node: '>=16.14'} - dependencies: - chalk: 4.1.2 - tslib: 2.6.2 - dev: false - - /@docusaurus/mdx-loader@2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@babel/parser': 7.22.3 - '@babel/traverse': 7.22.1 - '@docusaurus/logger': 2.4.3 - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@mdx-js/mdx': 1.6.22 - escape-html: 1.0.3 - file-loader: 6.2.0(webpack@5.84.1) - fs-extra: 10.1.0 - image-size: 1.0.2 - mdast-util-to-string: 2.0.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - remark-emoji: 2.2.0 - stringify-object: 3.3.0 - tslib: 2.6.2 - unified: 9.2.2 - unist-util-visit: 2.0.3 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.84.1) - webpack: 5.84.1 - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - dev: false - - /@docusaurus/module-type-aliases@2.4.3(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-cwkBkt1UCiduuvEAo7XZY01dJfRn7UR/75mBgOdb1hKknhrabJZ8YH+7savd/y9kLExPyrhe0QwdS9GuzsRRIA==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@docusaurus/react-loadable': 5.5.2(react@17.0.2) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@types/history': 4.7.11 - '@types/react': 18.2.7 - '@types/react-router-config': 5.0.7 - '@types/react-router-dom': 5.3.3 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@17.0.2) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack-cli - - /@docusaurus/plugin-content-blog@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-PVhypqaA0t98zVDpOeTqWUTvRqCEjJubtfFUQ7zJNYdbYTbS/E/ytq6zbLVsN/dImvemtO/5JQgjLxsh8XLo8Q==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/logger': 2.4.3 - '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-common': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - cheerio: 1.0.0-rc.12 - feed: 4.2.2 - fs-extra: 10.1.0 - lodash: 4.17.21 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - reading-time: 1.5.0 - tslib: 2.6.2 - unist-util-visit: 2.0.3 - utility-types: 3.10.0 - webpack: 5.84.1 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-content-docs@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-N7Po2LSH6UejQhzTCsvuX5NOzlC+HiXOVvofnEPj0WhMu1etpLEXE6a4aTxrtg95lQ5kf0xUIdjX9sh3d3G76A==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/logger': 2.4.3 - '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/module-type-aliases': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - '@types/react-router-config': 5.0.7 - combine-promises: 1.1.0 - fs-extra: 10.1.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - lodash: 4.17.21 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - tslib: 2.6.2 - utility-types: 3.10.0 - webpack: 5.84.1 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-content-pages@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-txtDVz7y3zGk67q0HjG0gRttVPodkHqE0bpJ+7dOaTH40CQFLSh7+aBeGnPOTl+oCPG+hxkim4SndqPqXjQ8Bg==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - fs-extra: 10.1.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - tslib: 2.6.2 - webpack: 5.84.1 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-debug@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-LkUbuq3zCmINlFb+gAd4ZvYr+bPAzMC0hwND4F7V9bZ852dCX8YoWyovVUBKq4er1XsOwSQaHmNGtObtn8Av8Q==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - fs-extra: 10.1.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-json-view: 1.21.3(react-dom@17.0.2)(react@17.0.2) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - encoding - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-analytics@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-KzBV3k8lDkWOhg/oYGxlK5o9bOwX7KpPc/FTWoB+SfKhlHfhq7qcQdMi1elAaVEIop8tgK6gD1E58Q+XC6otSQ==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-gtag@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-5FMg0rT7sDy4i9AGsvJC71MQrqQZwgLNdDetLEGDHLfSHLvJhQbTCUGbGXknUgWXQJckcV/AILYeJy+HhxeIFA==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-tag-manager@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-1jTzp71yDGuQiX9Bi0pVp3alArV0LSnHXempvQTxwCGAEzUWWaBg4d8pocAlTpbP9aULQQqhgzrs8hgTRPOM0A==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-sitemap@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-LRQYrK1oH1rNfr4YvWBmRzTL0LN9UAPxBbghgeFRBm5yloF6P+zv1tm2pe2hQTX/QP5bSKdnajCvfnScgKXMZQ==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/logger': 2.4.3 - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-common': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - fs-extra: 10.1.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - sitemap: 7.1.1 - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/preset-classic@2.4.3(@algolia/client-search@4.17.1)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-tRyMliepY11Ym6hB1rAFSNGwQDpmszvWYJvlK1E+md4SW8i6ylNHtpZjaYFff9Mdk3i/Pg8ItQq9P0daOJAvQw==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-debug': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-google-analytics': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-google-gtag': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-google-tag-manager': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-sitemap': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/theme-classic': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/theme-search-algolia': 2.4.3(@algolia/client-search@4.17.1)(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - transitivePeerDependencies: - - '@algolia/client-search' - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - encoding - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/react-loadable@5.5.2(react@17.0.2): - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} - peerDependencies: - react: '*' - dependencies: - '@types/react': 18.2.7 - prop-types: 15.8.1 - react: 17.0.2 - - /@docusaurus/remark-plugin-npm2yarn@2.4.3: - resolution: {integrity: sha512-gBSzRPls2Nc1M+X8hTXLUJQ8mk+pTet7CGeTtgV02Hsk1G22yHYoCBW3r1aIqR27mVUHW9O5X4AN/Dt8x8Ifkg==} - engines: {node: '>=16.14'} - dependencies: - npm-to-yarn: 2.0.0 - tslib: 2.5.2 - unist-util-visit: 2.0.3 - dev: false - - /@docusaurus/theme-classic@2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-QKRAJPSGPfDY2yCiPMIVyr+MqwZCIV2lxNzqbyUW0YkrlmdzzP3WuQJPMGLCjWgQp/5c9kpWMvMxjhpZx1R32Q==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/module-type-aliases': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/theme-translations': 2.4.3 - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-common': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - '@mdx-js/react': 1.6.22(react@17.0.2) - clsx: 1.2.1 - copy-text-to-clipboard: 3.1.0 - infima: 0.2.0-alpha.43 - lodash: 4.17.21 - nprogress: 0.2.0 - postcss: 8.4.26 - prism-react-renderer: 1.3.5(react@17.0.2) - prismjs: 1.29.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-router-dom: 5.3.4(react@17.0.2) - rtlcss: 3.5.0 - tslib: 2.5.2 - utility-types: 3.10.0 - transitivePeerDependencies: - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/theme-common@2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-7KaDJBXKBVGXw5WOVt84FtN8czGWhM0lbyWEZXGp8AFfL6sZQfRTluFp4QriR97qwzSyOfQb+nzcDZZU4tezUw==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/module-type-aliases': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-common': 2.4.3(@docusaurus/types@2.4.3) - '@types/history': 4.7.11 - '@types/react': 18.2.7 - '@types/react-router-config': 5.0.7 - clsx: 1.2.1 - parse-numeric-range: 1.3.0 - prism-react-renderer: 1.3.5(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - tslib: 2.6.2 - use-sync-external-store: 1.2.0(react@17.0.2) - utility-types: 3.10.0 - transitivePeerDependencies: - - '@docusaurus/types' - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/theme-search-algolia@2.4.3(@algolia/client-search@4.17.1)(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3): - resolution: {integrity: sha512-jziq4f6YVUB5hZOB85ELATwnxBz/RmSLD3ksGQOLDPKVzat4pmI8tddNWtriPpxR04BNT+ZfpPUMFkNFetSW1Q==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docsearch/react': 3.4.0(@algolia/client-search@4.17.1)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/logger': 2.4.3 - '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.57.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.3) - '@docusaurus/theme-translations': 2.4.3 - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3) - algoliasearch: 4.17.1 - algoliasearch-helper: 3.13.0(algoliasearch@4.17.1) - clsx: 1.2.1 - eta: 2.2.0 - fs-extra: 10.1.0 - lodash: 4.17.21 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - tslib: 2.6.2 - utility-types: 3.10.0 - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/types' - - '@parcel/css' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/theme-translations@2.4.3: - resolution: {integrity: sha512-H4D+lbZbjbKNS/Zw1Lel64PioUAIT3cLYYJLUf3KkuO/oc9e0QCVhIYVtUI2SfBCF2NNdlyhBDQEEMygsCedIg==} - engines: {node: '>=16.14'} - dependencies: - fs-extra: 10.1.0 - tslib: 2.6.2 - dev: false - - /@docusaurus/types@2.4.3(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.2.7 - commander: 5.1.0 - joi: 17.9.2 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2) - utility-types: 3.10.0 - webpack: 5.84.1 - webpack-merge: 5.9.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack-cli - - /@docusaurus/utils-common@2.4.3(@docusaurus/types@2.4.3): - resolution: {integrity: sha512-/jascp4GbLQCPVmcGkPzEQjNaAk3ADVfMtudk49Ggb+131B1WDD6HqlSmDf8MxGdy7Dja2gc+StHf01kiWoTDQ==} - engines: {node: '>=16.14'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - dependencies: - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - tslib: 2.6.2 - dev: false - - /@docusaurus/utils-validation@2.4.3(@docusaurus/types@2.4.3): - resolution: {integrity: sha512-G2+Vt3WR5E/9drAobP+hhZQMaswRwDlp6qOMi7o7ZypB+VO7N//DZWhZEwhcRGepMDJGQEwtPv7UxtYwPL9PBw==} - engines: {node: '>=16.14'} - dependencies: - '@docusaurus/logger': 2.4.3 - '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3) - joi: 17.9.2 - js-yaml: 4.1.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - dev: false - - /@docusaurus/utils@2.4.3(@docusaurus/types@2.4.3): - resolution: {integrity: sha512-fKcXsjrD86Smxv8Pt0TBFqYieZZCPh4cbf9oszUq/AMhZn3ujwpKaVYZACPX8mmjtYx0JOgNx52CREBfiGQB4A==} - engines: {node: '>=16.14'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - dependencies: - '@docusaurus/logger': 2.4.3 - '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2) - '@svgr/webpack': 6.5.1 - escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.84.1) - fs-extra: 10.1.0 - github-slugger: 1.5.0 - globby: 11.1.0 - gray-matter: 4.0.3 - 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.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.84.1) - webpack: 5.84.1 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - dev: false - /@esbuild/aix-ppc64@0.19.11: resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} engines: {node: '>=12'} @@ -4409,14 +2009,6 @@ packages: graphql: 16.8.1 dev: false - /@hapi/hoek@9.3.0: - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - /@hapi/topo@5.1.0: - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - dependencies: - '@hapi/hoek': 9.3.0 - /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -4437,25 +2029,6 @@ packages: resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: false - /@jest/schemas@29.6.0: - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: false - - /@jest/types@29.5.0: - resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.0 - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 20.11.24 - '@types/yargs': 17.0.24 - chalk: 4.1.2 - dev: false - /@josephg/resolvable@1.0.1: resolution: {integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==} dev: false @@ -4467,74 +2040,32 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.18 + dev: true /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - - /@jridgewell/source-map@0.3.3: - resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + dev: true /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true /@jridgewell/trace-mapping@0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - dev: false - - /@mdx-js/mdx@1.6.22: - resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==} - dependencies: - '@babel/core': 7.12.9 - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - babel-plugin-apply-mdx-type-prop: 1.6.22(@babel/core@7.12.9) - babel-plugin-extract-import-names: 1.6.22 - camelcase-css: 2.0.1 - detab: 2.0.4 - hast-util-raw: 6.0.1 - lodash.uniq: 4.5.0 - mdast-util-to-hast: 10.0.1 - remark-footnotes: 2.0.0 - remark-mdx: 1.6.22 - remark-parse: 8.0.3 - remark-squeeze-paragraphs: 4.0.0 - style-to-object: 0.3.0 - unified: 9.2.0 - unist-builder: 2.0.3 - unist-util-visit: 2.0.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@mdx-js/react@1.6.22(react@17.0.2): - resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==} - peerDependencies: - react: ^16.13.1 || ^17.0.0 - dependencies: - react: 17.0.2 - dev: false - - /@mdx-js/util@1.6.22: - resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} - dev: false + dev: true /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -4556,11 +2087,7 @@ packages: /@pkgr/core@0.1.1: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dev: false - - /@polka/url@1.0.0-next.21: - resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: false /@prisma/client@5.10.2(prisma@5.10.2): @@ -4746,35 +2273,6 @@ packages: dev: true optional: true - /@sideway/address@4.1.4: - resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} - dependencies: - '@hapi/hoek': 9.3.0 - - /@sideway/formula@3.0.1: - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: false - - /@sindresorhus/is@0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: false - - /@slorber/static-site-generator-webpack-plugin@4.0.7: - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} - dependencies: - eval: 0.1.8 - p-map: 4.0.0 - webpack-sources: 3.2.3 - dev: false - /@smithy/abort-controller@2.1.4: resolution: {integrity: sha512-66HO817oIZ2otLIqy06R5muapqZjkgF1jfU0wyNko8cuqZNu8nbS9ljlhcRYw/M/uWRJzB9ih81DLSHhYbBLlQ==} engines: {node: '>=14.0.0'} @@ -5208,175 +2706,6 @@ packages: tslib: 2.6.2 dev: false - /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.22.1): - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.22.1): - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.22.1): - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.22.1): - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.22.1): - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.22.1): - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.22.1): - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.22.1): - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - dev: false - - /@svgr/babel-preset@6.5.1(@babel/core@7.22.1): - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.22.1) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.22.1) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.22.1) - '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.22.1) - '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.22.1) - '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.22.1) - '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.22.1) - '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.22.1) - dev: false - - /@svgr/core@6.5.1: - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} - dependencies: - '@babel/core': 7.22.1 - '@svgr/babel-preset': 6.5.1(@babel/core@7.22.1) - '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) - camelcase: 6.3.0 - cosmiconfig: 7.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@svgr/hast-util-to-babel-ast@6.5.1: - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} - dependencies: - '@babel/types': 7.22.3 - entities: 4.5.0 - dev: false - - /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 - dependencies: - '@babel/core': 7.22.1 - '@svgr/babel-preset': 6.5.1(@babel/core@7.22.1) - '@svgr/core': 6.5.1 - '@svgr/hast-util-to-babel-ast': 6.5.1 - svg-parser: 2.0.4 - transitivePeerDependencies: - - supports-color - dev: false - - /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' - dependencies: - '@svgr/core': 6.5.1 - cosmiconfig: 7.1.0 - deepmerge: 4.3.1 - svgo: 2.8.0 - dev: false - - /@svgr/webpack@6.5.1: - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} - dependencies: - '@babel/core': 7.22.1 - '@babel/plugin-transform-react-constant-elements': 7.22.3(@babel/core@7.22.1) - '@babel/preset-env': 7.22.2(@babel/core@7.22.1) - '@babel/preset-react': 7.22.3(@babel/core@7.22.1) - '@babel/preset-typescript': 7.21.5(@babel/core@7.22.1) - '@svgr/core': 6.5.1 - '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) - '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) - transitivePeerDependencies: - - supports-color - dev: false - - /@szmarczak/http-timer@1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} - dependencies: - defer-to-connect: 1.1.3 - dev: false - - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - dev: false - - /@tsconfig/docusaurus@2.0.2: - resolution: {integrity: sha512-12HWfYmgUl4M2o76/TFufGtI68wl2k/b8qPrIrG7ci9YJLrpAtadpy897Bz5v29Mlkr7a1Hq4KHdQTKtU+2rhQ==} - dev: true - /@tsconfig/node20@20.1.2: resolution: {integrity: sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==} dev: false @@ -5392,19 +2721,6 @@ packages: '@types/node': 20.11.24 dev: false - /@types/bonjour@3.5.10: - resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} - dependencies: - '@types/node': 20.11.24 - dev: false - - /@types/connect-history-api-fallback@1.5.0: - resolution: {integrity: sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==} - dependencies: - '@types/express-serve-static-core': 4.17.35 - '@types/node': 20.11.24 - dev: false - /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -5417,21 +2733,6 @@ packages: '@types/node': 20.11.24 dev: false - /@types/eslint-scope@3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} - dependencies: - '@types/eslint': 8.40.0 - '@types/estree': 1.0.1 - - /@types/eslint@8.40.0: - resolution: {integrity: sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g==} - dependencies: - '@types/estree': 1.0.1 - '@types/json-schema': 7.0.12 - - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} - /@types/express-serve-static-core@4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: @@ -5450,58 +2751,18 @@ packages: '@types/serve-static': 1.15.1 dev: false - /@types/hast@2.3.4: - resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} - dependencies: - '@types/unist': 2.0.6 - dev: false - /@types/he@1.2.3: resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==} dev: false - /@types/history@4.7.11: - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - - /@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - dev: false - - /@types/http-proxy@1.17.11: - resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} - dependencies: - '@types/node': 20.11.24 - dev: false - - /@types/istanbul-lib-coverage@2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: false - - /@types/istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - dev: false - - /@types/istanbul-reports@3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: false - /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + dev: false /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: false - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 20.11.24 - dev: false - /@types/lint-staged@13.3.0: resolution: {integrity: sha512-WxGjVP+rA4OJlEdbZdT9MS9PFKQ7kVPhLn26gC+2tnBWBEFEj/KW+IbFfz6sxdxY5U6V7BvyF+3BzCGsAMHhNg==} dev: false @@ -5510,12 +2771,6 @@ packages: resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} dev: false - /@types/mdast@3.0.11: - resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} - dependencies: - '@types/unist': 2.0.6 - dev: false - /@types/mime@1.3.2: resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} dev: false @@ -5531,10 +2786,6 @@ packages: form-data: 3.0.1 dev: false - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: false - /@types/node@20.11.24: resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} dependencies: @@ -5544,21 +2795,10 @@ packages: resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==} dev: true - /@types/parse-json@4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - dev: false - - /@types/parse5@5.0.3: - resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} - dev: false - /@types/pluralize@0.0.33: resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==} dev: true - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/qs@6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} dev: false @@ -5567,52 +2807,6 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: false - /@types/react-router-config@5.0.7: - resolution: {integrity: sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w==} - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.2.7 - '@types/react-router': 5.1.20 - - /@types/react-router-dom@5.3.3: - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.2.7 - '@types/react-router': 5.1.20 - - /@types/react-router@5.1.20: - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.2.7 - - /@types/react@18.2.7: - resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 - - /@types/responselike@1.0.0: - resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} - dependencies: - '@types/node': 20.11.24 - dev: false - - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: false - - /@types/sax@1.2.4: - resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} - dependencies: - '@types/node': 20.11.24 - dev: false - - /@types/scheduler@0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: false @@ -5624,12 +2818,6 @@ packages: '@types/node': 20.11.24 dev: false - /@types/serve-index@1.9.1: - resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} - dependencies: - '@types/express': 4.17.17 - dev: false - /@types/serve-static@1.15.1: resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} dependencies: @@ -5637,44 +2825,10 @@ packages: '@types/node': 20.11.24 dev: false - /@types/sockjs@0.3.33: - resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} - dependencies: - '@types/node': 20.11.24 - dev: false - /@types/triple-beam@1.3.2: resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==} dev: false - /@types/unist@2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - dev: false - - /@types/whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-xHFOhd41VpUR6Y0k8ZinlyFv5cyhC/r2zghJgWWN8oNxqNo45Nf0qCBInJsFeifLeoHcIF4voEfap4A2GYHWkw==} - dev: false - - /@types/ws@8.5.4: - resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} - dependencies: - '@types/node': 20.11.24 - dev: false - - /@types/yargs-parser@21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - dev: false - - /@types/yargs@17.0.24: - resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: false - - /@types/zen-observable@0.8.3: - resolution: {integrity: sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==} - dev: false - /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -5811,103 +2965,6 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: false - /@webassemblyjs/ast@1.11.6: - resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - - /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - - /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - - /@webassemblyjs/helper-buffer@1.11.6: - resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} - - /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - - /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - /@webassemblyjs/helper-wasm-section@1.11.6: - resolution: {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 - - /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - dependencies: - '@xtuc/ieee754': 1.2.0 - - /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - dependencies: - '@xtuc/long': 4.2.2 - - /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - /@webassemblyjs/wasm-edit@1.11.6: - resolution: {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 - - /@webassemblyjs/wasm-gen@1.11.6: - resolution: {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 - - /@webassemblyjs/wasm-opt@1.11.6: - resolution: {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 - - /@webassemblyjs/wasm-parser@1.11.6: - resolution: {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 - - /@webassemblyjs/wast-printer@1.11.6: - resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} - dependencies: - '@webassemblyjs/ast': 1.11.6 - '@xtuc/long': 4.2.2 - - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -5923,78 +2980,26 @@ packages: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-import-assertions@1.9.0(acorn@8.10.0): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 - dependencies: - acorn: 8.10.0 - - /acorn-jsx@5.3.2(acorn@8.10.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.10.0 - dev: false - - /acorn-typescript@1.4.5(acorn@8.10.0): - resolution: {integrity: sha512-vQl+2YSoc/RLEGga1MNOm/4Z+R6yNQnGKFX9bdBukGzjjYbyQNEmNyZuqccXH8sgYemns+ZQJ4KZypnxBDzixw==} - peerDependencies: - acorn: '>=8.9.0' - dependencies: - acorn: 8.10.0 - dev: true - - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: false - - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - - /address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - dev: false - - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: false - - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.12.0 - dev: false - - /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: - ajv: ^6.9.1 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - ajv: 6.12.6 + acorn: 8.10.0 + dev: false - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + /acorn-typescript@1.4.5(acorn@8.10.0): + resolution: {integrity: sha512-vQl+2YSoc/RLEGga1MNOm/4Z+R6yNQnGKFX9bdBukGzjjYbyQNEmNyZuqccXH8sgYemns+ZQJ4KZypnxBDzixw==} peerDependencies: - ajv: ^8.8.2 + acorn: '>=8.9.0' dependencies: - ajv: 8.12.0 - fast-deep-equal: 3.1.3 - dev: false + acorn: 8.10.0 + dev: true + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -6003,6 +3008,7 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: false /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -6013,40 +3019,6 @@ packages: uri-js: 4.4.1 dev: false - /algoliasearch-helper@3.13.0(algoliasearch@4.17.1): - resolution: {integrity: sha512-kV3c1jMQCvkARtGsSDvAwuht4PAMSsQILqPiH4WFiARoa3jXJ/r1TQoBWAjWyWF48rsNYCv7kzxgB4LTxrvvuw==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' - dependencies: - '@algolia/events': 4.0.1 - algoliasearch: 4.17.1 - dev: false - - /algoliasearch@4.17.1: - resolution: {integrity: sha512-4GDQ1RhP2qUR3x8PevFRbEdqZqIARNViZYjgTJmA1T7wRNtFA3W4Aqc/RsODqa1J8IO/QDla5x4tWuUS8NV8wA==} - dependencies: - '@algolia/cache-browser-local-storage': 4.17.1 - '@algolia/cache-common': 4.17.1 - '@algolia/cache-in-memory': 4.17.1 - '@algolia/client-account': 4.17.1 - '@algolia/client-analytics': 4.17.1 - '@algolia/client-common': 4.17.1 - '@algolia/client-personalization': 4.17.1 - '@algolia/client-search': 4.17.1 - '@algolia/logger-common': 4.17.1 - '@algolia/logger-console': 4.17.1 - '@algolia/requester-browser-xhr': 4.17.1 - '@algolia/requester-common': 4.17.1 - '@algolia/requester-node-http': 4.17.1 - '@algolia/transporter': 4.17.1 - dev: false - - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: false - /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -6061,12 +3033,6 @@ packages: type-fest: 3.13.1 dev: false - /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - dev: false - /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -6106,16 +3072,7 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: false - - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: false + dev: true /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -6136,10 +3093,6 @@ packages: /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - /array-flatten@2.1.2: - resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} - dev: false - /array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: false @@ -6203,10 +3156,6 @@ packages: is-shared-array-buffer: 1.0.2 dev: false - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: false - /async-retry@1.3.3: resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} dependencies: @@ -6226,22 +3175,6 @@ packages: engines: {node: '>= 4.0.0'} dev: false - /autoprefixer@10.4.14(postcss@8.4.26): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.5 - caniuse-lite: 1.0.30001489 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} @@ -6278,102 +3211,9 @@ packages: fsevents: 2.3.2 dev: true - /axios@0.25.0: - resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} - dependencies: - follow-redirects: 1.15.2 - transitivePeerDependencies: - - debug - dev: false - - /babel-loader@8.3.0(@babel/core@7.22.1)(webpack@5.84.1): - resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} - engines: {node: '>= 8.9'} - peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' - dependencies: - '@babel/core': 7.22.1 - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 - webpack: 5.84.1 - dev: false - - /babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): - resolution: {integrity: sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==} - peerDependencies: - '@babel/core': ^7.11.6 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@mdx-js/util': 1.6.22 - dev: false - - /babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - dependencies: - object.assign: 4.1.4 - dev: false - - /babel-plugin-extract-import-names@1.6.22: - resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==} - dependencies: - '@babel/helper-plugin-utils': 7.10.4 - dev: false - - /babel-plugin-polyfill-corejs2@0.4.3(@babel/core@7.22.1): - resolution: {integrity: sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.3 - '@babel/core': 7.22.1 - '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.1) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-plugin-polyfill-corejs3@0.8.1(@babel/core@7.22.1): - resolution: {integrity: sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.1) - core-js-compat: 3.30.2 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-plugin-polyfill-regenerator@0.5.0(@babel/core@7.22.1): - resolution: {integrity: sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.1 - '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.1) - transitivePeerDependencies: - - supports-color - dev: false - - /backo2@1.0.2: - resolution: {integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==} - dev: false - - /bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - dev: false - /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base16@1.0.0: - resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} - dev: false - /base64-arraybuffer@1.0.2: resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} engines: {node: '>= 0.6.0'} @@ -6383,22 +3223,15 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false - /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - dev: false - /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} dev: false - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: false - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + dev: true /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -6447,15 +3280,6 @@ packages: - supports-color dev: true - /bonjour-service@1.1.1: - resolution: {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 - dev: false - /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: false @@ -6464,34 +3288,6 @@ packages: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} dev: false - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 - dev: false - - /boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - dev: false - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -6510,19 +3306,6 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist@4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001489 - electron-to-chromium: 1.4.411 - node-releases: 2.0.12 - update-browserslist-db: 1.0.11(browserslist@4.21.5) - - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -6540,11 +3323,6 @@ packages: load-tsconfig: 0.2.5 dev: true - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - dev: false - /bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -6554,19 +3332,6 @@ packages: engines: {node: '>=8'} dev: true - /cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - dev: false - /cachedir@2.3.0: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} engines: {node: '>=6'} @@ -6584,39 +3349,6 @@ packages: engines: {node: '>=6'} dev: false - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - dependencies: - pascal-case: 3.1.2 - tslib: 2.6.2 - dev: false - - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: false - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: false - - /caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - dependencies: - browserslist: 4.21.5 - caniuse-lite: 1.0.30001489 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - dev: false - - /caniuse-lite@1.0.30001489: - resolution: {integrity: sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==} - - /ccount@1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - dev: false - /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -6639,18 +3371,6 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: false - /character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: false - - /character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: false - - /character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: false - /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: false @@ -6692,41 +3412,7 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} - - /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: false - - /ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} - engines: {node: '>=8'} - dev: false - - /clean-css@5.3.2: - resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} - engines: {node: '>= 10.0'} - dependencies: - source-map: 0.6.1 - dev: false - - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: false - - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: false - - /cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - dev: false + dev: true /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} @@ -6747,15 +3433,6 @@ packages: engines: {node: '>=6'} dev: false - /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} - dependencies: - string-width: 4.2.3 - optionalDependencies: - '@colors/colors': 1.5.0 - dev: false - /cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -6778,34 +3455,11 @@ packages: wrap-ansi: 7.0.0 dev: false - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - dev: false - /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} dev: false - /clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - dev: false - - /collapse-white-space@1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} - dev: false - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -6841,10 +3495,6 @@ packages: color-string: 1.9.1 dev: false - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: false - /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: false @@ -6856,11 +3506,6 @@ packages: text-hex: 1.0.0 dev: false - /combine-promises@1.1.0: - resolution: {integrity: sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==} - engines: {node: '>=10'} - dev: false - /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -6868,10 +3513,6 @@ packages: delayed-stream: 1.0.0 dev: false - /comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: false - /commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -6879,26 +3520,18 @@ packages: /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: false /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} dev: true - /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} dev: false - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: false - /commitizen@4.3.0(@types/node@20.11.24)(typescript@5.3.3): resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} engines: {node: '>= 12'} @@ -6923,10 +3556,6 @@ packages: - typescript dev: false - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: false - /compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -6934,52 +3563,9 @@ packages: dot-prop: 5.3.0 dev: false - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: false - /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} - dependencies: - dot-prop: 5.3.0 - graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 - dev: false - - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - dev: false - - /consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: false - /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -6989,11 +3575,6 @@ packages: resolution: {integrity: sha512-0AiM/uQe5Uk6JVe/62oolmSN2MjbFQkOlYrM3fFGZLKuT+g7xlAI10EebFhyCcZwI2JAcWuWCmmCAyCothxjuw==} engines: {node: '>= 16.14.0'} - /content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - dev: false - /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -7033,56 +3614,12 @@ packages: split2: 4.2.0 dev: false - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: false - /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - - /copy-text-to-clipboard@3.1.0: - resolution: {integrity: sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==} - engines: {node: '>=12'} - dev: false - - /copy-webpack-plugin@11.0.0(webpack@5.84.1): - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 - dependencies: - fast-glob: 3.2.12 - glob-parent: 6.0.2 - globby: 13.1.4 - normalize-path: 3.0.0 - schema-utils: 4.0.1 - serialize-javascript: 6.0.1 - webpack: 5.84.1 - dev: false - - /core-js-compat@3.30.2: - resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==} - dependencies: - browserslist: 4.21.5 - dev: false - - /core-js-pure@3.30.2: - resolution: {integrity: sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==} - requiresBuild: true - dev: false - - /core-js@3.30.2: - resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==} - requiresBuild: true - dev: false - - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} /cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} @@ -7105,28 +3642,6 @@ packages: typescript: 5.3.3 dev: false - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -7143,14 +3658,6 @@ packages: typescript: 5.3.3 dev: false - /cross-fetch@3.1.6: - resolution: {integrity: sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==} - dependencies: - node-fetch: 2.6.12 - transitivePeerDependencies: - - encoding - dev: false - /cross-fetch@4.0.0: resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} dependencies: @@ -7173,82 +3680,6 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: false - - /css-declaration-sorter@6.4.0(postcss@8.4.26): - resolution: {integrity: sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - dependencies: - postcss: 8.4.26 - dev: false - - /css-loader@6.8.0(webpack@5.84.1): - resolution: {integrity: sha512-oBmqObfEW1tAmLoKjxz8wlUxwvnea21GyplYqZUuMpeNC5I1EW0S0y3/pk0adzUW8oxMlhbA1X2fgOpRxDNDqA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - dependencies: - icss-utils: 5.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.26) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.26) - postcss-modules-scope: 3.0.0(postcss@8.4.26) - postcss-modules-values: 4.0.0(postcss@8.4.26) - postcss-value-parser: 4.2.0 - semver: 7.5.4 - webpack: 5.84.1 - dev: false - - /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.2)(webpack@5.84.1): - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - 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 - dependencies: - clean-css: 5.3.2 - cssnano: 5.1.15(postcss@8.4.26) - jest-worker: 29.5.0 - postcss: 8.4.26 - schema-utils: 4.0.1 - serialize-javascript: 6.0.1 - source-map: 0.6.1 - webpack: 5.84.1 - dev: false - - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - dev: false - /css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: @@ -7259,109 +3690,11 @@ packages: nth-check: 2.1.1 dev: false - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - dev: false - /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} dev: false - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: false - - /cssnano-preset-advanced@5.3.10(postcss@8.4.26): - resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - autoprefixer: 10.4.14(postcss@8.4.26) - cssnano-preset-default: 5.2.14(postcss@8.4.26) - postcss: 8.4.26 - postcss-discard-unused: 5.1.0(postcss@8.4.26) - postcss-merge-idents: 5.1.1(postcss@8.4.26) - postcss-reduce-idents: 5.2.0(postcss@8.4.26) - postcss-zindex: 5.1.0(postcss@8.4.26) - dev: false - - /cssnano-preset-default@5.2.14(postcss@8.4.26): - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - css-declaration-sorter: 6.4.0(postcss@8.4.26) - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-calc: 8.2.4(postcss@8.4.26) - postcss-colormin: 5.3.1(postcss@8.4.26) - postcss-convert-values: 5.1.3(postcss@8.4.26) - postcss-discard-comments: 5.1.2(postcss@8.4.26) - postcss-discard-duplicates: 5.1.0(postcss@8.4.26) - postcss-discard-empty: 5.1.1(postcss@8.4.26) - postcss-discard-overridden: 5.1.0(postcss@8.4.26) - postcss-merge-longhand: 5.1.7(postcss@8.4.26) - postcss-merge-rules: 5.1.4(postcss@8.4.26) - postcss-minify-font-values: 5.1.0(postcss@8.4.26) - postcss-minify-gradients: 5.1.1(postcss@8.4.26) - postcss-minify-params: 5.1.4(postcss@8.4.26) - postcss-minify-selectors: 5.2.1(postcss@8.4.26) - postcss-normalize-charset: 5.1.0(postcss@8.4.26) - postcss-normalize-display-values: 5.1.0(postcss@8.4.26) - postcss-normalize-positions: 5.1.1(postcss@8.4.26) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.26) - postcss-normalize-string: 5.1.0(postcss@8.4.26) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.26) - postcss-normalize-unicode: 5.1.1(postcss@8.4.26) - postcss-normalize-url: 5.1.0(postcss@8.4.26) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.26) - postcss-ordered-values: 5.1.3(postcss@8.4.26) - postcss-reduce-initial: 5.1.2(postcss@8.4.26) - postcss-reduce-transforms: 5.1.0(postcss@8.4.26) - postcss-svgo: 5.1.0(postcss@8.4.26) - postcss-unique-selectors: 5.1.1(postcss@8.4.26) - dev: false - - /cssnano-utils@3.1.0(postcss@8.4.26): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - dev: false - - /cssnano@5.1.15(postcss@8.4.26): - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.26) - lilconfig: 2.1.0 - postcss: 8.4.26 - yaml: 1.10.2 - dev: false - - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - dependencies: - css-tree: 1.1.3 - dev: false - - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /csv-parse@5.5.5: resolution: {integrity: sha512-erCk7tyU3yLWAhk6wvKxnyPtftuy/6Ak622gOO7BCJ05+TYffnPCJF905wmOQm+BpkX54OdAl8pveJwUdpnCXQ==} dev: false @@ -7424,48 +3757,20 @@ packages: dependencies: ms: 2.1.2 - /decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: false - /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: false - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false - /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: false - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: false - - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - dependencies: - execa: 5.1.1 - dev: false - /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 dev: false - /defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: false - /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} @@ -7474,11 +3779,6 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.0 - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false - /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -7490,30 +3790,11 @@ packages: /defu@6.1.2: resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} - /del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - dependencies: - globby: 11.1.0 - graceful-fs: 4.2.11 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - dev: false - /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} dev: false - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: false - /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -7522,12 +3803,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - /detab@2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} - dependencies: - repeat-string: 1.6.1 - dev: false - /detect-file@1.0.0: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} @@ -7548,31 +3823,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - dev: false - - /detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true - dependencies: - address: 1.2.2 - debug: 2.6.9 - transitivePeerDependencies: - - supports-color - dev: false - - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true - dependencies: - address: 1.2.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - /devmoji@2.3.0: resolution: {integrity: sha512-ErQdYUsE7tKxqDzQzRos6fKWaRIFUOJvMkQODq9iYDI3o5X6nxD78XEdGNYaW5AaJW4uxj+XQTkCuJkV86Qg6g==} hasBin: true @@ -7592,17 +3842,6 @@ packages: resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} dev: false - /dns-equal@1.0.0: - resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} - dev: false - - /dns-packet@5.6.0: - resolution: {integrity: sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==} - engines: {node: '>=6'} - dependencies: - '@leichtgewicht/ip-codec': 2.0.4 - dev: false - /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -7617,28 +3856,6 @@ packages: esutils: 2.0.3 dev: false - /docusaurus-plugin-dotenv@1.0.1(webpack@5.84.1): - resolution: {integrity: sha512-qKlWuBd6UoyB0d5ExH9waYGPoy1SnWgV8s8VLg12ydcfxquazXJngV0N5VAX/HuFiZmsPD3L4TYUKxdHWJTeEw==} - dependencies: - dotenv-webpack: 7.0.2(webpack@5.84.1) - transitivePeerDependencies: - - webpack - dev: false - - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - dependencies: - utila: 0.4.0 - dev: false - - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dev: false - /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: @@ -7651,13 +3868,6 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: false - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: false - /domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} @@ -7665,14 +3875,6 @@ packages: domelementtype: 2.3.0 dev: false - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - dev: false - /domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: @@ -7681,13 +3883,6 @@ packages: domhandler: 5.0.3 dev: false - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 - dev: false - /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -7705,27 +3900,11 @@ packages: minimist: 1.2.8 dev: true - /dotenv-defaults@2.0.2: - resolution: {integrity: sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==} - dependencies: - dotenv: 8.6.0 - dev: false - /dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} dev: true - /dotenv-webpack@7.0.2(webpack@5.84.1): - resolution: {integrity: sha512-RY+/5uM/XY4bGtih9f9ic8hlrUDxVcZZBPWlnX/aHhaKxcVVX9SH/5VH7CSmvVo9GL6PKvQOA0X1bc552rnatQ==} - engines: {node: '>=10'} - peerDependencies: - webpack: ^4 || ^5 - dependencies: - dotenv-defaults: 2.0.2 - webpack: 5.84.1 - dev: false - /dotenv@16.4.1: resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==} engines: {node: '>=12'} @@ -7735,34 +3914,14 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: false - /dset@3.1.2: resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} engines: {node: '>=4'} dev: false - /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: false - - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: false - /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /electron-to-chromium@1.4.411: - resolution: {integrity: sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==} - /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} dev: false @@ -7771,19 +3930,6 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: false - - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: false - - /emoticon@3.2.0: - resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==} - dev: false - /enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} dev: false @@ -7792,23 +3938,6 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: false - - /enhanced-resolve@5.14.1: - resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: false - /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -7866,9 +3995,6 @@ packages: which-typed-array: 1.1.13 dev: false - /es-module-lexer@1.2.1: - resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} - /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -7958,10 +4084,6 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - - /escape-goat@2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} dev: false /escape-html@1.0.3: @@ -8060,13 +4182,6 @@ packages: - supports-color dev: false - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8136,12 +4251,6 @@ packages: eslint-visitor-keys: 3.4.3 dev: false - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: false - /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -8154,57 +4263,26 @@ packages: engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + dev: false /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + dev: false /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: false - /eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - dev: false - /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - /eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} - dependencies: - '@types/node': 20.11.24 - require-like: 0.1.2 - dev: false - - /eventemitter3@3.1.0: - resolution: {integrity: sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==} - dev: false - - /eventemitter3@3.1.2: - resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} - dev: false - - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: false - /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: false - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -8218,6 +4296,7 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} @@ -8279,17 +4358,6 @@ packages: transitivePeerDependencies: - supports-color - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: 0.1.1 - dev: false - - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false - /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -8301,6 +4369,7 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -8314,73 +4383,28 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: false - /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - dependencies: - punycode: 1.4.1 - dev: false - /fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} - hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - dependencies: - websocket-driver: 0.7.4 - dev: false - - /fbemitter@3.0.0: - resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==} - dependencies: - fbjs: 3.0.4 - transitivePeerDependencies: - - encoding - dev: false - - /fbjs-css-vars@1.0.2: - resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + hasBin: true + dependencies: + strnum: 1.0.5 dev: false - /fbjs@3.0.4: - resolution: {integrity: sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==} + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: - cross-fetch: 3.1.6 - fbjs-css-vars: 1.0.2 - loose-envify: 1.4.0 - object-assign: 4.1.1 - promise: 7.3.1 - setimmediate: 1.0.5 - ua-parser-js: 0.7.35 - transitivePeerDependencies: - - encoding - dev: false + reusify: 1.0.4 /fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} dev: false - /feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} - dependencies: - xml-js: 1.6.11 - dev: false - /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -8395,22 +4419,6 @@ packages: flat-cache: 3.0.4 dev: false - /file-loader@6.2.0(webpack@5.84.1): - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.1.2 - webpack: 5.84.1 - dev: false - - /filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - dev: false - /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -8431,15 +4439,6 @@ packages: transitivePeerDependencies: - supports-color - /find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: false - /find-node-modules@2.1.3: resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} dependencies: @@ -8451,21 +4450,6 @@ packages: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} dev: false - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - dependencies: - locate-path: 3.0.0 - dev: false - - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: false - /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -8505,70 +4489,16 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: false - /flux@4.0.4(react@17.0.2): - resolution: {integrity: sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==} - peerDependencies: - react: ^15.0.2 || ^16.0.0 || ^17.0.0 - dependencies: - fbemitter: 3.0.0 - fbjs: 3.0.4 - react: 17.0.2 - transitivePeerDependencies: - - encoding - dev: false - /fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: false - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 dev: false - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.3.3)(webpack@5.84.1): - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - 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 - dependencies: - '@babel/code-frame': 7.21.4 - '@types/json-schema': 7.0.12 - chalk: 4.1.2 - chokidar: 3.5.3 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - eslint: 8.57.0 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.1 - minimatch: 3.1.2 - schema-utils: 2.7.0 - semver: 7.5.4 - tapable: 1.1.3 - typescript: 5.3.3 - webpack: 5.84.1 - dev: false - /form-data@3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -8582,23 +4512,10 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - /fraction.js@4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} - dev: false - /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: false - /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -8618,10 +4535,6 @@ packages: universalify: 2.0.0 dev: false - /fs-monkey@1.0.3: - resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} - dev: false - /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -8638,6 +4551,7 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /function-bind@1.1.2: @@ -8657,11 +4571,6 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: false - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: false - /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -8680,10 +4589,6 @@ packages: has-symbols: 1.0.3 hasown: 2.0.0 - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: false - /get-stdin@8.0.0: resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} engines: {node: '>=10'} @@ -8694,23 +4599,10 @@ packages: engines: {node: '>=12'} dev: false - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.0 - dev: false - - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: false - /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: true /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} @@ -8745,10 +4637,6 @@ packages: split2: 4.2.0 dev: false - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - dev: false - /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -8762,9 +4650,6 @@ packages: is-glob: 4.0.3 dev: false - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: @@ -8794,13 +4679,6 @@ packages: ini: 4.1.1 dev: false - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - dependencies: - ini: 2.0.0 - dev: false - /global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} @@ -8810,13 +4688,6 @@ packages: resolve-dir: 1.0.1 dev: false - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - dependencies: - global-prefix: 3.0.0 - dev: false - /global-prefix@1.0.2: resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} engines: {node: '>=0.10.0'} @@ -8828,20 +4699,6 @@ packages: which: 1.3.1 dev: false - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - dev: false - - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: false - /globals@13.20.0: resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} @@ -8883,25 +4740,6 @@ packages: dependencies: get-intrinsic: 1.2.2 - /got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.0 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 - dev: false - /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -8909,41 +4747,11 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: false - /graphql-ws@5.13.1(graphql@16.8.1): - resolution: {integrity: sha512-eiX7ES/ZQr0q7hSM5UBOEIFfaAUmAY9/CSDyAnsETuybByU7l/v46drRg9DQoTvVABEHp3QnrvwgTRMhqy7zxQ==} - engines: {node: '>=10'} - peerDependencies: - graphql: '>=0.11 <=16' - dependencies: - graphql: 16.8.1 - dev: false - /graphql@16.8.1: resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: false - /gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - dev: false - - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - dependencies: - duplexer: 0.1.2 - dev: false - - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - dev: false - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: false @@ -8956,6 +4764,7 @@ packages: /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + dev: false /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} @@ -8977,11 +4786,6 @@ packages: has-symbols: 1.0.3 dev: false - /has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} - dev: false - /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -8995,90 +4799,11 @@ packages: dependencies: function-bind: 1.1.2 - /hast-to-hyperscript@9.0.1: - resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} - dependencies: - '@types/unist': 2.0.6 - comma-separated-tokens: 1.0.8 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - style-to-object: 0.3.0 - unist-util-is: 4.1.0 - web-namespaces: 1.1.4 - dev: false - - /hast-util-from-parse5@6.0.1: - resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} - dependencies: - '@types/parse5': 5.0.3 - hastscript: 6.0.0 - property-information: 5.6.0 - vfile: 4.2.1 - vfile-location: 3.2.0 - web-namespaces: 1.1.4 - dev: false - - /hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - dev: false - - /hast-util-raw@6.0.1: - resolution: {integrity: sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==} - dependencies: - '@types/hast': 2.3.4 - hast-util-from-parse5: 6.0.1 - hast-util-to-parse5: 6.0.0 - html-void-elements: 1.0.5 - parse5: 6.0.1 - unist-util-position: 3.1.0 - vfile: 4.2.1 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - dev: false - - /hast-util-to-parse5@6.0.0: - resolution: {integrity: sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==} - dependencies: - hast-to-hyperscript: 9.0.1 - property-information: 5.6.0 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - dev: false - - /hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - dependencies: - '@types/hast': 2.3.4 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - dev: false - /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: false - /history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} - dependencies: - '@babel/runtime': 7.22.3 - loose-envify: 1.4.0 - resolve-pathname: 3.0.0 - tiny-invariant: 1.3.1 - tiny-warning: 1.0.3 - value-equal: 1.0.1 - dev: false - - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - dependencies: - react-is: 16.13.1 - dev: false - /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -9086,65 +4811,6 @@ packages: parse-passwd: 1.0.0 dev: false - /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - dev: false - - /html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} - dev: false - - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.2 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.17.6 - dev: false - - /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - dev: false - - /html-void-elements@1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} - dev: false - - /html-webpack-plugin@5.5.1(webpack@5.84.1): - resolution: {integrity: sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==} - engines: {node: '>=10.13.0'} - peerDependencies: - webpack: ^5.20.0 - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.21 - pretty-error: 4.0.0 - tapable: 2.2.1 - webpack: 5.84.1 - dev: false - - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - dev: false - /htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} dependencies: @@ -9154,24 +4820,6 @@ packages: entities: 4.5.0 dev: false - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: false - - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - dev: false - - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - dev: false - /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -9182,43 +4830,10 @@ packages: statuses: 2.0.1 toidentifier: 1.0.1 - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: false - - /http-proxy-middleware@2.0.6(@types/express@4.17.17): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - dependencies: - '@types/express': 4.17.17 - '@types/http-proxy': 1.17.11 - http-proxy: 1.18.1 - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.5 - transitivePeerDependencies: - - debug - dev: false - - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.2 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - dev: false - /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + dev: true /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -9237,15 +4852,6 @@ packages: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.26 - dev: false - /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: false @@ -9254,18 +4860,6 @@ packages: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} - /image-size@1.0.2: - resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - queue: 6.0.2 - dev: false - - /immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - dev: false - /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -9274,11 +4868,6 @@ packages: resolve-from: 4.0.0 dev: false - /import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} - dev: false - /import-meta-resolve@4.0.0: resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} dev: false @@ -9288,26 +4877,12 @@ packages: engines: {node: '>=0.8.19'} dev: false - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: false - - /infima@0.2.0-alpha.43: - resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} - engines: {node: '>=12'} - dev: false - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - dev: false - /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -9315,20 +4890,11 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: false - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false - /ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: false - /inquirer@8.2.5: resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} engines: {node: '>=12.0.0'} @@ -9359,36 +4925,10 @@ packages: side-channel: 1.0.4 dev: false - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - dev: false - - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - dependencies: - loose-envify: 1.4.0 - /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - /ipaddr.js@2.0.1: - resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} - engines: {node: '>= 10'} - dev: false - - /is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: false - - /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - dev: false - /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -9417,18 +4957,14 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 + dev: true /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: false - - /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} + call-bind: 1.0.5 + has-tostringtag: 1.0.0 dev: false /is-callable@1.2.7: @@ -9436,13 +4972,6 @@ packages: engines: {node: '>= 0.4'} dev: false - /is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: false - /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: @@ -9456,21 +4985,6 @@ packages: has-tostringtag: 1.0.0 dev: false - /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: false - - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false - - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: false - /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -9498,18 +5012,6 @@ packages: dependencies: is-extglob: 2.1.1 - /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: false - - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - dev: false - /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -9520,11 +5022,6 @@ packages: engines: {node: '>= 0.4'} dev: false - /is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} - dev: false - /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -9536,47 +5033,21 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - dev: false - /is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} dev: false - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - dev: false - /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: false - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: false - - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - dev: false - /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} dev: false - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -9585,16 +5056,6 @@ packages: has-tostringtag: 1.0.0 dev: false - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - dev: false - - /is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - dev: false - /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: @@ -9638,10 +5099,6 @@ packages: which-typed-array: 1.1.13 dev: false - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: false - /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -9657,38 +5114,11 @@ packages: call-bind: 1.0.5 dev: false - /is-whitespace-character@1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} - dev: false - /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} dev: false - /is-word-character@1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} - dev: false - - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: false - - /is-yarn-global@0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - dev: false - - /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false - - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false - /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} dev: false @@ -9696,57 +5126,10 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - /iterall@1.3.0: - resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} - dev: false - - /jest-util@29.5.0: - resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - '@types/node': 20.11.24 - chalk: 4.1.2 - ci-info: 3.8.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - dev: false - - /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 20.11.24 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - /jest-worker@29.5.0: - resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 20.11.24 - jest-util: 29.5.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: false - /jiti@1.20.0: resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} hasBin: true - /joi@17.9.2: - resolution: {integrity: sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==} - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.4 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - /joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -9754,13 +5137,6 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 dev: false /js-yaml@4.1.0: @@ -9770,26 +5146,13 @@ packages: argparse: 2.0.1 dev: false - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: false - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: false - - /json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} - dev: false - /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -9807,12 +5170,6 @@ packages: minimist: 1.2.8 dev: false - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false - /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: false @@ -9839,49 +5196,10 @@ packages: engines: {node: '>=18'} dev: false - /keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} - dependencies: - json-buffer: 3.0.0 - dev: false - - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: false - - /klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - dev: false - /kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} dev: false - /latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} - dependencies: - package-json: 6.5.0 - dev: false - - /launch-editor@2.6.0: - resolution: {integrity: sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==} - dependencies: - picocolors: 1.0.0 - shell-quote: 1.8.1 - dev: false - - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: false - /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -9893,6 +5211,7 @@ packages: /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} + dev: true /lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} @@ -9938,39 +5257,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - /loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - dev: false - - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} - dev: false - - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - dev: false - - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: false - /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -9989,18 +5275,6 @@ packages: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: false - /lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} - dev: false - - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false - - /lodash.flow@3.5.0: - resolution: {integrity: sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==} - dev: false - /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} requiresBuild: true @@ -10014,10 +5288,6 @@ packages: resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} dev: false - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: false - /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: false @@ -10094,34 +5364,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.6.2 - dev: false - - /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: false - - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: false - - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - dev: false - /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -10134,65 +5376,10 @@ packages: engines: {node: '>=12'} dev: false - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: false - - /markdown-escapes@1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - dev: false - - /mdast-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} - dependencies: - unist-util-remove: 2.1.0 - dev: false - - /mdast-util-definitions@4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} - dependencies: - unist-util-visit: 2.0.3 - dev: false - - /mdast-util-to-hast@10.0.1: - resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} - dependencies: - '@types/mdast': 3.0.11 - '@types/unist': 2.0.6 - mdast-util-definitions: 4.0.0 - mdurl: 1.0.1 - unist-builder: 2.0.3 - unist-util-generated: 1.1.6 - unist-util-position: 3.1.0 - unist-util-visit: 2.0.3 - dev: false - - /mdast-util-to-string@2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: false - - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: false - - /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - dev: false - /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - /memfs@3.5.1: - resolution: {integrity: sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==} - engines: {node: '>= 4.0.0'} - dependencies: - fs-monkey: 1.0.3 - dev: false - /meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -10223,22 +5410,10 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - dev: false - /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - /mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.33.0 - dev: false - /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -10259,25 +5434,6 @@ packages: engines: {node: '>=12'} dev: false - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: false - - /mini-css-extract-plugin@2.7.6(webpack@5.84.1): - resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - dependencies: - schema-utils: 4.0.1 - webpack: 5.84.1 - dev: false - - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - dev: false - /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -10310,11 +5466,6 @@ packages: resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} dev: false - /mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} - dev: false - /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -10324,14 +5475,6 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - dependencies: - dns-packet: 5.6.0 - thunky: 1.1.0 - dev: false - /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: false @@ -10344,12 +5487,6 @@ packages: thenify-all: 1.6.0 dev: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: false @@ -10368,26 +5505,10 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 - dev: false - /node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: false - /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - dependencies: - lodash: 4.17.21 - dev: false - /node-fetch@2.6.12: resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} @@ -10399,14 +5520,6 @@ packages: dependencies: whatwg-url: 5.0.0 - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - dev: false - - /node-releases@2.0.12: - resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} - /node-sql-parser@4.17.0: resolution: {integrity: sha512-3IhovpmUBpcETnoKK/KBdkz2mz53kVG5E1dnqz1QuYvtzdxYZW5xaGGEvW9u6Yyy2ivwR3eUZrn9inmEVef02w==} engines: {node: '>=8'} @@ -10424,27 +5537,14 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - dev: false - - /normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: false - - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: false + dev: true /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} @@ -10453,15 +5553,6 @@ packages: path-key: 4.0.0 dev: false - /npm-to-yarn@2.0.0: - resolution: {integrity: sha512-/IbjiJ7vqbxfxJxAZ+QI9CCRjnIbvGxn5KQcSY9xHh0lMKc/Sgqmm7yp7KPmd6TiTZX5/KiSBKlkGHo59ucZbg==} - engines: {node: '>=6.0.0'} - dev: false - - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: false - /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -10517,21 +5608,12 @@ packages: es-abstract: 1.22.3 dev: false - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - dev: false - /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - dev: false - /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -10553,21 +5635,7 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: - mimic-fn: 4.0.0 - dev: false - - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: false - - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true + mimic-fn: 4.0.0 dev: false /optionator@0.9.3: @@ -10602,18 +5670,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: false - - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: false - /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -10635,20 +5691,6 @@ packages: yocto-queue: 1.0.0 dev: false - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - dependencies: - p-limit: 2.3.0 - dev: false - - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: false - /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -10663,47 +5705,10 @@ packages: p-limit: 4.0.0 dev: false - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: false - - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - dev: false - - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: false - - /package-json@6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} - dependencies: - got: 9.6.0 - registry-auth-token: 4.2.2 - registry-url: 5.1.0 - semver: 6.3.1 - dev: false - /pako@2.1.0: resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} dev: false - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - dependencies: - dot-case: 3.0.4 - tslib: 2.6.2 - dev: false - /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -10711,17 +5716,6 @@ packages: callsites: 3.1.0 dev: false - /parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: false - /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -10732,10 +5726,6 @@ packages: lines-and-columns: 1.2.4 dev: false - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false - /parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -10748,10 +5738,6 @@ packages: parse5: 7.1.2 dev: false - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: false - /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: @@ -10762,18 +5748,6 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 - dev: false - - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: false - /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -10788,10 +5762,6 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - dev: false - /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -10801,513 +5771,70 @@ packages: engines: {node: '>=12'} dev: false - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: false - - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} - dependencies: - isarray: 0.0.1 - dev: false - - /path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - dev: false - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: false - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: false - - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true - - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: false - - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 - dev: false - - /pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - dependencies: - find-up: 3.0.0 - dev: false - - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true - - /postcss-calc@8.2.4(postcss@8.4.26): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 - dependencies: - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-colormin@5.3.1(postcss@8.4.26): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.5 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-convert-values@5.1.3(postcss@8.4.26): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.5 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-discard-comments@5.1.2(postcss@8.4.26): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - dev: false - - /postcss-discard-duplicates@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - dev: false - - /postcss-discard-empty@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - dev: false - - /postcss-discard-overridden@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - dev: false - - /postcss-discard-unused@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 - dev: false - - /postcss-load-config@4.0.1: - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.1.0 - yaml: 2.3.4 - dev: true - - /postcss-loader@7.3.1(postcss@8.4.26)(typescript@5.3.3)(webpack@5.84.1): - resolution: {integrity: sha512-uevGt8yy2gvruNvzy8jxgYSSnyqBcA7CnS6/57qoZnUMM51XgsTqxIpWZWdHyvIyo4ov0lCgnzIbhtWwVFI8lg==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - dependencies: - cosmiconfig: 8.3.6(typescript@5.3.3) - jiti: 1.20.0 - klona: 2.0.6 - postcss: 8.4.26 - semver: 7.5.4 - webpack: 5.84.1 - transitivePeerDependencies: - - typescript - dev: false - - /postcss-merge-idents@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-merge-longhand@5.1.7(postcss@8.4.26): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.26) - dev: false - - /postcss-merge-rules@5.1.4(postcss@8.4.26): - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.5 - caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 - dev: false - - /postcss-minify-font-values@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-minify-gradients@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-minify-params@5.1.4(postcss@8.4.26): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.5 - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-minify-selectors@5.2.1(postcss@8.4.26): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 - dev: false - - /postcss-modules-extract-imports@3.0.0(postcss@8.4.26): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.26 - dev: false - - /postcss-modules-local-by-default@4.0.3(postcss@8.4.26): - resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: 5.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-modules-scope@3.0.0(postcss@8.4.26): - resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 - dev: false - - /postcss-modules-values@4.0.0(postcss@8.4.26): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: 5.1.0(postcss@8.4.26) - postcss: 8.4.26 - dev: false - - /postcss-normalize-charset@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - dev: false - - /postcss-normalize-display-values@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-positions@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-string@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-unicode@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.5 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-url@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - normalize-url: 6.1.0 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-whitespace@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-ordered-values@5.1.3(postcss@8.4.26): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-reduce-idents@5.2.0(postcss@8.4.26): - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-reduce-initial@5.1.2(postcss@8.4.26): - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.5 - caniuse-api: 3.0.0 - postcss: 8.4.26 + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - /postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: false + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} - /postcss-sort-media-queries@4.4.1(postcss@8.4.26): - resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.4.16 - dependencies: - postcss: 8.4.26 - sort-css-media-queries: 2.1.0 + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: false - /postcss-svgo@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - svgo: 2.8.0 - dev: false + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - /postcss-unique-selectors@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true dev: false - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: false + /pirates@4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + dev: true - /postcss-zindex@5.1.0(postcss@8.4.26): - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: - postcss: 8.4.26 + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 dev: false - /postcss@8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} - engines: {node: ^10 || ^12 || >=14} + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /postcss-load-config@4.0.1: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false + lilconfig: 2.1.0 + yaml: 2.3.4 + dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: false - /prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - dev: false - /prettier-plugin-packagejson@2.4.12(prettier@3.2.5): resolution: {integrity: sha512-hifuuOgw5rHHTdouw9VrhT8+Nd7UwxtL1qco8dUfd4XUFQL6ia3xyjSxhPQTsGnSYFraTWy5Omb+MZm/OWDTpQ==} peerDependencies: @@ -11350,26 +5877,6 @@ packages: hasBin: true dev: false - /pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - dependencies: - lodash: 4.17.21 - renderkid: 3.0.0 - dev: false - - /pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - dev: false - - /prism-react-renderer@1.3.5(react@17.0.2): - resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} - peerDependencies: - react: '>=0.14.9' - dependencies: - react: 17.0.2 - dev: false - /prisma@5.10.2: resolution: {integrity: sha512-hqb/JMz9/kymRE25pMWCxkdyhbnIWrq+h7S6WysJpdnCvhstbJSNP/S6mScEcqiB8Qv2F+0R3yG+osRaWqZacQ==} engines: {node: '>=16.13'} @@ -11378,42 +5885,6 @@ packages: dependencies: '@prisma/engines': 5.10.2 - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false - - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false - - /promise@7.3.1: - resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} - dependencies: - asap: 2.0.6 - dev: false - - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: false - - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - /property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - dependencies: - xtend: 4.0.2 - dev: false - /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -11421,32 +5892,10 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false - - /punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: false - /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - /pupa@2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} - dependencies: - escape-goat: 2.1.1 - dev: false - - /pure-color@1.3.0: - resolution: {integrity: sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==} - dev: false - /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -11456,12 +5905,6 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - dependencies: - inherits: 2.0.4 - dev: false - /railroad-diagrams@1.0.0: resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} dev: false @@ -11474,16 +5917,6 @@ packages: ret: 0.1.15 dev: false - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - dependencies: - safe-buffer: 5.2.1 - - /range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - dev: false - /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -11507,383 +5940,35 @@ packages: unpipe: 1.0.0 dev: true - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - dev: false - - /react-base16-styling@0.6.0: - resolution: {integrity: sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==} - dependencies: - base16: 1.0.0 - lodash.curry: 4.1.1 - lodash.flow: 3.5.0 - pure-color: 1.3.0 - dev: false - - /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.3.3)(webpack@5.84.1): - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@babel/code-frame': 7.21.4 - address: 1.2.2 - browserslist: 4.21.5 - chalk: 4.1.2 - cross-spawn: 7.0.3 - detect-port-alt: 1.1.6 - escape-string-regexp: 4.0.0 - filesize: 8.0.7 - find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.3.3)(webpack@5.84.1) - global-modules: 2.0.0 - globby: 11.1.0 - gzip-size: 6.0.0 - immer: 9.0.21 - is-root: 2.1.0 - loader-utils: 3.2.1 - open: 8.4.2 - pkg-up: 3.1.0 - prompts: 2.4.2 - react-error-overlay: 6.0.11 - recursive-readdir: 2.2.3 - shell-quote: 1.8.1 - strip-ansi: 6.0.1 - text-table: 0.2.0 - typescript: 5.3.3 - webpack: 5.84.1 - transitivePeerDependencies: - - eslint - - supports-color - - vue-template-compiler - dev: false - - /react-dom@17.0.2(react@17.0.2): - resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} - peerDependencies: - react: 17.0.2 - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react: 17.0.2 - scheduler: 0.20.2 - - /react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - dev: false - - /react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - /react-helmet-async@1.3.0(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.22.3 - invariant: 2.2.4 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-fast-compare: 3.2.2 - shallowequal: 1.1.0 - - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - /react-json-view@1.21.3(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==} - peerDependencies: - react: ^17.0.0 || ^16.3.0 || ^15.5.4 - react-dom: ^17.0.0 || ^16.3.0 || ^15.5.4 - dependencies: - flux: 4.0.4(react@17.0.2) - react: 17.0.2 - react-base16-styling: 0.6.0 - react-dom: 17.0.2(react@17.0.2) - react-lifecycles-compat: 3.0.4 - react-textarea-autosize: 8.4.1(react@17.0.2) - transitivePeerDependencies: - - '@types/react' - - encoding - dev: false - - /react-lifecycles-compat@3.0.4: - resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - dev: false - - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.84.1): - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' - dependencies: - '@babel/runtime': 7.22.3 - react-loadable: /@docusaurus/react-loadable@5.5.2(react@17.0.2) - webpack: 5.84.1 - dev: false - - /react-router-config@5.1.1(react-router@5.3.4)(react@17.0.2): - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15' - react-router: '>=5' - dependencies: - '@babel/runtime': 7.22.3 - react: 17.0.2 - react-router: 5.3.4(react@17.0.2) - dev: false - - /react-router-dom@5.3.4(react@17.0.2): - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15' - dependencies: - '@babel/runtime': 7.22.3 - history: 4.10.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 17.0.2 - react-router: 5.3.4(react@17.0.2) - tiny-invariant: 1.3.1 - tiny-warning: 1.0.3 - dev: false - - /react-router@5.3.4(react@17.0.2): - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15' - dependencies: - '@babel/runtime': 7.22.3 - history: 4.10.1 - hoist-non-react-statics: 3.3.2 - loose-envify: 1.4.0 - path-to-regexp: 1.8.0 - prop-types: 15.8.1 - react: 17.0.2 - react-is: 16.13.1 - tiny-invariant: 1.3.1 - tiny-warning: 1.0.3 - dev: false - - /react-textarea-autosize@8.4.1(react@17.0.2): - resolution: {integrity: sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==} - engines: {node: '>=10'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.22.3 - react: 17.0.2 - use-composed-ref: 1.3.0(react@17.0.2) - use-latest: 1.2.1(react@17.0.2) - transitivePeerDependencies: - - '@types/react' - dev: false - - /react@17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - - /reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - dev: false - - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.22.4 - dev: false - - /recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} - dependencies: - minimatch: 3.1.2 - dev: false - - /regenerate-unicode-properties@10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: false - - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: false - - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - - /regenerator-transform@0.15.1: - resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} - dependencies: - '@babel/runtime': 7.22.3 - dev: false - - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - set-function-name: 2.0.1 - dev: false - - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - 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 - dev: false - - /registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} - dependencies: - rc: 1.2.8 - dev: false - - /registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - dependencies: - rc: 1.2.8 - dev: false - - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - dev: false - - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - dev: false - - /remark-emoji@2.2.0: - resolution: {integrity: sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==} - dependencies: - emoticon: 3.2.0 - node-emoji: 1.11.0 - unist-util-visit: 2.0.3 - dev: false - - /remark-footnotes@2.0.0: - resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} - dev: false - - /remark-mdx@1.6.22: - resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@babel/plugin-proposal-object-rest-spread': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - is-alphabetical: 1.0.4 - remark-parse: 8.0.3 - unified: 9.2.0 - transitivePeerDependencies: - - supports-color + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 dev: false - /remark-parse@8.0.3: - resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: - ccount: 1.1.0 - collapse-white-space: 1.0.6 - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - is-word-character: 1.0.4 - markdown-escapes: 1.0.4 - parse-entities: 2.0.0 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - trim: 0.0.1 - trim-trailing-lines: 1.1.4 - unherit: 1.1.3 - unist-util-remove-position: 2.0.1 - vfile-location: 3.2.0 - xtend: 4.0.2 - dev: false + picomatch: 2.3.1 + dev: true - /remark-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==} + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} dependencies: - mdast-squeeze-paragraphs: 4.0.0 + call-bind: 1.0.5 + define-properties: 1.2.0 + set-function-name: 2.0.1 dev: false /remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} dev: false - /renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.21 - strip-ansi: 6.0.1 - dev: false - - /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: false - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -11895,14 +5980,6 @@ packages: requiresBuild: true dev: false - /require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - dev: false - - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: false - /resolve-dir@1.0.1: resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} engines: {node: '>=0.10.0'} @@ -11920,10 +5997,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - /resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - dev: false - /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true @@ -11937,12 +6010,6 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: false - /responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} - dependencies: - lowercase-keys: 1.0.1 - dev: false - /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -12004,20 +6071,6 @@ packages: fsevents: 2.3.3 dev: true - /rtl-detect@1.0.4: - resolution: {integrity: sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==} - dev: false - - /rtlcss@3.5.0: - resolution: {integrity: sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==} - hasBin: true - dependencies: - find-up: 5.0.0 - picocolors: 1.0.0 - postcss: 8.4.26 - strip-json-comments: 3.1.1 - dev: false - /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -12044,10 +6097,6 @@ packages: isarray: 2.0.5 dev: false - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false - /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -12067,83 +6116,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - dev: false - - /scheduler@0.20.2: - resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - - /schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - dependencies: - '@types/json-schema': 7.0.12 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - - /schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} - engines: {node: '>= 8.9.0'} - dependencies: - '@types/json-schema': 7.0.12 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - - /schema-utils@3.1.2: - resolution: {integrity: sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/json-schema': 7.0.12 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - /schema-utils@4.0.1: - resolution: {integrity: sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==} - engines: {node: '>= 12.13.0'} - dependencies: - '@types/json-schema': 7.0.12 - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - ajv-keywords: 5.1.0(ajv@8.12.0) - dev: false - - /section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - dev: false - - /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - dev: false - - /selfsigned@2.1.1: - resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} - engines: {node: '>=10'} - dependencies: - node-forge: 1.3.1 - dev: false - - /semver-diff@3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: false - - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: false - /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -12185,39 +6157,6 @@ packages: transitivePeerDependencies: - supports-color - /serialize-javascript@6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} - dependencies: - randombytes: 2.1.0 - - /serve-handler@6.1.5: - resolution: {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 - dev: false - - /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - dev: false - /serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -12247,14 +6186,6 @@ packages: has-property-descriptors: 1.0.0 dev: false - /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: false - - /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - dev: false - /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -12266,15 +6197,6 @@ packages: safe-buffer: 5.2.1 dev: false - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - dependencies: - kind-of: 6.0.3 - - /shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -12285,20 +6207,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - dev: false - - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - dev: false - /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -12320,30 +6228,6 @@ packages: is-arrayish: 0.3.2 dev: false - /sirv@1.0.19: - resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.21 - mrmime: 1.0.1 - totalist: 1.1.0 - dev: false - - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: false - - /sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true - dependencies: - '@types/node': 17.0.45 - '@types/sax': 1.2.4 - arg: 5.0.2 - sax: 1.2.4 - dev: false - /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -12369,19 +6253,6 @@ packages: is-fullwidth-code-point: 5.0.0 dev: false - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - dev: false - - /sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} - engines: {node: '>= 6.3.0'} - dev: false - /sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} dev: false @@ -12399,26 +6270,6 @@ packages: sort-object-keys: 1.1.3 dev: false - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: false - - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: false - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - /source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} @@ -12426,45 +6277,11 @@ packages: whatwg-url: 7.1.0 dev: true - /space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: false - - /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - dependencies: - debug: 4.3.4 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - dev: false - - /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - dependencies: - debug: 4.3.4 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: false - /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} dev: false - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: false - /sql-formatter@15.0.2: resolution: {integrity: sha512-B8FTRc1dhb36lfuwSdiLhwrhkvT3PU/3es7YDPPQBOhbGHdXKlweAXTRS+QfCWk06ufAh118yFja6NcukBS4gg==} hasBin: true @@ -12474,32 +6291,14 @@ packages: nearley: 2.20.1 dev: false - /stable@0.1.8: - resolution: {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' - dev: false - /stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} dev: false - /state-toggle@1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} - dev: false - - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - dev: false - /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - /std-env@3.3.3: - resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} - dev: false - /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -12518,15 +6317,6 @@ packages: strip-ansi: 6.0.1 dev: false - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: false - /string-width@7.0.0: resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} engines: {node: '>=18'} @@ -12561,27 +6351,12 @@ packages: es-abstract: 1.22.3 dev: false - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 dev: false - /stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - dependencies: - get-own-enumerable-property-symbols: 3.0.2 - is-obj: 1.0.1 - is-regexp: 1.0.0 - dev: false - /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -12596,11 +6371,6 @@ packages: ansi-regex: 6.0.1 dev: false - /strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: false - /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -12614,17 +6384,13 @@ packages: /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + dev: true /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} dev: false - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -12634,40 +6400,6 @@ packages: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} dev: false - /style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} - dependencies: - inline-style-parser: 0.1.1 - dev: false - - /stylehacks@5.1.1(postcss@8.4.26): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.5 - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 - dev: false - - /subscriptions-transport-ws@0.11.0(graphql@16.8.1): - resolution: {integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==} - deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md - peerDependencies: - graphql: ^15.7.2 || ^16.0.0 - dependencies: - backo2: 1.0.2 - eventemitter3: 3.1.2 - graphql: 16.8.1 - iterall: 1.3.0 - symbol-observable: 1.2.0 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - /sucrase@3.32.0: resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} engines: {node: '>=8'} @@ -12696,40 +6428,11 @@ packages: has-flag: 4.0.0 dev: false - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: false - /svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - dev: false - - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 - picocolors: 1.0.0 - stable: 0.1.8 - dev: false - - /symbol-observable@1.2.0: - resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} - engines: {node: '>=0.10.0'} - dev: false - /synckit@0.9.0: resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -12738,48 +6441,6 @@ packages: tslib: 2.6.2 dev: false - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: false - - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - /terser-webpack-plugin@5.3.9(webpack@5.84.1): - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@jridgewell/trace-mapping': 0.3.18 - jest-worker: 27.5.1 - schema-utils: 3.1.2 - serialize-javascript: 6.0.1 - terser: 5.17.6 - webpack: 5.84.1 - - /terser@5.17.6: - resolution: {integrity: sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.3 - acorn: 8.10.0 - commander: 2.20.3 - source-map-support: 0.5.21 - /text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} @@ -12810,18 +6471,6 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: false - /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - dev: false - - /tiny-invariant@1.3.1: - resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} - dev: false - - /tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false - /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -12829,16 +6478,6 @@ packages: os-tmpdir: 1.0.2 dev: false - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: false - - /to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: false - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -12846,13 +6485,8 @@ packages: is-number: 7.0.0 /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - /totalist@1.1.0: - resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} - engines: {node: '>=6'} - dev: false + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -12868,23 +6502,10 @@ packages: hasBin: true dev: true - /trim-trailing-lines@1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} - dev: false - - /trim@0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} - deprecated: Use String.prototype.trim() instead - dev: false - /triple-beam@1.3.0: resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==} dev: false - /trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - dev: false - /ts-api-utils@1.0.1(typescript@5.3.3): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} @@ -13061,11 +6682,6 @@ packages: engines: {node: '>=10'} dev: false - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: false - /type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} @@ -13116,21 +6732,11 @@ packages: is-typed-array: 1.1.12 dev: false - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: false - /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true - /ua-parser-js@0.7.35: - resolution: {integrity: sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==} - dev: false - /ufo@1.3.1: resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} dev: false @@ -13156,121 +6762,11 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /unherit@1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} - dependencies: - inherits: 2.0.4 - xtend: 4.0.2 - dev: false - - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: false - - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: false - - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - dev: false - - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: false - /unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} dev: false - /unified@9.2.0: - resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} - dependencies: - '@types/unist': 2.0.6 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - dev: false - - /unified@9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} - dependencies: - '@types/unist': 2.0.6 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - dev: false - - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: false - - /unist-builder@2.0.3: - resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} - dev: false - - /unist-util-generated@1.1.6: - resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} - dev: false - - /unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - dev: false - - /unist-util-position@3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} - dev: false - - /unist-util-remove-position@2.0.1: - resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} - dependencies: - unist-util-visit: 2.0.3 - dev: false - - /unist-util-remove@2.1.0: - resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} - dependencies: - unist-util-is: 4.1.0 - dev: false - - /unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 4.1.0 - dev: false - - /unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - dev: false - /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -13286,118 +6782,16 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - /update-browserslist-db@1.0.11(browserslist@4.21.5): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.5 - escalade: 3.1.1 - picocolors: 1.0.0 - - /update-notifier@5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} - dependencies: - boxen: 5.1.2 - chalk: 4.1.2 - configstore: 5.0.1 - has-yarn: 2.1.0 - import-lazy: 2.1.0 - is-ci: 2.0.0 - is-installed-globally: 0.4.0 - is-npm: 5.0.0 - is-yarn-global: 0.3.0 - latest-version: 5.1.0 - pupa: 2.1.1 - semver: 7.5.4 - semver-diff: 3.1.1 - xdg-basedir: 4.0.0 - dev: false - /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 - - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.84.1): - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - dependencies: - file-loader: 6.2.0(webpack@5.84.1) - loader-utils: 2.0.4 - mime-types: 2.1.35 - schema-utils: 3.1.2 - webpack: 5.84.1 - dev: false - - /url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: false - - /use-composed-ref@1.3.0(react@17.0.2): - resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 17.0.2 - dev: false - - /use-isomorphic-layout-effect@1.1.2(react@17.0.2): - resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - react: 17.0.2 - dev: false - - /use-latest@1.2.1(react@17.0.2): - resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - react: 17.0.2 - use-isomorphic-layout-effect: 1.1.2(react@17.0.2) - dev: false - - /use-sync-external-store@1.2.0(react@17.0.2): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 17.0.2 dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: false - /utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - dev: false - - /utility-types@3.10.0: - resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==} - engines: {node: '>= 4'} - /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -13417,10 +6811,6 @@ packages: hasBin: true dev: false - /value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - dev: false - /value-or-promise@1.0.12: resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} engines: {node: '>=12'} @@ -13430,63 +6820,12 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - /vfile-location@3.2.0: - resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} - dev: false - - /vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 2.0.3 - dev: false - - /vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - dev: false - - /wait-on@6.0.1: - resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==} - engines: {node: '>=10.0.0'} - hasBin: true - dependencies: - axios: 0.25.0 - joi: 17.9.2 - lodash: 4.17.21 - minimist: 1.2.8 - rxjs: 7.8.1 - transitivePeerDependencies: - - debug - dev: false - - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - dependencies: - minimalistic-assert: 1.0.1 - dev: false - /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 dev: false - /web-namespaces@1.1.4: - resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} - dev: false - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -13494,168 +6833,6 @@ packages: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: true - /webpack-bundle-analyzer@4.8.0: - resolution: {integrity: sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==} - engines: {node: '>= 10.13.0'} - hasBin: true - dependencies: - '@discoveryjs/json-ext': 0.5.7 - acorn: 8.10.0 - acorn-walk: 8.2.0 - chalk: 4.1.2 - commander: 7.2.0 - gzip-size: 6.0.0 - lodash: 4.17.21 - opener: 1.5.2 - sirv: 1.0.19 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /webpack-dev-middleware@5.3.3(webpack@5.84.1): - resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - colorette: 2.0.20 - memfs: 3.5.1 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.0.1 - webpack: 5.84.1 - dev: false - - /webpack-dev-server@4.15.0(webpack@5.84.1): - resolution: {integrity: sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - dependencies: - '@types/bonjour': 3.5.10 - '@types/connect-history-api-fallback': 1.5.0 - '@types/express': 4.17.17 - '@types/serve-index': 1.9.1 - '@types/serve-static': 1.15.1 - '@types/sockjs': 0.3.33 - '@types/ws': 8.5.4 - ansi-html-community: 0.0.8 - bonjour-service: 1.1.1 - chokidar: 3.5.3 - colorette: 2.0.20 - compression: 1.7.4 - connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.18.2 - graceful-fs: 4.2.11 - html-entities: 2.3.3 - http-proxy-middleware: 2.0.6(@types/express@4.17.17) - ipaddr.js: 2.0.1 - launch-editor: 2.6.0 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 - schema-utils: 4.0.1 - selfsigned: 2.1.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack: 5.84.1 - webpack-dev-middleware: 5.3.3(webpack@5.84.1) - ws: 8.13.0 - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - dev: false - - /webpack-merge@5.9.0: - resolution: {integrity: sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==} - engines: {node: '>=10.0.0'} - dependencies: - clone-deep: 4.0.1 - wildcard: 2.0.1 - - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - /webpack@5.84.1: - resolution: {integrity: sha512-ZP4qaZ7vVn/K8WN/p990SGATmrL1qg4heP/MrVneczYtpDGJWlrgZv55vxaV2ul885Kz+25MP2kSXkPe3LZfmg==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': 3.7.4 - '@types/estree': 1.0.1 - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/wasm-edit': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.10.0 - acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.21.5 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.14.1 - es-module-lexer: 1.2.1 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.1.2 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(webpack@5.84.1) - watchpack: 2.4.0 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - /webpackbar@5.0.2(webpack@5.84.1): - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 - dependencies: - chalk: 4.1.2 - consola: 2.15.3 - pretty-time: 1.1.0 - std-env: 3.3.3 - webpack: 5.84.1 - dev: false - - /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - dev: false - - /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - dev: false - /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -13710,23 +6887,6 @@ packages: dependencies: isexe: 2.0.0 - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - dependencies: - string-width: 4.2.3 - dev: false - - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - dev: false - - /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - /winston-transport@4.7.0: resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} engines: {node: '>= 12.0.0'} @@ -13784,15 +6944,6 @@ packages: strip-ansi: 6.0.1 dev: false - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - dev: false - /wrap-ansi@9.0.0: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} @@ -13805,76 +6956,15 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: false - - /ws@7.5.9: - resolution: {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 - dev: false - - /ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} - 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 - dev: false - - /xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - dev: false - - /xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true - dependencies: - sax: 1.2.4 - dev: false - - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: false - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: false - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: false - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false - /yaml@2.3.4: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} @@ -13907,21 +6997,6 @@ packages: engines: {node: '>=12.20'} dev: false - /zen-observable-ts@1.1.0: - resolution: {integrity: sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==} - dependencies: - '@types/zen-observable': 0.8.3 - zen-observable: 0.8.15 - dev: false - - /zen-observable@0.8.15: - resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} - dev: false - /zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} dev: false - - /zwitch@1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d6c1a736..fce07063 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,5 @@ packages: - - apps/**/* - - docs - - docs/cdk + - apps/api - libs/* - packages/* - services/* diff --git a/renovate.json b/renovate.json index 4d5a5241..ec569f8c 100644 --- a/renovate.json +++ b/renovate.json @@ -17,21 +17,6 @@ "labels": ["type: dependency"], "nvm": { "enabled": false }, "packageRules": [ - { - "matchPackagePatterns": ["@docusaurus/*"], - "groupName": "Docusaurus v2", - "allowedVersions": "<3.0.0" - }, - { - "matchPackagePatterns": ["react(?:-router)?"], - "groupName": "Docusaurus v2: React dependencies", - "allowedVersions": "<18.0.0" - }, - { - "matchPackageNames": ["@mdx-js/react", "clsx", "prism-react-renderer", "prismjs"], - "groupName": "Docusaurus v2: other dependencies", - "allowedVersions": "<2.0.0" - }, { "matchPackageNames": ["constructs"], "groupName": "Constructs", diff --git a/services/calendar-scraper/package.json b/services/calendar-scraper/package.json index e289f23d..c880cea2 100644 --- a/services/calendar-scraper/package.json +++ b/services/calendar-scraper/package.json @@ -16,7 +16,7 @@ "@libs/utils": "workspace:^" }, "devDependencies": { - "@peterportal-api/types": "workspace:^", + "@anteater-api/types": "workspace:^", "esbuild": "0.20.1" } } diff --git a/services/calendar-scraper/src/index.ts b/services/calendar-scraper/src/index.ts index 271355dd..813ae4a2 100644 --- a/services/calendar-scraper/src/index.ts +++ b/services/calendar-scraper/src/index.ts @@ -1,6 +1,6 @@ +import type { Quarter } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; import { getTermDateData } from "@libs/uc-irvine-lib/registrar"; -import type { Quarter } from "@peterportal-api/types"; const prisma = new PrismaClient(); diff --git a/services/larc-scraper/package.json b/services/larc-scraper/package.json index af6a5409..7eb93426 100644 --- a/services/larc-scraper/package.json +++ b/services/larc-scraper/package.json @@ -18,7 +18,7 @@ "cross-fetch": "4.0.0" }, "devDependencies": { - "@peterportal-api/types": "workspace:^", + "@anteater-api/types": "workspace:^", "esbuild": "0.20.1" } } diff --git a/services/larc-scraper/src/index.ts b/services/larc-scraper/src/index.ts index f50d5175..c40ee3c4 100644 --- a/services/larc-scraper/src/index.ts +++ b/services/larc-scraper/src/index.ts @@ -1,5 +1,5 @@ +import { LarcResponse, Quarter } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; -import { LarcResponse, Quarter } from "@peterportal-api/types"; import { load } from "cheerio"; import { fetch } from "cross-fetch"; diff --git a/services/larc-scraper/src/lib.ts b/services/larc-scraper/src/lib.ts index 3b224df4..c687bf09 100644 --- a/services/larc-scraper/src/lib.ts +++ b/services/larc-scraper/src/lib.ts @@ -1,4 +1,4 @@ -import type { Quarter } from "@peterportal-api/types"; +import type { Quarter } from "@anteater-api/types"; export const quarterToLarcSuffix = (quarter: Exclude): string => { switch (quarter) { diff --git a/services/websoc-proxy/package.json b/services/websoc-proxy/package.json index 30f22c6c..dd6b732f 100644 --- a/services/websoc-proxy/package.json +++ b/services/websoc-proxy/package.json @@ -17,7 +17,7 @@ "@libs/websoc-utils": "workspace:^" }, "devDependencies": { - "@peterportal-api/types": "workspace:^", + "@anteater-api/types": "workspace:^", "@types/aws-lambda": "8.10.135", "@types/node": "20.11.24", "esbuild": "0.20.1" diff --git a/services/websoc-scraper-v2/package.json b/services/websoc-scraper-v2/package.json index 1275e1b8..3f8b9808 100644 --- a/services/websoc-scraper-v2/package.json +++ b/services/websoc-scraper-v2/package.json @@ -9,10 +9,10 @@ "build": "node build.mjs" }, "dependencies": { + "@anteater-api/types": "workspace:^", "@libs/db": "workspace:^", "@libs/uc-irvine-lib": "workspace:^", "@libs/utils": "workspace:^", - "@peterportal-api/types": "workspace:^", "winston": "3.12.0" }, "devDependencies": { diff --git a/tools/cdk/package.json b/tools/cdk/package.json index 56ba6da9..fe0ac202 100644 --- a/tools/cdk/package.json +++ b/tools/cdk/package.json @@ -2,21 +2,10 @@ "name": "@tools/cdk", "version": "0.0.0", "private": true, - "description": "CDK deployment configurations for PeterPortal API", - "keywords": [], - "homepage": "https://github.com/icssc/peterportal-api-next", - "bugs": { - "url": "https://github.com/icssc/peterportal-api-next/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/icssc/peterportal-api-next", - "directory": "tools/cdk" - }, + "description": "CDK deployment configurations for Anteater API", "license": "MIT", "type": "module", "scripts": { - "docs": "cdk --app 'npx tsx src/app/docs.ts' --force --require-approval never", "services": "cdk --app 'npx tsx src/app/services.ts' --force --require-approval never" }, "dependencies": { diff --git a/tools/cdk/src/app/docs.ts b/tools/cdk/src/app/docs.ts deleted file mode 100644 index 6de36ece..00000000 --- a/tools/cdk/src/app/docs.ts +++ /dev/null @@ -1,47 +0,0 @@ -import "dotenv/config"; - -import { App } from "aws-cdk-lib"; - -import { DocsStack } from "../stacks/docs"; -import { waitForStackIdle } from "../wait-for-stack-idle"; - -function getStage() { - switch (process.env.NODE_ENV) { - case "production": { - return "prod"; - } - - case "staging": { - if (!process.env.PR_NUM) { - throw new Error("Running in staging environment but no PR number specified. Stop."); - } - return `staging-${process.env.PR_NUM}`; - } - - case "development": { - throw new Error("Cannot deploy stack in development environment. Stop."); - } - - default: { - throw new Error("Invalid environment specified. Stop."); - } - } -} - -async function main() { - const stage = getStage(); - - const stackName = `peterportal-api-next-docs-${stage}`; - - await waitForStackIdle(stackName); - - const app = new App({ autoSynth: true }); - - new DocsStack(app, stackName, { - stage, - env: { region: "us-east-1" }, - terminationProtection: stage === "prod", - }); -} - -main().then(); diff --git a/tools/cdk/src/app/services.ts b/tools/cdk/src/app/services.ts index a31cda11..ea9442e4 100644 --- a/tools/cdk/src/app/services.ts +++ b/tools/cdk/src/app/services.ts @@ -6,7 +6,7 @@ import { ServicesStack } from "../stacks/services"; import { waitForStackIdle } from "../wait-for-stack-idle"; async function main() { - const stackName = "peterportal-api-next-services-prod"; + const stackName = "anteater-api-services-prod"; await waitForStackIdle(stackName); diff --git a/tools/cdk/src/stacks/docs.ts b/tools/cdk/src/stacks/docs.ts deleted file mode 100644 index 34631f64..00000000 --- a/tools/cdk/src/stacks/docs.ts +++ /dev/null @@ -1,100 +0,0 @@ -import path from "node:path"; -import { fileURLToPath } from "node:url"; - -import type { StackProps } from "aws-cdk-lib"; -import { RemovalPolicy, Stack } from "aws-cdk-lib"; -import { Certificate } from "aws-cdk-lib/aws-certificatemanager"; -import { - AllowedMethods, - Distribution, - OriginAccessIdentity, - ViewerProtocolPolicy, -} from "aws-cdk-lib/aws-cloudfront"; -import { S3Origin } from "aws-cdk-lib/aws-cloudfront-origins"; -import { CanonicalUserPrincipal, PolicyStatement } from "aws-cdk-lib/aws-iam"; -import { ARecord, HostedZone, RecordTarget } from "aws-cdk-lib/aws-route53"; -import { CloudFrontTarget } from "aws-cdk-lib/aws-route53-targets"; -import { Bucket } from "aws-cdk-lib/aws-s3"; -import { BucketDeployment, Source } from "aws-cdk-lib/aws-s3-deployment"; -import type { Construct } from "constructs"; - -export interface DocsStackProps extends StackProps { - stage?: string; -} - -export class DocsStack extends Stack { - constructor(scope: Construct, id: string, props: DocsStackProps = {}) { - if (!process.env.CERTIFICATE_ARN) { - throw new Error("Certificate ARN not provided. Stop."); - } - - if (!process.env.HOSTED_ZONE_ID) { - throw new Error("Hosted Zone ID not provided. Stop."); - } - - super(scope, id, props); - - const certificateArn = process.env.CERTIFICATE_ARN; - const hostedZoneId = process.env.HOSTED_ZONE_ID; - const recordName = `${props.stage === "prod" ? "" : `${props.stage}-`}docs.api-next`; - const zoneName = "peterportal.org"; - - const destinationBucket = new Bucket(this, `peterportal-api-next-docs-bucket-${props.stage}`, { - bucketName: `${recordName}.${zoneName}`, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - }); - - const cloudfrontOAI = new OriginAccessIdentity(this, "OAI"); - - destinationBucket.addToResourcePolicy( - new PolicyStatement({ - actions: ["s3:GetObject"], - resources: [destinationBucket.arnForObjects("*")], - principals: [ - new CanonicalUserPrincipal(cloudfrontOAI.cloudFrontOriginAccessIdentityS3CanonicalUserId), - ], - }), - ); - - const distribution = new Distribution(this, "distribution", { - certificate: Certificate.fromCertificateArn(this, "peterportal-cert", certificateArn), - defaultRootObject: "index.html", - domainNames: [`${recordName}.${zoneName}`], - defaultBehavior: { - origin: new S3Origin(destinationBucket, { - originAccessIdentity: cloudfrontOAI, - }), - allowedMethods: AllowedMethods.ALLOW_GET_HEAD_OPTIONS, - viewerProtocolPolicy: ViewerProtocolPolicy.REDIRECT_TO_HTTPS, - }, - errorResponses: [ - { - httpStatus: 403, - responseHttpStatus: 200, - responsePagePath: "/index.html", - }, - ], - }); - - new ARecord(this, `peterportal-api-next-docs-a-record-${props.stage}`, { - zone: HostedZone.fromHostedZoneAttributes(this, "peterportal-hosted-zone", { - zoneName, - hostedZoneId, - }), - recordName, - target: RecordTarget.fromAlias(new CloudFrontTarget(distribution)), - }); - - new BucketDeployment(this, "bucket-deployment", { - sources: [ - Source.asset( - path.join(path.dirname(fileURLToPath(import.meta.url)), "../../../../apps/docs/build"), - ), - ], - destinationBucket, - distribution, - distributionPaths: ["/*"], - }); - } -} diff --git a/tools/degreeworks-scraper/package.json b/tools/degreeworks-scraper/package.json index b370177b..b4927df9 100644 --- a/tools/degreeworks-scraper/package.json +++ b/tools/degreeworks-scraper/package.json @@ -8,8 +8,8 @@ "start": "tsx src/index.ts" }, "dependencies": { + "@anteater-api/types": "workspace:^", "@libs/db": "workspace:^", - "@peterportal-api/types": "workspace:^", "cross-fetch": "4.0.0", "dotenv": "16.4.1", "jwt-decode": "4.0.0" diff --git a/tools/degreeworks-scraper/src/components/PPAPIOfflineClient.ts b/tools/degreeworks-scraper/src/components/APIOfflineClient.ts similarity index 50% rename from tools/degreeworks-scraper/src/components/PPAPIOfflineClient.ts rename to tools/degreeworks-scraper/src/components/APIOfflineClient.ts index a1c9729a..48f56011 100644 --- a/tools/degreeworks-scraper/src/components/PPAPIOfflineClient.ts +++ b/tools/degreeworks-scraper/src/components/APIOfflineClient.ts @@ -1,25 +1,23 @@ -import { isErrorResponse } from "@peterportal-api/types"; -import type { Course, RawResponse } from "@peterportal-api/types"; +import type { Course, RawResponse } from "@anteater-api/types"; import fetch from "cross-fetch"; -const ENDPOINT = "https://api-next.peterportal.org/v1/rest/courses/all"; +const ENDPOINT = "https://anteaterapi.com/v1/rest/courses/all"; -export class PPAPIOfflineClient { +export class APIOfflineClient { private cache = new Map(); private constructor() {} - static async new(): Promise { - const ppapi = new PPAPIOfflineClient(); + static async new(): Promise { + const apiClient = new APIOfflineClient(); const res = await fetch(ENDPOINT, { headers: { "accept-encoding": "gzip" } }); const json: RawResponse = await res.json(); - if (isErrorResponse(json)) - throw new Error("Could not fetch courses cache from PeterPortal API"); - json.payload.forEach((y) => ppapi.cache.set(y.id, y)); + if (!json.success) throw new Error("Could not fetch courses cache from Anteater API"); + json.payload.forEach((y) => apiClient.cache.set(y.id, y)); console.log( - `[PPAPIOfflineClient.new] Fetched and stored ${json.payload.length} courses from PeterPortal API`, + `[APIOfflineClient.new] Fetched and stored ${json.payload.length} courses from Anteater API`, ); - return ppapi; + return apiClient; } getCourse(courseNumber: string): Course | undefined { diff --git a/tools/degreeworks-scraper/src/components/AuditParser.ts b/tools/degreeworks-scraper/src/components/AuditParser.ts index 47316c8f..5184f6f0 100644 --- a/tools/degreeworks-scraper/src/components/AuditParser.ts +++ b/tools/degreeworks-scraper/src/components/AuditParser.ts @@ -1,8 +1,8 @@ -import type { Course } from "@peterportal-api/types"; +import type { Course } from "@anteater-api/types"; import type { Block, Program, ProgramId, Requirement, Rule } from "../types"; -import { PPAPIOfflineClient } from "."; +import { APIOfflineClient } from "."; export class AuditParser { private static readonly specOrOtherMatcher = /"type":"(?:SPEC|OTHER)","value":"\w+"/g; @@ -10,13 +10,13 @@ export class AuditParser { private static readonly wildcardMatcher = /\w@/; private static readonly rangeMatcher = /-\w+/; - private ppapi!: PPAPIOfflineClient; + private apiClient!: APIOfflineClient; private constructor() {} static async new(): Promise { const ap = new AuditParser(); - ap.ppapi = await PPAPIOfflineClient.new(); + ap.apiClient = await APIOfflineClient.new(); console.log("[AuditParser.new] AuditParser initialized"); return ap; } @@ -58,7 +58,7 @@ export class AuditParser { const [department, courseNumber] = courseIdLike.split(" "); if (courseNumber.match(AuditParser.wildcardMatcher)) { // Wildcard course numbers. - return this.ppapi.getCoursesByDepartment( + return this.apiClient.getCoursesByDepartment( department, (x) => !!x.courseNumber.match( @@ -75,7 +75,7 @@ export class AuditParser { if (courseNumber.match(AuditParser.rangeMatcher)) { // Course number ranges. const [minCourseNumber, maxCourseNumber] = courseNumber.split("-"); - return this.ppapi.getCoursesByDepartment( + return this.apiClient.getCoursesByDepartment( department, (x) => x.courseNumeric >= Number.parseInt(minCourseNumber, 10) && @@ -83,7 +83,7 @@ export class AuditParser { ); } // Probably a normal course, just make sure that it exists. - const course = this.ppapi.getCourse(`${department}${courseNumber}`); + const course = this.apiClient.getCourse(`${department}${courseNumber}`); return course ? [course] : []; } diff --git a/tools/degreeworks-scraper/src/components/index.ts b/tools/degreeworks-scraper/src/components/index.ts index e8ce9349..f800049b 100644 --- a/tools/degreeworks-scraper/src/components/index.ts +++ b/tools/degreeworks-scraper/src/components/index.ts @@ -1,4 +1,4 @@ export { AuditParser } from "./AuditParser"; export { DegreeworksClient } from "./DegreeworksClient"; -export { PPAPIOfflineClient } from "./PPAPIOfflineClient"; +export { APIOfflineClient } from "./APIOfflineClient"; export { Scraper } from "./Scraper"; diff --git a/tools/grades-updater/README.md b/tools/grades-updater/README.md index 96cb699e..d1483329 100644 --- a/tools/grades-updater/README.md +++ b/tools/grades-updater/README.md @@ -1,6 +1,6 @@ # grades-updater -This directory contains the code for updating the grades cache for PeterPortal API _Next_. +This directory contains the code for updating the grades cache for Anteater API. ## Sanitizing the Data diff --git a/tools/grades-updater/package.json b/tools/grades-updater/package.json index efee3be4..7071575e 100644 --- a/tools/grades-updater/package.json +++ b/tools/grades-updater/package.json @@ -20,7 +20,7 @@ "winston-transport": "4.7.0" }, "devDependencies": { - "@peterportal-api/types": "workspace:^", + "@anteater-api/types": "workspace:^", "@types/node": "20.11.24", "dotenv-cli": "7.3.0", "tsx": "4.7.1" diff --git a/tools/grades-updater/src/lib.ts b/tools/grades-updater/src/lib.ts index 36beb9cc..9fb240e9 100644 --- a/tools/grades-updater/src/lib.ts +++ b/tools/grades-updater/src/lib.ts @@ -1,7 +1,7 @@ import { dirname } from "path"; import { fileURLToPath } from "url"; -import type { Quarter } from "@peterportal-api/types"; +import type { Quarter } from "@anteater-api/types"; import winston from "winston"; import type { Logger } from "winston"; import type Transport from "winston-transport"; diff --git a/tools/grades-updater/src/sanitize-data.ts b/tools/grades-updater/src/sanitize-data.ts index 59398612..7213e30a 100644 --- a/tools/grades-updater/src/sanitize-data.ts +++ b/tools/grades-updater/src/sanitize-data.ts @@ -2,9 +2,9 @@ import fs from "fs"; import { basename, resolve } from "node:path"; import { EOL } from "os"; +import type { Quarter } from "@anteater-api/types"; import { callWebSocAPI } from "@libs/uc-irvine-lib/websoc"; import type { WebsocAPIResponse, WebsocSection } from "@libs/uc-irvine-lib/websoc"; -import type { Quarter } from "@peterportal-api/types"; import type { CastingContext, Parser } from "csv-parse"; import { parse } from "csv-parse"; import { stringify } from "csv-stringify/sync"; diff --git a/tools/grades-updater/src/upload-data.ts b/tools/grades-updater/src/upload-data.ts index 6bdb694e..acb65713 100644 --- a/tools/grades-updater/src/upload-data.ts +++ b/tools/grades-updater/src/upload-data.ts @@ -1,8 +1,8 @@ import fs from "fs"; import { resolve } from "path"; +import type { Quarter } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; -import type { Quarter } from "@peterportal-api/types"; import { parse } from "csv-parse"; import type { CastingContext, Parser } from "csv-parse"; diff --git a/tools/registrar-scraper/package.json b/tools/registrar-scraper/package.json index 4e72b560..4d77feb3 100644 --- a/tools/registrar-scraper/package.json +++ b/tools/registrar-scraper/package.json @@ -18,7 +18,7 @@ "winston": "3.12.0" }, "devDependencies": { - "@peterportal-api/types": "workspace:^", + "@anteater-api/types": "workspace:^", "esbuild": "0.20.1" } } diff --git a/tools/registrar-scraper/src/index.ts b/tools/registrar-scraper/src/index.ts index 193a5295..1fcfdfe5 100644 --- a/tools/registrar-scraper/src/index.ts +++ b/tools/registrar-scraper/src/index.ts @@ -1,6 +1,6 @@ +import type { Instructor } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; import { notNull } from "@libs/utils"; -import type { Instructor } from "@peterportal-api/types"; import { getCourses } from "./course-scraper"; import { getInstructors } from "./instructor-scraper"; diff --git a/tools/registrar-scraper/src/instructor-scraper/index.ts b/tools/registrar-scraper/src/instructor-scraper/index.ts index c0e7b8e8..3ab310e3 100644 --- a/tools/registrar-scraper/src/instructor-scraper/index.ts +++ b/tools/registrar-scraper/src/instructor-scraper/index.ts @@ -2,7 +2,7 @@ import { existsSync, readFileSync } from "fs"; import { dirname, join } from "path"; import { fileURLToPath } from "url"; -import type { Instructor } from "@peterportal-api/types"; +import type { Instructor } from "@anteater-api/types"; import { load } from "cheerio"; import type { Element } from "cheerio"; import fetch from "cross-fetch"; diff --git a/tools/registrar-scraper/src/lib.ts b/tools/registrar-scraper/src/lib.ts index 2d461392..d2271db1 100644 --- a/tools/registrar-scraper/src/lib.ts +++ b/tools/registrar-scraper/src/lib.ts @@ -1,6 +1,6 @@ +import type { Instructor, Prerequisite, PrerequisiteTree } from "@anteater-api/types"; +import { courseLevels, divisionCodes } from "@anteater-api/types"; import type { Prisma } from "@libs/db"; -import type { Instructor, Prerequisite, PrerequisiteTree } from "@peterportal-api/types"; -import { courseLevels, divisionCodes } from "@peterportal-api/types"; export type ScrapedCourse = { department: string; diff --git a/tools/registrar-scraper/src/prereq-scraper/index.ts b/tools/registrar-scraper/src/prereq-scraper/index.ts index f9930330..6c07d001 100644 --- a/tools/registrar-scraper/src/prereq-scraper/index.ts +++ b/tools/registrar-scraper/src/prereq-scraper/index.ts @@ -3,8 +3,8 @@ import { writeFileSync } from "node:fs"; import { dirname, join } from "path"; import { fileURLToPath } from "url"; +import type { Prerequisite, PrerequisiteTree } from "@anteater-api/types"; import { sleep } from "@libs/utils"; -import type { Prerequisite, PrerequisiteTree } from "@peterportal-api/types"; import { load } from "cheerio"; import type { Element } from "cheerio"; import fetch from "cross-fetch"; diff --git a/tools/study-room-scraper/package.json b/tools/study-room-scraper/package.json index 200111b9..bab7d2a9 100644 --- a/tools/study-room-scraper/package.json +++ b/tools/study-room-scraper/package.json @@ -13,7 +13,7 @@ "winston": "^3.11.0" }, "devDependencies": { - "@peterportal-api/types": "workspace:^", + "@anteater-api/types": "workspace:^", "esbuild": "0.20.1" } } diff --git a/tools/study-room-scraper/src/index.ts b/tools/study-room-scraper/src/index.ts index 9c01f1eb..9a64e040 100644 --- a/tools/study-room-scraper/src/index.ts +++ b/tools/study-room-scraper/src/index.ts @@ -1,5 +1,5 @@ +import type { StudyRoom } from "@anteater-api/types"; import { PrismaClient } from "@libs/db"; -import type { StudyRoom } from "@peterportal-api/types"; import { scrapeStudyLocations } from "./study-room-scraper"; diff --git a/tools/study-room-scraper/src/study-room-scraper.ts b/tools/study-room-scraper/src/study-room-scraper.ts index 3794d243..8f0fb056 100644 --- a/tools/study-room-scraper/src/study-room-scraper.ts +++ b/tools/study-room-scraper/src/study-room-scraper.ts @@ -1,4 +1,4 @@ -import type { StudyRoom, StudyLocation } from "@peterportal-api/types"; +import type { StudyRoom, StudyLocation } from "@anteater-api/types"; import { load, Cheerio, Element, CheerioAPI } from "cheerio"; import fetch from "cross-fetch"; import { studyLocations, getStudySpaces } from "libs/uc-irvine-lib/src/spaces"; diff --git a/tsconfig.json b/tsconfig.json index cc3c2ac9..c244c7c0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,11 +13,5 @@ "resolveJsonModule": true }, "include": ["*.ts", "apps/**/*", "libs/**/*", "packages/**/*", "services/**/*", "tools/**/*"], - "exclude": [ - "**/build/**/*", - "**/cdk.out/**/*", - "**/dist/**/*", - "**/node_modules/**/*", - "apps/docs/**/*" - ] + "exclude": ["**/build/**/*", "**/cdk.out/**/*", "**/dist/**/*", "**/node_modules/**/*"] }