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 ab6ec3c7..13470c5b 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 6059ef5c..236721d8 100644 --- a/apps/api/bronya.config.ts +++ b/apps/api/bronya.config.ts @@ -18,7 +18,7 @@ import { App, Stack, Duration } from "aws-cdk-lib/core"; import { config } from "dotenv"; import type { BuildOptions } from "esbuild"; -import { normalizeCourse } from "./src/lib/utils"; +import { normalizeCourse, normalizeStudyRoom } from "./src/lib/utils"; const prisma = new PrismaClient(); @@ -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. @@ -121,6 +121,10 @@ export const esbuildOptions: BuildOptions = { path: args.path, namespace, })); + build.onResolve({ filter: /virtual:studyRooms/ }, (args) => ({ + path: args.path, + namespace, + })); build.onLoad({ filter: /virtual:courses/, namespace }, async () => ({ contents: `export const courses = ${JSON.stringify( Object.fromEntries( @@ -133,6 +137,13 @@ export const esbuildOptions: BuildOptions = { Object.fromEntries((await prisma.instructor.findMany()).map((x) => [x.ucinetid, x])), )}`, })); + build.onLoad({ filter: /virtual:studyRooms/, namespace }, async () => ({ + contents: `export const studyRooms = ${JSON.stringify( + Object.fromEntries( + (await prisma.studyRoom.findMany()).map(normalizeStudyRoom).map((x) => [x.id, x]), + ), + )}`, + })); }, }, ], @@ -235,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(); @@ -269,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, @@ -283,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, @@ -318,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" ? "" : `${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 ff85b418..d9c6e3a0 100644 --- a/apps/api/src/global.d.ts +++ b/apps/api/src/global.d.ts @@ -10,12 +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; } diff --git a/apps/api/src/lib/utils.ts b/apps/api/src/lib/utils.ts index 4315f83e..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 } from "@libs/db"; import type { Course, CourseLevel, @@ -6,7 +5,9 @@ import type { GECategory, InstructorPreview, PrerequisiteTree, -} from "@peterportal-api/types"; + StudyRoom, +} from "@anteater-api/types"; +import type { Course as PrismaCourse, StudyRoom as PrismaStudyRoom } from "@libs/db"; const days = ["Su", "M", "Tu", "W", "Th", "F", "Sa"]; @@ -82,3 +83,15 @@ export function normalizeCourse(course: PrismaCourse): Course { terms: course.terms, }; } + +export function normalizeStudyRoom(room: PrismaStudyRoom): StudyRoom { + return { + id: room.id, + name: room.name, + capacity: room.capacity, + location: room.location, + description: room.description, + directions: room.directions, + techEnhanced: room.techEnhanced, + }; +} 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/graphql/resolvers.ts b/apps/api/src/routes/v1/graphql/resolvers.ts index 52e56058..95744d33 100644 --- a/apps/api/src/routes/v1/graphql/resolvers.ts +++ b/apps/api/src/routes/v1/graphql/resolvers.ts @@ -9,6 +9,14 @@ export const resolvers: ApolloServerOptions["resolvers"] = { course: proxyRestApi("/v1/rest/courses", { pathArg: "courseId" }), courses: proxyRestApi("/v1/rest/courses", { argsTransform: geTransform }), allCourses: proxyRestApi("/v1/rest/courses/all"), + major: proxyRestApi("/v1/rest/degrees/majors"), + majors: proxyRestApi("/v1/rest/degrees/majors"), + minor: proxyRestApi("/v1/rest/degrees/minors"), + minors: proxyRestApi("/v1/rest/degrees/minors"), + specialization: proxyRestApi("/v1/rest/degrees/specializations"), + specializations: proxyRestApi("/v1/rest/degrees/specializations"), + specializationsByMajorId: proxyRestApi("/v1/rest/degrees/specializations"), + allDegrees: proxyRestApi("/v1/rest/degrees/all"), enrollmentHistory: proxyRestApi("/v1/rest/enrollmentHistory"), rawGrades: proxyRestApi("/v1/rest/grades/raw"), aggregateGrades: proxyRestApi("/v1/rest/grades/aggregate"), @@ -23,6 +31,8 @@ export const resolvers: ApolloServerOptions["resolvers"] = { instructors: proxyRestApi("/v1/rest/instructors"), allInstructors: proxyRestApi("/v1/rest/instructors/all"), larc: proxyRestApi("/v1/rest/larc"), + studyRooms: proxyRestApi("/v1/rest/studyrooms"), + allStudyRooms: proxyRestApi("/v1/rest/studyrooms/all"), websoc: proxyRestApi("/v1/rest/websoc", { argsTransform: geTransform }), depts: proxyRestApi("/v1/rest/websoc/depts"), terms: proxyRestApi("/v1/rest/websoc/terms"), diff --git a/apps/api/src/routes/v1/graphql/schema/degrees.graphql b/apps/api/src/routes/v1/graphql/schema/degrees.graphql new file mode 100644 index 00000000..609dbb03 --- /dev/null +++ b/apps/api/src/routes/v1/graphql/schema/degrees.graphql @@ -0,0 +1,39 @@ +type Specialization { + id: String! + majorId: String! + name: String! + requirements: JSON! +} + +type Major { + id: String! + degreeId: String! + code: String! + name: String! + requirements: JSON! + specializations: [Specialization!]! +} + +type Minor { + id: String! + name: String! + requirements: JSON! +} + +type Degree { + id: String! + name: String! + division: DegreeDivision! + majors: [Major!]! +} + +extend type Query { + major(id: String!): Major! + majors(degreeId: String, nameContains: String): [Major!]! + minor(id: String!): Minor! + minors(nameContains: String): [Minor!]! + specialization(id: String!): Specialization! + specializations(nameContains: String): [Specialization!]! + specializationsByMajorId(majorId: String!): [Specialization!]! + allDegrees: [Degree!]! +} diff --git a/apps/api/src/routes/v1/graphql/schema/enum.graphql b/apps/api/src/routes/v1/graphql/schema/enum.graphql index bf23e2d9..14e3316c 100644 --- a/apps/api/src/routes/v1/graphql/schema/enum.graphql +++ b/apps/api/src/routes/v1/graphql/schema/enum.graphql @@ -92,3 +92,8 @@ enum WebsocSectionFinalExamStatus { TBA_FINAL SCHEDULED_FINAL } +"The set of valid degree divisions." +enum DegreeDivision { + Undergraduate + Graduate +} diff --git a/apps/api/src/routes/v1/graphql/schema/studyRooms.graphql b/apps/api/src/routes/v1/graphql/schema/studyRooms.graphql new file mode 100644 index 00000000..260a0a77 --- /dev/null +++ b/apps/api/src/routes/v1/graphql/schema/studyRooms.graphql @@ -0,0 +1,46 @@ +type TimeSlot { + "Date of the time slot (YYYY-MM-DD)." + date: String! + "Start time of the time slot (HH:MM)." + start: String! + "End time of the time slot (HH:MM)." + end: String! + "If the time slot is booked." + booked: Boolean! +} + +type StudyRoom { + "ID of study room used by spaces.lib." + id: ID! + "Name of the study room and its room number." + name: String! + "Number of chairs in the study room." + capacity: Int! + "Name of study location." + location: String! + "Description of the study room." + description: String + "Directions to the study room." + directions: String + "Time slots for the study room." + timeSlots: [TimeSlot]! + "If the study room has TV or other tech enhancements." + techEnhanced: Boolean +} + +type StudyLocation { + "ID of the study location using shortened name of the location." + id: ID! + "Location ID of the study location used by space.lib." + lid: String! + "Name of the study location." + name: String! + "Rooms in the study location." + rooms: [StudyRoom!]! +} + +extend type Query { + "Fetch all study rooms." + allStudyRooms(start: String!, end: String!): [StudyLocation!]! + studyRooms(location: String!, start: String!, end: String!): StudyLocation! +} 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/degrees/{id}/+endpoint.ts b/apps/api/src/routes/v1/rest/degrees/{id}/+endpoint.ts new file mode 100644 index 00000000..a1cc3655 --- /dev/null +++ b/apps/api/src/routes/v1/rest/degrees/{id}/+endpoint.ts @@ -0,0 +1,146 @@ +import { PrismaClient } from "@libs/db"; +import { createHandler } from "@libs/lambda"; + +import { ProgramSchema, SpecializationSchema } from "./schema"; + +const prisma = new PrismaClient(); + +async function onWarm() { + await prisma.$connect(); +} + +const degreeRepository = { + majors: { + findMany: async () => { + return await prisma.major.findMany({ include: { specializations: true } }); + }, + findFirstById: async (id: string) => { + return await prisma.major.findFirst({ where: { id }, include: { specializations: true } }); + }, + findManyNameContains: async (degreeId: string, contains?: string) => { + return await prisma.major.findMany({ + where: { + degreeId, + name: { contains, mode: "insensitive" }, + }, + include: { specializations: true }, + }); + }, + }, + minors: { + findMany: async () => { + return await prisma.minor.findMany({}); + }, + findFirstById: async (id: string) => { + return await prisma.minor.findFirst({ where: { id } }); + }, + }, +}; + +export const GET = createHandler(async (event, context, res) => { + const headers = event.headers; + const params = event.pathParameters ?? {}; + const query = event.queryStringParameters ?? {}; + const requestId = context.awsRequestId; + + switch (params?.id) { + case "all": + return res.createOKResult( + await prisma.degree.findMany({ + include: { majors: { include: { specializations: true } } }, + }), + headers, + requestId, + ); + + case "majors": // falls through + case "minors": { + const parsedQuery = ProgramSchema.safeParse(query); + + if (!parsedQuery.success) { + return res.createErrorResult( + 400, + parsedQuery.error.issues.map((issue) => issue.message).join("; "), + requestId, + ); + } + + switch (parsedQuery.data.type) { + case "id": { + const result = await degreeRepository[params.id].findFirstById(parsedQuery.data.id); + return result + ? res.createOKResult(result, headers, requestId) + : res.createErrorResult( + 404, + `${params.id === "majors" ? "Major" : "Minor"} with ID ${parsedQuery.data.id} not found`, + requestId, + ); + } + + case "degreeOrName": { + const { degreeId, nameContains } = parsedQuery.data; + + if (params.id === "minors" && degreeId != null) { + return res.createErrorResult(400, "Invalid input", requestId); + } + + const result = await degreeRepository.majors.findManyNameContains(degreeId, nameContains); + return res.createOKResult(result, headers, requestId); + } + + case "empty": { + const result = await degreeRepository[params.id].findMany(); + return res.createOKResult(result, headers, requestId); + } + } + break; + } + + case "specializations": { + const parsedQuery = SpecializationSchema.safeParse(query); + + if (!parsedQuery.success) { + return res.createErrorResult( + 400, + parsedQuery.error.issues.map((issue) => issue.message).join("; "), + requestId, + ); + } + + switch (parsedQuery.data.type) { + case "id": { + const row = await prisma.specialization.findFirst({ where: { id: parsedQuery.data.id } }); + + return row + ? res.createOKResult(row, headers, requestId) + : res.createErrorResult( + 404, + `Specialization with ID ${parsedQuery.data.id} not found`, + requestId, + ); + } + + case "major": { + const result = await prisma.specialization.findMany({ + where: { majorId: parsedQuery.data.majorId }, + }); + return res.createOKResult(result, headers, requestId); + } + + case "name": { + const result = await prisma.specialization.findMany({ + where: { name: { contains: parsedQuery.data.nameContains, mode: "insensitive" } }, + }); + return res.createOKResult(result, headers, requestId); + } + + case "empty": { + const result = await prisma.specialization.findMany(); + return res.createOKResult(result, headers, requestId); + } + } + } + } + + return res.createErrorResult(400, "Invalid endpoint", requestId); +}, onWarm); diff --git a/apps/api/src/routes/v1/rest/degrees/{id}/schema.ts b/apps/api/src/routes/v1/rest/degrees/{id}/schema.ts new file mode 100644 index 00000000..04dc5e69 --- /dev/null +++ b/apps/api/src/routes/v1/rest/degrees/{id}/schema.ts @@ -0,0 +1,42 @@ +import { z } from "zod"; + +export const ProgramSchema = z + .union([ + z.object({ id: z.string() }), + z.object({ degreeId: z.string().optional(), nameContains: z.string().optional() }), + z.object({}), + ]) + .transform((data) => { + if ("id" in data) { + return { type: "id" as const, ...data }; + } + + if ("degreeId" in data && data.degreeId != null) { + return { type: "degreeOrName" as const, degreeId: data.degreeId, ...data }; + } + + return { type: "empty" as const, ...data }; + }); + +export const SpecializationSchema = z + .union([ + z.object({ id: z.string() }), + z.object({ majorId: z.string() }), + z.object({ nameContains: z.string() }), + z.object({}), + ]) + .transform((data) => { + if ("id" in data) { + return { type: "id" as const, ...data }; + } + + if ("majorId" in data) { + return { type: "major" as const, ...data }; + } + + if ("nameContains" in data) { + return { type: "name" as const, ...data }; + } + + return { type: "empty" as const, ...data }; + }); 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/+endpoint.ts b/apps/api/src/routes/v1/rest/larc/+endpoint.ts index 7b624927..6337c34c 100644 --- a/apps/api/src/routes/v1/rest/larc/+endpoint.ts +++ b/apps/api/src/routes/v1/rest/larc/+endpoint.ts @@ -1,11 +1,11 @@ +import { PrismaClient } from "@libs/db"; import { createHandler } from "@libs/lambda"; -import { load } from "cheerio"; -import { fetch } from "cross-fetch"; import { ZodError } from "zod"; -import { fmtBldg, fmtDays, fmtTime, quarterToLarcSuffix } from "./lib"; import { QuerySchema } from "./schema"; +const prisma = new PrismaClient(); + export const GET = createHandler(async (event, context, res) => { const headers = event.headers; const requestId = context.awsRequestId; @@ -14,55 +14,11 @@ export const GET = createHandler(async (event, context, res) => { try { const { year, quarter } = QuerySchema.parse(query); - // SS10wk does not have LARC sessions apparently - if (quarter === "Summer10wk") return res.createOKResult([], headers, requestId); - - // TODO: move this code to its own scraper, and rewrite this route to fetch - // data from the DB. - - const html = await fetch( - `https://enroll.larc.uci.edu/${year}${quarterToLarcSuffix(quarter)}`, - ).then((response) => response.text()); - - const $ = load(html); - - const larcSections = $(".tutorial-group") - .toArray() - .map((card) => { - const match = $(card) - .find(".card-header") - .text() - .trim() - .match( - /(?[^()]*)( \(same as (?.*)\))? - (.*) \((?.*)\)/, - ); - - const sections = $(card) - .find(".list-group") - .toArray() - .map((group) => { - const rows = $(group).find(".col-lg-4"); - - const [days, time] = $(rows[0]) - .find(".col") - .map((_, col) => $(col).text().trim()); - - const [instructor, building] = $(rows[1]) - .find(".col") - .map((_, col) => $(col).text().trim()); - - return { - days: fmtDays(days), - time: fmtTime(time), - instructor, - bldg: fmtBldg(building), - }; - }); - - return { courseInfo: { ...match?.groups }, sections }; - }); - - return res.createOKResult(larcSections, headers, requestId); + return res.createOKResult( + (await prisma.larcTerm.findFirst({ where: { year, quarter } }))?.courses ?? [], + headers, + requestId, + ); } catch (e) { if (e instanceof ZodError) { const messages = e.issues.map((issue) => issue.message); 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/+endpoint.ts b/apps/api/src/routes/v1/rest/studyRooms/+endpoint.ts new file mode 100644 index 00000000..745c7b90 --- /dev/null +++ b/apps/api/src/routes/v1/rest/studyRooms/+endpoint.ts @@ -0,0 +1,30 @@ +import { createHandler } from "@libs/lambda"; +import { studyLocations } from "libs/uc-irvine-lib/src/spaces"; +import { ZodError } from "zod"; + +import { aggregateStudyRooms } from "./lib"; +import { QuerySchema } from "./schema"; + +export const GET = createHandler(async (event, context, res) => { + const headers = event.headers; + const query = event.queryStringParameters; + const requestId = context.awsRequestId; + try { + const parsedQuery = QuerySchema.parse(query); + if (!studyLocations[parsedQuery.location]) { + return res.createErrorResult(404, `Location ${parsedQuery.location} not found`, requestId); + } + const studyRooms = await aggregateStudyRooms( + parsedQuery.location, + parsedQuery.start, + parsedQuery.end, + ); + return res.createOKResult(studyRooms, headers, requestId); + } catch (e) { + if (e instanceof ZodError) { + const messages = e.issues.map((issue) => issue.message); + return res.createErrorResult(400, messages.join("; "), requestId); + } + return res.createErrorResult(400, e, requestId); + } +}); diff --git a/apps/api/src/routes/v1/rest/studyRooms/lib.ts b/apps/api/src/routes/v1/rest/studyRooms/lib.ts new file mode 100644 index 00000000..822a0dc1 --- /dev/null +++ b/apps/api/src/routes/v1/rest/studyRooms/lib.ts @@ -0,0 +1,57 @@ +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"; + +/** + * Data structure of time slots returned by libs.spaces. + */ +type Slot = { + start: string; + end: string; + itemId: number; + checkSum: string; + className: string; +}; + +/** + * Map time slots to a more readable format. + */ +export function parseTimeSlots(slots: Slot[]): { [id: string]: TimeSlot[] } { + const timeSlots: { [id: string]: TimeSlot[] } = {}; + slots.forEach((slot) => { + const roomId = slot.itemId.toString(); + const [date, start] = slot.start.split(" "); + const [_, end] = slot.end.split(" "); + const timeSlot: TimeSlot = { + date, + start, + end, + booked: !!slot.className && slot.className === "s-lc-eq-checkout", + }; + timeSlots[roomId] ??= []; + timeSlots[roomId].push(timeSlot); + }); + return timeSlots; +} + +/** + * Aggregate study rooms and their time slots into a StudyLocation object. + */ +export async function aggregateStudyRooms( + locationId: string, + start: string, + end: string, +): Promise { + const spaces = await getStudySpaces(studyLocations[locationId].lid, start, end); + const timeSlotsMap = parseTimeSlots(spaces.slots); + return { + id: locationId, + ...studyLocations[locationId], + rooms: Object.entries(timeSlotsMap) + .filter(([id, _]) => studyRooms[id] != null) + .map(([id, timeSlots]) => { + return { ...studyRooms[id], timeSlots }; + }), + }; +} diff --git a/apps/api/src/routes/v1/rest/studyRooms/schema.ts b/apps/api/src/routes/v1/rest/studyRooms/schema.ts new file mode 100644 index 00000000..a17a58a8 --- /dev/null +++ b/apps/api/src/routes/v1/rest/studyRooms/schema.ts @@ -0,0 +1,13 @@ +import { z } from "zod"; + +export const QuerySchema = z.object({ + location: z.string({ required_error: 'Parameter "location" not provided' }), + start: z + .string({ required_error: 'Parameter "start" not provided' }) + .regex(/^\d{4}-\d{2}-\d{2}$/, { message: "Start date must be in YYYY-MM-DD format" }), + end: z + .string({ required_error: 'Parameter "end" not provided' }) + .regex(/^\d{4}-\d{2}-\d{2}$/, { message: "End date must be in YYYY-MM-DD format" }), +}); + +export type Query = z.infer; diff --git a/apps/api/src/routes/v1/rest/studyRooms/{id}/+config.ts b/apps/api/src/routes/v1/rest/studyRooms/{id}/+config.ts new file mode 100644 index 00000000..68864478 --- /dev/null +++ b/apps/api/src/routes/v1/rest/studyRooms/{id}/+config.ts @@ -0,0 +1,11 @@ +import type { ApiPropsOverride } from "@bronya.js/api-construct"; + +import { esbuildOptions, constructs } from "../../../../../../bronya.config"; + +export const overrides: ApiPropsOverride = { + esbuild: esbuildOptions, + constructs: { + functionPlugin: constructs.functionPlugin, + restApiProps: constructs.restApiProps, + }, +}; diff --git a/apps/api/src/routes/v1/rest/studyRooms/{id}/+endpoint.ts b/apps/api/src/routes/v1/rest/studyRooms/{id}/+endpoint.ts new file mode 100644 index 00000000..07a476e2 --- /dev/null +++ b/apps/api/src/routes/v1/rest/studyRooms/{id}/+endpoint.ts @@ -0,0 +1,47 @@ +import { createHandler } from "@libs/lambda"; +import { studyLocations } from "libs/uc-irvine-lib/src/spaces"; +import { ZodError } from "zod"; + +import { aggregateStudyRooms } from "../lib"; + +import { QuerySchema } from "./schema"; + +export const GET = createHandler(async (event, context, res) => { + const headers = event.headers; + const query = event.queryStringParameters; + const requestId = context.awsRequestId; + const { id } = event.pathParameters ?? {}; + try { + switch (id) { + case null: + case undefined: + return res.createErrorResult(400, "Location not provided", requestId); + case "all": { + const parsedQuery = QuerySchema.parse(query); + return res.createOKResult( + await Promise.all( + Object.keys(studyLocations).map(async (locationId) => { + return aggregateStudyRooms(locationId, parsedQuery.start, parsedQuery.end); + }), + ), + headers, + requestId, + ); + } + default: { + if (studyLocations[id]) { + const parsedQuery = QuerySchema.parse(query); + const studyRooms = await aggregateStudyRooms(id, parsedQuery.start, parsedQuery.end); + return res.createOKResult(studyRooms, headers, requestId); + } + return res.createErrorResult(400, `Location ${id} not found`, requestId); + } + } + } catch (e) { + if (e instanceof ZodError) { + const messages = e.issues.map((issue) => issue.message); + return res.createErrorResult(400, messages.join("; "), requestId); + } + return res.createErrorResult(400, e, requestId); + } +}); diff --git a/apps/api/src/routes/v1/rest/studyRooms/{id}/schema.ts b/apps/api/src/routes/v1/rest/studyRooms/{id}/schema.ts new file mode 100644 index 00000000..edc6a372 --- /dev/null +++ b/apps/api/src/routes/v1/rest/studyRooms/{id}/schema.ts @@ -0,0 +1,12 @@ +import { z } from "zod"; + +export const QuerySchema = z.object({ + start: z + .string({ required_error: 'Parameter "start" not provided' }) + .regex(/^\d{4}-\d{2}-\d{2}$/, { message: "Start date must be in YYYY-MM-DD format" }), + end: z + .string({ required_error: 'Parameter "end" not provided' }) + .regex(/^\d{4}-\d{2}-\d{2}$/, { message: "End date must be in YYYY-MM-DD format" }), +}); + +export type Query = z.infer; 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/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 c8f126a6..00000000 --- a/apps/docs/sidebars.js +++ /dev/null @@ -1,48 +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/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 ed75a45d..00000000 Binary files a/apps/docs/static/img/banner.png and /dev/null differ diff --git a/apps/docs/static/img/favicon.png b/apps/docs/static/img/favicon.png deleted file mode 100644 index 0e485225..00000000 Binary files a/apps/docs/static/img/favicon.png and /dev/null differ diff --git a/apps/docs/static/img/icssc.png b/apps/docs/static/img/icssc.png deleted file mode 100644 index 6ab260f9..00000000 Binary files a/apps/docs/static/img/icssc.png and /dev/null differ 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/db/prisma/schema.prisma b/libs/db/prisma/schema.prisma index 8173a725..5afd2fdc 100644 --- a/libs/db/prisma/schema.prisma +++ b/libs/db/prisma/schema.prisma @@ -20,6 +20,11 @@ enum CourseLevel { Graduate } +enum Division { + Undergraduate + Graduate +} + enum Quarter { Fall Winter @@ -112,17 +117,11 @@ model Course { terms String[] } -model Instructor { - ucinetid String @id - name String - shortenedName String - title String - email String - department String - schools String[] - relatedDepartments String[] - courseHistory Json - courses Json @default("[]") +model Degree { + id String @id + name String + division Division + majors Major[] } model GradesInstructor { @@ -169,6 +168,52 @@ model GradesSection { @@unique([year, quarter, sectionCode], name: "idx") } +model Instructor { + ucinetid String @id + name String + shortenedName String + title String + email String + department String + schools String[] + relatedDepartments String[] + courseHistory Json + courses Json @default("[]") +} + +model LarcTerm { + year String + quarter Quarter + courses Json + + @@id([year, quarter]) + @@unique([year, quarter], name: "idx") +} + +model Major { + id String @id + degreeId String + degree Degree @relation(fields: [degreeId], references: [id]) + code String + name String + requirements Json + specializations Specialization[] +} + +model Minor { + id String @id + name String + requirements Json +} + +model Specialization { + id String @id + majorId String + major Major @relation(fields: [majorId], references: [id]) + name String + requirements Json +} + model WebsocEnrollmentHistoryEntry { year String quarter Quarter @@ -269,3 +314,22 @@ model WebsocSection { @@id([year, quarter, sectionCode, timestamp]) @@unique([year, quarter, sectionCode, timestamp], name: "idx") } + +model StudyRoom { + id String @id + name String + capacity Int + location String @default("") + description String @default("") + directions String @default("") + techEnhanced Boolean @default(false) + studyLocationId String + studyLocation StudyLocation @relation(fields: [studyLocationId], references: [id]) +} + +model StudyLocation { + id String @id + lid String + name String + rooms StudyRoom[] +} 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 e527a074..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": { @@ -22,6 +13,12 @@ "require": "./src/registrar/index.ts", "default": "./src/registrar/index.ts" }, + "./spaces": { + "types": "./src/spaces/index.ts", + "import": "./src/spaces/index.ts", + "require": "./src/spaces/index.ts", + "default": "./src/spaces/index.ts" + }, "./websoc": { "types": "./src/websoc/index.ts", "import": "./src/websoc/index.ts", @@ -46,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/spaces/index.ts b/libs/uc-irvine-lib/src/spaces/index.ts new file mode 100644 index 00000000..dc104057 --- /dev/null +++ b/libs/uc-irvine-lib/src/spaces/index.ts @@ -0,0 +1,35 @@ +import fetch from "cross-fetch"; + +const LIB_SPACE_URL = "https://spaces.lib.uci.edu/spaces"; +const LIB_SPACE_AVAILABILITY_URL = "https://spaces.lib.uci.edu/spaces/availability/grid"; + +/** + * Shortened libary names mapped to their IDs used by spaces.lib.uci.edu + * See https://www.lib.uci.edu/ for shortened names + **/ +export const studyLocations: { [id: string]: { name: string; lid: string } } = { + Langson: { name: "Langson Library", lid: "6539" }, + Gateway: { name: "Gateway Study Center", lid: "6579" }, + Science: { name: "Science Library", lid: "6580" }, + MRC: { name: "Multimedia Resources Center", lid: "6581" }, + GML: { name: "Grunigen Medical Library", lid: "12189" }, +}; + +/** + * Make post request used by "https://spaces.lib.uci.edu/spaces" to retrieve room availability. + * + * @param lid - Library ID + * @param start - Date format YYYY-MM-DD + * @param end - Date format YYYY-MM-DD + * @returns {object} JSON response returned by request + */ +export async function getStudySpaces(lid: string, start: string, end: string) { + const headers = { + Referer: `${LIB_SPACE_URL}?lid=${lid}`, + }; + return await fetch(LIB_SPACE_AVAILABILITY_URL, { + method: "POST", + headers: headers, + body: new URLSearchParams({ lid, gid: "0", start, end, pageSize: "18" }), + }).then((res) => res.json()); +} 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 2bb1cbee..803b4637 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", "db:push": "turbo run db:push", "deploy": "turbo run deploy", 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/index.ts b/packages/types/index.ts index deeba13c..3381aa88 100644 --- a/packages/types/index.ts +++ b/packages/types/index.ts @@ -6,5 +6,6 @@ export * from "./types/grades"; export * from "./types/instructor"; export * from "./types/larc"; export * from "./types/response"; +export * from "./types/studyRoom"; export * from "./types/websoc"; export * from "./types/week"; 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/types/types/studyRoom.ts b/packages/types/types/studyRoom.ts new file mode 100644 index 00000000..6ca2181e --- /dev/null +++ b/packages/types/types/studyRoom.ts @@ -0,0 +1,87 @@ +/** + * An object representing a Study Room. + */ +export type StudyRoom = { + /** + * ID of study room used by spaces.lib. + */ + id: string; + /** + * Name of the study room and its room number. + */ + name: string; + /** + * Number of chairs in the study room. + */ + capacity: number; + /** + * Name of study location. + */ + location: string; + /** + * Description of the study room. + */ + description?: string; + /** + * Directions to the study room. + */ + directions?: string; + /** + * Time slots for the study room. + */ + timeSlots?: TimeSlot[]; + /** + * If the study room has TV or other tech enhancements. + */ + techEnhanced?: boolean; +}; + +/** + * An object representing a time slot and avaliability for a study room. + */ +export type TimeSlot = { + /** + * Date of the time slot (YYYY-MM-DD). + */ + date: string; + /** + * Start time of the time slot. + */ + start: string; + /** + * End time of the time slot. + */ + end: string; + /** + * If the time slot is booked. + */ + booked: boolean; +}; + +/** + * An object representing a study location. + */ +export type StudyLocation = { + /** + * ID of the study location using shortened name of the location. + */ + id: string; + /** + * Location ID of the study location used by space.lib. + */ + lid: string; + /** + * Name of the study location. + */ + name: string; + /** + * Rooms in the study location. + */ + rooms: StudyRoom[]; +}; + +/** + * The type of the payload returned on a successful response from querying + * ``/v1/rest/studyRooms/all``. + */ +export type StudyLocations = StudyLocation[]; 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 af964129..8019c470 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,6 +90,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) @@ -120,9 +123,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 @@ -167,61 +167,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': @@ -241,7 +186,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': @@ -250,12 +195,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 @@ -267,47 +212,35 @@ 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: {} - packages/websoc-fuzzy-search: + services/calendar-scraper: dependencies: - base64-arraybuffer: - specifier: 1.0.2 - version: 1.0.2 - pako: - specifier: 2.1.0 - version: 2.1.0 + '@libs/db': + specifier: workspace:^ + version: link:../../libs/db + '@libs/uc-irvine-lib': + specifier: workspace:^ + version: link:../../libs/uc-irvine-lib + '@libs/utils': + specifier: workspace:^ + version: link:../../libs/utils devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ - version: link:../types - '@types/pako': - specifier: 2.0.3 - version: 2.0.3 - '@types/pluralize': - specifier: 0.0.33 - version: 0.0.33 - cross-fetch: - specifier: 4.0.0 - version: 4.0.0 - pluralize: - specifier: 8.0.0 - version: 8.0.0 - tsup: - specifier: 8.0.2 - version: 8.0.2(typescript@5.3.3) - tsx: - specifier: 4.7.1 - version: 4.7.1 + version: link:../../packages/types + esbuild: + specifier: 0.20.1 + version: 0.20.1 - services/calendar-scraper: + services/larc-scraper: dependencies: '@libs/db': specifier: workspace:^ @@ -318,8 +251,14 @@ importers: '@libs/utils': specifier: workspace:^ version: link:../../libs/utils + cheerio: + specifier: 1.0.0-rc.12 + version: 1.0.0-rc.12 + cross-fetch: + specifier: 4.0.0 + version: 4.0.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types esbuild: @@ -341,7 +280,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': @@ -356,6 +295,9 @@ importers: services/websoc-scraper-v2: dependencies: + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types '@libs/db': specifier: workspace:^ version: link:../../libs/db @@ -365,9 +307,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 @@ -404,6 +343,28 @@ importers: specifier: 4.7.1 version: 4.7.1 + tools/degreeworks-scraper: + dependencies: + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types + '@libs/db': + specifier: workspace:^ + version: link:../../libs/db + cross-fetch: + specifier: 4.0.0 + version: 4.0.0 + dotenv: + specifier: 16.4.1 + version: 16.4.1 + jwt-decode: + specifier: 4.0.0 + version: 4.0.0 + devDependencies: + tsx: + specifier: 4.7.0 + version: 4.7.0 + tools/grades-updater: dependencies: '@libs/db': @@ -431,7 +392,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': @@ -474,7 +435,29 @@ importers: specifier: 3.12.0 version: 3.12.0 devDependencies: - '@peterportal-api/types': + '@anteater-api/types': + specifier: workspace:^ + version: link:../../packages/types + esbuild: + specifier: 0.20.1 + version: 0.20.1 + + tools/study-room-scraper: + dependencies: + '@libs/db': + specifier: workspace:^ + version: link:../../libs/db + cheerio: + specifier: ^1.0.0-rc.12 + version: 1.0.0-rc.12 + cross-fetch: + specifier: 4.0.0 + version: 4.0.0 + winston: + specifier: ^3.11.0 + version: 3.11.0 + devDependencies: + '@anteater-api/types': specifier: workspace:^ version: link:../../packages/types esbuild: @@ -488,129 +471,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 @@ -646,31 +506,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: @@ -1378,9851 +1213,4364 @@ 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 + dev: true - /@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 + /@bronya.js/cli@0.11.4: + resolution: {integrity: sha512-0aABMJmIhQiIl6gqn2dcXtQCme5RC3BcN1syDxI72H3+RJrKV7Reusw/R8z5ev9lUKc6kPay+OmD7Ck2z0zYCg==} + engines: {node: '>=18', pnpm: ^8.0.0} + dev: true - /@babel/helper-annotate-as-pure@7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} - engines: {node: '>=6.9.0'} + /@bronya.js/core@0.11.4: + resolution: {integrity: sha512-DCRxoGsE8a63f5G/bslYi7MK3xPO6j70vXrxUEwRq5k2CtT54KcHejySzkSg3eA7FSes5l4K4LZk8yPHGi9TAQ==} + engines: {node: '>=18', pnpm: ^8.0.0} + hasBin: true dependencies: - '@babel/types': 7.22.3 - dev: false + '@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 - /@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 + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true dev: false - /@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 - 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 + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} 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 + /@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: - - supports-color + - '@types/node' + - typescript 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 + /@commitlint/config-conventional@19.0.3: + resolution: {integrity: sha512-vh0L8XeLaEzTe8VCxSd0gAFvfTK0RFolrzw4o431bIuWJfi/yRCHJlsDwus7wW2eJaFFDR0VFXJyjGyDQhi4vA==} + engines: {node: '>=v18'} dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - regexpu-core: 5.3.2 - semver: 6.3.1 + '@commitlint/types': 19.0.3 + conventional-changelog-conventionalcommits: 7.0.2 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/config-validator@19.0.3: + resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + engines: {node: '>=v18'} 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 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-environment-visitor@7.22.1: - resolution: {integrity: sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-function-name@7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.21.9 - '@babel/types': 7.22.3 + '@commitlint/types': 19.0.3 + ajv: 8.12.0 dev: false - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - 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-member-expression-to-functions@7.22.3: - resolution: {integrity: sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==} - 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-imports@7.21.4: - resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} - engines: {node: '>=6.9.0'} + /@commitlint/format@19.0.3: + resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 + '@commitlint/types': 19.0.3 + chalk: 5.3.0 dev: false - /@babel/helper-module-transforms@7.22.1: - resolution: {integrity: sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==} - engines: {node: '>=6.9.0'} + /@commitlint/is-ignored@19.0.3: + resolution: {integrity: sha512-MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==} + 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 + semver: 7.6.0 dev: false - /@babel/helper-optimise-call-expression@7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} - engines: {node: '>=6.9.0'} + /@commitlint/lint@19.0.3: + resolution: {integrity: sha512-uHPyRqIn57iIplYa5xBr6oNu5aPXKGC4WLeuHfqQHclwIqbJ33g3yA5fIA+/NYnp5ZM2EFiujqHFaVUYj6HlKA==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 - 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'} + '@commitlint/is-ignored': 19.0.3 + '@commitlint/parse': 19.0.3 + '@commitlint/rules': 19.0.3 + '@commitlint/types': 19.0.3 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 + /@commitlint/load@19.0.3(@types/node@20.11.24)(typescript@5.3.3): + resolution: {integrity: sha512-18Tk/ZcDFRKIoKfEcl7kC+bYkEQ055iyKmGsYDoYWpKf6FUvBrP9bIWapuy/MB+kYiltmP9ITiUx6UXtqC9IRw==} + engines: {node: '>=v18'} + requiresBuild: true 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 + '@commitlint/config-validator': 19.0.3 + '@commitlint/execute-rule': 19.0.0 + '@commitlint/resolve-extends': 19.0.3 + '@commitlint/types': 19.0.3 + chalk: 5.3.0 + cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.24)(cosmiconfig@8.3.6)(typescript@5.3.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 transitivePeerDependencies: - - supports-color + - '@types/node' + - typescript 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 + /@commitlint/message@19.0.0: + resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} + engines: {node: '>=v18'} dev: false - /@babel/helper-simple-access@7.21.5: - resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} - engines: {node: '>=6.9.0'} + /@commitlint/parse@19.0.3: + resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 + '@commitlint/types': 19.0.3 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 dev: false - /@babel/helper-skip-transparent-expression-wrappers@7.20.0: - resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} - engines: {node: '>=6.9.0'} + /@commitlint/read@19.0.3: + resolution: {integrity: sha512-b5AflTyAXkUx5qKw4TkjjcOccXZHql3JqMi522knTQktq2AubKXFz60Sws+K4FsefwPws6fGz9mqiI/NvsvxFA==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 + '@commitlint/top-level': 19.0.0 + '@commitlint/types': 19.0.3 + git-raw-commits: 4.0.0 + minimist: 1.2.8 dev: false - /@babel/helper-split-export-declaration@7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} + /@commitlint/resolve-extends@19.0.3: + resolution: {integrity: sha512-18BKmta8OC8+Ub+Q3QGM9l27VjQaXobloVXOrMvu8CpEwJYv62vC/t7Ka5kJnsW0tU9q1eMqJFZ/nN9T/cOaIA==} + engines: {node: '>=v18'} 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'} + '@commitlint/config-validator': 19.0.3 + '@commitlint/types': 19.0.3 + global-directory: 4.0.1 + import-meta-resolve: 4.0.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 dev: false - /@babel/helper-wrap-function@7.20.5: - resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} - engines: {node: '>=6.9.0'} + /@commitlint/rules@19.0.3: + resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} + engines: {node: '>=v18'} 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 + '@commitlint/ensure': 19.0.3 + '@commitlint/message': 19.0.0 + '@commitlint/to-lines': 19.0.0 + '@commitlint/types': 19.0.3 + execa: 8.0.1 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 + /@commitlint/to-lines@19.0.0: + resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} + engines: {node: '>=v18'} dev: false - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} - engines: {node: '>=6.9.0'} - requiresBuild: true + /@commitlint/top-level@19.0.0: + resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} + engines: {node: '>=v18'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 + find-up: 7.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 + /@commitlint/types@19.0.3: + resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} + engines: {node: '>=v18'} dependencies: - '@babel/types': 7.22.3 + '@types/conventional-commits-parser': 5.0.0 + chalk: 5.3.0 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 + /@dabh/diagnostics@2.0.3: + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 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 + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true - /@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 + /@esbuild/aix-ppc64@0.20.1: + resolution: {integrity: sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true - /@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 + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@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 + /@esbuild/android-arm64@0.20.1: + resolution: {integrity: sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@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 + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true - /@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 + /@esbuild/android-arm@0.20.1: + resolution: {integrity: sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true - /@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 + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@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 + /@esbuild/android-x64@0.20.1: + resolution: {integrity: sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@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 - dev: false - - /@commitlint/load@19.0.3(@types/node@20.11.24)(typescript@5.3.3): - resolution: {integrity: sha512-18Tk/ZcDFRKIoKfEcl7kC+bYkEQ055iyKmGsYDoYWpKf6FUvBrP9bIWapuy/MB+kYiltmP9ITiUx6UXtqC9IRw==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/execute-rule': 19.0.0 - '@commitlint/resolve-extends': 19.0.3 - '@commitlint/types': 19.0.3 - chalk: 5.3.0 - cosmiconfig: 8.3.6(typescript@5.3.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.24)(cosmiconfig@8.3.6)(typescript@5.3.3) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - transitivePeerDependencies: - - '@types/node' - - typescript - dev: false - - /@commitlint/message@19.0.0: - resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} - engines: {node: '>=v18'} - dev: false - - /@commitlint/parse@19.0.3: - resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 19.0.3 - conventional-changelog-angular: 7.0.0 - conventional-commits-parser: 5.0.0 - dev: false - - /@commitlint/read@19.0.3: - resolution: {integrity: sha512-b5AflTyAXkUx5qKw4TkjjcOccXZHql3JqMi522knTQktq2AubKXFz60Sws+K4FsefwPws6fGz9mqiI/NvsvxFA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/top-level': 19.0.0 - '@commitlint/types': 19.0.3 - git-raw-commits: 4.0.0 - minimist: 1.2.8 - dev: false - - /@commitlint/resolve-extends@19.0.3: - resolution: {integrity: sha512-18BKmta8OC8+Ub+Q3QGM9l27VjQaXobloVXOrMvu8CpEwJYv62vC/t7Ka5kJnsW0tU9q1eMqJFZ/nN9T/cOaIA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/types': 19.0.3 - global-directory: 4.0.1 - import-meta-resolve: 4.0.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - dev: false - - /@commitlint/rules@19.0.3: - resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/ensure': 19.0.3 - '@commitlint/message': 19.0.0 - '@commitlint/to-lines': 19.0.0 - '@commitlint/types': 19.0.3 - execa: 8.0.1 - dev: false - - /@commitlint/to-lines@19.0.0: - resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} - engines: {node: '>=v18'} - dev: false - - /@commitlint/top-level@19.0.0: - resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} - engines: {node: '>=v18'} - dependencies: - find-up: 7.0.0 - dev: false - - /@commitlint/types@19.0.3: - resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} - engines: {node: '>=v18'} - dependencies: - '@types/conventional-commits-parser': 5.0.0 - chalk: 5.3.0 - dev: false - - /@dabh/diagnostics@2.0.3: - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - dependencies: - colorspace: 1.1.4 - enabled: 2.0.0 - 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'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/aix-ppc64@0.20.1: - resolution: {integrity: sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.19.11: - resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.20.1: - resolution: {integrity: sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.19.11: - resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.20.1: - resolution: {integrity: sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.19.11: - resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.20.1: - resolution: {integrity: sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.19.11: - resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.20.1: - resolution: {integrity: sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.19.11: - resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.20.1: - resolution: {integrity: sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.19.11: - resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.20.1: - resolution: {integrity: sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.19.11: - resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.20.1: - resolution: {integrity: sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.19.11: - resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.20.1: - resolution: {integrity: sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.19.11: - resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.20.1: - resolution: {integrity: sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.19.11: - resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.20.1: - resolution: {integrity: sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.19.11: - resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.20.1: - resolution: {integrity: sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.19.11: - resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.20.1: - resolution: {integrity: sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.19.11: - resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.20.1: - resolution: {integrity: sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.19.11: - resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.20.1: - resolution: {integrity: sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.19.11: - resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.20.1: - resolution: {integrity: sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.19.11: - resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.20.1: - resolution: {integrity: sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.19.11: - resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.20.1: - resolution: {integrity: sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.19.11: - resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.20.1: - resolution: {integrity: sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.19.11: - resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.20.1: - resolution: {integrity: sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.19.11: - resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.20.1: - resolution: {integrity: sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.19.11: - resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.20.1: - resolution: {integrity: sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.19.11: - resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.20.1: - resolution: {integrity: sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - dev: false - - /@eslint-community/regexpp@4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: false - - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - /@graphql-tools/load-files@7.0.0(graphql@16.8.1): - resolution: {integrity: sha512-P98amERIwI7FD8Bsq6xUbz9Mj63W8qucfrE/WQjad5jFMZYdFFt46a99FFdfx8S/ZYgpAlj/AZbaTtWLitMgNQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - globby: 11.1.0 - graphql: 16.8.1 - tslib: 2.5.2 - unixify: 1.0.0 - dev: false - - /@graphql-tools/merge@8.4.2(graphql@16.8.1): - resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 - tslib: 2.6.2 - dev: false - - /@graphql-tools/merge@9.0.3(graphql@16.8.1): - resolution: {integrity: sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-tools/utils': 10.1.0(graphql@16.8.1) - graphql: 16.8.1 - tslib: 2.6.2 - dev: false - - /@graphql-tools/schema@9.0.19(graphql@16.8.1): - resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-tools/merge': 8.4.2(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 - tslib: 2.6.2 - value-or-promise: 1.0.12 - dev: false - - /@graphql-tools/utils@10.1.0(graphql@16.8.1): - resolution: {integrity: sha512-wLPqhgeZ9BZJPRoaQbsDN/CtJDPd/L4qmmtPkjI3NuYJ39x+Eqz1Sh34EAGMuDh+xlOHqBwHczkZUpoK9tvzjw==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - cross-inspect: 1.0.0 - dset: 3.1.2 - graphql: 16.8.1 - tslib: 2.6.2 - dev: false - - /@graphql-tools/utils@9.2.1(graphql@16.8.1): - resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - graphql: 16.8.1 - tslib: 2.6.2 - dev: false - - /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - 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'} - dependencies: - '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: false - - /@humanwhocodes/object-schema@2.0.2: - 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 - - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 - - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} - - /@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 - - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - /@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 - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - - /@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==} - dev: false - - /@prisma/client@5.10.2(prisma@5.10.2): - resolution: {integrity: sha512-ef49hzB2yJZCvM5gFHMxSFL9KYrIP9udpT5rYo0CsHD4P9IKj473MbhU1gjKKftiwWBTIyrt9jukprzZXazyag==} - engines: {node: '>=16.13'} - requiresBuild: true - peerDependencies: - prisma: '*' - peerDependenciesMeta: - prisma: - optional: true - dependencies: - prisma: 5.10.2 - dev: false - - /@prisma/debug@5.10.2: - resolution: {integrity: sha512-bkBOmH9dpEBbMKFJj8V+Zp8IZHIBjy3fSyhLhxj4FmKGb/UBSt9doyfA6k1UeUREsMJft7xgPYBbHSOYBr8XCA==} - - /@prisma/engines-version@5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9: - resolution: {integrity: sha512-uCy/++3Jx/O3ufM+qv2H1L4tOemTNqcP/gyEVOlZqTpBvYJUe0tWtW0y3o2Ueq04mll4aM5X3f6ugQftOSLdFQ==} - - /@prisma/engines@5.10.2: - resolution: {integrity: sha512-HkSJvix6PW8YqEEt3zHfCYYJY69CXsNdhU+wna+4Y7EZ+AwzeupMnUThmvaDA7uqswiHkgm5/SZ6/4CStjaGmw==} - requiresBuild: true - dependencies: - '@prisma/debug': 5.10.2 - '@prisma/engines-version': 5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9 - '@prisma/fetch-engine': 5.10.2 - '@prisma/get-platform': 5.10.2 - - /@prisma/fetch-engine@5.10.2: - resolution: {integrity: sha512-dSmXcqSt6DpTmMaLQ9K8ZKzVAMH3qwGCmYEZr/uVnzVhxRJ1EbT/w2MMwIdBNq1zT69Rvh0h75WMIi0mrIw7Hg==} - dependencies: - '@prisma/debug': 5.10.2 - '@prisma/engines-version': 5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9 - '@prisma/get-platform': 5.10.2 - - /@prisma/get-platform@5.10.2: - resolution: {integrity: sha512-nqXP6vHiY2PIsebBAuDeWiUYg8h8mfjBckHh6Jezuwej0QJNnjDiOq30uesmg+JXxGk99nqyG3B7wpcOODzXvg==} - dependencies: - '@prisma/debug': 5.10.2 - - /@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584: - resolution: {integrity: sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA==} - dev: false - - /@protobufjs/aspromise@1.1.2: - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - dev: false - - /@protobufjs/base64@1.1.2: - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - dev: false - - /@protobufjs/codegen@2.0.4: - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - dev: false - - /@protobufjs/eventemitter@1.1.0: - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - dev: false - - /@protobufjs/fetch@1.1.0: - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - dev: false - - /@protobufjs/float@1.0.2: - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - dev: false - - /@protobufjs/inquire@1.1.0: - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - dev: false - - /@protobufjs/path@1.1.2: - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - dev: false - - /@protobufjs/pool@1.1.0: - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - dev: false - - /@protobufjs/utf8@1.1.0: - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - dev: false - - /@rollup/rollup-android-arm-eabi@4.6.1: - resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-android-arm64@4.6.1: - resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.6.1: - resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.6.1: - resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.6.1: - resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.6.1: - resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.6.1: - resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.6.1: - resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.6.1: - resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.6.1: - resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.6.1: - resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.6.1: - resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} - cpu: [x64] - os: [win32] - requiresBuild: true - 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'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/config-resolver@2.1.5: - resolution: {integrity: sha512-LcBB5JQC3Tx2ZExIJzfvWaajhFIwHrUNQeqxhred2r5nnqrdly9uoCrvM1sxOOdghYuWWm2Kr8tBCDOmxsgeTA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.2.5 - '@smithy/types': 2.11.0 - '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.4 - tslib: 2.6.2 - dev: false - - /@smithy/core@1.3.7: - resolution: {integrity: sha512-zHrrstOO78g+/rOJoHi4j3mGUBtsljRhcKNzloWPv1XIwgcFUi+F1YFKr2qPQ3z7Ls5dNc4L2SPrVarNFIQqog==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-endpoint': 2.4.6 - '@smithy/middleware-retry': 2.1.6 - '@smithy/middleware-serde': 2.2.1 - '@smithy/protocol-http': 3.2.2 - '@smithy/smithy-client': 2.4.4 - '@smithy/types': 2.11.0 - '@smithy/util-middleware': 2.1.4 - tslib: 2.6.2 - dev: false - - /@smithy/credential-provider-imds@2.2.6: - resolution: {integrity: sha512-+xQe4Pite0kdk9qn0Vyw5BRVh0iSlj+T4TEKRXr4E1wZKtVgIzGlkCrfICSjiPVFkPxk4jMpVboMYdEiiA88/w==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.2.5 - '@smithy/property-provider': 2.1.4 - '@smithy/types': 2.11.0 - '@smithy/url-parser': 2.1.4 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-codec@2.1.4: - resolution: {integrity: sha512-UkiieTztP7adg8EuqZvB0Y4LewdleZCJU7Kgt9RDutMsRYqO32fMpWeQHeTHaIMosmzcRZUykMRrhwGJe9mP3A==} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.11.0 - '@smithy/util-hex-encoding': 2.1.1 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-browser@2.1.4: - resolution: {integrity: sha512-K0SyvrUu/vARKzNW+Wp9HImiC/cJ6K88/n7FTH1slY+MErdKoiSbRLaXbJ9qD6x1Hu28cplHMlhADwZelUx/Ww==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-serde-universal': 2.1.4 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-config-resolver@2.1.4: - resolution: {integrity: sha512-FH+2AwOwZ0kHPB9sciWJtUqx81V4vizfT3P6T9eslmIC2hi8ch/KFvQlF7jDmwR1aLlPlq6qqLKLqzK/71Ki4A==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-node@2.1.4: - resolution: {integrity: sha512-gsc5ZTvVcB9sleLQzsK/rOhgn52+AAsmhEr41WDwAcctccBjh429+b8gT9t+SU8QyajypfsLOZfJQu0+zE515Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-serde-universal': 2.1.4 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-universal@2.1.4: - resolution: {integrity: sha512-NKLAsYnZA5s+ntipJRKo1RrRbhYHrsEnmiUoz0EhVYrAih+UELY9sKR+A1ujGaFm3nKDs5fPfiozC2wpXq2zUA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-codec': 2.1.4 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/fetch-http-handler@2.4.4: - resolution: {integrity: sha512-DSUtmsnIx26tPuyyrK49dk2DAhPgEw6xRW7V62nMHIB5dk3NqhGnwcKO2fMdt/l3NUVgia34ZsSJA8bD+3nh7g==} - dependencies: - '@smithy/protocol-http': 3.2.2 - '@smithy/querystring-builder': 2.1.4 - '@smithy/types': 2.11.0 - '@smithy/util-base64': 2.2.0 - tslib: 2.6.2 - dev: false - - /@smithy/hash-node@2.1.4: - resolution: {integrity: sha512-uvCcpDLXaTTL0X/9ezF8T8sS77UglTfZVQaUOBiCvR0QydeSyio3t0Hj3QooVdyFsKTubR8gCk/ubLk3vAyDng==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - '@smithy/util-buffer-from': 2.1.1 - '@smithy/util-utf8': 2.2.0 - tslib: 2.6.2 - dev: false - - /@smithy/invalid-dependency@2.1.4: - resolution: {integrity: sha512-QzlNBl6jt3nb9jNnE51wTegReVvUdozyMMrFEyb/rc6AzPID1O+qMJYjAAoNw098y0CZVfCpEnoK2+mfBOd8XA==} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/is-array-buffer@2.1.1: - resolution: {integrity: sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/middleware-content-length@2.1.4: - resolution: {integrity: sha512-C6VRwfcr0w9qRFhDGCpWMVhlEIBFlmlPRP1aX9Cv9xDj9SUwlDrNvoV1oP1vjRYuLxCDgovBBynCwwcluS2wLw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/protocol-http': 3.2.2 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-endpoint@2.4.6: - resolution: {integrity: sha512-AsXtUXHPOAS0EGZUSFOsVJvc7p0KL29PGkLxLfycPOcFVLru/oinYB6yvyL73ZZPX2OB8sMYUMrj7eH2kI7V/w==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-serde': 2.2.1 - '@smithy/node-config-provider': 2.2.5 - '@smithy/shared-ini-file-loader': 2.3.5 - '@smithy/types': 2.11.0 - '@smithy/url-parser': 2.1.4 - '@smithy/util-middleware': 2.1.4 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-retry@2.1.6: - resolution: {integrity: sha512-khpSV0NxqMHfa06kfG4WYv+978sVvfTFmn0hIFKKwOXtIxyYtPKiQWFT4nnwZD07fGdYGbtCBu3YALc8SsA5mA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.2.5 - '@smithy/protocol-http': 3.2.2 - '@smithy/service-error-classification': 2.1.4 - '@smithy/smithy-client': 2.4.4 - '@smithy/types': 2.11.0 - '@smithy/util-middleware': 2.1.4 - '@smithy/util-retry': 2.1.4 - tslib: 2.6.2 - uuid: 8.3.2 - dev: false - - /@smithy/middleware-serde@2.2.1: - resolution: {integrity: sha512-VAWRWqnNjgccebndpyK94om4ZTYzXLQxUmNCXYzM/3O9MTfQjTNBgtFtQwyIIez6z7LWcCsXmnKVIOE9mLqAHQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-stack@2.1.4: - resolution: {integrity: sha512-Qqs2ba8Ax1rGKOSGJS2JN23fhhox2WMdRuzx0NYHtXzhxbJOIMmz9uQY6Hf4PY8FPteBPp1+h0j5Fmr+oW12sg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/node-config-provider@2.2.5: - resolution: {integrity: sha512-CxPf2CXhjO79IypHJLBATB66Dw6suvr1Yc2ccY39hpR6wdse3pZ3E8RF83SODiNH0Wjmkd0ze4OF8exugEixgA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/property-provider': 2.1.4 - '@smithy/shared-ini-file-loader': 2.3.5 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/node-http-handler@2.4.2: - resolution: {integrity: sha512-yrj3c1g145uiK5io+1UPbJAHo8BSGORkBzrmzvAsOmBKb+1p3jmM8ZwNLDH/HTTxVLm9iM5rMszx+iAh1HUC4Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/abort-controller': 2.1.4 - '@smithy/protocol-http': 3.2.2 - '@smithy/querystring-builder': 2.1.4 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/property-provider@2.1.4: - resolution: {integrity: sha512-nWaY/MImj1BiXZ9WY65h45dcxOx8pl06KYoHxwojDxDL+Q9yLU1YnZpgv8zsHhEftlj9KhePENjQTlNowWVyug==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/protocol-http@3.2.2: - resolution: {integrity: sha512-xYBlllOQcOuLoxzhF2u8kRHhIFGQpDeTQj/dBSnw4kfI29WMKL5RnW1m9YjnJAJ49miuIvrkJR+gW5bCQ+Mchw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/querystring-builder@2.1.4: - resolution: {integrity: sha512-LXSL0J/nRWvGT+jIj+Fip3j0J1ZmHkUyBFRzg/4SmPNCLeDrtVu7ptKOnTboPsFZu5BxmpYok3kJuQzzRdrhbw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - '@smithy/util-uri-escape': 2.1.1 - tslib: 2.6.2 - dev: false - - /@smithy/querystring-parser@2.1.4: - resolution: {integrity: sha512-U2b8olKXgZAs0eRo7Op11jTNmmcC/sqYmsA7vN6A+jkGnDvJlEl7AetUegbBzU8q3D6WzC5rhR/joIy8tXPzIg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/service-error-classification@2.1.4: - resolution: {integrity: sha512-JW2Hthy21evnvDmYYk1kItOmbp3X5XI5iqorXgFEunb6hQfSDZ7O1g0Clyxg7k/Pcr9pfLk5xDIR2To/IohlsQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - dev: false - - /@smithy/shared-ini-file-loader@2.3.5: - resolution: {integrity: sha512-oI99+hOvsM8oAJtxAGmoL/YCcGXtbP0fjPseYGaNmJ4X5xOFTer0KPk7AIH3AL6c5AlYErivEi1X/X78HgTVIw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/signature-v4@2.1.4: - resolution: {integrity: sha512-gnu9gCn0qQ8IdhNjs6o3QVCXzUs33znSDYwVMWo3nX4dM6j7z9u6FC302ShYyVWfO4MkVMuGCCJ6nl3PcH7V1Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-codec': 2.1.4 - '@smithy/is-array-buffer': 2.1.1 - '@smithy/types': 2.11.0 - '@smithy/util-hex-encoding': 2.1.1 - '@smithy/util-middleware': 2.1.4 - '@smithy/util-uri-escape': 2.1.1 - '@smithy/util-utf8': 2.2.0 - tslib: 2.6.2 - dev: false - - /@smithy/smithy-client@2.4.4: - resolution: {integrity: sha512-SNE17wjycPZIJ2P5sv6wMTteV/vQVPdaqQkoK1KeGoWHXx79t3iLhQXj1uqRdlkMUS9pXJrLOAS+VvUSOYwQKw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-endpoint': 2.4.6 - '@smithy/middleware-stack': 2.1.4 - '@smithy/protocol-http': 3.2.2 - '@smithy/types': 2.11.0 - '@smithy/util-stream': 2.1.4 - tslib: 2.6.2 - dev: false - - /@smithy/types@2.11.0: - resolution: {integrity: sha512-AR0SXO7FuAskfNhyGfSTThpLRntDI5bOrU0xrpVYU0rZyjl3LBXInZFMTP/NNSd7IS6Ksdtar0QvnrPRIhVrLQ==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/url-parser@2.1.4: - resolution: {integrity: sha512-1hTy6UYRYqOZlHKH2/2NzdNQ4NNmW2Lp0sYYvztKy+dEQuLvZL9w88zCzFQqqFer3DMcscYOshImxkJTGdV+rg==} - dependencies: - '@smithy/querystring-parser': 2.1.4 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-base64@2.1.1: - resolution: {integrity: sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.1.1 - tslib: 2.6.2 - dev: false - - /@smithy/util-base64@2.2.0: - resolution: {integrity: sha512-RiQI/Txu0SxCR38Ky5BMEVaFfkNTBjpbxlr2UhhxggSmnsHDQPZJWMtPoXs7TWZaseslIlAWMiHmqRT3AV/P2w==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.1.1 - '@smithy/util-utf8': 2.2.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-body-length-browser@2.1.1: - resolution: {integrity: sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-body-length-node@2.2.1: - resolution: {integrity: sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-buffer-from@2.1.1: - resolution: {integrity: sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/is-array-buffer': 2.1.1 - tslib: 2.6.2 - dev: false - - /@smithy/util-config-provider@2.2.1: - resolution: {integrity: sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-defaults-mode-browser@2.1.6: - resolution: {integrity: sha512-lM2JMYCilrejfGf8WWnVfrKly3vf+mc5x9TrTpT++qIKP452uWfLqlaUxbz1TkSfhqm8RjrlY22589B9aI8A9w==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/property-provider': 2.1.4 - '@smithy/smithy-client': 2.4.4 - '@smithy/types': 2.11.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-defaults-mode-node@2.2.6: - resolution: {integrity: sha512-UmUbPHbkBJCXRFbq+FPLpVwiFPHj1oPWXJS2f2sy23PtXM94c9X5EceI6JKuKdBty+tzhrAs5JbmPM/HvmDB8Q==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/config-resolver': 2.1.5 - '@smithy/credential-provider-imds': 2.2.6 - '@smithy/node-config-provider': 2.2.5 - '@smithy/property-provider': 2.1.4 - '@smithy/smithy-client': 2.4.4 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-endpoints@1.1.5: - resolution: {integrity: sha512-tgDpaUNsUtRvNiBulKU1VnpoXU1GINMfZZXunRhUXOTBEAufG1Wp79uDXLau2gg1RZ4dpAR6lXCkrmddihCGUg==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.2.5 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-hex-encoding@2.1.1: - resolution: {integrity: sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-middleware@2.1.4: - resolution: {integrity: sha512-5yYNOgCN0DL0OplME0pthoUR/sCfipnROkbTO7m872o0GHCVNJj5xOFJ143rvHNA54+pIPMLum4z2DhPC2pVGA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-retry@2.1.4: - resolution: {integrity: sha512-JRZwhA3fhkdenSEYIWatC8oLwt4Bdf2LhHbNQApqb7yFoIGMl4twcYI3BcJZ7YIBZrACA9jGveW6tuCd836XzQ==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/service-error-classification': 2.1.4 - '@smithy/types': 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-stream@2.1.4: - resolution: {integrity: sha512-CiWaFPXstoR7v/PGHddFckovkhJb28wgQR7LwIt6RsQCJeRIHvUTVWhXw/Pco6Jm6nz/vfzN9FFdj/JN7RTkxQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/fetch-http-handler': 2.4.4 - '@smithy/node-http-handler': 2.4.2 - '@smithy/types': 2.11.0 - '@smithy/util-base64': 2.2.0 - '@smithy/util-buffer-from': 2.1.1 - '@smithy/util-hex-encoding': 2.1.1 - '@smithy/util-utf8': 2.2.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-uri-escape@2.1.1: - resolution: {integrity: sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-utf8@2.1.1: - resolution: {integrity: sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.1.1 - tslib: 2.6.2 - dev: false - - /@smithy/util-utf8@2.2.0: - resolution: {integrity: sha512-hBsKr5BqrDrKS8qy+YcV7/htmMGxriA1PREOf/8AGBhHIZnfilVv1Waf1OyKhSbFW15U/8+gcMUQ9/Kk5qwpHQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.1.1 - tslib: 2.6.2 - dev: false - - /@smithy/util-waiter@2.1.3: - resolution: {integrity: sha512-3R0wNFAQQoH9e4m+bVLDYNOst2qNxtxFgq03WoNHWTBOqQT3jFnOBRj1W51Rf563xDA5kwqjziksxn6RKkHB+Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/abort-controller': 2.1.4 - '@smithy/types': 2.11.0 - 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 - - /@types/aws-lambda@8.10.135: - resolution: {integrity: sha512-kD3aDbS5la1LcS89a4bJTLVSJI5euO2fx3euZTge7SbArH7+kcoLS+lK87cdI5GCEfiBQSio5gz546N0FhMmjg==} - dev: true - - /@types/body-parser@1.19.2: - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} - dependencies: - '@types/connect': 3.4.35 - '@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: - '@types/node': 20.11.24 - dev: false - - /@types/conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} - dependencies: - '@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: - '@types/node': 20.11.24 - '@types/qs': 6.9.7 - '@types/range-parser': 1.2.4 - '@types/send': 0.17.1 - dev: false - - /@types/express@4.17.17: - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} - dependencies: - '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.35 - '@types/qs': 6.9.7 - '@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==} - - /@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 - - /@types/long@4.0.2: - 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 - - /@types/mime@3.0.1: - resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - dev: false - - /@types/node-fetch@2.6.4: - resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} - dependencies: - '@types/node': 20.11.24 - 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: - undici-types: 5.26.5 - - /@types/pako@2.0.3: - 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 - - /@types/range-parser@1.2.4: - 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 - - /@types/send@0.17.1: - resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} - dependencies: - '@types/mime': 1.3.2 - '@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: - '@types/mime': 3.0.1 - '@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} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.1.1 - '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.1 - debug: 4.3.4 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.2.4 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 7.1.1 - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.1 - debug: 4.3.4 - eslint: 8.57.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/scope-manager@7.1.1: - resolution: {integrity: sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/visitor-keys': 7.1.1 - dev: false - - /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) - debug: 4.3.4 - eslint: 8.57.0 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/types@7.1.1: - resolution: {integrity: sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: false - - /@typescript-eslint/typescript-estree@7.1.1(typescript@5.3.3): - resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/visitor-keys': 7.1.1 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.1.1 - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) - eslint: 8.57.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - - /@typescript-eslint/visitor-keys@7.1.1: - resolution: {integrity: sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 7.1.1 - eslint-visitor-keys: 3.4.3 - dev: false - - /@ungap/structured-clone@1.2.0: - 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 - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: false - - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - dependencies: - 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==} - peerDependencies: - ajv: ^6.9.1 - dependencies: - ajv: 6.12.6 - - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - dependencies: - ajv: 8.12.0 - fast-deep-equal: 3.1.3 - dev: false - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - 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'} - dependencies: - type-fest: 0.21.3 - dev: false - - /ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} - engines: {node: '>=14.16'} - dependencies: - 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'} - dev: false - - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: false - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: false - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: false - - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: false - - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - 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 - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: false - - /arktype@1.0.16-alpha: - resolution: {integrity: sha512-k+poMKZ11h9iaB389WICNt8m/y2BtDCwe+kAg5BKklYqagKnFZOOOKwgdAxdDpKtU8ZYUedq7abqi9F+CEgnWA==} - requiresBuild: true - dev: false - - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 - dev: false - - /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 - - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - dev: false - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.2 - dev: false - - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - dev: false - - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - dev: false - - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - 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: - retry: 0.13.1 - dev: false - - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: false - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - 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'} - dev: false - - /aws-cdk-lib@2.131.0(constructs@10.2.69): - resolution: {integrity: sha512-9XLgiTgY+q0S3K93VPeJO0chIN8BZwZ3aSrILvF868Dz+0NTNrD2m5M0xGK5Rw0uoJS+N+DvGaz/2hLAiVqcBw==} - engines: {node: '>= 14.15.0'} - peerDependencies: - constructs: ^10.0.0 - dependencies: - '@aws-cdk/asset-awscli-v1': 2.2.202 - '@aws-cdk/asset-kubectl-v20': 2.1.2 - '@aws-cdk/asset-node-proxy-agent-v6': 2.0.1 - constructs: 10.2.69 - bundledDependencies: - - '@balena/dockerignore' - - case - - fs-extra - - ignore - - jsonschema - - minimatch - - punycode - - semver - - table - - yaml - - mime-types - - /aws-cdk@2.131.0: - resolution: {integrity: sha512-ji+MwGFGC88HE/EqV6/VARBp5mu3nXIDa/GYwtGycJqu6WqXhNZXWeDH0JsWaY6+BSUdpY6pr6KWpV+MDyVkDg==} - engines: {node: '>= 14.15.0'} - hasBin: true - optionalDependencies: - 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'} - dev: false - - /base64-js@1.5.1: - 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'} - - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - - /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - 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 - - /bowser@2.11.0: - 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: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: false - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - 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: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /bundle-require@4.0.1(esbuild@0.19.11): - resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - dependencies: - esbuild: 0.19.11 - 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'} - - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - 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'} - dev: false - - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - 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'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: false - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: false - - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - 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 - - /cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - dependencies: - boolbase: 1.0.0 - css-select: 5.1.0 - css-what: 6.1.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - dev: false - - /cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.1.0 - htmlparser2: 8.0.2 - parse5: 7.1.2 - parse5-htmlparser2-tree-adapter: 7.0.0 - dev: false - - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - 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 - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: false - - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - restore-cursor: 4.0.0 - dev: false - - /cli-spinners@2.9.0: - resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} - 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'} - dependencies: - slice-ansi: 5.0.0 - string-width: 7.0.0 - dev: false - - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: false - - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - 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: - color-name: 1.1.3 - dev: false - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: false - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: false - - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: false - - /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - dependencies: - color-convert: 1.9.3 - 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 - - /colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} - dependencies: - color: 3.2.1 - 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'} - dependencies: - 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'} - dev: false - - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - /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'} - hasBin: true - dependencies: - cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@20.11.24)(typescript@5.3.3) - dedent: 0.7.0 - detect-indent: 6.1.0 - find-node-modules: 2.1.3 - find-root: 1.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - inquirer: 8.2.5 - is-utf8: 0.2.1 - lodash: 4.17.21 - minimist: 1.2.7 - strip-bom: 4.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - '@types/node' - - 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: - array-ify: 1.0.0 - 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} - dev: true - - /constructs@10.2.69: - 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'} - dependencies: - safe-buffer: 5.2.1 - - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - /conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} - dependencies: - compare-func: 2.0.0 - dev: false - - /conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} - dependencies: - compare-func: 2.0.0 - dev: false - - /conventional-commit-types@3.0.0: - resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} - dev: false - - /conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - 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 - - /cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.24)(cosmiconfig@8.3.6)(typescript@5.3.3): - resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} - engines: {node: '>=v16'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=8.2' - typescript: '>=4' - dependencies: - '@types/node': 20.11.24 - cosmiconfig: 8.3.6(typescript@5.3.3) - jiti: 1.20.0 - 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'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - 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: - node-fetch: 2.6.12 - transitivePeerDependencies: - - encoding - - /cross-inspect@1.0.0: - resolution: {integrity: sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==} - engines: {node: '>=16.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - 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: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 - dev: false + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /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 + /@esbuild/darwin-arm64@0.20.1: + resolution: {integrity: sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: false + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: false + /@esbuild/darwin-x64@0.20.1: + resolution: {integrity: sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /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 + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - /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 + /@esbuild/freebsd-arm64@0.20.1: + resolution: {integrity: sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - /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 + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - dependencies: - css-tree: 1.1.3 - dev: false + /@esbuild/freebsd-x64@0.20.1: + resolution: {integrity: sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /csv-parse@5.5.5: - resolution: {integrity: sha512-erCk7tyU3yLWAhk6wvKxnyPtftuy/6Ak622gOO7BCJ05+TYffnPCJF905wmOQm+BpkX54OdAl8pveJwUdpnCXQ==} - dev: false + /@esbuild/linux-arm64@0.20.1: + resolution: {integrity: sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /csv-stringify@6.4.6: - resolution: {integrity: sha512-h2V2XZ3uOTLilF5dPIptgUfN/o2ia/80Ie0Lly18LAnw5s8Eb7kt8rfxSUy24AztJZas9f6DPZpVlzDUtFt/ag==} - dev: false + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - /cz-conventional-changelog@3.3.0(@types/node@20.11.24)(typescript@5.3.3): - resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} - engines: {node: '>= 10'} - dependencies: - chalk: 2.4.2 - commitizen: 4.3.0(@types/node@20.11.24)(typescript@5.3.3) - conventional-commit-types: 3.0.0 - lodash.map: 4.6.0 - longest: 2.0.1 - word-wrap: 1.2.3 - optionalDependencies: - '@commitlint/load': 19.0.3(@types/node@20.11.24)(typescript@5.3.3) - transitivePeerDependencies: - - '@types/node' - - typescript - dev: false + /@esbuild/linux-arm@0.20.1: + resolution: {integrity: sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - /dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} - dev: false + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 + /@esbuild/linux-ia32@0.20.1: + resolution: {integrity: sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: false + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 + /@esbuild/linux-loong64@0.20.1: + resolution: {integrity: sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /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 + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: false + /@esbuild/linux-mips64el@0.20.1: + resolution: {integrity: sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: false + /@esbuild/linux-ppc64@0.20.1: + resolution: {integrity: sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: false + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - dependencies: - execa: 5.1.1 - dev: false + /@esbuild/linux-riscv64@0.20.1: + resolution: {integrity: sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: false + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - /defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: false + /@esbuild/linux-s390x@0.20.1: + resolution: {integrity: sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false + /@esbuild/linux-x64@0.20.1: + resolution: {integrity: sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: false + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - /defu@6.1.2: - resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + /@esbuild/netbsd-x64@0.20.1: + resolution: {integrity: sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - /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 + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false + /@esbuild/openbsd-x64@0.20.1: + resolution: {integrity: sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: false + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + /@esbuild/sunos-x64@0.20.1: + resolution: {integrity: sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /detab@2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} - dependencies: - repeat-string: 1.6.1 - dev: false + /@esbuild/win32-arm64@0.20.1: + resolution: {integrity: sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: false + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: false + /@esbuild/win32-ia32@0.20.1: + resolution: {integrity: sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true - /detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - dev: false + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /detect-newline@4.0.0: - resolution: {integrity: sha512-1aXUEPdfGdzVPFpzGJJNgq9o81bGg1s09uxTWsqBlo9PI332uyJRQq13+LK/UN4JfxJbFdCXonUFQ9R/p7yCtw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + /@esbuild/win32-x64@0.20.1: + resolution: {integrity: sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 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 + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: false - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - address: 1.2.2 + ajv: 6.12.6 debug: 4.3.4 + espree: 9.6.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: false - /devmoji@2.3.0: - resolution: {integrity: sha512-ErQdYUsE7tKxqDzQzRos6fKWaRIFUOJvMkQODq9iYDI3o5X6nxD78XEdGNYaW5AaJW4uxj+XQTkCuJkV86Qg6g==} - hasBin: true - dependencies: - chalk: 4.1.2 - commander: 7.2.0 - ts-interface-checker: 1.0.0 + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + /@graphql-tools/load-files@7.0.0(graphql@16.8.1): + resolution: {integrity: sha512-P98amERIwI7FD8Bsq6xUbz9Mj63W8qucfrE/WQjad5jFMZYdFFt46a99FFdfx8S/ZYgpAlj/AZbaTtWLitMgNQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - path-type: 4.0.0 - - /discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.5.2 + unixify: 1.0.0 dev: false - /dns-equal@1.0.0: - resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + /@graphql-tools/merge@8.4.2(graphql@16.8.1): + resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: false - /dns-packet@5.6.0: - resolution: {integrity: sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==} - engines: {node: '>=6'} + /@graphql-tools/merge@9.0.3(graphql@16.8.1): + resolution: {integrity: sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@leichtgewicht/ip-codec': 2.0.4 + '@graphql-tools/utils': 10.1.0(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: false - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + /@graphql-tools/schema@9.0.19(graphql@16.8.1): + resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - esutils: 2.0.3 + '@graphql-tools/merge': 8.4.2(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 dev: false - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + /@graphql-tools/utils@10.1.0(graphql@16.8.1): + resolution: {integrity: sha512-wLPqhgeZ9BZJPRoaQbsDN/CtJDPd/L4qmmtPkjI3NuYJ39x+Eqz1Sh34EAGMuDh+xlOHqBwHczkZUpoK9tvzjw==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - esutils: 2.0.3 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + cross-inspect: 1.0.0 + dset: 3.1.2 + graphql: 16.8.1 + tslib: 2.6.2 dev: false - /docusaurus-plugin-dotenv@1.0.1(webpack@5.84.1): - resolution: {integrity: sha512-qKlWuBd6UoyB0d5ExH9waYGPoy1SnWgV8s8VLg12ydcfxquazXJngV0N5VAX/HuFiZmsPD3L4TYUKxdHWJTeEw==} + /@graphql-tools/utils@9.2.1(graphql@16.8.1): + resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - dotenv-webpack: 7.0.2(webpack@5.84.1) - transitivePeerDependencies: - - webpack + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: false - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - utila: 0.4.0 + graphql: 16.8.1 dev: false - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color dev: false - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} dev: false - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: false - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 + /@josephg/resolvable@1.0.1: + resolution: {integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==} dev: false - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: - domelementtype: 2.3.0 + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.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 + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} dev: false - /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 dev: false - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: false - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + /@prisma/client@5.10.2(prisma@5.10.2): + resolution: {integrity: sha512-ef49hzB2yJZCvM5gFHMxSFL9KYrIP9udpT5rYo0CsHD4P9IKj473MbhU1gjKKftiwWBTIyrt9jukprzZXazyag==} + engines: {node: '>=16.13'} + requiresBuild: true + peerDependencies: + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true dependencies: - is-obj: 2.0.0 + prisma: 5.10.2 dev: false - /dotenv-cli@7.3.0: - resolution: {integrity: sha512-314CA4TyK34YEJ6ntBf80eUY+t1XaFLyem1k9P0sX1gn30qThZ5qZr/ZwE318gEnzyYP9yj9HJk6SqwE0upkfw==} - hasBin: true - dependencies: - cross-spawn: 7.0.3 - dotenv: 16.4.5 - dotenv-expand: 10.0.0 - minimist: 1.2.8 - dev: true + /@prisma/debug@5.10.2: + resolution: {integrity: sha512-bkBOmH9dpEBbMKFJj8V+Zp8IZHIBjy3fSyhLhxj4FmKGb/UBSt9doyfA6k1UeUREsMJft7xgPYBbHSOYBr8XCA==} - /dotenv-defaults@2.0.2: - resolution: {integrity: sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==} + /@prisma/engines-version@5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9: + resolution: {integrity: sha512-uCy/++3Jx/O3ufM+qv2H1L4tOemTNqcP/gyEVOlZqTpBvYJUe0tWtW0y3o2Ueq04mll4aM5X3f6ugQftOSLdFQ==} + + /@prisma/engines@5.10.2: + resolution: {integrity: sha512-HkSJvix6PW8YqEEt3zHfCYYJY69CXsNdhU+wna+4Y7EZ+AwzeupMnUThmvaDA7uqswiHkgm5/SZ6/4CStjaGmw==} + requiresBuild: true dependencies: - dotenv: 8.6.0 - dev: false + '@prisma/debug': 5.10.2 + '@prisma/engines-version': 5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9 + '@prisma/fetch-engine': 5.10.2 + '@prisma/get-platform': 5.10.2 - /dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} - dev: true + /@prisma/fetch-engine@5.10.2: + resolution: {integrity: sha512-dSmXcqSt6DpTmMaLQ9K8ZKzVAMH3qwGCmYEZr/uVnzVhxRJ1EbT/w2MMwIdBNq1zT69Rvh0h75WMIi0mrIw7Hg==} + dependencies: + '@prisma/debug': 5.10.2 + '@prisma/engines-version': 5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9 + '@prisma/get-platform': 5.10.2 - /dotenv-webpack@7.0.2(webpack@5.84.1): - resolution: {integrity: sha512-RY+/5uM/XY4bGtih9f9ic8hlrUDxVcZZBPWlnX/aHhaKxcVVX9SH/5VH7CSmvVo9GL6PKvQOA0X1bc552rnatQ==} - engines: {node: '>=10'} - peerDependencies: - webpack: ^4 || ^5 + /@prisma/get-platform@5.10.2: + resolution: {integrity: sha512-nqXP6vHiY2PIsebBAuDeWiUYg8h8mfjBckHh6Jezuwej0QJNnjDiOq30uesmg+JXxGk99nqyG3B7wpcOODzXvg==} dependencies: - dotenv-defaults: 2.0.2 - webpack: 5.84.1 + '@prisma/debug': 5.10.2 + + /@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584: + resolution: {integrity: sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA==} dev: false - /dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} dev: false - /dset@3.1.2: - resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} - engines: {node: '>=4'} + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} dev: false - /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 dev: false - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} dev: false - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} dev: false - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false - /electron-to-chromium@1.4.411: - resolution: {integrity: sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==} + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false - /emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + /@smithy/abort-controller@2.1.4: + resolution: {integrity: sha512-66HO817oIZ2otLIqy06R5muapqZjkgF1jfU0wyNko8cuqZNu8nbS9ljlhcRYw/M/uWRJzB9ih81DLSHhYbBLlQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + /@smithy/config-resolver@2.1.5: + resolution: {integrity: sha512-LcBB5JQC3Tx2ZExIJzfvWaajhFIwHrUNQeqxhred2r5nnqrdly9uoCrvM1sxOOdghYuWWm2Kr8tBCDOmxsgeTA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/node-config-provider': 2.2.5 + '@smithy/types': 2.11.0 + '@smithy/util-config-provider': 2.2.1 + '@smithy/util-middleware': 2.1.4 + tslib: 2.6.2 dev: false - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} + /@smithy/core@1.3.7: + resolution: {integrity: sha512-zHrrstOO78g+/rOJoHi4j3mGUBtsljRhcKNzloWPv1XIwgcFUi+F1YFKr2qPQ3z7Ls5dNc4L2SPrVarNFIQqog==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-retry': 2.1.6 + '@smithy/middleware-serde': 2.2.1 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/util-middleware': 2.1.4 + tslib: 2.6.2 dev: false - /emoticon@3.2.0: - resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==} + /@smithy/credential-provider-imds@2.2.6: + resolution: {integrity: sha512-+xQe4Pite0kdk9qn0Vyw5BRVh0iSlj+T4TEKRXr4E1wZKtVgIzGlkCrfICSjiPVFkPxk4jMpVboMYdEiiA88/w==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/node-config-provider': 2.2.5 + '@smithy/property-provider': 2.1.4 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 + tslib: 2.6.2 dev: false - /enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + /@smithy/eventstream-codec@2.1.4: + resolution: {integrity: sha512-UkiieTztP7adg8EuqZvB0Y4LewdleZCJU7Kgt9RDutMsRYqO32fMpWeQHeTHaIMosmzcRZUykMRrhwGJe9mP3A==} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@smithy/types': 2.11.0 + '@smithy/util-hex-encoding': 2.1.1 + tslib: 2.6.2 dev: false - /encodeurl@1.0.2: - 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==} + /@smithy/eventstream-serde-browser@2.1.4: + resolution: {integrity: sha512-K0SyvrUu/vARKzNW+Wp9HImiC/cJ6K88/n7FTH1slY+MErdKoiSbRLaXbJ9qD6x1Hu28cplHMlhADwZelUx/Ww==} + engines: {node: '>=14.0.0'} dependencies: - once: 1.4.0 + '@smithy/eventstream-serde-universal': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /enhanced-resolve@5.14.1: - resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==} - engines: {node: '>=10.13.0'} + /@smithy/eventstream-serde-config-resolver@2.1.4: + resolution: {integrity: sha512-FH+2AwOwZ0kHPB9sciWJtUqx81V4vizfT3P6T9eslmIC2hi8ch/KFvQlF7jDmwR1aLlPlq6qqLKLqzK/71Ki4A==} + engines: {node: '>=14.0.0'} dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + /@smithy/eventstream-serde-node@2.1.4: + resolution: {integrity: sha512-gsc5ZTvVcB9sleLQzsK/rOhgn52+AAsmhEr41WDwAcctccBjh429+b8gT9t+SU8QyajypfsLOZfJQu0+zE515Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/eventstream-serde-universal': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - requiresBuild: true + /@smithy/eventstream-serde-universal@2.1.4: + resolution: {integrity: sha512-NKLAsYnZA5s+ntipJRKo1RrRbhYHrsEnmiUoz0EhVYrAih+UELY9sKR+A1ujGaFm3nKDs5fPfiozC2wpXq2zUA==} + engines: {node: '>=14.0.0'} dependencies: - is-arrayish: 0.2.1 + '@smithy/eventstream-codec': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} + /@smithy/fetch-http-handler@2.4.4: + resolution: {integrity: sha512-DSUtmsnIx26tPuyyrK49dk2DAhPgEw6xRW7V62nMHIB5dk3NqhGnwcKO2fMdt/l3NUVgia34ZsSJA8bD+3nh7g==} dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + '@smithy/protocol-http': 3.2.2 + '@smithy/querystring-builder': 2.1.4 + '@smithy/types': 2.11.0 + '@smithy/util-base64': 2.2.0 + tslib: 2.6.2 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'} + /@smithy/hash-node@2.1.4: + resolution: {integrity: sha512-uvCcpDLXaTTL0X/9ezF8T8sS77UglTfZVQaUOBiCvR0QydeSyio3t0Hj3QooVdyFsKTubR8gCk/ubLk3vAyDng==} + engines: {node: '>=14.0.0'} dependencies: - get-intrinsic: 1.2.2 - has: 1.0.3 - has-tostringtag: 1.0.0 + '@smithy/types': 2.11.0 + '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-utf8': 2.2.0 + tslib: 2.6.2 dev: false - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + /@smithy/invalid-dependency@2.1.4: + resolution: {integrity: sha512-QzlNBl6jt3nb9jNnE51wTegReVvUdozyMMrFEyb/rc6AzPID1O+qMJYjAAoNw098y0CZVfCpEnoK2+mfBOd8XA==} dependencies: - has: 1.0.3 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + /@smithy/is-array-buffer@2.1.1: + resolution: {integrity: sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==} + engines: {node: '>=14.0.0'} dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + tslib: 2.6.2 dev: false - /esbuild@0.19.11: - resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.11 - '@esbuild/android-arm': 0.19.11 - '@esbuild/android-arm64': 0.19.11 - '@esbuild/android-x64': 0.19.11 - '@esbuild/darwin-arm64': 0.19.11 - '@esbuild/darwin-x64': 0.19.11 - '@esbuild/freebsd-arm64': 0.19.11 - '@esbuild/freebsd-x64': 0.19.11 - '@esbuild/linux-arm': 0.19.11 - '@esbuild/linux-arm64': 0.19.11 - '@esbuild/linux-ia32': 0.19.11 - '@esbuild/linux-loong64': 0.19.11 - '@esbuild/linux-mips64el': 0.19.11 - '@esbuild/linux-ppc64': 0.19.11 - '@esbuild/linux-riscv64': 0.19.11 - '@esbuild/linux-s390x': 0.19.11 - '@esbuild/linux-x64': 0.19.11 - '@esbuild/netbsd-x64': 0.19.11 - '@esbuild/openbsd-x64': 0.19.11 - '@esbuild/sunos-x64': 0.19.11 - '@esbuild/win32-arm64': 0.19.11 - '@esbuild/win32-ia32': 0.19.11 - '@esbuild/win32-x64': 0.19.11 - dev: true - - /esbuild@0.20.1: - resolution: {integrity: sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.1 - '@esbuild/android-arm': 0.20.1 - '@esbuild/android-arm64': 0.20.1 - '@esbuild/android-x64': 0.20.1 - '@esbuild/darwin-arm64': 0.20.1 - '@esbuild/darwin-x64': 0.20.1 - '@esbuild/freebsd-arm64': 0.20.1 - '@esbuild/freebsd-x64': 0.20.1 - '@esbuild/linux-arm': 0.20.1 - '@esbuild/linux-arm64': 0.20.1 - '@esbuild/linux-ia32': 0.20.1 - '@esbuild/linux-loong64': 0.20.1 - '@esbuild/linux-mips64el': 0.20.1 - '@esbuild/linux-ppc64': 0.20.1 - '@esbuild/linux-riscv64': 0.20.1 - '@esbuild/linux-s390x': 0.20.1 - '@esbuild/linux-x64': 0.20.1 - '@esbuild/netbsd-x64': 0.20.1 - '@esbuild/openbsd-x64': 0.20.1 - '@esbuild/sunos-x64': 0.20.1 - '@esbuild/win32-arm64': 0.20.1 - '@esbuild/win32-ia32': 0.20.1 - '@esbuild/win32-x64': 0.20.1 - dev: true - - /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'} + /@smithy/middleware-content-length@2.1.4: + resolution: {integrity: sha512-C6VRwfcr0w9qRFhDGCpWMVhlEIBFlmlPRP1aX9Cv9xDj9SUwlDrNvoV1oP1vjRYuLxCDgovBBynCwwcluS2wLw==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + /@smithy/middleware-endpoint@2.4.6: + resolution: {integrity: sha512-AsXtUXHPOAS0EGZUSFOsVJvc7p0KL29PGkLxLfycPOcFVLru/oinYB6yvyL73ZZPX2OB8sMYUMrj7eH2kI7V/w==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/middleware-serde': 2.2.1 + '@smithy/node-config-provider': 2.2.5 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 + '@smithy/util-middleware': 2.1.4 + tslib: 2.6.2 dev: false - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + /@smithy/middleware-retry@2.1.6: + resolution: {integrity: sha512-khpSV0NxqMHfa06kfG4WYv+978sVvfTFmn0hIFKKwOXtIxyYtPKiQWFT4nnwZD07fGdYGbtCBu3YALc8SsA5mA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/node-config-provider': 2.2.5 + '@smithy/protocol-http': 3.2.2 + '@smithy/service-error-classification': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/util-middleware': 2.1.4 + '@smithy/util-retry': 2.1.4 + tslib: 2.6.2 + uuid: 8.3.2 dev: false - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + /@smithy/middleware-serde@2.2.1: + resolution: {integrity: sha512-VAWRWqnNjgccebndpyK94om4ZTYzXLQxUmNCXYzM/3O9MTfQjTNBgtFtQwyIIez6z7LWcCsXmnKVIOE9mLqAHQ==} + engines: {node: '>=14.0.0'} dependencies: - eslint: 8.57.0 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + /@smithy/middleware-stack@2.1.4: + resolution: {integrity: sha512-Qqs2ba8Ax1rGKOSGJS2JN23fhhox2WMdRuzx0NYHtXzhxbJOIMmz9uQY6Hf4PY8FPteBPp1+h0j5Fmr+oW12sg==} + engines: {node: '>=14.0.0'} dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.4 - transitivePeerDependencies: - - supports-color + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + /@smithy/node-config-provider@2.2.5: + resolution: {integrity: sha512-CxPf2CXhjO79IypHJLBATB66Dw6suvr1Yc2ccY39hpR6wdse3pZ3E8RF83SODiNH0Wjmkd0ze4OF8exugEixgA==} + engines: {node: '>=14.0.0'} dependencies: - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) - debug: 3.2.7 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color + '@smithy/property-provider': 2.1.4 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + /@smithy/node-http-handler@2.4.2: + resolution: {integrity: sha512-yrj3c1g145uiK5io+1UPbJAHo8BSGORkBzrmzvAsOmBKb+1p3jmM8ZwNLDH/HTTxVLm9iM5rMszx+iAh1HUC4Q==} + engines: {node: '>=14.0.0'} dependencies: - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - hasown: 2.0.0 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color + '@smithy/abort-controller': 2.1.4 + '@smithy/protocol-http': 3.2.2 + '@smithy/querystring-builder': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + /@smithy/property-provider@2.1.4: + resolution: {integrity: sha512-nWaY/MImj1BiXZ9WY65h45dcxOx8pl06KYoHxwojDxDL+Q9yLU1YnZpgv8zsHhEftlj9KhePENjQTlNowWVyug==} + engines: {node: '>=14.0.0'} dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + '@smithy/types': 2.11.0 + tslib: 2.6.2 + dev: false - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@smithy/protocol-http@3.2.2: + resolution: {integrity: sha512-xYBlllOQcOuLoxzhF2u8kRHhIFGQpDeTQj/dBSnw4kfI29WMKL5RnW1m9YjnJAJ49miuIvrkJR+gW5bCQ+Mchw==} + engines: {node: '>=14.0.0'} dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@smithy/querystring-builder@2.1.4: + resolution: {integrity: sha512-LXSL0J/nRWvGT+jIj+Fip3j0J1ZmHkUyBFRzg/4SmPNCLeDrtVu7ptKOnTboPsFZu5BxmpYok3kJuQzzRdrhbw==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.11.0 + '@smithy/util-uri-escape': 2.1.1 + tslib: 2.6.2 dev: false - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + /@smithy/querystring-parser@2.1.4: + resolution: {integrity: sha512-U2b8olKXgZAs0eRo7Op11jTNmmcC/sqYmsA7vN6A+jkGnDvJlEl7AetUegbBzU8q3D6WzC5rhR/joIy8tXPzIg==} + engines: {node: '>=14.0.0'} dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@smithy/service-error-classification@2.1.4: + resolution: {integrity: sha512-JW2Hthy21evnvDmYYk1kItOmbp3X5XI5iqorXgFEunb6hQfSDZ7O1g0Clyxg7k/Pcr9pfLk5xDIR2To/IohlsQ==} + engines: {node: '>=14.0.0'} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.3 + '@smithy/types': 2.11.0 dev: false - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + /@smithy/shared-ini-file-loader@2.3.5: + resolution: {integrity: sha512-oI99+hOvsM8oAJtxAGmoL/YCcGXtbP0fjPseYGaNmJ4X5xOFTer0KPk7AIH3AL6c5AlYErivEi1X/X78HgTVIw==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + /@smithy/signature-v4@2.1.4: + resolution: {integrity: sha512-gnu9gCn0qQ8IdhNjs6o3QVCXzUs33znSDYwVMWo3nX4dM6j7z9u6FC302ShYyVWfO4MkVMuGCCJ6nl3PcH7V1Q==} + engines: {node: '>=14.0.0'} dependencies: - estraverse: 5.3.0 + '@smithy/eventstream-codec': 2.1.4 + '@smithy/is-array-buffer': 2.1.1 + '@smithy/types': 2.11.0 + '@smithy/util-hex-encoding': 2.1.1 + '@smithy/util-middleware': 2.1.4 + '@smithy/util-uri-escape': 2.1.1 + '@smithy/util-utf8': 2.2.0 + tslib: 2.6.2 dev: false - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + /@smithy/smithy-client@2.4.4: + resolution: {integrity: sha512-SNE17wjycPZIJ2P5sv6wMTteV/vQVPdaqQkoK1KeGoWHXx79t3iLhQXj1uqRdlkMUS9pXJrLOAS+VvUSOYwQKw==} + engines: {node: '>=14.0.0'} dependencies: - estraverse: 5.3.0 - - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-stack': 2.1.4 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 + '@smithy/util-stream': 2.1.4 + tslib: 2.6.2 dev: false - /eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} + /@smithy/types@2.11.0: + resolution: {integrity: sha512-AR0SXO7FuAskfNhyGfSTThpLRntDI5bOrU0xrpVYU0rZyjl3LBXInZFMTP/NNSd7IS6Ksdtar0QvnrPRIhVrLQ==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.6.2 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'} + /@smithy/url-parser@2.1.4: + resolution: {integrity: sha512-1hTy6UYRYqOZlHKH2/2NzdNQ4NNmW2Lp0sYYvztKy+dEQuLvZL9w88zCzFQqqFer3DMcscYOshImxkJTGdV+rg==} dependencies: - '@types/node': 20.11.24 - require-like: 0.1.2 + '@smithy/querystring-parser': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /eventemitter3@3.1.0: - resolution: {integrity: sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==} + /@smithy/util-base64@2.1.1: + resolution: {integrity: sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/util-buffer-from': 2.1.1 + tslib: 2.6.2 dev: false - /eventemitter3@3.1.2: - resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} + /@smithy/util-base64@2.2.0: + resolution: {integrity: sha512-RiQI/Txu0SxCR38Ky5BMEVaFfkNTBjpbxlr2UhhxggSmnsHDQPZJWMtPoXs7TWZaseslIlAWMiHmqRT3AV/P2w==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-utf8': 2.2.0 + tslib: 2.6.2 dev: false - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + /@smithy/util-body-length-browser@2.1.1: + resolution: {integrity: sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==} + dependencies: + tslib: 2.6.2 dev: false - /eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + /@smithy/util-body-length-node@2.2.1: + resolution: {integrity: sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.6.2 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'} + /@smithy/util-buffer-from@2.1.1: + resolution: {integrity: sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==} + engines: {node: '>=14.0.0'} dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 + '@smithy/is-array-buffer': 2.1.1 + tslib: 2.6.2 + dev: false - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + /@smithy/util-config-provider@2.2.1: + resolution: {integrity: sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==} + engines: {node: '>=14.0.0'} dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 + tslib: 2.6.2 dev: false - /expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} + /@smithy/util-defaults-mode-browser@2.1.6: + resolution: {integrity: sha512-lM2JMYCilrejfGf8WWnVfrKly3vf+mc5x9TrTpT++qIKP452uWfLqlaUxbz1TkSfhqm8RjrlY22589B9aI8A9w==} + engines: {node: '>= 10.0.0'} dependencies: - homedir-polyfill: 1.0.3 + '@smithy/property-provider': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + bowser: 2.11.0 + tslib: 2.6.2 dev: false - /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} + /@smithy/util-defaults-mode-node@2.2.6: + resolution: {integrity: sha512-UmUbPHbkBJCXRFbq+FPLpVwiFPHj1oPWXJS2f2sy23PtXM94c9X5EceI6JKuKdBty+tzhrAs5JbmPM/HvmDB8Q==} + engines: {node: '>= 10.0.0'} dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.1 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color + '@smithy/config-resolver': 2.1.5 + '@smithy/credential-provider-imds': 2.2.6 + '@smithy/node-config-provider': 2.2.5 + '@smithy/property-provider': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 + dev: false - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + /@smithy/util-endpoints@1.1.5: + resolution: {integrity: sha512-tgDpaUNsUtRvNiBulKU1VnpoXU1GINMfZZXunRhUXOTBEAufG1Wp79uDXLau2gg1RZ4dpAR6lXCkrmddihCGUg==} + engines: {node: '>= 14.0.0'} dependencies: - is-extendable: 0.1.1 + '@smithy/node-config-provider': 2.2.5 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + /@smithy/util-hex-encoding@2.1.1: + resolution: {integrity: sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.6.2 dev: false - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + /@smithy/util-middleware@2.1.4: + resolution: {integrity: sha512-5yYNOgCN0DL0OplME0pthoUR/sCfipnROkbTO7m872o0GHCVNJj5xOFJ143rvHNA54+pIPMLum4z2DhPC2pVGA==} + engines: {node: '>=14.0.0'} dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} + /@smithy/util-retry@2.1.4: + resolution: {integrity: sha512-JRZwhA3fhkdenSEYIWatC8oLwt4Bdf2LhHbNQApqb7yFoIGMl4twcYI3BcJZ7YIBZrACA9jGveW6tuCd836XzQ==} + engines: {node: '>= 14.0.0'} dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + '@smithy/service-error-classification': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + /@smithy/util-stream@2.1.4: + resolution: {integrity: sha512-CiWaFPXstoR7v/PGHddFckovkhJb28wgQR7LwIt6RsQCJeRIHvUTVWhXw/Pco6Jm6nz/vfzN9FFdj/JN7RTkxQ==} + engines: {node: '>=14.0.0'} dependencies: - punycode: 1.4.1 + '@smithy/fetch-http-handler': 2.4.4 + '@smithy/node-http-handler': 2.4.2 + '@smithy/types': 2.11.0 + '@smithy/util-base64': 2.2.0 + '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-hex-encoding': 2.1.1 + '@smithy/util-utf8': 2.2.0 + tslib: 2.6.2 dev: false - /fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} - hasBin: true + /@smithy/util-uri-escape@2.1.1: + resolution: {integrity: sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==} + engines: {node: '>=14.0.0'} dependencies: - strnum: 1.0.5 + tslib: 2.6.2 dev: false - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /@smithy/util-utf8@2.1.1: + resolution: {integrity: sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==} + engines: {node: '>=14.0.0'} dependencies: - reusify: 1.0.4 + '@smithy/util-buffer-from': 2.1.1 + tslib: 2.6.2 + dev: false - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + /@smithy/util-utf8@2.2.0: + resolution: {integrity: sha512-hBsKr5BqrDrKS8qy+YcV7/htmMGxriA1PREOf/8AGBhHIZnfilVv1Waf1OyKhSbFW15U/8+gcMUQ9/Kk5qwpHQ==} + engines: {node: '>=14.0.0'} dependencies: - websocket-driver: 0.7.4 + '@smithy/util-buffer-from': 2.1.1 + tslib: 2.6.2 dev: false - /fbemitter@3.0.0: - resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==} + /@smithy/util-waiter@2.1.3: + resolution: {integrity: sha512-3R0wNFAQQoH9e4m+bVLDYNOst2qNxtxFgq03WoNHWTBOqQT3jFnOBRj1W51Rf563xDA5kwqjziksxn6RKkHB+Q==} + engines: {node: '>=14.0.0'} dependencies: - fbjs: 3.0.4 - transitivePeerDependencies: - - encoding + '@smithy/abort-controller': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 dev: false - /fbjs-css-vars@1.0.2: - resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + /@tsconfig/node20@20.1.2: + resolution: {integrity: sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==} dev: false - /fbjs@3.0.4: - resolution: {integrity: sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==} + /@types/aws-lambda@8.10.135: + resolution: {integrity: sha512-kD3aDbS5la1LcS89a4bJTLVSJI5euO2fx3euZTge7SbArH7+kcoLS+lK87cdI5GCEfiBQSio5gz546N0FhMmjg==} + dev: true + + /@types/body-parser@1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} 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 + '@types/connect': 3.4.35 + '@types/node': 20.11.24 dev: false - /fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + /@types/connect@3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + dependencies: + '@types/node': 20.11.24 dev: false - /feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} + /@types/conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} dependencies: - xml-js: 1.6.11 + '@types/node': 20.11.24 dev: false - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + /@types/express-serve-static-core@4.17.35: + resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - escape-string-regexp: 1.0.5 + '@types/node': 20.11.24 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + '@types/send': 0.17.1 dev: false - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + /@types/express@4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} dependencies: - flat-cache: 3.0.4 + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.35 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.1 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 + /@types/he@1.2.3: + resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==} dev: false - /filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: false - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color + /@types/lint-staged@13.3.0: + resolution: {integrity: sha512-WxGjVP+rA4OJlEdbZdT9MS9PFKQ7kVPhLn26gC+2tnBWBEFEj/KW+IbFfz6sxdxY5U6V7BvyF+3BzCGsAMHhNg==} + dev: false - /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 + /@types/long@4.0.2: + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} dev: false - /find-node-modules@2.1.3: - resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} - dependencies: - findup-sync: 4.0.0 - merge: 2.1.1 + /@types/mime@1.3.2: + resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} dev: false - /find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + /@types/mime@3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} dev: false - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + /@types/node-fetch@2.6.4: + resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} dependencies: - locate-path: 3.0.0 + '@types/node': 20.11.24 + form-data: 3.0.1 dev: false - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + /@types/node@20.11.24: + resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 + undici-types: 5.26.5 + + /@types/qs@6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} dev: false - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 + /@types/range-parser@1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: false - /find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - unicorn-magic: 0.1.0 + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: false - /findup-sync@4.0.0: - resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} - engines: {node: '>= 8'} + /@types/send@0.17.1: + resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.5 - resolve-dir: 1.0.1 + '@types/mime': 1.3.2 + '@types/node': 20.11.24 dev: false - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} + /@types/serve-static@1.15.1: + resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 + '@types/mime': 3.0.1 + '@types/node': 20.11.24 dev: false - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /@types/triple-beam@1.3.2: + resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==} dev: false - /flux@4.0.4(react@17.0.2): - resolution: {integrity: sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==} + /@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} peerDependencies: - react: ^15.0.2 || ^16.0.0 || ^17.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - fbemitter: 3.0.0 - fbjs: 3.0.4 - react: 17.0.2 + '@eslint-community/regexpp': 4.6.2 + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.1 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - - encoding - dev: false - - /fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + - supports-color dev: false - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} + /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - debug: '*' + eslint: ^8.56.0 + typescript: '*' peerDependenciesMeta: - debug: + typescript: optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.1 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color dev: false - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + /@typescript-eslint/scope-manager@7.1.1: + resolution: {integrity: sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - is-callable: 1.2.7 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 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'} + /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' + eslint: ^8.56.0 + typescript: '*' peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: + typescript: 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 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + debug: 4.3.4 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 + ts-api-utils: 1.0.1(typescript@5.3.3) typescript: 5.3.3 - webpack: 5.84.1 + transitivePeerDependencies: + - supports-color dev: false - /form-data@3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} + /@typescript-eslint/types@7.1.1: + resolution: {integrity: sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: false + + /@typescript-eslint/typescript-estree@7.1.1(typescript@5.3.3): + resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color dev: false - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + eslint: 8.57.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: false - /fraction.js@4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + /@typescript-eslint/visitor-keys@7.1.1: + resolution: {integrity: sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.1.1 + eslint-visitor-keys: 3.4.3 dev: false - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: false - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 + jsonparse: 1.3.1 + through: 2.3.8 dev: false - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true + mime-types: 2.1.35 + negotiator: 0.6.3 - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + /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: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: false - - /fs-monkey@1.0.3: - resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + acorn: 8.10.0 dev: false - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + /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 - optional: true - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - functions-have-names: 1.2.3 + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 dev: false - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 dev: false - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + /ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} + dependencies: + type-fest: 3.13.1 dev: false - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} dev: false - /get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} dev: false - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + color-convert: 1.9.3 dev: false - /get-stdin@8.0.0: - resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} - engines: {node: '>=10'} + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 dev: false - /get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: false - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: - pump: 3.0.0 + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: false - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} + /arktype@1.0.16-alpha: + resolution: {integrity: sha512-k+poMKZ11h9iaB389WICNt8m/y2BtDCwe+kAg5BKklYqagKnFZOOOKwgdAxdDpKtU8ZYUedq7abqi9F+CEgnWA==} + requiresBuild: true + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - pump: 3.0.0 + call-bind: 1.0.5 + is-array-buffer: 3.0.2 dev: false - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: false - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 get-intrinsic: 1.2.2 + is-string: 1.0.7 dev: false - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - dependencies: - resolve-pkg-maps: 1.0.0 - dev: true + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false - /git-hooks-list@3.1.0: - resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.2 dev: false - /git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} - hasBin: true + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: - dargs: 8.1.0 - meow: 12.1.1 - split2: 4.2.0 + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.0 dev: false - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.0 dev: false - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} dependencies: - is-glob: 4.0.3 + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: false - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + /async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} dependencies: - is-glob: 4.0.3 + retry: 0.13.1 + dev: false + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: false + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} dev: false - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false - /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + /aws-cdk-lib@2.131.0(constructs@10.2.69): + resolution: {integrity: sha512-9XLgiTgY+q0S3K93VPeJO0chIN8BZwZ3aSrILvF868Dz+0NTNrD2m5M0xGK5Rw0uoJS+N+DvGaz/2hLAiVqcBw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + constructs: ^10.0.0 dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + '@aws-cdk/asset-awscli-v1': 2.2.202 + '@aws-cdk/asset-kubectl-v20': 2.1.2 + '@aws-cdk/asset-node-proxy-agent-v6': 2.0.1 + constructs: 10.2.69 + bundledDependencies: + - '@balena/dockerignore' + - case + - fs-extra + - ignore + - jsonschema + - minimatch + - punycode + - semver + - table + - yaml + - mime-types + + /aws-cdk@2.131.0: + resolution: {integrity: sha512-ji+MwGFGC88HE/EqV6/VARBp5mu3nXIDa/GYwtGycJqu6WqXhNZXWeDH0JsWaY6+BSUdpY6pr6KWpV+MDyVkDg==} + engines: {node: '>= 14.15.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: false - /global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - dependencies: - ini: 4.1.1 + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false + + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} dev: false - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + /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==} dependencies: - ini: 2.0.0 + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 dev: false - /global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - dev: false + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: - global-prefix: 3.0.0 + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: false - /global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 + /bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} dev: false - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 + balanced-match: 1.0.2 + concat-map: 0.0.1 dev: false - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 dev: false - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: - type-fest: 0.20.2 - dev: false + fill-range: 7.0.1 - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: - define-properties: 1.2.0 + base64-js: 1.5.1 + ieee754: 1.2.1 dev: false - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} - /globby@13.1.4: - resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 4.0.0 + /cachedir@2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} dev: false - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: + function-bind: 1.1.2 get-intrinsic: 1.2.2 + set-function-length: 1.1.1 - /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 + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} dev: false - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 dev: false - /graphql-ws@5.13.1(graphql@16.8.1): - resolution: {integrity: sha512-eiX7ES/ZQr0q7hSM5UBOEIFfaAUmAY9/CSDyAnsETuybByU7l/v46drRg9DQoTvVABEHp3QnrvwgTRMhqy7zxQ==} + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - peerDependencies: - graphql: '>=0.11 <=16' dependencies: - graphql: 16.8.1 + ansi-styles: 4.3.0 + supports-color: 7.2.0 dev: false - /graphql@16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.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 + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: false - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} dependencies: - duplexer: 0.1.2 - dev: false - - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 dev: false - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 dev: false - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: false + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} - - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.2.2 + restore-cursor: 3.1.0 + dev: false - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: false - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + /cli-spinners@2.9.0: + resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} + engines: {node: '>=6'} + dev: false - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + /cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} dependencies: - has-symbols: 1.0.3 + slice-ansi: 5.0.0 + string-width: 7.0.0 dev: false - /has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} dev: false - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: - function-bind: 1.1.2 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 dev: false - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: false - /hast-to-hyperscript@9.0.1: - resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 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 + color-name: 1.1.3 dev: false - /hast-util-from-parse5@6.0.1: - resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} 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 + color-name: 1.1.4 dev: false - /hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 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 + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: false - /hast-util-to-parse5@6.0.0: - resolution: {integrity: sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==} + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 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 + color-name: 1.1.4 + simple-swizzle: 0.2.2 dev: false - /hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} 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 + color-convert: 1.9.3 + color-string: 1.9.1 dev: false - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: false - /history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + /colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} 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 + color: 3.2.1 + text-hex: 1.0.0 dev: false - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: - react-is: 16.13.1 + delayed-stream: 1.0.0 dev: false - /homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} 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 + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: false - /html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} dev: false - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} + /commitizen@4.3.0(@types/node@20.11.24)(typescript@5.3.3): + resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + 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 + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0(@types/node@20.11.24)(typescript@5.3.3) + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.5 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.7 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@types/node' + - typescript dev: false - /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 dev: false - /html-void-elements@1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 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 + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + + /constructs@10.2.69: + resolution: {integrity: sha512-0AiM/uQe5Uk6JVe/62oolmSN2MjbFQkOlYrM3fFGZLKuT+g7xlAI10EebFhyCcZwI2JAcWuWCmmCAyCothxjuw==} + engines: {node: '>= 16.14.0'} + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} 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 + safe-buffer: 5.2.1 + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + /conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 + compare-func: 2.0.0 dev: false - /htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + /conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - entities: 4.5.0 + compare-func: 2.0.0 dev: false - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + /conventional-commit-types@3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} dev: false - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 dev: false - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 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'} + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 + object-assign: 4.1.1 + vary: 1.1.2 - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.24)(cosmiconfig@8.3.6)(typescript@5.3.3): + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + dependencies: + '@types/node': 20.11.24 + cosmiconfig: 8.3.6(typescript@5.3.3) + jiti: 1.20.0 + typescript: 5.3.3 dev: false - /http-proxy-middleware@2.0.6(@types/express@4.17.17): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} peerDependencies: - '@types/express': ^4.17.13 + typescript: '>=4.9.5' peerDependenciesMeta: - '@types/express': + typescript: 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 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.3 dev: false - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + /cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.2 - requires-port: 1.0.0 + node-fetch: 2.6.12 transitivePeerDependencies: - - debug + - encoding dev: false - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + /cross-inspect@1.0.0: + resolution: {integrity: sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==} + engines: {node: '>=16.0.0'} + dependencies: + tslib: 2.6.2 + dev: false - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 dev: false - /husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} - engines: {node: '>=18'} - hasBin: true + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} dev: false - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 + /csv-parse@5.5.5: + resolution: {integrity: sha512-erCk7tyU3yLWAhk6wvKxnyPtftuy/6Ak622gOO7BCJ05+TYffnPCJF905wmOQm+BpkX54OdAl8pveJwUdpnCXQ==} + dev: false - /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 + /csv-stringify@6.4.6: + resolution: {integrity: sha512-h2V2XZ3uOTLilF5dPIptgUfN/o2ia/80Ie0Lly18LAnw5s8Eb7kt8rfxSUy24AztJZas9f6DPZpVlzDUtFt/ag==} dev: false - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + /cz-conventional-changelog@3.3.0(@types/node@20.11.24)(typescript@5.3.3): + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.3.0(@types/node@20.11.24)(typescript@5.3.3) + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.3 + optionalDependencies: + '@commitlint/load': 19.0.3(@types/node@20.11.24)(typescript@5.3.3) + transitivePeerDependencies: + - '@types/node' + - typescript dev: false - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} + /dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + dev: false - /image-size@1.0.2: - resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} - engines: {node: '>=14.0.0'} - hasBin: true + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: - queue: 6.0.2 - dev: false + ms: 2.0.0 - /immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 dev: false - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + ms: 2.1.2 dev: false - /import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: false - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: false - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 dev: false - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: false + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 - /infima@0.2.0-alpha.43: - resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} - engines: {node: '>=12'} + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 dev: false - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 + /defu@6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} dev: false - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} dev: false - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} dev: false - /ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} dev: false - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + /detect-newline@4.0.0: + resolution: {integrity: sha512-1aXUEPdfGdzVPFpzGJJNgq9o81bGg1s09uxTWsqBlo9PI332uyJRQq13+LK/UN4JfxJbFdCXonUFQ9R/p7yCtw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false - /inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} - engines: {node: '>=12.0.0'} + /devmoji@2.3.0: + resolution: {integrity: sha512-ErQdYUsE7tKxqDzQzRos6fKWaRIFUOJvMkQODq9iYDI3o5X6nxD78XEdGNYaW5AaJW4uxj+XQTkCuJkV86Qg6g==} + hasBin: true dependencies: - ansi-escapes: 4.3.2 chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 7.0.0 + commander: 7.2.0 + ts-interface-checker: 1.0.0 dev: false - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: - get-intrinsic: 1.2.2 - has: 1.0.3 - side-channel: 1.0.4 + path-type: 4.0.0 dev: false - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + /discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} dev: false - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} 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==} + esutils: 2.0.3 dev: false - /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 + esutils: 2.0.3 dev: false - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 dev: false - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - requiresBuild: true + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: false - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 dev: false - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: - has-bigints: 1.0.2 + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 dev: false - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 - - /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'} - dev: false - - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + is-obj: 2.0.0 dev: false - /is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + /dotenv-cli@7.3.0: + resolution: {integrity: sha512-314CA4TyK34YEJ6ntBf80eUY+t1XaFLyem1k9P0sX1gn30qThZ5qZr/ZwE318gEnzyYP9yj9HJk6SqwE0upkfw==} hasBin: true dependencies: - ci-info: 2.0.0 - dev: false - - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.0 - dev: false + cross-spawn: 7.0.3 + dotenv: 16.4.5 + dotenv-expand: 10.0.0 + minimist: 1.2.8 + dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: false + /dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} + dev: true - /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + /dotenv@16.4.1: + resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==} + engines: {node: '>=12'} dev: false - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} + /dset@3.1.2: + resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} + engines: {node: '>=4'} dev: false - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} dev: false - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false - /is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} - engines: {node: '>=18'} - dependencies: - get-east-asian-width: 1.2.0 + /enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} dev: false - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} - /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} dev: false - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + requiresBuild: true dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 + is-arrayish: 0.2.1 dev: false - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 dev: false - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has: 1.0.3 + has-tostringtag: 1.0.0 dev: false - /is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 dev: false - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 dev: false - /is-number@7.0.0: - 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 + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 + dev: true - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false + /esbuild@0.20.1: + resolution: {integrity: sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.1 + '@esbuild/android-arm': 0.20.1 + '@esbuild/android-arm64': 0.20.1 + '@esbuild/android-x64': 0.20.1 + '@esbuild/darwin-arm64': 0.20.1 + '@esbuild/darwin-x64': 0.20.1 + '@esbuild/freebsd-arm64': 0.20.1 + '@esbuild/freebsd-x64': 0.20.1 + '@esbuild/linux-arm': 0.20.1 + '@esbuild/linux-arm64': 0.20.1 + '@esbuild/linux-ia32': 0.20.1 + '@esbuild/linux-loong64': 0.20.1 + '@esbuild/linux-mips64el': 0.20.1 + '@esbuild/linux-ppc64': 0.20.1 + '@esbuild/linux-riscv64': 0.20.1 + '@esbuild/linux-s390x': 0.20.1 + '@esbuild/linux-x64': 0.20.1 + '@esbuild/netbsd-x64': 0.20.1 + '@esbuild/openbsd-x64': 0.20.1 + '@esbuild/sunos-x64': 0.20.1 + '@esbuild/win32-arm64': 0.20.1 + '@esbuild/win32-ia32': 0.20.1 + '@esbuild/win32-x64': 0.20.1 + dev: true - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} dev: false - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: false + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} dev: false - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 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'} + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: false - - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} + eslint: 8.57.0 dev: false - /is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.4 + transitivePeerDependencies: + - supports-color dev: false - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: - call-bind: 1.0.5 + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color dev: false - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: false - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - has-tostringtag: 1.0.0 + esrecurse: 4.3.0 + estraverse: 5.3.0 dev: false - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: - text-extensions: 2.4.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color dev: false - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - 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'} - dev: false - - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 dev: false - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: - 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==} + estraverse: 5.3.0 dev: false - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} 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==} + estraverse: 5.3.0 dev: false - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} dev: false - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 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 + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - /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 + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: false - /jest-worker@29.5.0: - resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: - '@types/node': 20.11.24 - jest-util: 29.5.0 + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 merge-stream: 2.0.0 - supports-color: 8.1.1 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 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'} - dev: true - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} dependencies: - argparse: 1.0.10 - esprima: 4.0.1 + homedir-polyfill: 1.0.3 dev: false - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} dependencies: - argparse: 2.0.1 - dev: false - - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: false + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 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==} - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - requiresBuild: true + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 dev: false - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: false - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} dependencies: - minimist: 1.2.8 - dev: false - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 dev: false - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: false - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.0 - optionalDependencies: - graceful-fs: 4.2.11 - - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: false - /jsox@1.2.118: - resolution: {integrity: sha512-ubYWn4WOc7HA7icvcQuIni1I7Xx4bI4KbRXbXzlr5e48hvdizeAbflBx97B629ZNH5RZnQ657Z5Z8dFgxFVrSQ==} + /fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} hasBin: true + dependencies: + strnum: 1.0.5 dev: false - /keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: - json-buffer: 3.0.0 + reusify: 1.0.4 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'} + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} dev: false - /klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 dev: false - /kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 dev: false - /latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: - package-json: 6.5.0 - dev: false + to-regex-range: 5.0.1 - /launch-editor@2.6.0: - resolution: {integrity: sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==} + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} dependencies: - picocolors: 1.0.0 - shell-quote: 1.8.1 - dev: false + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + /find-node-modules@2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + dependencies: + findup-sync: 4.0.0 + merge: 2.1.1 dev: false - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} dev: false - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - - /lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} - engines: {node: '>=14'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 dev: false - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + /find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + dev: false - /lint-staged@15.2.2: - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} - engines: {node: '>=18.12.0'} - hasBin: true + /findup-sync@4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} dependencies: - chalk: 5.3.0 - commander: 11.1.0 - debug: 4.3.4 - execa: 8.0.1 - lilconfig: 3.0.0 - listr2: 8.0.1 + detect-file: 1.0.0 + is-glob: 4.0.3 micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.4 - transitivePeerDependencies: - - supports-color + resolve-dir: 1.0.1 dev: false - /listr2@8.0.1: - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} - engines: {node: '>=18.0.0'} + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - cli-truncate: 4.0.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 6.0.0 - rfdc: 1.3.0 - wrap-ansi: 9.0.0 + flatted: 3.2.7 + rimraf: 3.0.2 dev: false - /load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - 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 + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: false - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} + /fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: false - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 + is-callable: 1.2.7 dev: false - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + /form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} dependencies: - p-locate: 4.1.0 + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 dev: false - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} dependencies: - p-locate: 5.0.0 - dev: false + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} dependencies: - p-locate: 6.0.0 + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 dev: false - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: false - /lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} - dev: false + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /lodash.flow@3.5.0: - resolution: {integrity: sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 dev: false - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - requiresBuild: true + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: false - /lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} dev: false - /lodash.map@4.6.0: - resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} dev: false - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + + /get-stdin@8.0.0: + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} dev: false - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + /get-stdin@9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} dev: false - /lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - requiresBuild: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} dev: false - /lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: false - /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + /git-hooks-list@3.1.0: + resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} dev: false - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + /git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 dev: false - /lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - dev: false + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 dev: false - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 dev: false - /log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + /global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} dependencies: - ansi-escapes: 6.2.0 - cli-cursor: 4.0.0 - slice-ansi: 7.1.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 + ini: 4.1.1 dev: false - /logform@2.5.1: - resolution: {integrity: sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==} + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} dependencies: - '@colors/colors': 1.5.0 - '@types/triple-beam': 1.3.2 - fecha: 4.2.3 - ms: 2.1.3 - safe-stable-stringify: 2.4.3 - triple-beam: 1.3.0 + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 dev: false - /loglevel@1.8.1: - resolution: {integrity: sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==} - engines: {node: '>= 0.6.0'} + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 dev: false - /long@4.0.0: - resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 dev: false - /longest@2.0.1: - resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} - engines: {node: '>=0.10.0'} + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 dev: false - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: - js-tokens: 4.0.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: false - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + /globby@13.1.4: + resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - tslib: 2.6.2 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 dev: false - /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: false + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: false - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 + /graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: false - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: false - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} dev: false - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dependencies: - semver: 6.3.1 dev: false - /markdown-escapes@1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - dev: false + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.2 + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - /mdast-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} dependencies: - unist-util-remove: 2.1.0 + has-symbols: 1.0.3 dev: false - /mdast-util-definitions@4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: - unist-util-visit: 2.0.3 + function-bind: 1.1.2 dev: false - /mdast-util-to-hast@10.0.1: - resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} 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 + function-bind: 1.1.2 - /mdast-util-to-string@2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true dev: false - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 dev: false - /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 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'} + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: - fs-monkey: 1.0.3 - dev: false + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 - /meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} dev: false - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + /husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} + hasBin: true + dev: false - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 - /merge@2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: false - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: false - /mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 dev: false - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + /import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + dev: false - /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 + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} dev: false - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: - mime-db: 1.52.0 - - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true + once: 1.4.0 + wrappy: 1.0.2 + dev: false - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: false - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} + /ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 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 + /inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} dependencies: - schema-utils: 4.0.1 - webpack: 5.84.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 dev: false - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has: 1.0.3 + side-channel: 1.0.4 dev: false - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - brace-expansion: 2.0.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 dev: false - /minimist@1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + requiresBuild: true dev: false - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false - /mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: - acorn: 8.10.0 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.1 + has-bigints: 1.0.2 dev: false - /moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: false + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true - /mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} + /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 - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - dns-packet: 5.6.0 - thunky: 1.1.0 + hasown: 2.0.0 dev: false - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 dev: false - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} dev: false - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} dev: false - /nearley@2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true + /is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} dependencies: - commander: 2.20.3 - moo: 0.5.2 - railroad-diagrams: 1.0.0 - randexp: 0.4.6 + get-east-asian-width: 1.2.0 dev: false - /negotiator@0.6.3: - 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==} + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 + is-extglob: 2.1.1 + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} dev: false - /node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} dev: false - /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: - lodash: 4.17.21 + has-tostringtag: 1.0.0 dev: false - /node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: false - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} dev: false - /node-releases@2.0.12: - resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false - /node-sql-parser@4.17.0: - resolution: {integrity: sha512-3IhovpmUBpcETnoKK/KBdkz2mz53kVG5E1dnqz1QuYvtzdxYZW5xaGGEvW9u6Yyy2ivwR3eUZrn9inmEVef02w==} - engines: {node: '>=8'} + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: - big-integer: 1.6.51 + call-bind: 1.0.5 + has-tostringtag: 1.0.0 dev: false - /normalize-path@2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - remove-trailing-separator: 1.1.0 + call-bind: 1.0.5 dev: false - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false - /normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 dev: false - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 dev: false - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} dependencies: - path-key: 3.1.1 + text-extensions: 2.4.0 + dev: false - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} dependencies: - path-key: 4.0.0 + which-typed-array: 1.1.13 dev: false - /npm-to-yarn@2.0.0: - resolution: {integrity: sha512-/IbjiJ7vqbxfxJxAZ+QI9CCRjnIbvGxn5KQcSY9xHh0lMKc/Sgqmm7yp7KPmd6TiTZX5/KiSBKlkGHo59ucZbg==} - engines: {node: '>=6.0.0'} + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} dev: false - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} dev: false - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - boolbase: 1.0.0 + call-bind: 1.0.5 dev: false - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + dev: false - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + hasBin: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - has-symbols: 1.0.3 - object-keys: 1.1.1 + argparse: 2.0.1 dev: false - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: false - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: false - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + requiresBuild: true dev: false - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: false - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true dependencies: - ee-first: 1.1.1 + minimist: 1.2.8 + dev: false - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: false - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - wrappy: 1.0.2 + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 - /one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - dependencies: - fn.name: 1.1.0 + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} dev: false - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 + /jsox@1.2.118: + resolution: {integrity: sha512-ubYWn4WOc7HA7icvcQuIni1I7Xx4bI4KbRXbXzlr5e48hvdizeAbflBx97B629ZNH5RZnQ657Z5Z8dFgxFVrSQ==} + hasBin: true 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 + /jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} dev: false - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} dev: false - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 dev: false - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.0 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} dev: false - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false - /p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} + /lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color dev: false - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + /listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + engines: {node: '>=18.0.0'} dependencies: - p-try: 2.2.0 + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.0 + wrap-ansi: 9.0.0 dev: false - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: - yocto-queue: 0.1.0 + p-locate: 5.0.0 dev: false - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - yocto-queue: 1.0.0 + p-locate: 6.0.0 dev: false - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - dependencies: - yocto-queue: 1.0.0 + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} 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 + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + requiresBuild: true dev: false - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} dev: false - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 + /lodash.map@4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} dev: false - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-limit: 4.0.0 + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: false - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + requiresBuild: true dev: false - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} dev: false - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: false + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: false + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} 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 + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} dev: false - /pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: false - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} dependencies: - dot-case: 3.0.4 - tslib: 2.6.2 + chalk: 4.1.2 + is-unicode-supported: 0.1.0 dev: false - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + /log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} dependencies: - callsites: 3.1.0 + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 dev: false - /parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + /logform@2.5.1: + resolution: {integrity: sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==} 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 + '@colors/colors': 1.5.0 + '@types/triple-beam': 1.3.2 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.4.3 + triple-beam: 1.3.0 dev: false - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.21.4 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 + /loglevel@1.8.1: + resolution: {integrity: sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==} + engines: {node: '>= 0.6.0'} dev: false - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + /long@4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} dev: false - /parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + /longest@2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} engines: {node: '>=0.10.0'} dev: false - /parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: - domhandler: 5.0.3 - parse5: 7.1.2 + yallist: 4.0.0 dev: false - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} dev: false - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - dependencies: - entities: 4.5.0 + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} dev: false - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: false - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} dev: false - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + /merge@2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} dev: false - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 dev: false - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - dev: false + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} dev: false - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} dev: false - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false - /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - isarray: 0.0.1 + brace-expansion: 2.0.1 dev: false - /path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} dev: false - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.1 dev: false - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + dev: false - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} 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 + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: false - /pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} + /nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true dependencies: - find-up: 3.0.0 + commander: 2.20.3 + moo: 0.5.2 + railroad-diagrams: 1.0.0 + randexp: 0.4.6 dev: false - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} - /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 + /node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: false - /postcss-colormin@5.3.1(postcss@8.4.26): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} + /node-fetch@2.6.12: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + engines: {node: 4.x || >=6.0.0} peerDependencies: - postcss: ^8.2.15 + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: - browserslist: 4.21.5 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + whatwg-url: 5.0.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 + /node-sql-parser@4.17.0: + resolution: {integrity: sha512-3IhovpmUBpcETnoKK/KBdkz2mz53kVG5E1dnqz1QuYvtzdxYZW5xaGGEvW9u6Yyy2ivwR3eUZrn9inmEVef02w==} + engines: {node: '>=8'} dependencies: - browserslist: 4.21.5 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + big-integer: 1.6.51 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 + /normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} dependencies: - postcss: 8.4.26 + remove-trailing-separator: 1.1.0 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 + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true - /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 + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - postcss: 8.4.26 + path-key: 4.0.0 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 + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: - postcss: 8.4.26 + boolbase: 1.0.0 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 + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} - /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 + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - /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 + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} 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 + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} dependencies: - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + call-bind: 1.0.5 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 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 + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.26) + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 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 + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} 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 + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 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 + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 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 + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} 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 + ee-first: 1.1.1 - /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 + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: - browserslist: 4.21.5 - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + wrappy: 1.0.2 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 + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} dependencies: - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 + fn.name: 1.1.0 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 + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: - postcss: 8.4.26 + mimic-fn: 2.1.0 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 + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} 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 + mimic-fn: 4.0.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 + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} dependencies: - postcss: 8.4.26 - postcss-selector-parser: 6.0.13 + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 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 + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} dependencies: - icss-utils: 5.1.0(postcss@8.4.26) - postcss: 8.4.26 + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 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 + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} 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 + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + yocto-queue: 0.1.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 + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + yocto-queue: 1.0.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 + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + yocto-queue: 1.0.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 + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + p-limit: 3.1.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 + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + p-limit: 4.0.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 + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: - browserslist: 4.21.5 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + callsites: 3.1.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 + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: - normalize-url: 6.1.0 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + '@babel/code-frame': 7.21.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 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 + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.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 + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} dependencies: - cssnano-utils: 3.1.0(postcss@8.4.26) - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + domhandler: 5.0.3 + parse5: 7.1.2 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 + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: - postcss: 8.4.26 - postcss-value-parser: 4.2.0 + entities: 4.5.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 + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} 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 + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false - /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 + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} dev: false - /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 + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} 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 + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: false - /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 + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} dev: false - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: false - /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 - dependencies: - postcss: 8.4.26 + /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 - /postcss@8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} - engines: {node: ^10 || ^12 || >=14} + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 dev: false /prelude-ls@1.2.1: @@ -11230,11 +5578,6 @@ packages: 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: @@ -11277,26 +5620,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'} @@ -11305,42 +5628,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'} @@ -11348,30 +5635,9 @@ 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: @@ -11382,11 +5648,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: @@ -11398,17 +5659,7 @@ packages: engines: {node: '>=0.12'} dependencies: discontinuous-range: 1.0.0 - 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'} + ret: 0.1.15 dev: false /range-parser@1.2.1: @@ -11434,210 +5685,6 @@ 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'} @@ -11652,44 +5699,7 @@ packages: 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 + dev: true /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -11700,117 +5710,10 @@ packages: 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 - dev: false - - /remark-parse@8.0.3: - resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} - 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 - - /remark-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==} - dependencies: - mdast-squeeze-paragraphs: 4.0.0 - 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'} @@ -11822,14 +5725,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'} @@ -11846,9 +5741,6 @@ packages: /resolve-from@5.0.0: 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: @@ -11864,12 +5756,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'} @@ -11899,6 +5785,7 @@ packages: /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false /rfdc@1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} @@ -11911,40 +5798,6 @@ packages: glob: 7.2.3 dev: false - /rollup@4.6.1: - resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.6.1 - '@rollup/rollup-android-arm64': 4.6.1 - '@rollup/rollup-darwin-arm64': 4.6.1 - '@rollup/rollup-darwin-x64': 4.6.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.6.1 - '@rollup/rollup-linux-arm64-gnu': 4.6.1 - '@rollup/rollup-linux-arm64-musl': 4.6.1 - '@rollup/rollup-linux-x64-gnu': 4.6.1 - '@rollup/rollup-linux-x64-musl': 4.6.1 - '@rollup/rollup-win32-arm64-msvc': 4.6.1 - '@rollup/rollup-win32-ia32-msvc': 4.6.1 - '@rollup/rollup-win32-x64-msvc': 4.6.1 - 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'} @@ -11954,6 +5807,7 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + dev: false /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -11971,10 +5825,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==} @@ -11994,83 +5844,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 @@ -12112,39 +5885,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'} @@ -12174,14 +5914,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==} @@ -12193,15 +5925,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'} @@ -12212,20 +5935,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: @@ -12235,6 +5944,7 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: false /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} @@ -12247,33 +5957,10 @@ 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'} + dev: false /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} @@ -12292,21 +5979,8 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} dependencies: - ansi-styles: 6.2.1 - 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'} + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 dev: false /sort-object-keys@1.1.3: @@ -12326,72 +6000,11 @@ 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'} - dependencies: - 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 @@ -12401,32 +6014,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'} @@ -12445,15 +6040,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'} @@ -12488,27 +6074,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'} @@ -12523,11 +6094,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'} @@ -12538,20 +6104,11 @@ packages: engines: {node: '>=8'} dev: false - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - /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'} @@ -12561,54 +6118,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'} - hasBin: true - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.5 - ts-interface-checker: 0.1.13 - dev: true - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -12623,40 +6132,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} @@ -12665,48 +6145,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'} @@ -12720,35 +6158,10 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: false - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: true - /through@2.3.8: 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'} @@ -12756,16 +6169,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'} @@ -12776,42 +6179,14 @@ packages: 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 - /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - /tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - dependencies: - punycode: 2.3.0 - dev: true - - /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - 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'} @@ -12821,10 +6196,6 @@ packages: typescript: 5.3.3 dev: false - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true - /ts-interface-checker@1.0.0: resolution: {integrity: sha512-yUeWbFBDiwPodNqrqpvQpGWheL6PvNu2/pVAb9yy2vzdkkflCgwVA4U2akByPCXzYTum3/5/nB92yKuiLpSo/Q==} dev: false @@ -12850,43 +6221,15 @@ packages: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: false - /tsup@8.0.2(typescript@5.3.3): - resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} - engines: {node: '>=18'} + /tsx@4.7.0: + resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} + engines: {node: '>=18.0.0'} hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true dependencies: - bundle-require: 4.0.1(esbuild@0.19.11) - cac: 6.7.14 - chokidar: 3.5.3 - debug: 4.3.4 esbuild: 0.19.11 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 4.0.1 - resolve-from: 5.0.0 - rollup: 4.6.1 - source-map: 0.8.0-beta.0 - sucrase: 3.32.0 - tree-kill: 1.2.2 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - ts-node + get-tsconfig: 4.7.2 + optionalDependencies: + fsevents: 2.3.3 dev: true /tsx@4.7.1: @@ -12977,11 +6320,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'} @@ -13013,178 +6351,59 @@ packages: is-typed-array: 1.1.12 dev: false - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: false - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - 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 - - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.5 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: false - - /unconfig@0.3.11: - resolution: {integrity: sha512-bV/nqePAKv71v3HdVUn6UefbsDKQWRX+bJIkiSm0+twIds6WiD2bJLWWT3i214+J/B4edufZpG2w7Y63Vbwxow==} - dependencies: - '@antfu/utils': 0.7.6 - defu: 6.1.2 - jiti: 1.20.0 - mlly: 1.4.2 - dev: false - - /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==} + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} 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 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 dev: false - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 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==} + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 dev: false - /unist-util-position@3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true dev: false - /unist-util-remove-position@2.0.1: - resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} - dependencies: - unist-util-visit: 2.0.3 + /ufo@1.3.1: + resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} dev: false - /unist-util-remove@2.1.0: - resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - unist-util-is: 4.1.0 + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 dev: false - /unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + /unconfig@0.3.11: + resolution: {integrity: sha512-bV/nqePAKv71v3HdVUn6UefbsDKQWRX+bJIkiSm0+twIds6WiD2bJLWWT3i214+J/B4edufZpG2w7Y63Vbwxow==} dependencies: - '@types/unist': 2.0.6 + '@antfu/utils': 0.7.6 + defu: 6.1.2 + jiti: 1.20.0 + mlly: 1.4.2 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 + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /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 + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} dev: false /universalify@2.0.0: @@ -13202,118 +6421,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'} @@ -13333,10 +6450,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'} @@ -13346,230 +6459,14 @@ 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==} - - /webidl-conversions@4.0.2: - 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: @@ -13582,14 +6479,7 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - - /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - dev: true + dev: false /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -13626,30 +6516,30 @@ 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'} + /winston-transport@4.7.0: + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + engines: {node: '>= 12.0.0'} dependencies: - string-width: 5.1.2 + logform: 2.5.1 + readable-stream: 3.6.2 + triple-beam: 1.3.0 dev: false - /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - - /winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + /winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} engines: {node: '>= 12.0.0'} dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.3 + async: 3.2.4 + is-stream: 2.0.1 logform: 2.5.1 + one-time: 1.0.0 readable-stream: 3.6.2 + safe-stable-stringify: 2.4.3 + stack-trace: 0.0.10 triple-beam: 1.3.0 + winston-transport: 4.7.0 dev: false /winston@3.12.0: @@ -13683,15 +6573,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'} @@ -13703,57 +6584,6 @@ 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: @@ -13761,22 +6591,14 @@ packages: 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'} + dev: false /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} @@ -13806,21 +6628,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/build.mjs b/services/larc-scraper/build.mjs new file mode 100644 index 00000000..9594b598 --- /dev/null +++ b/services/larc-scraper/build.mjs @@ -0,0 +1,72 @@ +import { chmod, copyFile, mkdir, rm } from "node:fs/promises"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +import { build } from "esbuild"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +/** + * @see https://github.com/evanw/esbuild/issues/1921#issuecomment-1623640043 + */ +// language=JavaScript +const js = ` + import topLevelModule from "node:module"; + import topLevelUrl from "node:url"; + import topLevelPath from "node:path"; + + const require = topLevelModule.createRequire(import.meta.url); + const __filename = topLevelUrl.fileURLToPath(import.meta.url); + const __dirname = topLevelPath.dirname(__filename); +`; + +async function buildApp() { + const options = { + entryPoints: { index: "src/index.ts" }, + outdir: "dist", + outExtension: { ".js": ".mjs" }, + bundle: true, + minify: true, + format: "esm", + platform: "node", + target: "node20", + logLevel: "info", + banner: { js }, + plugins: [ + { + name: "clean", + setup(build) { + build.onStart(async () => { + await rm(join(__dirname, "dist/"), { recursive: true, force: true }); + await mkdir(join(__dirname, "dist/")); + }); + }, + }, + { + name: "copy", + setup(build) { + build.onEnd(async () => { + await copyFile( + join( + __dirname, + "../../libs/db/node_modules/prisma/libquery_engine-linux-arm64-openssl-3.0.x.so.node", + ), + join(__dirname, "dist/libquery_engine-linux-arm64-openssl-3.0.x.so.node"), + ); + await copyFile( + join(__dirname, "../../libs/db/prisma/schema.prisma"), + join(__dirname, "dist/schema.prisma"), + ); + await chmod( + join(__dirname, "dist/libquery_engine-linux-arm64-openssl-3.0.x.so.node"), + 0o755, + ); + }); + }, + }, + ], + }; + await build(options); +} + +buildApp().then(); diff --git a/services/larc-scraper/package.json b/services/larc-scraper/package.json new file mode 100644 index 00000000..7eb93426 --- /dev/null +++ b/services/larc-scraper/package.json @@ -0,0 +1,24 @@ +{ + "name": "@services/larc-scraper", + "version": "0.0.0", + "private": true, + "description": "Automated scraper for LARC sections", + "license": "MIT", + "type": "module", + "main": "src/index.ts", + "types": "src/index.ts", + "scripts": { + "build": "node build.mjs" + }, + "dependencies": { + "@libs/db": "workspace:^", + "@libs/uc-irvine-lib": "workspace:^", + "@libs/utils": "workspace:^", + "cheerio": "1.0.0-rc.12", + "cross-fetch": "4.0.0" + }, + "devDependencies": { + "@anteater-api/types": "workspace:^", + "esbuild": "0.20.1" + } +} diff --git a/services/larc-scraper/src/index.ts b/services/larc-scraper/src/index.ts new file mode 100644 index 00000000..c40ee3c4 --- /dev/null +++ b/services/larc-scraper/src/index.ts @@ -0,0 +1,69 @@ +import { LarcResponse, Quarter } from "@anteater-api/types"; +import { PrismaClient } from "@libs/db"; +import { load } from "cheerio"; +import { fetch } from "cross-fetch"; + +import { fmtBldg, fmtDays, fmtTime, quarterToLarcSuffix } from "./lib"; + +const EARLIEST_YEAR = 2019; + +const prisma = new PrismaClient(); + +export const sleep = async (duration: number) => + new Promise((resolve) => setTimeout(resolve, duration)); + +export const handler = async () => { + const data: Array<{ year: string; quarter: Quarter; courses: LarcResponse }> = []; + const quarters = ["Fall", "Winter", "Spring", "Summer1", "Summer2"] as const; + for (let year = EARLIEST_YEAR; year < new Date().getFullYear() + 2; ++year) { + for (const quarter of quarters) { + console.log(`Scraping ${year} ${quarter}`); + const html = await fetch( + `https://enroll.larc.uci.edu/${year}${quarterToLarcSuffix(quarter)}`, + ).then((response) => response.text()); + + const $ = load(html); + + const courses = $(".tutorial-group") + .toArray() + .map((card) => { + const match = $(card) + .find(".card-header") + .text() + .trim() + .match( + /(?[^()]*)( \(same as (?.*)\))? - (.*) \((?.*)\)/, + ); + + const sections = $(card) + .find(".list-group") + .toArray() + .map((group) => { + const rows = $(group).find(".col-lg-4"); + + const [days, time] = $(rows[0]) + .find(".col") + .map((_, col) => $(col).text().trim()); + + const [instructor, building] = $(rows[1]) + .find(".col") + .map((_, col) => $(col).text().trim()); + + return { + days: fmtDays(days), + time: fmtTime(time), + instructor, + bldg: fmtBldg(building), + }; + }); + + return { courseInfo: { ...match?.groups }, sections }; + }); + data.push({ year: year.toString(), quarter, courses: (courses as LarcResponse) ?? [] }); + await sleep(1000); + } + } + await prisma.$transaction([prisma.larcTerm.deleteMany({}), prisma.larcTerm.createMany({ data })]); +}; + +handler().then(); diff --git a/apps/api/src/routes/v1/rest/larc/lib.ts b/services/larc-scraper/src/lib.ts similarity index 93% rename from apps/api/src/routes/v1/rest/larc/lib.ts rename to services/larc-scraper/src/lib.ts index 3b224df4..c687bf09 100644 --- a/apps/api/src/routes/v1/rest/larc/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/constructs/LarcScraper.ts b/tools/cdk/src/constructs/LarcScraper.ts new file mode 100644 index 00000000..14202920 --- /dev/null +++ b/tools/cdk/src/constructs/LarcScraper.ts @@ -0,0 +1,42 @@ +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +import { Duration } from "aws-cdk-lib"; +import { Rule, RuleTargetInput, Schedule } from "aws-cdk-lib/aws-events"; +import { LambdaFunction } from "aws-cdk-lib/aws-events-targets"; +import { Architecture, Code, Function, Runtime } from "aws-cdk-lib/aws-lambda"; +import { Construct } from "constructs"; + +export class LarcScraper extends Construct { + constructor(scope: Construct, id: string) { + super(scope, id); + + const ruleName = `${id}-rule`; + + const rule = new Rule(this, ruleName, { + ruleName, + schedule: Schedule.rate(Duration.days(1)), + }); + + const functionName = `${id}-function`; + + rule.addTarget( + new LambdaFunction( + new Function(this, functionName, { + architecture: Architecture.ARM_64, + code: Code.fromAsset( + join(dirname(fileURLToPath(import.meta.url)), "../../../../services/larc-scraper/dist"), + ), + functionName, + handler: "index.handler", + timeout: Duration.seconds(15), + runtime: Runtime.NODEJS_20_X, + memorySize: 512, + }), + { + event: RuleTargetInput.fromObject({ body: "{}" }), + }, + ), + ); + } +} 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/cdk/src/stacks/services.ts b/tools/cdk/src/stacks/services.ts index ece3efd1..ec483d3f 100644 --- a/tools/cdk/src/stacks/services.ts +++ b/tools/cdk/src/stacks/services.ts @@ -4,6 +4,7 @@ import { SubnetType, Vpc } from "aws-cdk-lib/aws-ec2"; import type { Construct } from "constructs"; import { CalendarScraper } from "../constructs/CalendarScraper"; +import { LarcScraper } from "../constructs/LarcScraper"; import { WebsocProxy } from "../constructs/WebsocProxy"; import { WebsocScraperV2 } from "../constructs/WebsocScraperV2"; @@ -30,6 +31,8 @@ export class ServicesStack extends Stack { new CalendarScraper(this, `${id}-calendar-scraper`); + new LarcScraper(this, `${id}-larc-scraper`); + new WebsocProxy(this, `${id}-websoc-proxy`); new WebsocScraperV2(this, `${id}-websoc-scraper-v2`, vpc); diff --git a/packages/websoc-fuzzy-search/.gitignore b/tools/degreeworks-scraper/.gitignore similarity index 61% rename from packages/websoc-fuzzy-search/.gitignore rename to tools/degreeworks-scraper/.gitignore index ea1472ec..2132813f 100644 --- a/packages/websoc-fuzzy-search/.gitignore +++ b/tools/degreeworks-scraper/.gitignore @@ -1 +1,2 @@ output/ +.env diff --git a/tools/degreeworks-scraper/package.json b/tools/degreeworks-scraper/package.json new file mode 100644 index 00000000..b4927df9 --- /dev/null +++ b/tools/degreeworks-scraper/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tools/degreeworks-scraper", + "version": "0.0.0", + "private": true, + "type": "module", + "main": "src/index.ts", + "scripts": { + "start": "tsx src/index.ts" + }, + "dependencies": { + "@anteater-api/types": "workspace:^", + "@libs/db": "workspace:^", + "cross-fetch": "4.0.0", + "dotenv": "16.4.1", + "jwt-decode": "4.0.0" + }, + "devDependencies": { + "tsx": "4.7.0" + } +} diff --git a/tools/degreeworks-scraper/src/components/APIOfflineClient.ts b/tools/degreeworks-scraper/src/components/APIOfflineClient.ts new file mode 100644 index 00000000..48f56011 --- /dev/null +++ b/tools/degreeworks-scraper/src/components/APIOfflineClient.ts @@ -0,0 +1,35 @@ +import type { Course, RawResponse } from "@anteater-api/types"; +import fetch from "cross-fetch"; + +const ENDPOINT = "https://anteaterapi.com/v1/rest/courses/all"; + +export class APIOfflineClient { + private cache = new Map(); + + private constructor() {} + + static async new(): Promise { + const apiClient = new APIOfflineClient(); + const res = await fetch(ENDPOINT, { headers: { "accept-encoding": "gzip" } }); + const json: RawResponse = await res.json(); + 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( + `[APIOfflineClient.new] Fetched and stored ${json.payload.length} courses from Anteater API`, + ); + return apiClient; + } + + getCourse(courseNumber: string): Course | undefined { + return this.cache.get(courseNumber); + } + + getCoursesByDepartment( + department: string, + predicate: (x: Course) => boolean = () => true, + ): Course[] { + return Array.from(this.cache.values()) + .filter((x) => x.id.startsWith(department)) + .filter(predicate); + } +} diff --git a/tools/degreeworks-scraper/src/components/AuditParser.ts b/tools/degreeworks-scraper/src/components/AuditParser.ts new file mode 100644 index 00000000..5184f6f0 --- /dev/null +++ b/tools/degreeworks-scraper/src/components/AuditParser.ts @@ -0,0 +1,170 @@ +import type { Course } from "@anteater-api/types"; + +import type { Block, Program, ProgramId, Requirement, Rule } from "../types"; + +import { APIOfflineClient } from "."; + +export class AuditParser { + private static readonly specOrOtherMatcher = /"type":"(?:SPEC|OTHER)","value":"\w+"/g; + private static readonly electiveMatcher = /ELECTIVE @+/; + private static readonly wildcardMatcher = /\w@/; + private static readonly rangeMatcher = /-\w+/; + + private apiClient!: APIOfflineClient; + + private constructor() {} + + static async new(): Promise { + const ap = new AuditParser(); + ap.apiClient = await APIOfflineClient.new(); + console.log("[AuditParser.new] AuditParser initialized"); + return ap; + } + + parseBlock = (blockId: string, block: Block): Program => ({ + ...this.parseBlockId(blockId), + name: block.title, + requirements: this.ruleArrayToRequirements(block.ruleArray), + specs: this.parseSpecs(block), + }); + + lexOrd = new Intl.Collator().compare; + + parseSpecs = (block: Block): string[] => + Array.from(JSON.stringify(block).matchAll(AuditParser.specOrOtherMatcher)) + .map((x) => JSON.parse(`{${x[0]}}`).value) + .sort(); + + flattenIfStmt(ruleArray: Rule[]): Rule[] { + const ret = []; + for (const rule of ruleArray) { + switch (rule.ruleType) { + case "IfStmt": + ret.push( + ...this.flattenIfStmt(rule.requirement.ifPart.ruleArray), + ...this.flattenIfStmt(rule.requirement.elsePart?.ruleArray ?? []), + ); + break; + default: + ret.push(rule); + } + } + return ret; + } + + normalizeCourseId(courseIdLike: string): Course[] { + // "ELECTIVE @" is typically used as a pseudo-course and can be safely ignored. + if (courseIdLike.match(AuditParser.electiveMatcher)) return []; + const [department, courseNumber] = courseIdLike.split(" "); + if (courseNumber.match(AuditParser.wildcardMatcher)) { + // Wildcard course numbers. + return this.apiClient.getCoursesByDepartment( + department, + (x) => + !!x.courseNumber.match( + new RegExp( + "^" + + courseNumber.replace( + /@+/g, + `.{${[...courseNumber].filter((y) => y === "@").length},}`, + ), + ), + ), + ); + } + if (courseNumber.match(AuditParser.rangeMatcher)) { + // Course number ranges. + const [minCourseNumber, maxCourseNumber] = courseNumber.split("-"); + return this.apiClient.getCoursesByDepartment( + department, + (x) => + x.courseNumeric >= Number.parseInt(minCourseNumber, 10) && + x.courseNumeric <= Number.parseInt(maxCourseNumber, 10), + ); + } + // Probably a normal course, just make sure that it exists. + const course = this.apiClient.getCourse(`${department}${courseNumber}`); + return course ? [course] : []; + } + + ruleArrayToRequirements(ruleArray: Rule[]) { + const ret: Record = {}; + for (const rule of ruleArray) { + switch (rule.ruleType) { + case "Block": + case "Noncourse": + break; + case "Course": { + const includedCourses = rule.requirement.courseArray.map( + (x) => `${x.discipline} ${x.number}${x.numberEnd ? `-${x.numberEnd}` : ""}`, + ); + const toInclude = new Map( + includedCourses.flatMap(this.normalizeCourseId.bind(this)).map((x) => [x.id, x]), + ); + const excludedCourses = + rule.requirement.except?.courseArray.map( + (x) => `${x.discipline} ${x.number}${x.numberEnd ? `-${x.numberEnd}` : ""}`, + ) ?? []; + const toExclude = new Set( + excludedCourses.flatMap(this.normalizeCourseId.bind(this)).map((x) => x.id), + ); + const courses = Array.from(toInclude) + .filter(([x]) => !toExclude.has(x)) + .sort(([, a], [, b]) => + a.department === b.department + ? a.courseNumeric - b.courseNumeric || this.lexOrd(a.courseNumber, b.courseNumber) + : this.lexOrd(a.department, b.department), + ) + .map(([x]) => x); + if (rule.requirement.classesBegin) { + ret[rule.label] = { + requirementType: "Course", + courseCount: Number.parseInt(rule.requirement.classesBegin, 10), + courses, + }; + } else if (rule.requirement.creditsBegin) { + ret[rule.label] = { + requirementType: "Unit", + unitCount: Number.parseInt(rule.requirement.creditsBegin, 10), + courses, + }; + } + break; + } + case "Group": { + ret[rule.label] = { + requirementType: "Group", + requirementCount: Number.parseInt(rule.requirement.numberOfGroups), + requirements: this.ruleArrayToRequirements(rule.ruleArray), + }; + break; + } + case "IfStmt": { + const rules = this.flattenIfStmt([rule]); + if (rules.length > 1 && !rules.some((x) => x.ruleType === "Block")) { + ret["Select 1 of the following"] = { + requirementType: "Group", + requirementCount: 1, + requirements: this.ruleArrayToRequirements(rules), + }; + } + break; + } + case "Subset": { + const requirements = this.ruleArrayToRequirements(rule.ruleArray); + ret[rule.label] = { + requirementType: "Group", + requirementCount: Object.keys(requirements).length, + requirements, + }; + } + } + } + return ret; + } + + parseBlockId(blockId: string) { + const [school, programType, code, degreeType] = blockId.split("-"); + return { school, programType, code, degreeType } as ProgramId; + } +} diff --git a/tools/degreeworks-scraper/src/components/DegreeworksClient.ts b/tools/degreeworks-scraper/src/components/DegreeworksClient.ts new file mode 100644 index 00000000..6f475885 --- /dev/null +++ b/tools/degreeworks-scraper/src/components/DegreeworksClient.ts @@ -0,0 +1,131 @@ +import fetch from "cross-fetch"; + +import type { Block, DWAuditResponse, DWMappingResponse } from "../types"; + +export class DegreeworksClient { + private static readonly API_URL = "https://reg.uci.edu/RespDashboard/api"; + private static readonly AUDIT_URL = `${DegreeworksClient.API_URL}/audit`; + private catalogYear: string = ""; + + private constructor( + private readonly studentId: string, + private readonly headers: HeadersInit, + private readonly delay: number, + ) {} + + static async new( + studentId: string, + headers: HeadersInit, + delay: number = 1000, + ): Promise { + const dw = new DegreeworksClient(studentId, headers, delay); + /** + * Depending on when we are scraping, the catalog year may be the academic year that + * started the previous calendar year, or the one that will start this calendar year. + * + * We determine the catalog year by seeing if we can fetch the major data for the + * B.S. in Computer Science for the latter. If it is available, then we use that + * as the catalog year. Otherwise, we use the former. + */ + const currentYear = new Date().getUTCFullYear(); + const dataThisYear = await dw.getMajorAudit("BS", "U", "201"); + dw.catalogYear = dataThisYear + ? `${currentYear}${currentYear + 1}` + : `${currentYear - 1}${currentYear}`; + console.log(`[DegreeworksClient.new] Set catalogYear to ${dw.catalogYear}`); + return dw; + } + + sleep = (ms: number = this.delay) => new Promise((r) => setTimeout(r, ms)); + + async getMajorAudit( + degree: string, + school: string, + majorCode: string, + ): Promise { + const res = await fetch(DegreeworksClient.AUDIT_URL, { + method: "POST", + body: JSON.stringify({ + catalogYear: this.catalogYear, + degree, + school, + studentId: this.studentId, + classes: [], + goals: [{ code: "MAJOR", value: majorCode }], + }), + headers: this.headers, + }); + await this.sleep(); + const json: DWAuditResponse = await res.json().catch(() => ({ error: "" })); + return "error" in json + ? undefined + : json.blockArray.find( + (x) => x.requirementType === "MAJOR" && x.requirementValue === majorCode, + ); + } + + async getMinorAudit(minorCode: string): Promise { + const res = await fetch(DegreeworksClient.AUDIT_URL, { + method: "POST", + body: JSON.stringify({ + catalogYear: this.catalogYear, + studentId: this.studentId, + degree: "BA", + school: "U", + classes: [], + goals: [ + { code: "MAJOR", value: "000" }, + { code: "MINOR", value: minorCode }, + ], + }), + headers: this.headers, + }); + await this.sleep(); + const json: DWAuditResponse = await res.json().catch(() => ({ error: "" })); + return "error" in json + ? undefined + : json.blockArray.find( + (x) => x.requirementType === "MINOR" && x.requirementValue === minorCode, + ); + } + + async getSpecAudit( + degree: string, + school: string, + majorCode: string, + specCode: string, + ): Promise { + const res = await fetch(DegreeworksClient.AUDIT_URL, { + method: "POST", + body: JSON.stringify({ + catalogYear: this.catalogYear, + degree, + school, + studentId: this.studentId, + classes: [], + goals: [ + { code: "MAJOR", value: majorCode }, + { code: "SPEC", value: specCode }, + { code: "OTHER", value: specCode }, + ], + }), + headers: this.headers, + }); + await this.sleep(); + const json: DWAuditResponse = await res.json().catch(() => ({ error: "" })); + return "error" in json + ? undefined + : json.blockArray.find( + (x) => + (x.requirementType === "SPEC" || x.requirementType === "OTHER") && + x.requirementValue === specCode, + ); + } + + async getMapping(path: T): Promise> { + const res = await fetch(`${DegreeworksClient.API_URL}/${path}`, { headers: this.headers }); + await this.sleep(); + const json: DWMappingResponse = await res.json(); + return new Map(json._embedded[path].map((x) => [x.key, x.description])); + } +} diff --git a/tools/degreeworks-scraper/src/components/Scraper.ts b/tools/degreeworks-scraper/src/components/Scraper.ts new file mode 100644 index 00000000..bef2a812 --- /dev/null +++ b/tools/degreeworks-scraper/src/components/Scraper.ts @@ -0,0 +1,191 @@ +import { jwtDecode } from "jwt-decode"; +import type { JwtPayload } from "jwt-decode"; + +import type { Program } from "../types"; + +import { AuditParser, DegreeworksClient } from "."; + +const JWT_HEADER_PREFIX_LENGTH = 7; + +export class Scraper { + private ap!: AuditParser; + private dw!: DegreeworksClient; + + private degrees: Map | undefined = undefined; + private majorPrograms: Set | undefined = undefined; + private minorPrograms: Set | undefined = undefined; + + private done = false; + private parsedMinorPrograms: Map | undefined = undefined; + private parsedUgradPrograms: Map | undefined = undefined; + private parsedGradPrograms: Map | undefined = undefined; + private parsedSpecializations: Map | undefined = undefined; + private degreesAwarded: Map | undefined = undefined; + + private constructor() {} + + private async scrapePrograms(school: string, degrees: Set) { + if (!this.majorPrograms) throw new Error("majorPrograms has not yet been initialized."); + const ret = new Map(); + for (const degree of degrees) { + for (const majorCode of this.majorPrograms) { + const audit = await this.dw.getMajorAudit(degree, school, majorCode); + if (!audit) { + console.log( + `Requirements block not found (majorCode = ${majorCode}, degree = ${degree})`, + ); + continue; + } + if (ret.has(audit.title)) { + console.log( + `Requirements block already exists for "${audit.title}" (majorCode = ${majorCode}, degree = ${degree})`, + ); + continue; + } + ret.set(audit.title, this.ap.parseBlock(`${school}-MAJOR-${majorCode}-${degree}`, audit)); + console.log( + `Requirements block found and parsed for "${audit.title}" (majorCode = ${majorCode}, degree = ${degree})`, + ); + } + } + return ret; + } + private cleanUpPrograms(programs: Map) { + const ret = new Map(); + for (const [name, program] of programs) { + if (!Object.keys(program.requirements).length) { + if (program.specs.length === 1) { + program.requirements = this.parsedSpecializations!.get(program.specs[0])!.requirements; + } else { + program.requirements = { + "Select 1 of the following": { + requirementType: "Group", + requirementCount: 1, + requirements: Object.fromEntries( + program.specs.map((x) => [ + this.parsedSpecializations?.get(x)?.name, + this.parsedSpecializations?.get(x)?.requirements, + ]), + ), + }, + }; + } + program.specs = []; + } + ret.set(name, program); + } + return ret; + } + async run() { + if (this.done) throw new Error("This scraper instance has already finished its run."); + console.log("[Scraper] degreeworks-scraper starting"); + this.degrees = await this.dw.getMapping("degrees"); + console.log(`Fetched ${this.degrees.size} degrees`); + this.majorPrograms = new Set((await this.dw.getMapping("majors")).keys()); + console.log(`Fetched ${this.majorPrograms.size} major programs`); + this.minorPrograms = new Set((await this.dw.getMapping("minors")).keys()); + console.log(`Fetched ${this.minorPrograms.size} minor programs`); + const ugradDegrees = new Set(); + const gradDegrees = new Set(); + for (const degree of this.degrees.keys()) + (degree.startsWith("B") ? ugradDegrees : gradDegrees).add(degree); + this.parsedMinorPrograms = new Map(); + console.log("Scraping minor program requirements"); + for (const minorCode of this.minorPrograms) { + const audit = await this.dw.getMinorAudit(minorCode); + if (!audit) { + console.log(`Requirements block not found (minorCode = ${minorCode})`); + continue; + } + this.parsedMinorPrograms.set(audit.title, this.ap.parseBlock(`U-MINOR-${minorCode}`, audit)); + console.log( + `Requirements block found and parsed for "${audit.title}" (minorCode = ${minorCode})`, + ); + } + console.log("Scraping undergraduate program requirements"); + this.parsedUgradPrograms = await this.scrapePrograms("U", ugradDegrees); + console.log("Scraping graduate program requirements"); + this.parsedGradPrograms = await this.scrapePrograms("G", gradDegrees); + this.parsedSpecializations = new Map(); + console.log("Scraping all specialization requirements"); + for (const [, { specs, school, code: majorCode, degreeType: degree }] of [ + ...this.parsedUgradPrograms, + ...this.parsedGradPrograms, + ]) { + if (!degree) throw new Error("Degree type is undefined"); + for (const specCode of specs) { + const audit = await this.dw.getSpecAudit(degree, school, majorCode, specCode); + if (!audit) { + console.log( + `Requirements block not found (school = ${school}, majorCode = ${majorCode}, specCode = ${specCode}, degree = ${degree})`, + ); + continue; + } + this.parsedSpecializations.set( + specCode, + this.ap.parseBlock(`${school}-SPEC-${specCode}-${degree}`, audit), + ); + console.log( + `Requirements block found and parsed for "${audit.title}" (specCode = ${specCode})`, + ); + } + } + this.degreesAwarded = new Map( + Array.from( + new Set( + [...this.parsedUgradPrograms, ...this.parsedGradPrograms].map(([, x]) => x.degreeType!), + ), + ).map((x) => [x, this.degrees!.get(x)!]), + ); + + // Post-processing steps. + + // As of this commit, the only program which seems to require both of + // its "specializations" is the B.A. in Art History. There's probably a + // cleaner way to address this, but this is such an insanely niche case + // that it's probably not worth the effort to write a general solution. + + let x, y, z; + if ( + (x = this.parsedUgradPrograms.get("Major in Art History")!) && + (y = this.parsedSpecializations.get("AHGEO")!) && + (z = this.parsedSpecializations.get("AHPER")!) + ) { + x.specs = []; + x.requirements = { ...x.requirements, ...y.requirements, ...z.requirements }; + this.parsedSpecializations.delete("AHGEO"); + this.parsedSpecializations.delete("AHPER"); + this.parsedUgradPrograms.set("Major in Art History", x); + } + + // Some programs have an empty requirements block and more than one specialization. + // They can be simplified into a "Select 1 of the following" group requirement. + this.parsedUgradPrograms = this.cleanUpPrograms(this.parsedUgradPrograms); + this.parsedGradPrograms = this.cleanUpPrograms(this.parsedGradPrograms); + + this.done = true; + } + get() { + if (!this.done) throw new Error("This scraper instance has not yet finished its run."); + return { + parsedMinorPrograms: this.parsedMinorPrograms!, + parsedUgradPrograms: this.parsedUgradPrograms!, + parsedGradPrograms: this.parsedGradPrograms!, + parsedSpecializations: this.parsedSpecializations!, + degreesAwarded: this.degreesAwarded!, + }; + } + static async new(authCookie: string): Promise { + const studentId = jwtDecode(authCookie.slice(JWT_HEADER_PREFIX_LENGTH))?.sub; + if (studentId?.length !== 8) throw new Error("Could not parse student ID from auth cookie."); + const headers = { + "Content-Type": "application/json", + Cookie: `X-AUTH-TOKEN=${authCookie}`, + Origin: "https://reg.uci.edu", + }; + const scraper = new Scraper(); + scraper.ap = await AuditParser.new(); + scraper.dw = await DegreeworksClient.new(studentId, headers); + return scraper; + } +} diff --git a/tools/degreeworks-scraper/src/components/index.ts b/tools/degreeworks-scraper/src/components/index.ts new file mode 100644 index 00000000..f800049b --- /dev/null +++ b/tools/degreeworks-scraper/src/components/index.ts @@ -0,0 +1,4 @@ +export { AuditParser } from "./AuditParser"; +export { DegreeworksClient } from "./DegreeworksClient"; +export { APIOfflineClient } from "./APIOfflineClient"; +export { Scraper } from "./Scraper"; diff --git a/tools/degreeworks-scraper/src/index.ts b/tools/degreeworks-scraper/src/index.ts new file mode 100644 index 00000000..ecc46a90 --- /dev/null +++ b/tools/degreeworks-scraper/src/index.ts @@ -0,0 +1,56 @@ +import { PrismaClient } from "@libs/db"; + +import { Scraper } from "./components"; + +import "dotenv/config"; + +const prisma = new PrismaClient(); + +type Division = "Undergraduate" | "Graduate"; + +async function main() { + if (!process.env["X_AUTH_TOKEN"]) throw new Error("Auth cookie not set."); + const scraper = await Scraper.new(process.env["X_AUTH_TOKEN"]); + await scraper.run(); + const { + degreesAwarded, + parsedSpecializations, + parsedGradPrograms, + parsedMinorPrograms, + parsedUgradPrograms, + } = scraper.get(); + const degreeData = Array.from(degreesAwarded.entries()).map(([id, name]) => ({ + id, + name, + division: (id.startsWith("B") ? "Undergraduate" : "Graduate") as Division, + })); + const majorData = [ + ...Array.from(parsedUgradPrograms.values()), + ...Array.from(parsedGradPrograms.values()), + ].map(({ name, degreeType, code, requirements }) => ({ + id: `${degreeType}-${code}`, + degreeId: degreeType!, + code, + name, + requirements, + })); + const minorData = Array.from(parsedMinorPrograms.values()).map( + ({ name, code: id, requirements }) => ({ id, name, requirements }), + ); + const specData = Array.from(parsedSpecializations.values()).map( + ({ name, degreeType, code, requirements }) => ({ + id: `${degreeType}-${code}`, + majorId: `${degreeType}-${code.slice(0, code.length - 1)}`, + name, + requirements, + }), + ); + await prisma.$transaction([ + prisma.degree.createMany({ data: degreeData, skipDuplicates: true }), + prisma.major.createMany({ data: majorData, skipDuplicates: true }), + prisma.minor.createMany({ data: minorData, skipDuplicates: true }), + prisma.specialization.createMany({ data: specData, skipDuplicates: true }), + ]); +} + +main().then(); diff --git a/tools/degreeworks-scraper/src/types.ts b/tools/degreeworks-scraper/src/types.ts new file mode 100644 index 00000000..c96c9a75 --- /dev/null +++ b/tools/degreeworks-scraper/src/types.ts @@ -0,0 +1,148 @@ +// region DegreeWorks response types +/** + * The base type for all `Rule` objects. + */ +export type RuleBase = { label: string }; +/** + * A group of `numberOfRules` rules, + * of which `numberOfGroups` must be satisfied + * in order to fulfill this rule. + */ +export type RuleGroup = { + ruleType: "Group"; + requirement: { numberOfGroups: string; numberOfRules: string }; + ruleArray: Rule[]; +}; +/** + * An object that represents a (range of) course(s). + */ +export type Course = { discipline: string; number: string; numberEnd?: string }; +/** + * A rule that is fulfilled by taking `creditsBegin` units + * and/or `classesBegin` courses from the `courseArray`. + */ +export type RuleCourse = { + ruleType: "Course"; + requirement: { + creditsBegin?: string; + classesBegin?: string; + courseArray: Course[]; + except?: { courseArray: Course[] }; + }; +}; +/** + * A rule that has different requirements depending on some boolean condition. + * This seems to be used to denote all specializations that can be applied to a major. + */ +export type RuleIfStmt = { + ruleType: "IfStmt"; + requirement: { ifPart: { ruleArray: Rule[] }; elsePart?: { ruleArray: Rule[] } }; +}; +/** + * A rule that refers to another block (typically a specialization). + */ +export type RuleBlock = { + ruleType: "Block"; + requirement: { numBlocks: string; type: string; value: string }; +}; +/** + * A rule that is not a course. + * This seems to be only used by Engineering majors + * that have a design unit requirement. + */ +export type RuleNoncourse = { + ruleType: "Noncourse"; + requirement: { numNoncourses: string; code: string }; +}; +export type RuleSubset = { + ruleType: "Subset"; + ruleArray: Rule[]; +}; +export type Rule = RuleBase & + (RuleGroup | RuleCourse | RuleIfStmt | RuleBlock | RuleNoncourse | RuleSubset); +export type Block = { + requirementType: string; + requirementValue: string; + title: string; + ruleArray: Rule[]; +}; +export type DWAuditOKResponse = { blockArray: Block[] }; +export type DWAuditErrorResponse = { error: never }; +/** + * The type of the DegreeWorks audit response. + */ +export type DWAuditResponse = DWAuditOKResponse | DWAuditErrorResponse; + +export type DWMappingResponse = { + _embedded: { [P in T]: { key: string; description: string }[] }; +}; +// endregion + +// region Processed types + +export type ProgramId = { + school: "U" | "G"; + programType: "MAJOR" | "MINOR" | "SPEC"; + code: string; + degreeType?: string; +}; + +export type Program = ProgramId & { + /** + * The display name of the program. + * @example "Major in Computer Science" + * @example "Minor in Mathematics" + * @example "Specialization in Digital Signal Processing" + */ + name: string; + /** + * The mapping of requirement names to requirement nodes. + */ + requirements: Record; + /** + * The set of specializations (if any) that this program has. + * If this array is not empty, then exactly one specialization must be selected + * to fulfill the requirements of the program. + */ + specs: string[]; +}; + +export type CourseRequirement = { + requirementType: "Course"; + /** + * The number of courses required to fulfill this requirement. + */ + courseCount: number; + /** + * The set of courses that can be taken to fulfill this requirement. + */ + courses: string[]; +}; + +export type UnitRequirement = { + requirementType: "Unit"; + /** + * The number of units earned from the following list of courses + * that are required to fulfill this requirement. + */ + unitCount: number; + /** + * The set of courses which units count towards this requirement. + */ + courses: string[]; +}; + +export type GroupRequirement = { + requirementType: "Group"; + /** + * The number of requirement from the mapping below + * that must be fulfilled to fulfill this requirement. + */ + requirementCount: number; + /** + * The mapping of requirement names to requirement nodes. + */ + requirements: Record; +}; + +export type Requirement = CourseRequirement | UnitRequirement | GroupRequirement; 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/.gitignore b/tools/study-room-scraper/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/tools/study-room-scraper/package.json b/tools/study-room-scraper/package.json new file mode 100644 index 00000000..bab7d2a9 --- /dev/null +++ b/tools/study-room-scraper/package.json @@ -0,0 +1,19 @@ +{ + "name": "@tools/study-room-scraper", + "version": "0.0.0", + "private": true, + "description": "", + "license": "MIT", + "type": "module", + "main": "index.ts", + "dependencies": { + "@libs/db": "workspace:^", + "cheerio": "^1.0.0-rc.12", + "cross-fetch": "4.0.0", + "winston": "^3.11.0" + }, + "devDependencies": { + "@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 new file mode 100644 index 00000000..9a64e040 --- /dev/null +++ b/tools/study-room-scraper/src/index.ts @@ -0,0 +1,31 @@ +import type { StudyRoom } from "@anteater-api/types"; +import { PrismaClient } from "@libs/db"; + +import { scrapeStudyLocations } from "./study-room-scraper"; + +const prisma = new PrismaClient(); + +async function main() { + const studyLocations = await scrapeStudyLocations(); + const studyLocationInfo = Object.values(studyLocations).map((location) => { + return prisma.studyLocation.create({ + data: { + id: location.id, + lid: location.lid, + name: location.name, + rooms: { + create: location.rooms.map((room: StudyRoom) => ({ + ...room, + })), + }, + }, + }); + }); + await prisma.$transaction([ + prisma.studyRoom.deleteMany({}), + prisma.studyLocation.deleteMany({}), + ...studyLocationInfo, + ]); +} + +main().then(); diff --git a/tools/study-room-scraper/src/study-room-scraper.ts b/tools/study-room-scraper/src/study-room-scraper.ts new file mode 100644 index 00000000..8f0fb056 --- /dev/null +++ b/tools/study-room-scraper/src/study-room-scraper.ts @@ -0,0 +1,170 @@ +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"; +import * as winston from "winston"; + +const ROOM_SPACE_URL = "https://spaces.lib.uci.edu/space"; + +type StudyLocations = Record; + +const logger = winston.createLogger({ + level: "info", + format: winston.format.combine( + winston.format.timestamp(), + winston.format.json(), + winston.format.prettyPrint(), + ), + transports: [new winston.transports.Console()], +}); + +function processGML(descriptionHeader: Cheerio, $: CheerioAPI): string { + let descriptionText = ""; + descriptionHeader.find("p").each(function () { + let paraText = $(this).text().trim(); + if (paraText.includes("\n")) { + paraText = paraText.replaceAll("\n", ", "); + if (!paraText.endsWith(":")) { + paraText += ". "; + } + } + descriptionText += paraText + " "; + }); + descriptionText = descriptionText.replace(/\s{2,}/g, " ").trim(); + descriptionText = descriptionText.replace(/\s+,/g, ","); + descriptionText = descriptionText.replace(/\.\s*\./g, "."); + descriptionText = descriptionText.replace(".,", "."); + return descriptionText; +} + +function processDescription( + descriptionHeader: Cheerio, + location: string, + $: CheerioAPI, +): string { + let descriptionText = ""; + if (location === "Grunigen Medical Library") { + descriptionText = processGML(descriptionHeader, $); + } else { + const descriptionParts: string[] = []; + descriptionHeader.contents().each((_, content) => { + if (content.nodeType === 3) { + const textContent = $(content).text().trim(); + if (textContent) { + descriptionParts.push(textContent); + } + } else if (content.nodeType === 1) { + const child = $(content); + if (child.is("p, ul, li, strong, em, span, br")) { + if (child.is("ul")) { + child.find("li").each((_, li) => { + descriptionParts.push("- " + $(li).text().trim()); + }); + } else if (child.is("br")) { + descriptionParts.push("\n"); + } else { + descriptionParts.push(child.text().trim()); + } + } + } + }); + + let combinedDescription = descriptionParts.join(" ").replace(/\n+/g, ", "); + combinedDescription = combinedDescription + .replace(/\s*,\s*/g, ", ") + .replace(/\s*\.\s*/g, ". ") + .replace(/\s{2,}/g, " ") + .replace(/\.,/g, ".") + .replace(/\.\s*\./g, "."); + + combinedDescription = combinedDescription.replace(/\.\s*$/, "."); + descriptionText = combinedDescription.trim(); + } + + if (descriptionText && !descriptionText.endsWith(".")) { + descriptionText += "."; + } + + return descriptionText; +} + +async function getRoomInfo(RoomId: string): Promise { + const url = `${ROOM_SPACE_URL}/${RoomId}`; + const room: StudyRoom = { + id: `${RoomId}`, + name: "", + capacity: 0, + location: "", + }; + try { + const res = await fetch(url); + const text = await res.text(); + const $ = load(text); + + const roomHeader = $("#s-lc-public-header-title"); + const roomHeaderText = roomHeader.text().trim(); + const headerMatch = roomHeaderText.match( + /^(.*?)\s*(\(Tech Enhanced\))?\s*\n*\s*\((.*?)\)\s*\n*\s*Capacity:\s(\d+)/, + ); + if (headerMatch) { + room.name = headerMatch[1].trim(); + if (headerMatch[2]) { + room.techEnhanced = true; + } + room.location = headerMatch[3].trim(); + room.capacity = parseInt(headerMatch[4], 10); + } + + const directionsHeader = $(".s-lc-section-directions"); + const directionsText = directionsHeader.find("p").text().trim(); + if (directionsText) { + room.directions = directionsText.trim(); + if (!room.directions.endsWith(".")) { + room.directions += "."; + } + } + + const descriptionHeader = $(".s-lc-section-description"); + room.description = processDescription(descriptionHeader, room.location, $); + + logger.info(`Scraped Room ${RoomId}`, { room }); + return room; + } catch (error) { + logger.error(`Error fetching room information for room ${RoomId}`, { error }); + return room; + } +} + +export async function scrapeStudyLocations(): Promise { + const date = new Date(); + const start = date.toLocaleDateString("en-CA", { + year: "numeric", + month: "2-digit", + day: "2-digit", + }); + date.setDate(date.getDate() + 3); + const end = date.toLocaleDateString("en-CA", { + year: "numeric", + month: "2-digit", + day: "2-digit", + }); + const studyLocationsMap: StudyLocations = {}; + const rids = new Set(); + for (const lib in studyLocations) { + const studyLocation: StudyLocation = { + id: lib, + lid: studyLocations[lib].lid, + name: lib, + rooms: [], + }; + const spaces = await getStudySpaces(studyLocation.lid, start, end); + for (const room of spaces.slots) { + if (!rids.has(room.itemId)) { + studyLocation.rooms.push(await getRoomInfo(room.itemId)); + rids.add(room.itemId); + } + } + studyLocationsMap[studyLocation.id] = studyLocation; + } + return studyLocationsMap; +} 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/**/*"] }