From 9cf451202089203fd5d749d2a265dcd881fe197d Mon Sep 17 00:00:00 2001 From: Norbert Nagy Date: Thu, 4 Jul 2024 16:54:16 +0300 Subject: [PATCH] 18941 Deploy dev into stage (#62) * Add staging pipeline file (#36) * add file * fix * feat(cli): update seeder (#35) * Add deploy stage to logto-admin (#38) * fix(cli): fix logto pipeline (#40) * fix(cli): fix seeder to handle empty data (#41) fix(cli): fix seeder to handle empty values * feat: logto uat changes (#43) * feat: logto uat changes * Update pipeline-variables/uat.yml Co-authored-by: Sara Zanellato <47299026+peschina@users.noreply.github.com> --------- Co-authored-by: Sara Zanellato <47299026+peschina@users.noreply.github.com> * Test migration command in Terraform (#48) fix: remove seed commands from dockerfile * 18630 seed real roles (#45) * feat(cli): seed roles and permissions into db * fix(cli): cleanup code * chore(cli): small update * chore(cli): refactoring roles * chore(cli): refactoring organization roles * chore(cli): update * chore(cli): rename seeder file (#52) * chore(cli): rename seeder file * chore(cli): fix eof new line * chore: use port 7001 instead of 5001 to avoid conflicts with forms (#56) * fix(cli): remove secrets from local seeder (#59) * feat(cli): seed is_third_party flag (#57) * feat(cli): seed is_third_party flag * fix(demo-app): trying to ignore the entire seeder local file from gitleaks * Reverted .gitleaksignore change --------- Co-authored-by: alfonsograziano Co-authored-by: Alfonso Graziano * feat(cli): seed multiple redurect uris (#58) * Feature(ogcio): messaging integration (#60) * feat(ogcio): added messaging permissions locally * feat(core): updated seeder for deployments * chore(core): added EOL --------- Co-authored-by: Alfonso Graziano * Add MyGovId Mock service to Logto (#55) * feat(demo-app): copied mock service from life events repo * feat(demo-app): add mock users + fix build * feat(demo-app): changed port to not clash with 3005 in life-events auth-service * fix(demo-app): trying to ignore the entire seeder local file from gitleaks * feat(cli): seeder updates already existing entries (#61) * feat(cli): seeder updates already existing entries * feat(cli): seeder file updated * feat(cli): update * feat(cli): documenting the seeders limitations * feat(cli): updated documentation --------- Co-authored-by: Alfonso Graziano Co-authored-by: William Monteiro Co-authored-by: Sara Zanellato <47299026+peschina@users.noreply.github.com> Co-authored-by: Marius Sebastian Besel <145235082+msebastianb@users.noreply.github.com> Co-authored-by: alfonsograziano Co-authored-by: SamSalvatico <40636569+SamSalvatico@users.noreply.github.com> --- .gitleaksignore | 3 - .gitpod.yml | 3 +- README.OGCIO.md | 14 + mygovid-mock-service/.eslintrc.json | 21 + mygovid-mock-service/.gitignore | 2 + mygovid-mock-service/package.json | 44 + mygovid-mock-service/src/app.ts | 21 + mygovid-mock-service/src/index.ts | 13 + .../src/routes/healthcheck.ts | 6 + mygovid-mock-service/src/routes/index.ts | 8 + .../src/routes/logto/index.ts | 186 ++ .../src/routes/logto/utils/index.ts | 81 + .../src/routes/static/mock-login.html | 269 ++ .../src/test/routes/healthcheck.test.ts | 18 + mygovid-mock-service/src/types/httpErrors.ts | 10 + .../src/types/schemaDefinitions.ts | 12 + mygovid-mock-service/tap.yml | 14 + mygovid-mock-service/tsconfig.json | 17 + .../commands/database/ogcio/applications.ts | 19 +- .../src/commands/database/ogcio/connectors.ts | 6 +- .../database/ogcio/ogcio-seeder-local.json | 51 +- .../commands/database/ogcio/ogcio-seeder.json | 39 +- .../commands/database/ogcio/ogcio-seeder.ts | 11 +- .../database/ogcio/organizations-rbac.ts | 114 +- .../commands/database/ogcio/organizations.ts | 10 +- .../src/commands/database/ogcio/queries.ts | 58 +- .../commands/database/ogcio/resources-rbac.ts | 186 +- .../src/commands/database/ogcio/resources.ts | 15 +- .../src/commands/database/ogcio/webhooks.ts | 13 +- .../core/src/libraries/ogcio-constants.ts | 12 + packages/core/src/libraries/ogcio-user.ts | 25 +- packages/core/src/middleware/koa-spa-proxy.ts | 3 +- .../routes/applications/application.test.ts | 3 +- .../interaction/actions/submit-interaction.ts | 3 +- packages/experience/package.json | 2 +- pnpm-lock.yaml | 2653 ++++++++++++++++- pnpm-workspace.yaml | 2 + 37 files changed, 3595 insertions(+), 372 deletions(-) create mode 100644 mygovid-mock-service/.eslintrc.json create mode 100644 mygovid-mock-service/.gitignore create mode 100644 mygovid-mock-service/package.json create mode 100644 mygovid-mock-service/src/app.ts create mode 100644 mygovid-mock-service/src/index.ts create mode 100644 mygovid-mock-service/src/routes/healthcheck.ts create mode 100644 mygovid-mock-service/src/routes/index.ts create mode 100644 mygovid-mock-service/src/routes/logto/index.ts create mode 100644 mygovid-mock-service/src/routes/logto/utils/index.ts create mode 100644 mygovid-mock-service/src/routes/static/mock-login.html create mode 100644 mygovid-mock-service/src/test/routes/healthcheck.test.ts create mode 100644 mygovid-mock-service/src/types/httpErrors.ts create mode 100644 mygovid-mock-service/src/types/schemaDefinitions.ts create mode 100644 mygovid-mock-service/tap.yml create mode 100644 mygovid-mock-service/tsconfig.json create mode 100644 packages/core/src/libraries/ogcio-constants.ts diff --git a/.gitleaksignore b/.gitleaksignore index c6049a9b76b..ea3d921fb81 100644 --- a/.gitleaksignore +++ b/.gitleaksignore @@ -1,4 +1 @@ /src/packages/connectors/connector-saml/README.md:private-key:101 -/src/packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json:generic-api-key:37 -/src/packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json:generic-api-key:46 -/src/packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json:generic-api-key:157 diff --git a/.gitpod.yml b/.gitpod.yml index 31dcc8e32d6..b6a984ffb9f 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -38,7 +38,8 @@ ports: port: 5432 visibility: public onOpen: ignore - - port: 5001 + # OGCIO - formsie port collision fixed + - port: 7001 onOpen: ignore - port: 5002 onOpen: ignore diff --git a/README.OGCIO.md b/README.OGCIO.md index 9a1f976a5e1..26d53169c73 100644 --- a/README.OGCIO.md +++ b/README.OGCIO.md @@ -113,3 +113,17 @@ This command can take a parameter to specify the input data file, called `seeder Usage: `npm run cli db ogcio -- --seeder-filepath="DATA_FILE_PATH"` To seed the default data for local dev environments, run `npm run cli db ogcio -- --seeder-filepath="./packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json"`. + +### Limitations + +In most cases, we have predefined IDs in our seeder to ensure the same database structure, even if the database was cleared and re-seeded. Logto IDs are simple text fields (no UUID or other validations are applied) with a maximum length of 21 characters. Do not use IDs longer than 21 characters; otherwise, the seeder will fail with a database error! + +Be careful when defining a new ID because data duplication is avoided based on this field. If you later want to change the ID of any of your entries, the seeder won't be able to detect the existence of the affected entry, and it will try to create a new one. Creating a duplicate entry with a different ID can cause a database error if some other fields have a unique constraint. If this is not the case, a duplicate entry will be created, which is also a mistake, and we want to avoid any of these situations. Once you have defined an ID, do not change it if unnecessary. + +Using resources other than those declared in the seeder's data file is also impossible because referencing any resource outside of the seeder's scope is not supported. The seeder is supposed to create all the required resources and use them to seed the custom configuration into the database. + +### Edge cases + +Some changes might affect other entries from the database, like the user entities. In this case, a custom migration script is required to resolve the changes necessary to the affected entries. Before any change in the seeder data, analyse the situation to determine if it is safe to perform. The seeder is not intended to resolve conflicts or update other data than the configuration it seeds. + +Deletion of existing seeded data via the seeder is not yet possible. Only the permissions (scopes) will be removed and recreated every time the seeder is executed because that is safe and does not cause conflicts with other entries. A custom script or manual action is required for any other data that must be eliminated. diff --git a/mygovid-mock-service/.eslintrc.json b/mygovid-mock-service/.eslintrc.json new file mode 100644 index 00000000000..e4796c565a6 --- /dev/null +++ b/mygovid-mock-service/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "parser": "@typescript-eslint/parser", + "extends": [ + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended", + "eslint:recommended" + ], + "parserOptions": { + "ecmaVersion": 2020, + "sourceType": "module" + }, + "rules": { + "no-redeclare": "off", + "no-unused-vars": "off" + }, + "env": { + "browser": true, + "node": true + }, + "ignorePatterns": ["dist"] +} diff --git a/mygovid-mock-service/.gitignore b/mygovid-mock-service/.gitignore new file mode 100644 index 00000000000..3e6091d0c02 --- /dev/null +++ b/mygovid-mock-service/.gitignore @@ -0,0 +1,2 @@ +node_modules +.tap diff --git a/mygovid-mock-service/package.json b/mygovid-mock-service/package.json new file mode 100644 index 00000000000..482060be441 --- /dev/null +++ b/mygovid-mock-service/package.json @@ -0,0 +1,44 @@ +{ + "name": "mygovid-mock-service", + "version": "1.0.0", + "description": "", + "main": "dist/index.js", + "scripts": { + "test": "TAP_RCFILE=tap.yml tap", + "start": "node dist/index.js", + "dev": "nodemon | pino-pretty", + "lint": "eslint . --ext .ts", + "build": "echo Build script for the MyGovId mock service not needed so far" + }, + "nodemonConfig": { + "ext": "ts,json", + "exec": "node --import tsx src/index.ts" + }, + "type": "module", + "author": "", + "license": "ISC", + "dependencies": { + "@fastify/cookie": "^9.3.1", + "@fastify/formbody": "^7.4.0", + "@fastify/sensible": "^5.5.0", + "@fastify/type-provider-typebox": "^4.0.0", + "@sinclair/typebox": "^0.32.16", + "fastify": "^4.26.2", + "fastify-plugin": "^4.5.1", + "jose": "^5.2.4" + }, + "devDependencies": { + "@types/node": "^20.11.28", + "@typescript-eslint/eslint-plugin": "^7.5.0", + "@typescript-eslint/parser": "^7.5.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "pino-pretty": "^11.0.0", + "prettier": "^3.2.5", + "tap": "^18.8.0", + "ts-node": "^10.9.2", + "tsx": "^4.7.1", + "typescript": "^5.4.2" + } +} diff --git a/mygovid-mock-service/src/app.ts b/mygovid-mock-service/src/app.ts new file mode 100644 index 00000000000..54aeb2371e9 --- /dev/null +++ b/mygovid-mock-service/src/app.ts @@ -0,0 +1,21 @@ +import fastify, { FastifyServerOptions } from "fastify"; +import routes from "./routes/index.js"; +import { TypeBoxTypeProvider } from "@fastify/type-provider-typebox"; +import sensible from "@fastify/sensible"; + +export async function build(opts?: FastifyServerOptions) { + const app = fastify(opts).withTypeProvider(); + + app.register(import("@fastify/cookie"), { + hook: "onRequest", // set to false to disable cookie autoparsing or set autoparsing on any of the following hooks: 'onRequest', 'preParsing', 'preHandler', 'preValidation'. default: 'onRequest' + parseOptions: {}, // options for parsing cookies + }); + + app.register(import("@fastify/formbody")); + + app.register(routes); + + app.register(sensible); + + return app; +} diff --git a/mygovid-mock-service/src/index.ts b/mygovid-mock-service/src/index.ts new file mode 100644 index 00000000000..0b26cb15f28 --- /dev/null +++ b/mygovid-mock-service/src/index.ts @@ -0,0 +1,13 @@ +import { build } from "./app.js"; + +const app = await build(); + +app.listen({ host: "0.0.0.0", port: 4005 }, (err, address) => { + if (err) { + console.error(err); + process.exit(1); + } + console.log(`MyGovId Mock Service listening at ${address}`); +}); + +await app.ready(); diff --git a/mygovid-mock-service/src/routes/healthcheck.ts b/mygovid-mock-service/src/routes/healthcheck.ts new file mode 100644 index 00000000000..540078cc6d6 --- /dev/null +++ b/mygovid-mock-service/src/routes/healthcheck.ts @@ -0,0 +1,6 @@ +import { FastifyInstance } from "fastify"; +export default async function healthCheck(app: FastifyInstance) { + app.get("/health", async () => { + return { status: "ok" }; + }); +} diff --git a/mygovid-mock-service/src/routes/index.ts b/mygovid-mock-service/src/routes/index.ts new file mode 100644 index 00000000000..9e6007d780f --- /dev/null +++ b/mygovid-mock-service/src/routes/index.ts @@ -0,0 +1,8 @@ +import { FastifyInstance } from "fastify"; +import healthCheck from "./healthcheck.js"; +import logto from "./logto/index.js"; + +export default async function routes(app: FastifyInstance) { + app.register(healthCheck); + app.register(logto, { prefix: "/logto/mock" }); +} diff --git a/mygovid-mock-service/src/routes/logto/index.ts b/mygovid-mock-service/src/routes/logto/index.ts new file mode 100644 index 00000000000..9f62eb86377 --- /dev/null +++ b/mygovid-mock-service/src/routes/logto/index.ts @@ -0,0 +1,186 @@ +import { FastifyInstance } from "fastify"; +import fs from "fs"; +import path, { dirname } from "path"; +import { exportJWK } from "jose"; +import { fileURLToPath } from "url"; +import { Type } from "@sinclair/typebox"; +import { + createMockSignedJwt, + getPublicKey, + streamToString, +} from "./utils/index.js"; +import { HttpError } from "../../types/httpErrors.js"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +export default async function login(app: FastifyInstance) { + app.get<{ + Querystring: { + response_type: string; + client_id: string; + redirect_uri: string; + state: string; + nonce: string; + scope: string; + }; + }>( + "/auth", + { + schema: { + tags: ["Mock"], + querystring: { + response_type: Type.String(), + client_id: Type.String(), + redirect_uri: Type.String(), + state: Type.String(), + nonce: Type.String(), + scope: Type.String(), + }, + response: { 200: Type.String(), 500: HttpError }, + }, + }, + async (request, reply) => { + const { redirect_uri, state } = request.query; + + const stream = fs.createReadStream( + path.join(__dirname, "..", "static", "mock-login.html") + ); + + const result = (await streamToString(stream)) + .replace("%REDIRECT_URL%", redirect_uri) + .replace("%STATE%", state); + return reply.type("text/html").send(result); + } + ); + + app.post<{ + Body: { + password: string; + firstName: string; + lastName: string; + email: string; + redirect_url: string; + state: string; + }; + }>("/login", async (request, reply) => { + const { password, firstName, lastName, email, redirect_url, state } = + request.body; + + if (password !== "123") + reply.redirect( + `/logto/mock/auth?redirect_uri=${redirect_url}&state=${state}` + ); + + const id_token = await createMockSignedJwt( + { firstName, lastName, email }, + request.headers.origin as unknown as string + ); + + return reply.redirect(`${redirect_url}?code=${id_token}&state=${state}`); + }); + + app.post<{ + Body: { + code: string; + grant_type: string; + redirect_uri: string; + client_id: string; + client_secret: string; + }; + Reply: { + id_token: string; + access_token: string; + token_type: string; + not_before: number; + expires_in: number; + expires_on: number; + id_token_expires_in: number; + profile_info: string; + scope: string; + }; + }>( + "/token", + { + schema: { + tags: ["Mock"], + body: Type.Object({ + code: Type.String(), + grant_type: Type.String(), + redirect_uri: Type.String(), + client_id: Type.String(), + client_secret: Type.String(), + }), + response: { + 200: Type.Object({ + id_token: Type.String(), + access_token: Type.String(), + token_type: Type.String(), + not_before: Type.Number(), + expires_in: Type.Number(), + expires_on: Type.Number(), + id_token_expires_in: Type.Number(), + profile_info: Type.String(), + scope: Type.String(), + }), + 500: HttpError, + }, + }, + }, + async (request, _) => { + const id_token = request.body.code; + return { + id_token, + access_token: id_token, + token_type: "Bearer", + not_before: Date.now() - 5000, + expires_in: 1800, + expires_on: Date.now() - 5000 + 1800, + id_token_expires_in: 1800, + profile_info: + "eyJ2ZXIiOiIxLjAiLCJ0aWQiOiI4OTc5MmE2ZC0xZWE0LTQxMjYtOTRkZi1hNzFkMjkyZGViYzciLCJzdWIiOm51bGwsIm5hbWUiOm51bGwsInByZWZlcnJlZF91c2VybmFtZSI6bnVsbCwiaWRwIjpudWxsfQ", + scope: "openid", + }; + } + ); + + app.get<{ + Reply: { + keys: { + kid: string; + use: string; + kty?: string; + n?: string; + e?: string; + }[]; + }; + }>( + "/keys", + { + schema: { + tags: ["Mock"], + response: { + 200: Type.Object({ + keys: Type.Array( + Type.Object({ + kid: Type.String(), + use: Type.String(), + kty: Type.Optional(Type.String()), + n: Type.Optional(Type.String()), + e: Type.Optional(Type.String()), + }) + ), + }), + 500: HttpError, + }, + }, + }, + async (request, reply) => { + const publicKey = await getPublicKey(); + const { kty, n, e } = await exportJWK(publicKey); + + return { + keys: [{ kid: "signingkey.mygovid.v1", use: "sig", kty, n, e }], + }; + } + ); +} diff --git a/mygovid-mock-service/src/routes/logto/utils/index.ts b/mygovid-mock-service/src/routes/logto/utils/index.ts new file mode 100644 index 00000000000..689abff07cf --- /dev/null +++ b/mygovid-mock-service/src/routes/logto/utils/index.ts @@ -0,0 +1,81 @@ +import fs from "fs"; +import crypto from "crypto"; +import { importPKCS8, importSPKI, SignJWT } from "jose"; + +const { privateKey, publicKey } = crypto.generateKeyPairSync("rsa", { + modulusLength: 2048, + publicKeyEncoding: { + type: "spki", + format: "pem", + }, + privateKeyEncoding: { + type: "pkcs8", + format: "pem", + }, +}); + +export const streamToString = (stream: fs.ReadStream): Promise => { + const chunks: Buffer[] = []; + return new Promise((resolve, reject) => { + stream.on("data", (chunk) => chunks.push(Buffer.from(chunk))); + stream.on("error", (err) => reject(err)); + stream.on("end", () => resolve(Buffer.concat(chunks).toString("utf8"))); + }); +}; + +const getRandomPhoneNumber = () => + `+353${Math.floor(Math.random() * 9000000000) + 1000000000}`; + +const getRandomString = () => crypto.randomBytes(20).toString("hex"); + +export const createMockSignedJwt = async ( + user: { + firstName: string; + lastName: string; + email: string; + }, + origin: string, +) => { + const body = { + ver: "1.0", + sub: getRandomString(), + auth_time: Date.now(), + email: user.email, + oid: getRandomString(), + AlternateIds: "", + BirthDate: "13/06/1941", + PublicServiceNumber: "0111019P", + LastJourney: "Login", + mobile: getRandomPhoneNumber(), + DSPOnlineLevel: "0", + DSPOnlineLevelStatic: "0", + givenName: user.firstName, + surname: user.lastName, + CustomerId: "532", + AcceptedPrivacyTerms: true, + AcceptedPrivacyTermsVersionNumber: "7", + SMS2FAEnabled: false, + AcceptedPrivacyTermsDateTime: 1715582120, + firstName: user.firstName, + lastName: user.lastName, + currentCulture: "en", + trustFrameworkPolicy: "B2C_1A_MyGovID_signin-v5-PARTIAL2", + CorrelationId: getRandomString(), + nbf: 1716804749, + }; + + const alg = "RS256"; + const key = await importPKCS8(privateKey, alg); + + const jwt = await new SignJWT(body) + .setProtectedHeader({ alg }) + .setAudience("mock_client_id") + .setIssuedAt() + .setIssuer(origin) + .setExpirationTime("2h") + .sign(key); + + return jwt; +}; + +export const getPublicKey = async () => await importSPKI(publicKey, "RS256"); diff --git a/mygovid-mock-service/src/routes/static/mock-login.html b/mygovid-mock-service/src/routes/static/mock-login.html new file mode 100644 index 00000000000..f811e401f86 --- /dev/null +++ b/mygovid-mock-service/src/routes/static/mock-login.html @@ -0,0 +1,269 @@ + + + + + + MyGovID - Login + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+
+ + + diff --git a/mygovid-mock-service/src/test/routes/healthcheck.test.ts b/mygovid-mock-service/src/test/routes/healthcheck.test.ts new file mode 100644 index 00000000000..cd21a5840f9 --- /dev/null +++ b/mygovid-mock-service/src/test/routes/healthcheck.test.ts @@ -0,0 +1,18 @@ +import t from "tap"; +import { build } from "../../app.js"; + +t.test("healthCheck", async (t) => { + const app = await build(); + t.after(async () => { + await app.close(); + }); + + const res = await app.inject({ + method: "GET", + url: "/health", + }); + t.equal(res.statusCode, 200); + t.equal(res.headers["content-type"], "application/json; charset=utf-8"); + t.same(res.json(), { status: "ok" }); + t.end(); +}); diff --git a/mygovid-mock-service/src/types/httpErrors.ts b/mygovid-mock-service/src/types/httpErrors.ts new file mode 100644 index 00000000000..ea469469388 --- /dev/null +++ b/mygovid-mock-service/src/types/httpErrors.ts @@ -0,0 +1,10 @@ +import { Type } from "@sinclair/typebox"; + +export const HttpError = Type.Object({ + code: Type.String(), + detail: Type.String(), + request_id: Type.String(), + name: Type.String(), + validation: Type.Optional(Type.Any()), + validationContext: Type.Optional(Type.String()), +}); diff --git a/mygovid-mock-service/src/types/schemaDefinitions.ts b/mygovid-mock-service/src/types/schemaDefinitions.ts new file mode 100644 index 00000000000..ae651b7ad8e --- /dev/null +++ b/mygovid-mock-service/src/types/schemaDefinitions.ts @@ -0,0 +1,12 @@ +import { Static, Type } from "@sinclair/typebox"; + +export const Token = Type.Object({ + id_token: Type.String(), + token_type: Type.String(), + not_before: Type.Number(), + id_token_expires_in: Type.Number(), + profile_info: Type.String(), + scope: Type.String(), +}); + +export type TokenType = Static; diff --git a/mygovid-mock-service/tap.yml b/mygovid-mock-service/tap.yml new file mode 100644 index 00000000000..dace2f7a77d --- /dev/null +++ b/mygovid-mock-service/tap.yml @@ -0,0 +1,14 @@ +color: true +coverage-report: + - text +exclude: + - "**/@(fixture*(s)|dist)/**" +include: + - "**/@(test?(s)|__test?(s)__)/**/*.test.@(js|cjs|mjs|tap|cts|jsx|mts|ts|tsx)" + - "**/*.@(test?(s)|spec).@(js|cjs|mjs|tap|cts|jsx|mts|ts|tsx)" + - "**/test?(s).@(js|cjs|mjs|tap|cts|jsx|mts|ts|tsx)" +jobs: 8 +reporter: base +snapshot-clean-cwd: true +timeout: 30 +allow-incomplete-coverage: true diff --git a/mygovid-mock-service/tsconfig.json b/mygovid-mock-service/tsconfig.json new file mode 100644 index 00000000000..82a4116ec08 --- /dev/null +++ b/mygovid-mock-service/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "typeRoots": ["src/types"], + "outDir": "dist" + }, + "ts-node": { + "esm": true, + "experimentalSpecifierResolution": "node", + } +} diff --git a/packages/cli/src/commands/database/ogcio/applications.ts b/packages/cli/src/commands/database/ogcio/applications.ts index 723d81db67f..42c4a47b3bf 100644 --- a/packages/cli/src/commands/database/ogcio/applications.ts +++ b/packages/cli/src/commands/database/ogcio/applications.ts @@ -5,7 +5,7 @@ import { Applications } from '@logto/schemas'; import { sql, type DatabaseTransactionConnection } from '@silverhand/slonik'; import { type ApplicationSeeder } from './ogcio-seeder.js'; -import { createItem } from './queries.js'; +import { createOrUpdateItem } from './queries.js'; type SeedingApplication = { id: string; @@ -16,7 +16,7 @@ type SeedingApplication = { oidc_client_metadata: string; custom_client_metadata: string; protected_app_metadata?: string; - is_third_party?: boolean; + is_third_party: boolean; }; const createApplication = async ( @@ -24,12 +24,12 @@ const createApplication = async ( tenantId: string, appToSeed: SeedingApplication ) => - createItem({ + createOrUpdateItem({ transaction, tenantId, toInsert: appToSeed, toLogFieldName: 'name', - whereClauses: [sql`name = ${appToSeed.name}`], + whereClauses: [sql`tenant_id = ${tenantId}`, sql`id = ${appToSeed.id}`], tableName: Applications.table, }); @@ -41,6 +41,14 @@ const setApplicationId = async ( element = await createApplication(transaction, tenantId, element); }; +const createArrayString = (values: string | string[]): string => { + const valuesString = (Array.isArray(values) ? values : [values]) + .map((uri) => `"${uri}"`) + .join(','); + + return `[${valuesString}]`; +}; + const fillApplications = ( inputApplications: ApplicationSeeder[] ): Record => { @@ -52,9 +60,10 @@ const fillApplications = ( secret: inputApp.secret, description: inputApp.description, type: inputApp.type, - oidc_client_metadata: `{"redirectUris": ["${inputApp.redirect_uri}"], "postLogoutRedirectUris": ["${inputApp.logout_redirect_uri}"]}`, + oidc_client_metadata: `{"redirectUris": ${createArrayString(inputApp.redirect_uri)}, "postLogoutRedirectUris": ${createArrayString(inputApp.logout_redirect_uri)}}`, custom_client_metadata: '{"idTokenTtl": 3600, "corsAllowedOrigins": [], "rotateRefreshToken": true, "refreshTokenTtlInDays": 14, "alwaysIssueRefreshToken": false}', + is_third_party: inputApp.is_third_party ?? false, }; } diff --git a/packages/cli/src/commands/database/ogcio/connectors.ts b/packages/cli/src/commands/database/ogcio/connectors.ts index c891019042c..1dd3ab0d92a 100644 --- a/packages/cli/src/commands/database/ogcio/connectors.ts +++ b/packages/cli/src/commands/database/ogcio/connectors.ts @@ -5,7 +5,7 @@ import { Connectors } from '@logto/schemas'; import { sql, type DatabaseTransactionConnection } from '@silverhand/slonik'; import { type ConnectorSeeder } from './ogcio-seeder.js'; -import { createItemWithoutId } from './queries.js'; +import { createOrUpdateItemWithoutId } from './queries.js'; type SeedingConnector = { tenant_id: string; @@ -21,12 +21,12 @@ const createConnector = async ( tenantId: string, connectorToSeed: SeedingConnector ) => - createItemWithoutId({ + createOrUpdateItemWithoutId({ transaction, tenantId, toInsert: connectorToSeed, toLogFieldName: 'id', - whereClauses: [sql`id = ${connectorToSeed.id}`], + whereClauses: [sql`tenant_id = ${tenantId}`, sql`id = ${connectorToSeed.id}`], tableName: Connectors.table, columnToGet: 'id', }); diff --git a/packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json b/packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json index 273ef1be355..3b52e50b2af 100644 --- a/packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json +++ b/packages/cli/src/commands/database/ogcio/ogcio-seeder-local.json @@ -12,11 +12,16 @@ "payments:provider:*", "payments:payment_request:*", "payments:payment_request.public:read", - "payments:transaction:*" + "payments:transaction:*", + "messaging:message:*", + "messaging:provider:*", + "messaging:template:*", + "messaging:citizen:*" ] }, "organization_roles": [ { + "id": "bb-public-servant", "name": "Public Servant", "description": "Building Blocks Public servant", "specific_permissions": [ @@ -25,6 +30,17 @@ "payments:payment_request.public:read", "payments:transaction:*" ] + }, + { + "id": "msg-public-servant", + "name": "Messaging Public Servant", + "description": "Messaging Public servant", + "specific_permissions": [ + "messaging:message:*", + "messaging:provider:*", + "messaging:template:*", + "messaging:citizen:*" + ] } ], "applications": [ @@ -34,8 +50,9 @@ "type": "Traditional", "redirect_uri": "http://localhost:3001/callback", "logout_redirect_uri": "http://localhost:3001", - "secret": "bgHz4Ouv2lxXCdc6s6s4IUoNpFAklC15", - "id": "2xz6sbi8ch01uhjt1oq8r" + "secret": "payments_app_local_secret", + "id": "2xz6sbi8ch01uhjt1oq8r", + "is_third_party": false }, { "name": "Messaging Building Block", @@ -43,8 +60,9 @@ "type": "Traditional", "redirect_uri": "http://localhost:3002/callback", "logout_redirect_uri": "http://localhost:3002", - "secret": "Y3nBMm8Hs3Ugcl4596w5ewgOosvwX4im", - "id": "4695d8onfb9f3bv18phtq" + "secret": "messaging_app_local_secret", + "id": "4695d8onfb9f3bv18phtq", + "is_third_party": false } ], "resources": [ @@ -68,10 +86,17 @@ "payments:transaction.self:write", "payments:provider.public:read" ] + }, + { + "resource_id": "messaging-api", + "specific_permissions": [ + "messaging:message.self:read" + ] } ], "resource_roles": [ { + "id": "bb-citizen", "name": "Citizen", "description": "A citizen using Life Events and the Building Blocks ecosystem", "permissions": [ @@ -83,6 +108,12 @@ "payments:transaction.self:write", "payments:provider.public:read" ] + }, + { + "resource_id": "messaging-api", + "specific_permissions": [ + "messaging:message.self:read" + ] } ] } @@ -96,11 +127,11 @@ "scope": "openid profile email", "clientId": "mock_client_id", "clientSecret": "mock_client_secret", - "tokenEndpoint": "http://localhost:3005/logto/mock/token", - "authorizationEndpoint": "http://localhost:3005/logto/mock/auth", + "tokenEndpoint": "http://localhost:4005/logto/mock/token", + "authorizationEndpoint": "http://localhost:4005/logto/mock/auth", "tokenEndpointAuthMethod": "client_secret_post", "idTokenVerificationConfig": { - "jwksUri": "http://localhost:3005/logto/mock/keys" + "jwksUri": "http://localhost:4005/logto/mock/keys" }, "clientSecretJwtSigningAlgorithm": "HS256" }, @@ -145,7 +176,7 @@ ], "webhooks": [ { - "id": "login_webhook", + "id": "login-webhook", "name": "User log in", "events": [ "PostRegister", @@ -154,7 +185,7 @@ "config": { "url": "http://localhost:8003/user-login-wh" }, - "signing_key": "xpWX3WIkPkSA5A0UzLMfNOuTl1qEnbkg", + "signing_key": "webhooks_local_signing_key", "enabled": true } ] diff --git a/packages/cli/src/commands/database/ogcio/ogcio-seeder.json b/packages/cli/src/commands/database/ogcio/ogcio-seeder.json index b0dbb11d6d5..924d446b53d 100644 --- a/packages/cli/src/commands/database/ogcio/ogcio-seeder.json +++ b/packages/cli/src/commands/database/ogcio/ogcio-seeder.json @@ -12,11 +12,16 @@ "payments:provider:*", "payments:payment_request:*", "payments:payment_request.public:read", - "payments:transaction:*" + "payments:transaction:*", + "messaging:message:*", + "messaging:provider:*", + "messaging:template:*", + "messaging:citizen:*" ] }, "organization_roles": [ { + "id": "bb-public-servant", "name": "Public Servant", "description": "Building Blocks Public servant", "specific_permissions": [ @@ -25,6 +30,17 @@ "payments:payment_request.public:read", "payments:transaction:*" ] + }, + { + "id": "msg-public-servant", + "name": "Messaging Public Servant", + "description": "Messaging Public servant", + "specific_permissions": [ + "messaging:message:*", + "messaging:provider:*", + "messaging:template:*", + "messaging:citizen:*" + ] } ], "applications": [ @@ -35,7 +51,8 @@ "redirect_uri": "", "logout_redirect_uri": "", "secret": "", - "id": "r5f56tpkytpqyyshiutd2" + "id": "r5f56tpkytpqyyshiutd2", + "is_third_party": false }, { "name": "Messaging Building Block", @@ -44,7 +61,8 @@ "redirect_uri": "", "logout_redirect_uri": "", "secret": "", - "id": "1lvmteh2ao3xrswyq7j3e" + "id": "1lvmteh2ao3xrswyq7j3e", + "is_third_party": false } ], "resources": [ @@ -68,10 +86,17 @@ "payments:transaction.self:write", "payments:provider.public:read" ] + }, + { + "resource_id": "messaging-api", + "specific_permissions": [ + "messaging:message.self:read" + ] } ], "resource_roles": [ { + "id": "bb-citizen", "name": "Citizen", "description": "A citizen using Life Events and the Building Blocks ecosystem", "permissions": [ @@ -83,6 +108,12 @@ "payments:transaction.self:write", "payments:provider.public:read" ] + }, + { + "resource_id": "messaging-api", + "specific_permissions": [ + "messaging:message.self:read" + ] } ] } @@ -145,7 +176,7 @@ ], "webhooks": [ { - "id": "login_webhook", + "id": "login-webhook", "name": "User log in", "events": [ "PostRegister", diff --git a/packages/cli/src/commands/database/ogcio/ogcio-seeder.ts b/packages/cli/src/commands/database/ogcio/ogcio-seeder.ts index 9210935157a..15d42d58c26 100644 --- a/packages/cli/src/commands/database/ogcio/ogcio-seeder.ts +++ b/packages/cli/src/commands/database/ogcio/ogcio-seeder.ts @@ -19,7 +19,7 @@ export type OgcioSeeder = { export type OrganizationSeeder = { name: string; description: string; - id?: string; + id: string; }; export type OrganizationPermissionSeeder = { @@ -27,19 +27,21 @@ export type OrganizationPermissionSeeder = { }; export type OrganizationRoleSeeder = { + id: string; name: string; specific_permissions: string[]; description: string; }; export type ApplicationSeeder = { + id: string; name: string; description: string; type: string; - redirect_uri: string; - logout_redirect_uri: string; - id: string; + redirect_uri: string | string[]; + logout_redirect_uri: string | string[]; secret: string; + is_third_party?: boolean; }; export type ResourceSeeder = { @@ -104,6 +106,7 @@ export type ResourcePermissionSeeder = { }; export type ResourceRoleSeeder = { + id: string; name: string; description: string; permissions: ScopePerResourceRoleSeeder[]; diff --git a/packages/cli/src/commands/database/ogcio/organizations-rbac.ts b/packages/cli/src/commands/database/ogcio/organizations-rbac.ts index a786a87e24e..270caf3a18e 100644 --- a/packages/cli/src/commands/database/ogcio/organizations-rbac.ts +++ b/packages/cli/src/commands/database/ogcio/organizations-rbac.ts @@ -1,11 +1,18 @@ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -/* eslint-disable @silverhand/fp/no-mutating-methods */ -import { OrganizationRoles, OrganizationRoleScopeRelations, OrganizationScopes } from '@logto/schemas'; +/* eslint-disable @silverhand/fp/no-mutation */ +/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */ + +import { + OrganizationRoles, + OrganizationRoleScopeRelations, + OrganizationScopes, +} from '@logto/schemas'; import { sql, type DatabaseTransactionConnection } from '@silverhand/slonik'; + import { type OrganizationPermissionSeeder, type OrganizationRoleSeeder } from './ogcio-seeder.js'; -import { createItem, createItemWithoutId } from './queries.js'; +import { createOrUpdateItem, createOrUpdateItemWithoutId, deleteQuery } from './queries.js'; type SeedingScope = { name: string; @@ -16,7 +23,7 @@ type ScopesByName = Record; type SeedingRole = { name: string; - id?: string; + id: string; description: string; scopes: string[]; }; @@ -28,24 +35,22 @@ const createScope = async (params: { tenantId: string; scopeToSeed: SeedingScope; }) => - createItem({ + createOrUpdateItem({ transaction: params.transaction, tenantId: params.tenantId, toInsert: params.scopeToSeed, toLogFieldName: 'name', tableName: OrganizationScopes.table, - whereClauses: [sql`name = ${params.scopeToSeed.name}`], + whereClauses: [sql`tenant_id = ${params.tenantId}`, sql`name = ${params.scopeToSeed.name}`], }); -const buildScopes = ( - scopes: string[] -): ScopesByName => { - return scopes.reduce((acc, scopeName) => { - acc[scopeName] = { +const buildScopes = (scopes: string[]): ScopesByName => { + return scopes.reduce((accumulator, scopeName) => { + accumulator[scopeName] = { name: scopeName, - description: scopeName + description: scopeName, }; - return acc; + return accumulator; }, {}); }; @@ -56,11 +61,11 @@ export const createScopes = async (params: { }) => { const scopesToCreate = buildScopes(params.scopesToSeed.specific_permissions); - const queries = Object.values(scopesToCreate).map((scope) => + const queries = Object.values(scopesToCreate).map(async (scope) => createScope({ transaction: params.transaction, tenantId: params.tenantId, - scopeToSeed: scope + scopeToSeed: scope, }) ); @@ -75,62 +80,63 @@ const createRole = async (params: { roleToSeed: { name: string; description: string; - id?: string; - } + id: string; + }; }) => { - const created = await createItem({ + await createOrUpdateItem({ transaction: params.transaction, tenantId: params.tenantId, toLogFieldName: 'name', - whereClauses: [sql`name = ${params.roleToSeed.name}`], - toInsert: { name: params.roleToSeed.name, description: params.roleToSeed.description }, + whereClauses: [sql`tenant_id = ${params.tenantId}`, sql`id = ${params.roleToSeed.id}`], + toInsert: { + id: params.roleToSeed.id, + name: params.roleToSeed.name, + description: params.roleToSeed.description, + }, tableName: OrganizationRoles.table, }); - params.roleToSeed.id = created.id; - - return { - ...params.roleToSeed, - id: created.id, - }; -} + return params.roleToSeed; +}; const createRoles = async (params: { transaction: DatabaseTransactionConnection; tenantId: string; - scopes: ScopesByName, - rolesToSeed: OrganizationRoleSeeder[] + scopes: ScopesByName; + rolesToSeed: OrganizationRoleSeeder[]; }) => { - const rolesToCreate = params.rolesToSeed.map((role) =>({ + const rolesToCreate = params.rolesToSeed.map((role) => ({ + id: role.id, name: role.name, description: role.description, - scopes: role.specific_permissions + scopes: role.specific_permissions, })); - const queries = rolesToCreate.map((role) => + const queries = rolesToCreate.map(async (role) => createRole({ transaction: params.transaction, tenantId: params.tenantId, - roleToSeed: role + roleToSeed: role, }) ); await Promise.all(queries); return rolesToCreate; -} +}; const createRoleScopeRelation = async ( transaction: DatabaseTransactionConnection, tenantId: string, relation: SeedingRelation ) => - createItemWithoutId({ + createOrUpdateItemWithoutId({ transaction, tableName: OrganizationRoleScopeRelations.table, tenantId, toLogFieldName: 'organization_role_id', whereClauses: [ + sql`tenant_id = ${tenantId}`, sql`organization_role_id = ${relation.organization_role_id}`, sql`organization_scope_id = ${relation.organization_scope_id}`, ], @@ -145,15 +151,34 @@ const createRelations = async ( roles: SeedingRole[] ) => { const queries = roles.flatMap((role) => - role.scopes.map((scope) => createRoleScopeRelation(transaction, tenantId, { - organization_role_id: role.id!, - organization_scope_id: scopes[scope]?.id! - })) + role.scopes.map(async (scope) => + createRoleScopeRelation(transaction, tenantId, { + organization_role_id: role.id, + organization_scope_id: scopes[scope]?.id!, + }) + ) ); return Promise.all(queries); }; +export const cleanScopes = async (transaction: DatabaseTransactionConnection, tenantId: string) => { + await cleanScopeRelations(transaction, tenantId); + const deleteQueryString = deleteQuery([sql`tenant_id = ${tenantId}`], OrganizationScopes.table); + return transaction.query(deleteQueryString); +}; + +export const cleanScopeRelations = async ( + transaction: DatabaseTransactionConnection, + tenantId: string +) => { + const deleteQueryString = deleteQuery( + [sql`tenant_id = ${tenantId}`], + OrganizationRoleScopeRelations.table + ); + return transaction.query(deleteQueryString); +}; + export const seedOrganizationRbacData = async (params: { transaction: DatabaseTransactionConnection; tenantId: string; @@ -163,6 +188,8 @@ export const seedOrganizationRbacData = async (params: { }; }) => { if (params.toSeed.organization_permissions && params.toSeed.organization_roles?.length) { + await cleanScopes(params.transaction, params.tenantId); + const createdScopes = await createScopes({ transaction: params.transaction, tenantId: params.tenantId, @@ -173,14 +200,9 @@ export const seedOrganizationRbacData = async (params: { transaction: params.transaction, tenantId: params.tenantId, scopes: createdScopes, - rolesToSeed: params.toSeed.organization_roles + rolesToSeed: params.toSeed.organization_roles, }); - await createRelations( - params.transaction, - params.tenantId, - createdScopes, - createdRoles - ); + await createRelations(params.transaction, params.tenantId, createdScopes, createdRoles); } }; diff --git a/packages/cli/src/commands/database/ogcio/organizations.ts b/packages/cli/src/commands/database/ogcio/organizations.ts index 372a8e21c55..5275c41433a 100644 --- a/packages/cli/src/commands/database/ogcio/organizations.ts +++ b/packages/cli/src/commands/database/ogcio/organizations.ts @@ -17,7 +17,7 @@ import { insertInto } from '../../../database.js'; import { consoleLog } from '../../../utils.js'; import { type OrganizationSeeder } from './ogcio-seeder.js'; -import { createItem, getInsertedColumnValue, updateQuery } from './queries.js'; +import { createOrUpdateItem, getInsertedColumnValue, updateQuery } from './queries.js'; const createAdminConsoleConfig = ( forTenantId: string @@ -43,7 +43,7 @@ const updateTenantConfigs = async ( const currentValue = await getInsertedColumnValue({ transaction, tenantId, - whereClauses: [sql`key = ${LogtoTenantConfigKey.AdminConsole}`], + whereClauses: [sql`key = ${LogtoTenantConfigKey.AdminConsole}`, sql`tenant_id = ${tenantId}`], tableName: LogtoConfigs.table, columnToGet: 'value', }); @@ -73,15 +73,15 @@ const createOrganization = async (params: { tenantId: string; organizationSeeder: OrganizationSeeder; }) => { - const organization = createItem({ + const organization = createOrUpdateItem({ transaction: params.transaction, tenantId: params.tenantId, toInsert: { name: params.organizationSeeder.name, description: params.organizationSeeder.description, - id: params.organizationSeeder.id ?? undefined, + id: params.organizationSeeder.id, }, - whereClauses: [sql`name = ${params.organizationSeeder.name}`], + whereClauses: [sql`tenant_id = ${params.tenantId}`, sql`id = ${params.organizationSeeder.id}`], toLogFieldName: 'name', tableName: Organizations.table, }); diff --git a/packages/cli/src/commands/database/ogcio/queries.ts b/packages/cli/src/commands/database/ogcio/queries.ts index f065694843b..d2498d004fc 100644 --- a/packages/cli/src/commands/database/ogcio/queries.ts +++ b/packages/cli/src/commands/database/ogcio/queries.ts @@ -22,7 +22,7 @@ export const getColumnValueByQueryResult = >( columnToGet: string ): string | undefined => { const camelColumn = snakeToCamel(columnToGet); - if (result.rows[0] === undefined || result.rows[0][camelColumn] === undefined) { + if (result.rows[0]?.[camelColumn] === undefined) { return undefined; } @@ -63,8 +63,23 @@ export const getInsertedId = async ( ): Promise => getInsertedColumnValue({ transaction, tenantId, whereClauses, tableName, columnToGet: 'id' }); -export const createItem = async < - T extends { id?: string } & Record, +const updateItem = async (params: { + transaction: DatabaseTransactionConnection; + toUpdate: Record; + whereClauses: ValueExpression[]; + tableName: string; +}) => { + const toUpdate = Object.entries(params.toUpdate).map( + ([key, value]) => sql`${sql.identifier([key])} = ${value ?? ''}` + ); + + const updateQueryString = updateQuery(toUpdate, params.whereClauses, params.tableName); + + return params.transaction.query(updateQueryString); +}; + +export const createOrUpdateItem = async < + T extends { id?: string } & Record, >(params: { transaction: DatabaseTransactionConnection; tenantId?: string; @@ -84,7 +99,16 @@ export const createItem = async < params.tableName ); if (scopeIdBefore !== undefined) { - consoleLog.info(`${prefixConsoleEntry}. Already exists.`); + consoleLog.info(`${prefixConsoleEntry}. Already exists. Updating entry.`); + + await updateItem({ + transaction: params.transaction, + toUpdate: params.toInsert, + whereClauses: params.whereClauses, + tableName: params.tableName, + }); + + consoleLog.info(`${prefixConsoleEntry}. Entry updated successfully.`); params.toInsert.id = scopeIdBefore; return { ...params.toInsert, id: scopeIdBefore }; } @@ -94,9 +118,7 @@ export const createItem = async < tenant_id: params.tenantId, }; - if (!toInsertData.id) { - toInsertData.id = generateStandardId(); - } + toInsertData.id ||= generateStandardId(); await params.transaction.query(insertInto(toInsertData, params.tableName)); params.toInsert.id = await getInsertedId( @@ -117,8 +139,8 @@ export const createItem = async < } }; -export const createItemWithoutId = async < - T extends Record, +export const createOrUpdateItemWithoutId = async < + T extends Record, >(params: { transaction: DatabaseTransactionConnection; tenantId: string | undefined; @@ -134,7 +156,16 @@ export const createItemWithoutId = async < consoleLog.info(prefixConsoleEntry); const scopeIdBefore = await getInsertedColumnValue(params); if (scopeIdBefore !== undefined) { - consoleLog.info(`${prefixConsoleEntry}. Already exists.`); + consoleLog.info(`${prefixConsoleEntry}. Already exists. Updating entry.`); + + await updateItem({ + transaction: params.transaction, + toUpdate: params.toInsert, + whereClauses: params.whereClauses, + tableName: params.tableName, + }); + + consoleLog.info(`${prefixConsoleEntry}. Entry updated successfully.`); return { ...params.toInsert, [params.columnToGet]: scopeIdBefore }; } @@ -163,3 +194,10 @@ export const updateQuery = ( where ${sql.join(whereClauses, sql` AND `)} `; }; + +export const deleteQuery = (whereClauses: ValueExpression[], table: string) => { + return sql` + delete from ${sql.identifier([table])} + where ${sql.join(whereClauses, sql` AND `)} + `; +}; diff --git a/packages/cli/src/commands/database/ogcio/resources-rbac.ts b/packages/cli/src/commands/database/ogcio/resources-rbac.ts index fcda585e7ee..5e3f704567d 100644 --- a/packages/cli/src/commands/database/ogcio/resources-rbac.ts +++ b/packages/cli/src/commands/database/ogcio/resources-rbac.ts @@ -1,12 +1,20 @@ /* eslint-disable eslint-comments/disable-enable-pair */ -/* eslint-disable @silverhand/fp/no-let */ + /* eslint-disable @typescript-eslint/no-non-null-assertion */ /* eslint-disable @silverhand/fp/no-mutating-methods */ /* eslint-disable @silverhand/fp/no-mutation */ + +/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */ + import { Roles, RolesScopes, Scopes } from '@logto/schemas'; import { sql, type DatabaseTransactionConnection } from '@silverhand/slonik'; -import { type ResourceRoleSeeder, type ResourcePermissionSeeder, ScopePerResourceRoleSeeder } from './ogcio-seeder.js'; -import { createItem } from './queries.js'; + +import { + type ResourceRoleSeeder, + type ResourcePermissionSeeder, + type ScopePerResourceRoleSeeder, +} from './ogcio-seeder.js'; +import { createOrUpdateItem, deleteQuery } from './queries.js'; import { type SeedingResource } from './resources.js'; type SeedingScope = { @@ -18,11 +26,11 @@ type SeedingScope = { type ScopesByName = Record; type ScopesByResourceId = Record; type SeededRole = { - id?: string; + id: string; name: string; description: string; - scopes: ScopePerResourceRoleSeeder[] -} + scopes: ScopePerResourceRoleSeeder[]; +}; type SeedingRelation = { role_id: string; scope_id: string; id?: string }; const createScope = async (params: { @@ -30,29 +38,27 @@ const createScope = async (params: { tenantId: string; scopeToSeed: SeedingScope; }) => - createItem({ + createOrUpdateItem({ transaction: params.transaction, tenantId: params.tenantId, toInsert: params.scopeToSeed, toLogFieldName: 'name', tableName: Scopes.table, whereClauses: [ + sql`tenant_id = ${params.tenantId}`, sql`name = ${params.scopeToSeed.name}`, - sql`resource_id = ${params.scopeToSeed.resource_id}` - ] + sql`resource_id = ${params.scopeToSeed.resource_id}`, + ], }); -const buildScopes = ( - resourceId: string, - scopes: string[] -): ScopesByName => { - return scopes.reduce((acc, scopeName) => { - acc[scopeName] = { +const buildScopes = (resourceId: string, scopes: string[]): ScopesByName => { + return scopes.reduce((accumulator, scopeName) => { + accumulator[scopeName] = { name: scopeName, description: scopeName, - resource_id: resourceId + resource_id: resourceId, }; - return acc; + return accumulator; }, {}); }; @@ -67,16 +73,16 @@ export const createScopes = async (params: { const scopesToCreate: ScopesByResourceId = {}; for (const singleSeeder of params.scopesToSeed) { - scopesToCreate[singleSeeder.resource_id] = buildScopes(singleSeeder.resource_id, singleSeeder.specific_permissions); + scopesToCreate[singleSeeder.resource_id] = buildScopes( + singleSeeder.resource_id, + singleSeeder.specific_permissions + ); } - const queries: Array< - Promise & { id: string }> - > = []; - + const queries: Array & { id: string }>> = []; - Object.values(scopesToCreate).forEach((scopes) => { - Object.values(scopes).forEach((scope) => { + for (const scopes of Object.values(scopesToCreate)) { + for (const scope of Object.values(scopes)) { queries.push( createScope({ scopeToSeed: scope, @@ -84,8 +90,8 @@ export const createScopes = async (params: { tenantId: params.tenantId, }) ); - }) - }); + } + } await Promise.all(queries); @@ -98,62 +104,66 @@ const createRole = async (params: { roleToSeed: { name: string; description: string; - id?: string; - } + id: string; + }; }) => { - const created = await createItem({ + await createOrUpdateItem({ transaction: params.transaction, tenantId: params.tenantId, toLogFieldName: 'name', - whereClauses: [sql`name = ${params.roleToSeed.name}`], - toInsert: { name: params.roleToSeed.name, description: params.roleToSeed.description }, + whereClauses: [sql`tenant_id = ${params.tenantId}`, sql`id = ${params.roleToSeed.id}`], + toInsert: { + id: params.roleToSeed.id, + name: params.roleToSeed.name, + description: params.roleToSeed.description, + }, tableName: Roles.table, }); - params.roleToSeed.id = created.id; - - return { - ...params.roleToSeed, - id: created.id, - }; -} + return params.roleToSeed; +}; const createRoles = async (params: { transaction: DatabaseTransactionConnection; tenantId: string; - scopes: ScopesByResourceId, - rolesToSeed: ResourceRoleSeeder[] + scopes: ScopesByResourceId; + rolesToSeed: ResourceRoleSeeder[]; }) => { - const rolesToCreate = params.rolesToSeed.map((role) =>({ + const rolesToCreate = params.rolesToSeed.map((role) => ({ + id: role.id, name: role.name, description: role.description, - scopes: role.permissions + scopes: role.permissions, })); - const queries = rolesToCreate.map((role) => + const queries = rolesToCreate.map(async (role) => createRole({ transaction: params.transaction, tenantId: params.tenantId, - roleToSeed: role + roleToSeed: role, }) ); await Promise.all(queries); return rolesToCreate; -} +}; const createRoleScopeRelation = async ( transaction: DatabaseTransactionConnection, tenantId: string, relation: SeedingRelation ) => - createItem({ + createOrUpdateItem({ transaction, tableName: RolesScopes.table, tenantId, toLogFieldName: 'role_id', - whereClauses: [sql`role_id = ${relation.role_id}`, sql`scope_id = ${relation.scope_id}`], + whereClauses: [ + sql`tenant_id = ${tenantId}`, + sql`role_id = ${relation.role_id}`, + sql`scope_id = ${relation.scope_id}`, + ], toInsert: relation, }); @@ -165,74 +175,43 @@ const createRelations = async (params: { }) => { const relationsToCrete: SeedingRelation[] = []; - params.roles.forEach((role) => { - role.scopes.forEach((scopeGroup) => { + for (const role of params.roles) { + for (const scopeGroup of role.scopes) { const relations = scopeGroup.specific_permissions.map((permission) => { - // @ts-ignore @typescript-eslint/no-non-null-asserted-optional-chain if (params.scopes[scopeGroup.resource_id]?.[permission]?.id === undefined) { - throw new Error("Requested permission does not exist.") + throw new Error('Requested permission does not exist.'); } return { - role_id: role.id!, - // @ts-ignore @typescript-eslint/no-non-null-asserted-optional-chain - scope_id: params.scopes[scopeGroup.resource_id]?.[permission]?.id! - } + role_id: role.id, + scope_id: params.scopes[scopeGroup.resource_id]?.[permission]?.id!, + }; }); relationsToCrete.push(...relations); - }) - }); + } + } - const queries = relationsToCrete.map((relation) => - createRoleScopeRelation( - params.transaction, - params.tenantId, - relation - ) + const queries = relationsToCrete.map(async (relation) => + createRoleScopeRelation(params.transaction, params.tenantId, relation) ); await Promise.all(queries); return relationsToCrete; -} - -const replaceWithResourceIdFromDatabase = ( - seededResources: Record, - toSeed: { - resource_permissions?: ResourcePermissionSeeder[]; - resource_roles?: ResourceRoleSeeder[]; - } -): { - resource_permissions?: ResourcePermissionSeeder[]; - resource_roles?: ResourceRoleSeeder[]; -} => { - if (toSeed.resource_permissions?.length) { - for (const permission of toSeed.resource_permissions) { - const seededResourceId = seededResources[permission.resource_id]; - if (!seededResourceId) { - throw new Error( - `Resource scopes. Referring to a not existent resource id: ${permission.resource_id}!` - ); - } - permission.resource_id = seededResourceId.id!; - } - } +}; - if (toSeed.resource_roles?.length) { - for (const roles of toSeed.resource_roles) { - for (const permissionGroup of roles.permissions) { - const seededResourceId = seededResources[permissionGroup.resource_id]; - if (!seededResourceId) { - throw new Error( - `Resource roles. Referring to a not existent resource id: ${permissionGroup.resource_id}!` - ); - } - permissionGroup.resource_id = seededResourceId.id!; - } - } - } +export const cleanScopes = async (transaction: DatabaseTransactionConnection, tenantId: string) => { + await cleanScopeRelations(transaction, tenantId); + const deleteQueryString = deleteQuery([sql`tenant_id = ${tenantId}`], Scopes.table); + return transaction.query(deleteQueryString); +}; - return toSeed; +export const cleanScopeRelations = async ( + transaction: DatabaseTransactionConnection, + tenantId: string +) => { + const deleteQueryString = deleteQuery([sql`tenant_id = ${tenantId}`], RolesScopes.table); + return transaction.query(deleteQueryString); }; export const seedResourceRbacData = async (params: { @@ -244,12 +223,13 @@ export const seedResourceRbacData = async (params: { resource_roles?: ResourceRoleSeeder[]; }; }) => { - params.toSeed = replaceWithResourceIdFromDatabase(params.seededResources, params.toSeed); if (params.toSeed.resource_permissions?.length && params.toSeed.resource_roles?.length) { + await cleanScopes(params.transaction, params.tenantId); + const createdScopes = await createScopes({ transaction: params.transaction, tenantId: params.tenantId, - scopesToSeed: params.toSeed.resource_permissions + scopesToSeed: params.toSeed.resource_permissions, }); const createdRoles = await createRoles({ @@ -263,7 +243,7 @@ export const seedResourceRbacData = async (params: { transaction: params.transaction, tenantId: params.tenantId, roles: createdRoles, - scopes: createdScopes + scopes: createdScopes, }); } }; diff --git a/packages/cli/src/commands/database/ogcio/resources.ts b/packages/cli/src/commands/database/ogcio/resources.ts index 539db60f12c..ffd386592f0 100644 --- a/packages/cli/src/commands/database/ogcio/resources.ts +++ b/packages/cli/src/commands/database/ogcio/resources.ts @@ -6,19 +6,19 @@ import { Resources } from '@logto/schemas'; import { sql, type DatabaseTransactionConnection } from '@silverhand/slonik'; import { type ResourceSeeder } from './ogcio-seeder.js'; -import { createItem } from './queries.js'; +import { createOrUpdateItem } from './queries.js'; const createResource = async ( transaction: DatabaseTransactionConnection, tenantId: string, appToSeed: SeedingResource ) => - createItem({ + createOrUpdateItem({ transaction, tenantId, toInsert: appToSeed, toLogFieldName: 'name', - whereClauses: [sql`indicator = ${appToSeed.indicator}`], + whereClauses: [sql`tenant_id = ${tenantId}`, sql`id = ${appToSeed.id}`], tableName: Resources.table, }); @@ -26,18 +26,14 @@ const setResourceId = async ( element: SeedingResource, transaction: DatabaseTransactionConnection, tenantId: string -): Promise< - Omit & { - id: string; - } -> => { +): Promise => { const outputValue = await createResource(transaction, tenantId, element); return outputValue; }; export type SeedingResource = { - id?: string; + id: string; name: string; indicator: string; is_default?: boolean; @@ -45,6 +41,7 @@ export type SeedingResource = { }; const fillResource = (resourceSeeder: ResourceSeeder): SeedingResource => ({ + id: resourceSeeder.id, name: resourceSeeder.name, indicator: resourceSeeder.indicator, is_default: false, diff --git a/packages/cli/src/commands/database/ogcio/webhooks.ts b/packages/cli/src/commands/database/ogcio/webhooks.ts index 407cc1e972e..096fef61f39 100644 --- a/packages/cli/src/commands/database/ogcio/webhooks.ts +++ b/packages/cli/src/commands/database/ogcio/webhooks.ts @@ -5,7 +5,7 @@ import { Hooks } from '@logto/schemas'; import { sql, type DatabaseTransactionConnection } from '@silverhand/slonik'; import { type WebhookSeeder } from './ogcio-seeder.js'; -import { createItemWithoutId } from './queries.js'; +import { createOrUpdateItemWithoutId } from './queries.js'; type SeedingWebhook = { tenant_id: string; @@ -22,20 +22,17 @@ const createWebhook = async ( tenantId: string, webhookToSeed: SeedingWebhook ) => - createItemWithoutId({ + createOrUpdateItemWithoutId({ transaction, tenantId, toInsert: webhookToSeed, toLogFieldName: 'id', - whereClauses: [sql`id = ${webhookToSeed.id}`], + whereClauses: [sql`tenant_id = ${tenantId}`, sql`id = ${webhookToSeed.id}`], tableName: Hooks.table, columnToGet: 'id', }); -const fillWebhooks = ( - inputHooks: WebhookSeeder[], - tenantId: string -): SeedingWebhook[] => { +const fillWebhooks = (inputHooks: WebhookSeeder[], tenantId: string): SeedingWebhook[] => { return inputHooks.map((hook) => ({ tenant_id: tenantId, id: hook.id, @@ -43,7 +40,7 @@ const fillWebhooks = ( events: JSON.stringify(hook.events), config: JSON.stringify(hook.config), signing_key: hook.signing_key, - enabled: hook.enabled + enabled: hook.enabled, })); }; diff --git a/packages/core/src/libraries/ogcio-constants.ts b/packages/core/src/libraries/ogcio-constants.ts new file mode 100644 index 00000000000..9fd839f244a --- /dev/null +++ b/packages/core/src/libraries/ogcio-constants.ts @@ -0,0 +1,12 @@ +export const OGCIO_ORGANIZATIONS = { + OGCIO: 'ogcio', +}; + +export const OGCIO_ORGANIZATION_ROLES = { + BB_PUBLIC_SERVANT: 'bb-public-servant', + MSG_PUBLIC_SERVANT: 'msg-public-servant', +}; + +export const OGCIO_ROLES = { + BB_CITIZEN: 'bb-citizen', +}; diff --git a/packages/core/src/libraries/ogcio-user.ts b/packages/core/src/libraries/ogcio-user.ts index d916acff866..0dbc601d36a 100644 --- a/packages/core/src/libraries/ogcio-user.ts +++ b/packages/core/src/libraries/ogcio-user.ts @@ -16,6 +16,8 @@ import { EnvSet } from '#src/env-set/index.js'; import type OrganizationQueries from '#src/queries/organization/index.js'; import assertThat from '#src/utils/assert-that.js'; +import { OGCIO_ORGANIZATION_ROLES, OGCIO_ORGANIZATIONS, OGCIO_ROLES } from './ogcio-constants.js'; + const getDefaultOrganizationsForUser = async (organizationQueries: OrganizationQueries) => { const organizationNames: string[] = deduplicate(EnvSet.values.userDefaultOrganizationNames); consoleLog.info('DEFUALT ORG NAMES', organizationNames); @@ -136,15 +138,10 @@ const getDomainFromEmail = (email: string): string | undefined => { const assignCitizenRole = async ( user: User, - getRoles: (roleName: string, excludeRoleId?: string) => Promise, + getRoles: (id: string) => Promise, insertUsersRoles: (usersRoles: CreateUsersRole[]) => Promise> ) => { - const userRole = await getRoles('Citizen'); - - if (userRole === undefined) { - consoleLog.error(phrases.en.errors.role.default_role_missing); - return; - } + const userRole = await getRoles(OGCIO_ROLES.BB_CITIZEN); return insertUsersRoles([ { @@ -158,7 +155,7 @@ const assignCitizenRole = async ( const assignUserToOrganization = async (user: User, organizationQueries: OrganizationQueries) => { try { - const organization = await organizationQueries.findById('ogcio'); + const organization = await organizationQueries.findById(OGCIO_ORGANIZATIONS.OGCIO); await organizationQueries.relations.users.insert([organization.id, user.id]); return organization; } catch { @@ -171,13 +168,9 @@ const assignOrganizationRoleToUser = async ( organization: Organization, organizationQueries: OrganizationQueries ) => { - const allOrganizationRoles = await organizationQueries.roles.findAll(100, 0); - const publicServantRole = allOrganizationRoles[1].find((role) => role.name === 'Public Servant'); - - if (publicServantRole === undefined) { - consoleLog.error(phrases.en.errors.role.default_role_missing); - return; - } + const publicServantRole = await organizationQueries.roles.findById( + OGCIO_ORGANIZATION_ROLES.BB_PUBLIC_SERVANT + ); await organizationQueries.relations.rolesUsers.insert([ organization.id, @@ -198,7 +191,7 @@ const assignPublicServantRole = async (user: User, organizationQueries: Organiza export const manageDefaultUserRole = async ( user: User, - getRoles: (roleName: string, excludeRoleId?: string) => Promise, + getRoles: (id: string) => Promise, insertUsersRoles: (usersRoles: CreateUsersRole[]) => Promise>, organizationQueries: OrganizationQueries ) => { diff --git a/packages/core/src/middleware/koa-spa-proxy.ts b/packages/core/src/middleware/koa-spa-proxy.ts index ede71a7ef4a..d207ccfa581 100644 --- a/packages/core/src/middleware/koa-spa-proxy.ts +++ b/packages/core/src/middleware/koa-spa-proxy.ts @@ -11,7 +11,8 @@ import serveStatic from '#src/middleware/koa-serve-static.js'; export default function koaSpaProxy( mountedApps: string[], packagePath = 'experience', - port = 5001, + // OGCIO - formsie port collision fixed + port = 7001, prefix = '' ): MiddlewareType { type Middleware = MiddlewareType; diff --git a/packages/core/src/routes/applications/application.test.ts b/packages/core/src/routes/applications/application.test.ts index f02353db2e1..f54689f5332 100644 --- a/packages/core/src/routes/applications/application.test.ts +++ b/packages/core/src/routes/applications/application.test.ts @@ -72,7 +72,8 @@ const applicationRoutes = await pickDefault(import('./application.js')); const customClientMetadata = { corsAllowedOrigins: [ 'http://localhost:5000', - 'http://localhost:5001', + // OGCIO - formsie port collision fixed + 'http://localhost:7001', 'https://silverhand.com', 'capacitor://localhost', ], diff --git a/packages/core/src/routes/interaction/actions/submit-interaction.ts b/packages/core/src/routes/interaction/actions/submit-interaction.ts index 988da35cd0e..8574a117b6f 100644 --- a/packages/core/src/routes/interaction/actions/submit-interaction.ts +++ b/packages/core/src/routes/interaction/actions/submit-interaction.ts @@ -195,8 +195,7 @@ async function handleSubmitRegister( // OGCIO await manageDefaultUserRole( user, - // @ts-expect-error: strange error in roles.findRoleByRoleName return type - roles.findRoleByRoleName, + roles.findRoleById, usersRoles.insertUsersRoles, organizations ); diff --git a/packages/experience/package.json b/packages/experience/package.json index 4acb97a76ce..00f8f9b083f 100644 --- a/packages/experience/package.json +++ b/packages/experience/package.json @@ -10,7 +10,7 @@ "scripts": { "precommit": "lint-staged", "start": "parcel src/index.html", - "dev": "cross-env PORT=5001 parcel src/index.html --no-cache --hmr-port 6001", + "dev": "cross-env PORT=7001 parcel src/index.html --no-cache --hmr-port 6001", "check": "tsc --noEmit", "build": "pnpm check && rm -rf dist && parcel build src/index.html --no-autoinstall --no-cache --detailed-report", "lint": "eslint --ext .ts --ext .tsx src", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b50119c4ac..39aa07f0104 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,6 +40,70 @@ importers: specifier: ^5.0.0 version: 5.0.2 + mygovid-mock-service: + dependencies: + '@fastify/cookie': + specifier: ^9.3.1 + version: 9.3.1 + '@fastify/formbody': + specifier: ^7.4.0 + version: 7.4.0 + '@fastify/sensible': + specifier: ^5.5.0 + version: 5.6.0 + '@fastify/type-provider-typebox': + specifier: ^4.0.0 + version: 4.0.0(@sinclair/typebox@0.32.34) + '@sinclair/typebox': + specifier: ^0.32.16 + version: 0.32.34 + fastify: + specifier: ^4.26.2 + version: 4.28.1 + fastify-plugin: + specifier: ^4.5.1 + version: 4.5.1 + jose: + specifier: ^5.2.4 + version: 5.2.4 + devDependencies: + '@types/node': + specifier: ^20.11.28 + version: 20.12.7 + '@typescript-eslint/eslint-plugin': + specifier: ^7.5.0 + version: 7.7.0(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/parser': + specifier: ^7.5.0 + version: 7.7.0(eslint@8.57.0)(typescript@5.5.2) + eslint: + specifier: ^8.57.0 + version: 8.57.0 + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.0) + eslint-plugin-prettier: + specifier: ^5.1.3 + version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2) + pino-pretty: + specifier: ^11.0.0 + version: 11.2.1 + prettier: + specifier: ^3.2.5 + version: 3.3.2 + tap: + specifier: ^18.8.0 + version: 18.8.0(@swc/core@1.3.52)(@types/node@20.12.7)(@types/react@18.0.31)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.2) + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.2) + tsx: + specifier: ^4.7.1 + version: 4.16.0 + typescript: + specifier: ^5.4.2 + version: 5.5.2 + packages/app-insights: dependencies: '@silverhand/essentials': @@ -3244,10 +3308,10 @@ importers: version: 3.556.0 '@azure/storage-blob': specifier: ^12.17.0 - version: 12.17.0 + version: 12.17.0(encoding@0.1.13) '@google-cloud/storage': specifier: ^7.10.0 - version: 7.10.0 + version: 7.10.0(encoding@0.1.13) '@koa/cors': specifier: ^5.0.0 version: 5.0.0 @@ -3298,7 +3362,7 @@ importers: version: 31.0.0-beta.2 '@simplewebauthn/server': specifier: ^10.0.0 - version: 10.0.0 + version: 10.0.0(encoding@0.1.13) '@withtyped/client': specifier: ^0.8.7 version: 0.8.7(zod@3.22.4) @@ -3500,7 +3564,7 @@ importers: version: 8.57.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + version: 29.7.0(@types/node@20.10.4) jest-matcher-specific-error: specifier: ^1.0.0 version: 1.0.0 @@ -3752,7 +3816,7 @@ importers: version: 3.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) + version: 29.7.0(@types/node@20.12.7) jest-environment-jsdom: specifier: ^29.0.0 version: 29.2.2 @@ -3761,7 +3825,7 @@ importers: version: 2.0.0 jest-transformer-svg: specifier: ^2.0.0 - version: 2.0.0(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)))(react@18.2.0) + version: 2.0.0(jest@29.7.0(@types/node@20.12.7))(react@18.2.0) js-base64: specifier: ^3.7.5 version: 3.7.5 @@ -3900,7 +3964,7 @@ importers: version: 10.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + version: 29.7.0(@types/node@20.10.4) jest-matcher-specific-error: specifier: ^1.0.0 version: 1.0.0 @@ -4286,6 +4350,10 @@ packages: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} + '@alcalzone/ansi-tokenize@0.1.3': + resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} + engines: {node: '>=14.13.1'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -4782,6 +4850,9 @@ packages: resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} + '@base2/pretty-print-object@1.0.1': + resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -4939,138 +5010,276 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.20.2': resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.20.2': resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.20.2': resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.20.2': resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.20.2': resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.20.2': resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.20.2': resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.20.2': resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.20.2': resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.20.2': resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.20.2': resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.20.2': resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.20.2': resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.20.2': resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.20.2': resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.20.2': resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.20.2': resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-x64@0.20.2': resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.20.2': resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.20.2': resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.20.2': resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.20.2': resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5089,6 +5298,32 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@fastify/ajv-compiler@3.6.0': + resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==} + + '@fastify/cookie@9.3.1': + resolution: {integrity: sha512-h1NAEhB266+ZbZ0e9qUE6NnNR07i7DnNXWG9VbbZ8uC6O/hxHpl+Zoe5sw1yfdZ2U6XhToUGDnzQtWJdCaPwfg==} + + '@fastify/error@3.4.1': + resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} + + '@fastify/fast-json-stringify-compiler@4.3.0': + resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} + + '@fastify/formbody@7.4.0': + resolution: {integrity: sha512-H3C6h1GN56/SMrZS8N2vCT2cZr7mIHzBHzOBa5OPpjfB/D6FzP9mMpE02ZzrFX0ANeh0BAJdoXKOF2e7IbV+Og==} + + '@fastify/merge-json-schemas@0.1.1': + resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} + + '@fastify/sensible@5.6.0': + resolution: {integrity: sha512-Vq6Z2ZQy10GDqON+hvLF52K99s9et5gVVxTul5n3SIAf0Kq5QjPRUKkAMT3zPAiiGvoHtS3APa/3uaxfDgCODQ==} + + '@fastify/type-provider-typebox@4.0.0': + resolution: {integrity: sha512-kTlN0saC/+xhcQPyBjb3YONQAMjiD/EHlCRjQjsr5E3NFjS5K8ZX5LGzXYDRjSa+sV4y8gTL5Q7FlObePv4iTA==} + peerDependencies: + '@sinclair/typebox': '>=0.26 <=0.32' + '@fontsource/roboto-mono@5.0.0': resolution: {integrity: sha512-PNxomCUy0blr1gNkc2TXfm8zMqnTVAtYfVYKBss6pgjex7lHENhqdDslCPNLwJDDqqPsWgpQ6TrMWEh4OTAVxQ==} @@ -5141,6 +5376,20 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} + '@isaacs/ts-node-temp-fork-for-pr-2009@10.9.7': + resolution: {integrity: sha512-9f0bhUr9TnwwpgUhEpr3FjxSaH/OHaARkE2F9fM0lS4nIs2GNerrvGwQz493dk0JKlTaGYVrKbq36vA/whZ34g==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=4.2' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -5361,6 +5610,10 @@ packages: peerDependencies: react: '>=16.8.0' + '@lukeed/ms@2.0.2': + resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} + engines: {node: '>=8'} + '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -5439,6 +5692,43 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@npmcli/agent@2.2.2': + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/fs@3.1.1': + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/git@5.0.7': + resolution: {integrity: sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/installed-package-contents@2.1.0': + resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/node-gyp@3.0.0': + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/package-json@5.2.0': + resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/promise-spawn@7.0.2': + resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/redact@1.1.0': + resolution: {integrity: sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/run-script@7.0.4': + resolution: {integrity: sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==} + engines: {node: ^16.14.0 || >=18.0.0} + '@opentelemetry/api@1.8.0': resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} engines: {node: '>=8.0.0'} @@ -6038,6 +6328,30 @@ packages: '@sideway/pinpoint@2.0.0': resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sigstore/bundle@2.3.2': + resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/core@1.1.0': + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/protobuf-specs@0.3.2': + resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/sign@2.3.2': + resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/tuf@2.3.4': + resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/verify@1.2.1': + resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==} + engines: {node: ^16.14.0 || >=18.0.0} + '@silverhand/eslint-config-react@6.0.2': resolution: {integrity: sha512-4PqhypLqrX5FVXimKBz3S1c+usDns3N/XG66n2FQtO1FIa8WUVw1CsuWHT+tkqeIxDR1PRQX1e8Iwyy7vPclPA==} engines: {node: ^20.9.0} @@ -6096,6 +6410,9 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.32.34': + resolution: {integrity: sha512-a3Z3ytYl6R/+7ldxx04PO1semkwWlX/8pTqxsPw4quIcIXDFPZhOc1Wx8azWmkU26ccK3mHwcWenn0avNgAKQg==} + '@sindresorhus/is@5.4.0': resolution: {integrity: sha512-Ggh6E9AnMpiNXlbXfFUcWE9qm408rL8jDi7+PMBBx7TMbwEmiqAiSmZ+zydYwxcJLqPGNDoLc9mXDuMDBZg0sA==} engines: {node: '>=14.16'} @@ -6472,6 +6789,139 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} + '@tapjs/after-each@1.1.22': + resolution: {integrity: sha512-KKbCnMlOFspW6YoaFfzbU3kwwolF9DfP7ikGGMZItex/EB+OcLxoFV++DCWIDIl12mzQfYZMJ0wJXtHFc0ux0Q==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/after@1.1.22': + resolution: {integrity: sha512-8Ui8dfTFgDS3ENfzKpsWGJw+v4LHXvifaSB79chQbucuggW+nM2zzWu7grw7mDUBBR3Mknk+qL4Nb1KrnZvfWQ==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/asserts@1.2.0': + resolution: {integrity: sha512-QTs1kALeJKrlX9Yns3f8/hfsWgf4mdFYPN3lQKxZ/3C/DkGnjlrpVd4I2fnTC7cgJ116kwEgwhxVJUpw9QPp9A==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/before-each@1.1.22': + resolution: {integrity: sha512-uKKllHDvQgTXjAm+F+29Iqcb9Bzh5U6LH45m6v/zfKPm8UNnNpJ/XxFbbsFqi0EQX2czYH0ivHfyQwiO40R8lw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/before@1.1.22': + resolution: {integrity: sha512-Uv2odGCtOgY/EevyDZv2rHbIbe9WGrouC6HI+lJv4whGUKgiIYTOjrssl4YxvqvnNWx289/6Tp4Kpu7EeXT7yA==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/config@2.4.19': + resolution: {integrity: sha512-8fkUnf2d3g9wbnfSirXI92bx4ZO5X37nqYVb5fua9VDC2MsTLAmd4JyDSNG1ngn8/nO5o8aFNEeUaePswGId4A==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + '@tapjs/test': 1.4.4 + + '@tapjs/core@1.5.4': + resolution: {integrity: sha512-kDgRxTkSRxfLbX5orDmizxuyFBLLC3Mu4mQ2dMzw/UMYkrN8jZbkKZqIR0BdXgxE+GqvVFqkYvFJImXJBygBKQ==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + + '@tapjs/error-serdes@1.2.2': + resolution: {integrity: sha512-RW2aU50JR7SSAlvoTyuwouXETLM9lP+7oZ5Z+dyKhNp8mkbbz4mXKcgd9SDHY5qTh6zvVN7OFK7ev7dYWXbrWw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + + '@tapjs/filter@1.2.22': + resolution: {integrity: sha512-qVWbsFem2R1htQVh0+4xWMPsDPpQ2NhA/6mnlg4ApzAFvaTr5T/zK72VpR+AqPaMcMgrp4a/m5DQ03dLFqckZQ==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/fixture@1.2.22': + resolution: {integrity: sha512-ZYjkRzLSwW+cOg2CbL3GrgjatKVXcEGLQa7vjfmYVxDrPHkK7tiu3lf1KU6pFxTyqTlMMRUfMehHQrH+JjDC7Q==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/intercept@1.2.22': + resolution: {integrity: sha512-OiayUlV+0fxwGM3B7JyRSwryq2kRpuWiF+4wQCiufSbbF20H4uEIlkRq1YrfUlla4zWVvHeQOQlUoqb6fSEcSQ==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/mock@1.3.4': + resolution: {integrity: sha512-tEz5hIdJdAGzl+KxjZol4DD7cWAdYMmvLU/QCZ5BThAOJ+FUAOxtBFA31nd7IWkMseIqcbeeqLmeMtan6QlPKA==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/node-serialize@1.3.4': + resolution: {integrity: sha512-OwnSWdNnukgIGBsgnPy1ZpBDxp274GwLx2Ag+CulhsQ+IF9rOCq5P0EQ2kbxhxRet1386kbNzgXgaEeXmDXlLQ==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/processinfo@3.1.8': + resolution: {integrity: sha512-FIriEB+qqArPhmVYc1PZwRHD99myRdl7C9Oe/uts04Q2LOxQ5MEmqP9XOP8vVYzpDOYwmL8OmL6eOYt9eZlQKQ==} + engines: {node: '>=16.17'} + + '@tapjs/reporter@1.3.20': + resolution: {integrity: sha512-OTZeTC1/dr69mtZlRulynFH7+b7/C45MwLdLqaeTTeW2saAtojDMt7K2J8c74JlOO5+EKl71rBxrdKS6VBFqLw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/run@1.5.4': + resolution: {integrity: sha512-mwzU/KalqYOGZTTf7lPyfBdRDCoIgec69NXrq/+Le7PXYWKrRoYvIUoBGwgZYyjfiYshhnzb+ayZdtd76Lj0Kw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + hasBin: true + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/snapshot@1.2.22': + resolution: {integrity: sha512-6nhNY6uFPnQEVQ8vuxV3rKiC7NXDY5k/Bv1bPatfo//6z1T41INfQbnfwQXoufaHveLPpGBTLwpOWjtFsUHgdg==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/spawn@1.1.22': + resolution: {integrity: sha512-/MbFSmSpvLA0N2rKd8rI0vMLYM+0E3OB+doj+YUZe5m3G0YCHTBzZrnFGLw7Am1VsaREy4fSgchNEdn1NyikcQ==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/stack@1.2.8': + resolution: {integrity: sha512-VC8h6U62ScerTKN+MYpRPiwH2bCL65S6v1wcj1hukE2hojLcRvVdET7S3ZtRfSj/eNWW/5OVfzTpHiGjEYD6Xg==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + + '@tapjs/stdin@1.1.22': + resolution: {integrity: sha512-JUyzZHG01iM6uDfplVGRiK+OdNalwl5Okv+eljHBdZOA8kO3hHI6N9bkZa472/st4NBj0lcMMGb2IKGgIBBUQg==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/test@1.4.4': + resolution: {integrity: sha512-I0mzxs8+RUULd9g0R6+LXsLzkeqhu5jJPpA7w5BzTxA++jQ0ACjyHs1BBy1IhhP9DeZ5N2LPg+WxLs7Dijs9Uw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + hasBin: true + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/typescript@1.4.4': + resolution: {integrity: sha512-Mf2vIK1yk5ipQRmuIznFtC8Iboti0p0D90ENDZdEx678h60vAVPh9vebVX+oQ0LccAHGyu/CiOSFL4Za8b5/Rg==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + + '@tapjs/worker@1.1.22': + resolution: {integrity: sha512-1PO9Qstfevr4Wdh318eC3O1mytSyXT3q/K6EeivBhnuPeyHsy3QCAd1bfVD7gqzWNbJ/UzeGN3knfIi5qXifmA==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + peerDependencies: + '@tapjs/core': 1.5.4 + '@testing-library/dom@10.0.0': resolution: {integrity: sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==} engines: {node: '>=18'} @@ -6522,6 +6972,20 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tsconfig/node18@18.2.4': + resolution: {integrity: sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==} + + '@tsconfig/node20@20.1.4': + resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==} + + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@2.0.1': + resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} + engines: {node: ^16.14.0 || >=18.0.0} + '@types/accepts@1.3.5': resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==} @@ -6947,6 +7411,10 @@ packages: abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -6954,6 +7422,9 @@ packages: abortcontroller-polyfill@1.7.5: resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} + abstract-logging@2.0.1: + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} + accepts@1.3.7: resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} engines: {node: '>= 0.6'} @@ -7001,6 +7472,14 @@ packages: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + ajv-draft-04@1.0.0: resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: @@ -7017,6 +7496,14 @@ packages: ajv: optional: true + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -7169,6 +7656,10 @@ packages: resolution: {integrity: sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==} hasBin: true + async-hook-domain@4.0.1: + resolution: {integrity: sha512-bSktexGodAjfHWIrSrrqxqWzf1hWBZBpmPNZv+TYUMyWa2eoefFc6q6H1+KtdHYSz35lrhWdmXt/XK9wNEZvww==} + engines: {node: '>=16'} + async-hook-jl@1.7.6: resolution: {integrity: sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==} engines: {node: ^4.7 || >=6.9 || >=7.3} @@ -7183,14 +7674,25 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + attr-accept@2.2.2: resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} engines: {node: '>=4'} + auto-bind@5.0.1: + resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + avvio@8.3.2: + resolution: {integrity: sha512-st8e519GWHa/azv8S87mcJvZs4WsgTBjOw/Ih1CP6u+8SZvcOeAYNG6JbsIrAUUJJ7JfmrnOkR8ipDS+u9SIRQ==} + axe-core@4.7.0: resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} engines: {node: '>=4'} @@ -7354,10 +7856,19 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + c8@8.0.1: + resolution: {integrity: sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==} + engines: {node: '>=12'} + hasBin: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + cacache@18.0.3: + resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} + engines: {node: ^16.14.0 || >=18.0.0} + cache-content-type@1.0.1: resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} engines: {node: '>= 6.0.0'} @@ -7464,6 +7975,14 @@ packages: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -7499,6 +8018,14 @@ packages: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7549,6 +8076,10 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + collapse-white-space@1.0.6: resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} @@ -7656,6 +8187,18 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cookie-signature@1.2.1: + resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==} + engines: {node: '>=6.6.0'} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} @@ -7852,6 +8395,9 @@ packages: resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} engines: {node: '>=0.11'} + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dayjs@1.11.6: resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==} @@ -8132,6 +8678,9 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -8161,6 +8710,9 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -8207,6 +8759,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -8480,6 +9037,10 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events-to-array@2.0.3: + resolution: {integrity: sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==} + engines: {node: '>=12'} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -8511,6 +9072,9 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -8526,6 +9090,15 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true + fast-content-type-parse@1.1.0: + resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} + + fast-copy@3.0.2: + resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} + + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -8549,6 +9122,9 @@ packages: resolution: {integrity: sha512-4hjwZDPmgj/ZUKXhEWovGPciE/5mWtAIQQxN+2VBDFun7DRTk2oOItbu9ZZp6kqj+eZ/u7z+dgBgM74cfGRnBQ==} engines: {node: '>= 10.0.0'} + fast-json-stringify@5.16.1: + resolution: {integrity: sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==} + fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -8556,9 +9132,19 @@ packages: resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==} engines: {node: '>=10.0'} + fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-uri@2.4.0: + resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} + fast-xml-parser@4.2.5: resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} hasBin: true @@ -8571,9 +9157,18 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} + fastify-plugin@4.5.1: + resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} + + fastify@4.28.1: + resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==} + fastq@1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fault@1.0.4: resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} @@ -8611,6 +9206,10 @@ packages: resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==} engines: {node: '>=0.10.0'} + find-my-way@8.2.0: + resolution: {integrity: sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==} + engines: {node: '>=14'} + find-pkg@0.1.2: resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==} engines: {node: '>=0.10.0'} @@ -8660,6 +9259,10 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -8691,10 +9294,17 @@ packages: formidable@3.5.1: resolution: {integrity: sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==} + 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'} + fromentries@1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + fs-exists-sync@0.1.0: resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==} engines: {node: '>=0.10.0'} @@ -8707,6 +9317,14 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -8721,6 +9339,9 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-loop@4.0.0: + resolution: {integrity: sha512-f34iQBedYF3XcI93uewZZOnyscDragxgTK/eTvVB74k3fCD0ZorOi5BV9GS4M8rz/JoNi0Kl3qX5Y9MH3S/CLQ==} + function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -8805,6 +9426,9 @@ packages: get-tsconfig@4.7.3: resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-uri@6.0.1: resolution: {integrity: sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==} engines: {node: '>= 14'} @@ -9002,6 +9626,9 @@ packages: resolution: {integrity: sha512-MsIgYmdBh460ZZ8cJC81q4XJknjG567wzEmv46WOBblDb6TUd3z8/GhgmsM9pn8g2B80tAJ4m5/d3Bi1KrSUBQ==} engines: {node: '>=16.0.0'} + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + hexoid@1.0.0: resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} engines: {node: '>=8'} @@ -9026,6 +9653,10 @@ packages: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + hpagent@1.2.0: resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} engines: {node: '>=14'} @@ -9181,6 +9812,10 @@ packages: ignore-by-default@1.0.1: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + ignore-walk@6.0.5: + resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -9247,6 +9882,19 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ink@4.4.1: + resolution: {integrity: sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==} + engines: {node: '>=14.16'} + peerDependencies: + '@types/react': '>=18.0.0' + react: '>=18.0.0' + react-devtools-core: ^4.19.1 + peerDependenciesMeta: + '@types/react': + optional: true + react-devtools-core: + optional: true + inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} @@ -9265,16 +9913,27 @@ packages: internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + ip@1.1.9: resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} ip@2.0.1: resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + ipaddr.js@2.1.0: resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} engines: {node: '>= 10'} + is-actual-promise@1.0.2: + resolution: {integrity: sha512-xsFiO1of0CLsQnPZ1iXHNTyR9YszOeWKYv+q6n8oSFW3ipooFJ1j1lbRMgiMCr+pp2gLruESI4zb5Ak6eK5OnQ==} + is-alphabetical@1.0.4: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} @@ -9322,9 +9981,6 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} @@ -9382,6 +10038,12 @@ packages: is-json@2.0.1: resolution: {integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==} + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-lower-case@2.0.2: + resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -9492,6 +10154,9 @@ packages: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} engines: {node: '>=18'} + is-upper-case@2.0.2: + resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} + is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -9526,6 +10191,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + iso8601-duration@2.1.2: resolution: {integrity: sha512-yXteYUiKv6x8seaDzyBwnZtPpmx766KfvQuaVNyPifYOjmPdOo3ajd4phDNa7Y5mTQGnXsNEcXFtVun1FjYXxQ==} @@ -9768,6 +10437,10 @@ packages: jose@5.2.4: resolution: {integrity: sha512-6ScbIk2WWCeXkmzF6bRPmEuaqy1m8SbsRFMa/FLrSCkGIhj8OLVG/IH+XHVmNMx/KUo8cVWEE6oKR4dJ+S0Rkg==} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-base64@3.7.5: resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==} @@ -9789,6 +10462,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsdom@20.0.2: resolution: {integrity: sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==} engines: {node: '>=14'} @@ -9821,6 +10497,13 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@3.0.2: + resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + json-schema-ref-resolver@1.0.1: + resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -9977,6 +10660,9 @@ packages: libphonenumber-js@1.10.51: resolution: {integrity: sha512-vY2I+rQwrDQzoPds0JeTEpeWzbUJgqoV0O4v31PauHBb/e+1KCXKylHcDnBMgJZ9fH9mErsEbROJY3Z3JtqEmg==} + light-my-request@5.13.0: + resolution: {integrity: sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==} + lightningcss-darwin-arm64@1.16.1: resolution: {integrity: sha512-/J898YSAiGVqdybHdIF3Ao0Hbh2vyVVj5YNm3NznVzTSvkOi3qQCAtO97sfmNz+bSRHXga7ZPLm+89PpOM5gAg==} engines: {node: '>= 12.0.0'} @@ -10218,6 +10904,10 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-fetch-happen@13.0.1: + resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} + engines: {node: ^16.14.0 || >=18.0.0} + makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -10478,6 +11168,33 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@3.0.5: + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-json-stream@1.0.1: + resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} engines: {node: '>=8'} @@ -10490,6 +11207,10 @@ packages: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + minizlib@3.0.1: resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} engines: {node: '>= 18'} @@ -10501,6 +11222,11 @@ packages: resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} engines: {node: '>= 8.0.0'} + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + mkdirp@3.0.1: resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} @@ -10623,6 +11349,11 @@ packages: resolution: {integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==} hasBin: true + node-gyp@10.1.0: + resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -10655,6 +11386,11 @@ packages: resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} hasBin: true + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -10662,6 +11398,10 @@ packages: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -10670,6 +11410,34 @@ packages: resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} engines: {node: '>=14.16'} + npm-bundled@3.0.1: + resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@11.0.2: + resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-packlist@8.0.2: + resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-pick-manifest@9.0.1: + resolution: {integrity: sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-registry-fetch@16.2.1: + resolution: {integrity: sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==} + engines: {node: ^16.14.0 || >=18.0.0} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -10744,6 +11512,10 @@ packages: resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} engines: {node: ^10.13.0 || >=12.0.0} + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -10772,6 +11544,10 @@ packages: openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} @@ -10862,6 +11638,10 @@ packages: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + p-map@7.0.2: resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} engines: {node: '>=18'} @@ -10893,6 +11673,11 @@ packages: packet-reader@1.0.0: resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} + pacote@17.0.7: + resolution: {integrity: sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -10935,6 +11720,10 @@ packages: passthrough-counter@1.0.0: resolution: {integrity: sha512-Wy8PXTLqPAN0oEgBrlnsXPMww3SYJ44tQ8aVrGAI4h4JZYCS0oYqsPqtPR8OhJpv6qFbpbB7XAn0liKV7EXubA==} + patch-console@2.0.0: + resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -11069,6 +11858,20 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + + pino-pretty@11.2.1: + resolution: {integrity: sha512-O05NuD9tkRasFRWVaF/uHLOvoRDFD7tb5VMertr78rbsYFjYp48Vg3477EshVAF5eZaEw+OpDl/tu+B0R5o+7g==} + hasBin: true + + pino-std-serializers@7.0.0: + resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + + pino@9.2.0: + resolution: {integrity: sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==} + hasBin: true + pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -11092,6 +11895,14 @@ packages: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} + polite-json@4.0.1: + resolution: {integrity: sha512-8LI5ZeCPBEb4uBbcYKNVwk4jgqNx1yHReWoW4H4uUihWlSqZsUDfSITrRhjliuPgxsNPFhNSudGO2Zu4cbWinQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + polite-json@5.0.0: + resolution: {integrity: sha512-OLS/0XeUAcE8a2fdwemNja+udKgXNnY6yKVIXqAD2zVRx1KvY6Ato/rZ2vdzbxqYwPW0u6SCNC/bAMPNzpzxbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -11251,6 +12062,11 @@ packages: engines: {node: '>=14'} hasBin: true + prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + engines: {node: '>=14'} + hasBin: true + pretty-bytes@6.1.1: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} @@ -11263,10 +12079,33 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + prismjs-terminal@1.2.3: + resolution: {integrity: sha512-xc0zuJ5FMqvW+DpiRkvxURlz98DdfDsZcFHdO699+oL+ykbFfgI7O4VDEgUyc07BSL2NHl3zdb8m/tZ/aaqUrw==} + engines: {node: '>=16'} + prismjs@1.27.0: resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} engines: {node: '>=6'} + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-on-spawn@1.0.0: + resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + engines: {node: '>=8'} + + process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -11275,6 +12114,18 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -11296,6 +12147,10 @@ packages: resolution: {integrity: sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==} engines: {node: '>=4'} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + proxy-agent@6.4.0: resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} engines: {node: '>= 14'} @@ -11360,6 +12215,9 @@ packages: queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} @@ -11437,6 +12295,12 @@ packages: peerDependencies: react: '>= 16.8 || 18.0.0' + react-element-to-jsx-string@15.0.0: + resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} + peerDependencies: + react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + react-error-boundary@3.1.4: resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} engines: {node: '>=10', npm: '>=6'} @@ -11492,6 +12356,9 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-is@18.1.0: + resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} + react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} @@ -11516,6 +12383,12 @@ packages: peerDependencies: react: ^16 || ^17 || ^18 + react-reconciler@0.29.2: + resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^18.3.1 + react-refresh@0.9.0: resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} engines: {node: '>=0.10.0'} @@ -11587,6 +12460,15 @@ packages: peerDependencies: react: '*' + read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-json@7.0.1: + resolution: {integrity: sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==} + engines: {node: ^16.14.0 || >=18.0.0} + deprecated: This package is no longer supported. Please use @npmcli/package-json instead. + read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -11611,10 +12493,18 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} @@ -11737,6 +12627,10 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-import@1.4.5: + resolution: {integrity: sha512-HXb4YqODuuXT7Icq1Z++0g2JmhgbUHSs3VT2xR83gqvAPUikYT2Xk+562KHQgiaNkbBOlPddYrDLsC44qQggzw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + resolve-path@1.4.0: resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} engines: {node: '>= 0.8'} @@ -11748,10 +12642,6 @@ packages: resolution: {integrity: sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==} engines: {node: '>=10'} - resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} - hasBin: true - resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -11768,10 +12658,18 @@ packages: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + ret@0.4.3: + resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==} + engines: {node: '>=10'} + retry-request@7.0.2: resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} engines: {node: '>=14'} + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} @@ -11847,6 +12745,9 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} + safe-regex2@3.1.0: + resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} + safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} @@ -11872,6 +12773,12 @@ packages: scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -11900,6 +12807,9 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -11950,6 +12860,10 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + sigstore@2.3.1: + resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} + engines: {node: ^16.14.0 || >=18.0.0} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -11975,6 +12889,10 @@ packages: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} + slice-ansi@6.0.0: + resolution: {integrity: sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==} + engines: {node: '>=14.16'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -11999,10 +12917,21 @@ packages: resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} engines: {node: '>= 14'} + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} + engines: {node: '>= 14'} + socks@2.7.1: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + sonic-boom@4.0.1: + resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} + source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -12065,6 +12994,9 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sql-parse@0.1.5: resolution: {integrity: sha512-e2ExBX6iDHoCDC1zN2NvZV49UMhKVLvvwrDjzSVHFS3TKHKtIpl2nMDQkdlbTjDVvf2bxRYBq9iXAAMZvZpGVA==} engines: {node: '>=0.10'} @@ -12073,6 +13005,10 @@ packages: resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} engines: {node: '>=12'} + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + 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' @@ -12084,6 +13020,10 @@ packages: resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} engines: {node: '>=10'} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -12131,6 +13071,10 @@ packages: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} + string-length@6.0.0: + resolution: {integrity: sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==} + engines: {node: '>=16'} + string-similarity@4.0.4: resolution: {integrity: sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -12308,6 +13252,11 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + sync-content@1.0.2: + resolution: {integrity: sha512-znd3rYiiSxU3WteWyS9a6FXkTA/Wjk8WQsOyzHbineeL837dLn3DA4MRhsIX3qGcxDMH6+uuFV4axztssk7wEQ==} + engines: {node: '>=14'} + hasBin: true + synckit@0.8.8: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -12316,6 +13265,20 @@ packages: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} + tap-parser@15.3.2: + resolution: {integrity: sha512-uvauHuQqAMwfeFVxNpFXhvnWLVL0sthnHk4TxRM3cUy6+dejO9fatoKR7YejbMu4+2/1nR6UQE9+eUcX3PUmsA==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + hasBin: true + + tap-yaml@2.2.2: + resolution: {integrity: sha512-MWG4OpAKtNoNVjCz/BqlDJiwTM99tiHRhHPS4iGOe1ZS0CgM4jSFH92lthSFvvy4EdDjQZDV7uYqUFlU9JuNhw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + + tap@18.8.0: + resolution: {integrity: sha512-tX02yXmzBcemYfNGKtTJFf3cn7e8VgBvxKswaew8YnrE+1cUZtxyN0GhMzPQ5cWznVz47DfgcuYR1QtCr+4LOw==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + hasBin: true + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -12326,10 +13289,18 @@ packages: tar-stream@3.1.6: resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + tar@7.0.1: resolution: {integrity: sha512-IjMhdQMZFpKsHEQT3woZVxBtCQY+0wk3CVxdRkGXEgyGa0dNS/ehPvOMr2nmfC7x5Zj2N+l6yZUpmICjLGS35w==} engines: {node: '>=18'} + tcompare@6.4.6: + resolution: {integrity: sha512-sxvgCgO2GAIWHibnK4zLvvi9GHd/ZlR9DOUJ4ufwvNtkdKE2I9MNwJUwzYvOmGrJXMcfhhw0CDBb+6j0ia+I7A==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + teeny-request@9.0.0: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} @@ -12356,6 +13327,9 @@ packages: resolution: {integrity: sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==} engines: {node: '>=0.2.6'} + thread-stream@3.1.0: + resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} @@ -12397,6 +13371,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toad-cache@3.7.0: + resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==} + engines: {node: '>=12'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -12441,6 +13419,10 @@ packages: resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} deprecated: Use String.prototype.trim() instead + trivial-deferred@2.0.0: + resolution: {integrity: sha512-iGbM7X2slv9ORDVj2y2FFUq3cP/ypbtu2nQ8S38ufjL0glBABvmR9pTdsib1XtS2LUhhLMbelaBUaf/s5J3dSw==} + engines: {node: '>= 8'} + trough@1.0.5: resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} @@ -12470,6 +13452,11 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tshy@1.16.2: + resolution: {integrity: sha512-WbjEtXENqbOEIdActBHq1bTJAaSAAD+NDxPdviDrFlvT5FCSWacWlWzSEB7FNLs5qqcP5bng/4W2TuNy1bY6NQ==} + engines: {node: 16 >=16.17 || 18 >=18.15.0 || >=20.6.1} + hasBin: true + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -12486,11 +13473,20 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} + tsx@4.16.0: + resolution: {integrity: sha512-MPgN+CuY+4iKxGoJNPv+1pyo5YWZAQ5XfsyobUG+zoKG7IkvCPLZDEyoIb8yLS2FcWci1nlxAqmvPlFWD5AFiQ==} + engines: {node: '>=18.0.0'} + hasBin: true + tty-table@4.1.6: resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} engines: {node: '>=8.0.0'} hasBin: true + tuf-js@2.2.1: + resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} + engines: {node: ^16.14.0 || >=18.0.0} + tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} @@ -12510,6 +13506,10 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + type-fest@0.12.0: + resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} + engines: {node: '>=10'} + type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -12575,11 +13575,21 @@ packages: engines: {node: '>=12.20'} hasBin: true + typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true + typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + engines: {node: '>=14.17'} + hasBin: true + ua-parser-js@1.0.37: resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} @@ -12611,6 +13621,14 @@ packages: unified@9.2.0: resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unist-builder@2.0.3: resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} @@ -12722,6 +13740,10 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -12812,6 +13834,9 @@ packages: engines: {node: '>=12.0.0'} hasBin: true + walk-up-path@3.0.1: + resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -12886,11 +13911,20 @@ packages: engines: {node: '>= 8'} hasBin: true + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} @@ -12990,6 +14024,12 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml-types@0.3.0: + resolution: {integrity: sha512-i9RxAO/LZBiE0NJUy9pbN5jFz5EasYDImzRkj8Y81kkInTi1laia3P3K/wlMKzOxFQutZip8TejvQP/DwgbU7A==} + engines: {node: '>= 16', npm: '>= 7'} + peerDependencies: + yaml: ^2.3.0 + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -12998,6 +14038,11 @@ packages: resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} engines: {node: '>= 14'} + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -13041,6 +14086,9 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yoga-wasm-web@0.3.3: + resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} + zod-to-ts@1.2.0: resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} peerDependencies: @@ -13060,6 +14108,11 @@ snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} + '@alcalzone/ansi-tokenize@0.1.3': + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -13661,7 +14714,7 @@ snapshots: '@azure/core-util': 1.2.0 tslib: 2.6.2 - '@azure/core-http@3.0.4': + '@azure/core-http@3.0.4(encoding@0.1.13)': dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 @@ -13671,7 +14724,7 @@ snapshots: '@types/node-fetch': 2.6.2 '@types/tunnel': 0.0.3 form-data: 4.0.0 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) process: 0.11.10 tslib: 2.6.2 tunnel: 0.0.6 @@ -13742,10 +14795,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/storage-blob@12.17.0': + '@azure/storage-blob@12.17.0(encoding@0.1.13)': dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-http': 3.0.4 + '@azure/core-http': 3.0.4(encoding@0.1.13) '@azure/core-lro': 2.5.1 '@azure/core-paging': 1.5.0 '@azure/core-tracing': 1.0.0-preview.13 @@ -14059,6 +15112,8 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + '@base2/pretty-print-object@1.0.1': {} + '@bcoe/v8-coverage@0.2.3': {} '@changesets/apply-release-plan@6.1.4': @@ -14342,72 +15397,141 @@ snapshots: '@esbuild/aix-ppc64@0.20.2': optional: true + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/android-arm64@0.20.2': optional: true + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm@0.20.2': optional: true + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-x64@0.20.2': optional: true + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.20.2': optional: true + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.20.2': optional: true + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.20.2': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.20.2': optional: true + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.20.2': optional: true + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm@0.20.2': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-ia32@0.20.2': optional: true + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-loong64@0.20.2': optional: true + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.20.2': optional: true + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.20.2': optional: true + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.20.2': optional: true + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-s390x@0.20.2': optional: true + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-x64@0.20.2': optional: true + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.20.2': optional: true + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.20.2': optional: true - '@esbuild/sunos-x64@0.20.2': + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/win32-arm64@0.20.2': optional: true + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-ia32@0.20.2': optional: true + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-x64@0.20.2': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -14431,6 +15555,46 @@ snapshots: '@eslint/js@8.57.0': {} + '@fastify/ajv-compiler@3.6.0': + dependencies: + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + fast-uri: 2.4.0 + + '@fastify/cookie@9.3.1': + dependencies: + cookie-signature: 1.2.1 + fastify-plugin: 4.5.1 + + '@fastify/error@3.4.1': {} + + '@fastify/fast-json-stringify-compiler@4.3.0': + dependencies: + fast-json-stringify: 5.16.1 + + '@fastify/formbody@7.4.0': + dependencies: + fast-querystring: 1.1.2 + fastify-plugin: 4.5.1 + + '@fastify/merge-json-schemas@0.1.1': + dependencies: + fast-deep-equal: 3.1.3 + + '@fastify/sensible@5.6.0': + dependencies: + '@lukeed/ms': 2.0.2 + fast-deep-equal: 3.1.3 + fastify-plugin: 4.5.1 + forwarded: 0.2.0 + http-errors: 2.0.0 + type-is: 1.6.18 + vary: 1.1.2 + + '@fastify/type-provider-typebox@4.0.0(@sinclair/typebox@0.32.34)': + dependencies: + '@sinclair/typebox': 0.32.34 + '@fontsource/roboto-mono@5.0.0': {} '@google-cloud/paginator@5.0.0': @@ -14442,7 +15606,7 @@ snapshots: '@google-cloud/promisify@4.0.0': {} - '@google-cloud/storage@7.10.0': + '@google-cloud/storage@7.10.0(encoding@0.1.13)': dependencies: '@google-cloud/paginator': 5.0.0 '@google-cloud/projectify': 4.0.0 @@ -14452,12 +15616,12 @@ snapshots: duplexify: 4.1.3 ent: 2.2.0 fast-xml-parser: 4.3.6 - gaxios: 6.1.1 - google-auth-library: 9.8.0 + gaxios: 6.1.1(encoding@0.1.13) + google-auth-library: 9.8.0(encoding@0.1.13) mime: 3.0.0 p-limit: 3.1.0 - retry-request: 7.0.2 - teeny-request: 9.0.0 + retry-request: 7.0.2(encoding@0.1.13) + teeny-request: 9.0.0(encoding@0.1.13) uuid: 8.3.2 transitivePeerDependencies: - encoding @@ -14500,6 +15664,42 @@ snapshots: dependencies: minipass: 7.0.4 + '@isaacs/ts-node-temp-fork-for-pr-2009@10.9.7(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.2.2)': + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@tsconfig/node18': 18.2.4 + '@tsconfig/node20': 20.1.4 + '@types/node': 20.12.7 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.2.2 + v8-compile-cache-lib: 3.0.1 + optionalDependencies: + '@swc/core': 1.3.52(@swc/helpers@0.5.1) + + '@isaacs/ts-node-temp-fork-for-pr-2009@10.9.7(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.2)': + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@tsconfig/node18': 18.2.4 + '@tsconfig/node20': 20.1.4 + '@types/node': 20.12.7 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.5.2 + v8-compile-cache-lib: 3.0.1 + optionalDependencies: + '@swc/core': 1.3.52(@swc/helpers@0.5.1) + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 @@ -14563,41 +15763,6 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.12.7 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.8.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - '@jest/create-cache-key-function@27.5.1': dependencies: '@jest/types': 27.5.1 @@ -14897,6 +16062,8 @@ snapshots: '@silverhand/essentials': 2.9.1 react: 18.2.0 + '@lukeed/ms@2.0.2': {} + '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.21.0 @@ -14993,6 +16160,69 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 + '@npmcli/agent@2.2.2': + dependencies: + agent-base: 7.1.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + lru-cache: 10.2.0 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + + '@npmcli/fs@3.1.1': + dependencies: + semver: 7.6.0 + + '@npmcli/git@5.0.7': + dependencies: + '@npmcli/promise-spawn': 7.0.2 + lru-cache: 10.2.0 + npm-pick-manifest: 9.0.1 + proc-log: 4.2.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.6.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + + '@npmcli/installed-package-contents@2.1.0': + dependencies: + npm-bundled: 3.0.1 + npm-normalize-package-bin: 3.0.1 + + '@npmcli/node-gyp@3.0.0': {} + + '@npmcli/package-json@5.2.0': + dependencies: + '@npmcli/git': 5.0.7 + glob: 10.3.12 + hosted-git-info: 7.0.2 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 6.0.2 + proc-log: 4.2.0 + semver: 7.6.0 + transitivePeerDependencies: + - bluebird + + '@npmcli/promise-spawn@7.0.2': + dependencies: + which: 4.0.0 + + '@npmcli/redact@1.1.0': {} + + '@npmcli/run-script@7.0.4': + dependencies: + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.2.0 + '@npmcli/promise-spawn': 7.0.2 + node-gyp: 10.1.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + - supports-color + '@opentelemetry/api@1.8.0': {} '@opentelemetry/core@1.23.0(@opentelemetry/api@1.8.0)': @@ -15770,7 +17000,7 @@ snapshots: deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.2 + resolve: 1.22.8 optionalDependencies: rollup: 4.14.3 @@ -15910,6 +17140,38 @@ snapshots: '@sideway/pinpoint@2.0.0': {} + '@sigstore/bundle@2.3.2': + dependencies: + '@sigstore/protobuf-specs': 0.3.2 + + '@sigstore/core@1.1.0': {} + + '@sigstore/protobuf-specs@0.3.2': {} + + '@sigstore/sign@2.3.2': + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + make-fetch-happen: 13.0.1 + proc-log: 4.2.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@2.3.4': + dependencies: + '@sigstore/protobuf-specs': 0.3.2 + tuf-js: 2.2.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@1.2.1': + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + '@silverhand/eslint-config-react@6.0.2(eslint@8.57.0)(postcss@8.4.31)(prettier@3.0.0)(stylelint@15.11.0(typescript@5.3.3))(typescript@5.3.3)': dependencies: '@silverhand/eslint-config': 6.0.1(eslint@8.57.0)(prettier@3.0.0)(typescript@5.3.3) @@ -15940,10 +17202,10 @@ snapshots: eslint-config-prettier: 9.1.0(eslint@8.57.0) eslint-config-xo: 0.44.0(eslint@8.57.0) eslint-config-xo-typescript: 4.0.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-consistent-default-export-name: 0.0.15 eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-n: 17.2.1(eslint@8.57.0) eslint-plugin-no-use-extend-native: 0.5.0 eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.0.0) @@ -16002,7 +17264,7 @@ snapshots: dependencies: '@simplewebauthn/types': 10.0.0 - '@simplewebauthn/server@10.0.0': + '@simplewebauthn/server@10.0.0(encoding@0.1.13)': dependencies: '@hexagon/base64': 1.1.28 '@levischuck/tiny-cbor': 0.2.2 @@ -16012,7 +17274,7 @@ snapshots: '@peculiar/asn1-schema': 2.3.8 '@peculiar/asn1-x509': 2.3.8 '@simplewebauthn/types': 10.0.0 - cross-fetch: 4.0.0 + cross-fetch: 4.0.0(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -16024,6 +17286,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.32.34': {} + '@sindresorhus/is@5.4.0': {} '@sindresorhus/is@6.1.0': {} @@ -16504,6 +17768,255 @@ snapshots: dependencies: defer-to-connect: 2.0.1 + '@tapjs/after-each@1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + function-loop: 4.0.0 + + '@tapjs/after@1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + is-actual-promise: 1.0.2 + + '@tapjs/asserts@1.2.0(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/stack': 1.2.8 + is-actual-promise: 1.0.2 + tcompare: 6.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + trivial-deferred: 2.0.0 + transitivePeerDependencies: + - react + - react-dom + + '@tapjs/before-each@1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + function-loop: 4.0.0 + + '@tapjs/before@1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + is-actual-promise: 1.0.2 + + '@tapjs/config@2.4.19(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tapjs/test@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/test': 1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + chalk: 5.3.0 + jackspeak: 2.3.6 + polite-json: 4.0.1 + tap-yaml: 2.2.2 + walk-up-path: 3.0.1 + + '@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@tapjs/processinfo': 3.1.8 + '@tapjs/stack': 1.2.8 + '@tapjs/test': 1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + async-hook-domain: 4.0.1 + diff: 5.2.0 + is-actual-promise: 1.0.2 + minipass: 7.0.4 + signal-exit: 4.1.0 + tap-parser: 15.3.2 + tap-yaml: 2.2.2 + tcompare: 6.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + trivial-deferred: 2.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - react + - react-dom + + '@tapjs/error-serdes@1.2.2': + dependencies: + minipass: 7.0.4 + + '@tapjs/filter@1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + + '@tapjs/fixture@1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + mkdirp: 3.0.1 + rimraf: 5.0.5 + + '@tapjs/intercept@1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/after': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/stack': 1.2.8 + + '@tapjs/mock@1.3.4(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/after': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/stack': 1.2.8 + resolve-import: 1.4.5 + walk-up-path: 3.0.1 + + '@tapjs/node-serialize@1.3.4(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/error-serdes': 1.2.2 + '@tapjs/stack': 1.2.8 + tap-parser: 15.3.2 + + '@tapjs/processinfo@3.1.8': + dependencies: + pirates: 4.0.5 + process-on-spawn: 1.0.0 + signal-exit: 4.1.0 + uuid: 8.3.2 + + '@tapjs/reporter@1.3.20(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tapjs/test@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.31)(react-dom@18.2.0(react@18.2.0))': + dependencies: + '@tapjs/config': 2.4.19(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tapjs/test@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/stack': 1.2.8 + chalk: 5.3.0 + ink: 4.4.1(@types/react@18.0.31)(react@18.2.0) + minipass: 7.0.4 + ms: 2.1.3 + patch-console: 2.0.0 + prismjs-terminal: 1.2.3 + react: 18.2.0 + string-length: 6.0.0 + tap-parser: 15.3.2 + tap-yaml: 2.2.2 + tcompare: 6.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + transitivePeerDependencies: + - '@tapjs/test' + - '@types/react' + - bufferutil + - react-devtools-core + - react-dom + - utf-8-validate + + '@tapjs/run@1.5.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(@types/react@18.0.31)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@tapjs/after': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/before': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/config': 2.4.19(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tapjs/test@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/processinfo': 3.1.8 + '@tapjs/reporter': 1.3.20(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tapjs/test@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.31)(react-dom@18.2.0(react@18.2.0)) + '@tapjs/spawn': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/stdin': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/test': 1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + c8: 8.0.1 + chalk: 5.3.0 + chokidar: 3.6.0 + foreground-child: 3.1.1 + glob: 10.3.12 + minipass: 7.0.4 + mkdirp: 3.0.1 + opener: 1.5.2 + pacote: 17.0.7 + resolve-import: 1.4.5 + rimraf: 5.0.5 + semver: 7.6.0 + signal-exit: 4.1.0 + tap-parser: 15.3.2 + tap-yaml: 2.2.2 + tcompare: 6.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + trivial-deferred: 2.0.0 + which: 4.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - '@types/react' + - bluebird + - bufferutil + - react + - react-devtools-core + - react-dom + - supports-color + - utf-8-validate + + '@tapjs/snapshot@1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + is-actual-promise: 1.0.2 + tcompare: 6.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + trivial-deferred: 2.0.0 + transitivePeerDependencies: + - react + - react-dom + + '@tapjs/spawn@1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + + '@tapjs/stack@1.2.8': {} + + '@tapjs/stdin@1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + + '@tapjs/test@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@isaacs/ts-node-temp-fork-for-pr-2009': 10.9.7(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.2.2) + '@tapjs/after': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/after-each': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/asserts': 1.2.0(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/before': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/before-each': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/filter': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/fixture': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/intercept': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/mock': 1.3.4(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/node-serialize': 1.3.4(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/snapshot': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/spawn': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/stdin': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/typescript': 1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(typescript@5.2.2) + '@tapjs/worker': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + glob: 10.3.12 + jackspeak: 2.3.6 + mkdirp: 3.0.1 + resolve-import: 1.4.5 + rimraf: 5.0.5 + sync-content: 1.0.2 + tap-parser: 15.3.2 + tshy: 1.16.2 + typescript: 5.2.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - react + - react-dom + + '@tapjs/typescript@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(typescript@5.2.2)': + dependencies: + '@isaacs/ts-node-temp-fork-for-pr-2009': 10.9.7(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.2.2) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - typescript + + '@tapjs/typescript@1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(typescript@5.5.2)': + dependencies: + '@isaacs/ts-node-temp-fork-for-pr-2009': 10.9.7(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.2) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - typescript + + '@tapjs/worker@1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': + dependencies: + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@testing-library/dom@10.0.0': dependencies: '@babel/code-frame': 7.22.5 @@ -16546,6 +18059,17 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tsconfig/node18@18.2.4': {} + + '@tsconfig/node20@20.1.4': {} + + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@2.0.1': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 9.0.4 + '@types/accepts@1.3.5': dependencies: '@types/node': 20.12.7 @@ -16913,7 +18437,7 @@ snapshots: '@types/tar@6.1.12': dependencies: - '@types/node': 20.11.20 + '@types/node': 20.12.7 minipass: 4.2.8 '@types/through@0.0.30': @@ -16965,6 +18489,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/type-utils': 7.7.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 7.7.0 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.5.2) + optionalDependencies: + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3)': dependencies: '@typescript-eslint/scope-manager': 7.7.0 @@ -16978,6 +18522,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.5.2)': + dependencies: + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 7.7.0 + debug: 4.3.4 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@7.7.0': dependencies: '@typescript-eslint/types': 7.7.0 @@ -16995,6 +18552,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@7.7.0(eslint@8.57.0)(typescript@5.5.2)': + dependencies: + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.5.2) + '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.5.2) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.5.2) + optionalDependencies: + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@7.7.0': {} '@typescript-eslint/typescript-estree@7.7.0(typescript@5.3.3)': @@ -17012,6 +18581,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@7.7.0(typescript@5.5.2)': + dependencies: + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.5.2) + optionalDependencies: + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@7.7.0(eslint@8.57.0)(typescript@5.3.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -17026,6 +18610,20 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@7.7.0(eslint@8.57.0)(typescript@5.5.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.5.2) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/visitor-keys@7.7.0': dependencies: '@typescript-eslint/types': 7.7.0 @@ -17149,12 +18747,16 @@ snapshots: abbrev@1.1.1: {} + abbrev@2.0.0: {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 abortcontroller-polyfill@1.7.5: {} + abstract-logging@2.0.1: {} + accepts@1.3.7: dependencies: mime-types: 2.1.35 @@ -17202,6 +18804,17 @@ snapshots: transitivePeerDependencies: - supports-color + agent-base@7.1.1: + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + ajv-draft-04@1.0.0(ajv@8.12.0): optionalDependencies: ajv: 8.12.0 @@ -17210,6 +18823,10 @@ snapshots: optionalDependencies: ajv: 8.12.0 + ajv-formats@3.0.1(ajv@8.12.0): + optionalDependencies: + ajv: 8.12.0 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -17400,6 +19017,8 @@ snapshots: astring@1.8.3: {} + async-hook-domain@4.0.1: {} + async-hook-jl@1.7.6: dependencies: stack-chain: 1.3.7 @@ -17415,12 +19034,21 @@ snapshots: asynckit@0.4.0: {} + atomic-sleep@1.0.0: {} + attr-accept@2.2.2: {} + auto-bind@5.0.1: {} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 + avvio@8.3.2: + dependencies: + '@fastify/error': 3.4.1 + fastq: 1.17.1 + axe-core@4.7.0: {} axios@1.6.7: @@ -17614,8 +19242,38 @@ snapshots: bytes@3.1.2: {} + c8@8.0.1: + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.1.7 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.2.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + cac@6.7.14: {} + cacache@18.0.3: + dependencies: + '@npmcli/fs': 3.1.1 + fs-minipass: 3.0.3 + glob: 10.3.12 + lru-cache: 10.2.0 + minipass: 7.0.4 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.6 + tar: 6.2.1 + unique-filename: 3.0.0 + cache-content-type@1.0.1: dependencies: mime-types: 2.1.35 @@ -17732,6 +19390,20 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@3.6.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 + + chownr@2.0.0: {} + chownr@3.0.0: {} chrome-trace-event@1.0.3: {} @@ -17761,6 +19433,10 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + clean-stack@2.2.0: {} + + cli-boxes@3.0.0: {} + cli-cursor@4.0.0: dependencies: restore-cursor: 4.0.0 @@ -17809,6 +19485,10 @@ snapshots: co@4.6.0: {} + code-excerpt@4.0.0: + dependencies: + convert-to-spaces: 2.0.1 + collapse-white-space@1.0.6: {} collect-v8-coverage@1.0.1: {} @@ -17902,6 +19582,12 @@ snapshots: convert-source-map@2.0.0: {} + convert-to-spaces@2.0.1: {} + + cookie-signature@1.2.1: {} + + cookie@0.6.0: {} + cookiejar@2.1.4: {} cookies@0.8.0: @@ -17966,13 +19652,13 @@ snapshots: dependencies: lodash.get: 4.4.2 - create-jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)): + create-jest@29.7.0(@types/node@20.10.4): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + jest-config: 29.7.0(@types/node@20.10.4) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -18002,9 +19688,9 @@ snapshots: dependencies: cross-spawn: 7.0.3 - cross-fetch@4.0.0: + cross-fetch@4.0.0(encoding@0.1.13): dependencies: - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -18144,6 +19830,8 @@ snapshots: date-fns@2.29.3: {} + dateformat@4.6.3: {} + dayjs@1.11.6: {} debug@3.2.7(supports-color@5.5.0): @@ -18375,6 +20063,11 @@ snapshots: encodeurl@1.0.2: {} + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -18398,6 +20091,8 @@ snapshots: env-paths@2.2.1: {} + err-code@2.0.3: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -18551,6 +20246,32 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + escalade@3.1.1: {} escape-html@1.0.3: {} @@ -18620,13 +20341,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 4.3.4 enhanced-resolve: 5.16.0 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.3 is-core-module: 2.13.1 @@ -18637,14 +20358,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7(supports-color@5.5.0) optionalDependencies: '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -18666,7 +20387,7 @@ snapshots: eslint: 8.57.0 ignore: 5.3.1 - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -18676,7 +20397,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -18741,6 +20462,15 @@ snapshots: optionalDependencies: eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2): + dependencies: + eslint: 8.57.0 + prettier: 3.3.2 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + optionalDependencies: + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-plugin-promise@6.1.1(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -18907,6 +20637,8 @@ snapshots: eventemitter3@5.0.1: {} + events-to-array@2.0.3: {} + events@3.3.0: {} execa@5.1.1: @@ -18951,6 +20683,8 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + exponential-backoff@3.1.1: {} + extend@3.0.2: {} extendable-error@0.1.7: {} @@ -18971,6 +20705,12 @@ snapshots: transitivePeerDependencies: - supports-color + fast-content-type-parse@1.1.0: {} + + fast-copy@3.0.2: {} + + fast-decode-uri-component@1.0.1: {} + fast-deep-equal@3.1.3: {} fast-diff@1.2.0: {} @@ -18996,14 +20736,32 @@ snapshots: rfdc: 1.3.0 string-similarity: 4.0.4 + fast-json-stringify@5.16.1: + dependencies: + '@fastify/merge-json-schemas': 0.1.1 + ajv: 8.12.0 + ajv-formats: 3.0.1(ajv@8.12.0) + fast-deep-equal: 3.1.3 + fast-uri: 2.4.0 + json-schema-ref-resolver: 1.0.1 + rfdc: 1.3.0 + fast-levenshtein@2.0.6: {} fast-printf@1.6.9: dependencies: boolean: 3.1.4 + fast-querystring@1.1.2: + dependencies: + fast-decode-uri-component: 1.0.1 + + fast-redact@3.5.0: {} + fast-safe-stringify@2.1.1: {} + fast-uri@2.4.0: {} + fast-xml-parser@4.2.5: dependencies: strnum: 1.0.5 @@ -19014,10 +20772,35 @@ snapshots: fastest-levenshtein@1.0.16: {} + fastify-plugin@4.5.1: {} + + fastify@4.28.1: + dependencies: + '@fastify/ajv-compiler': 3.6.0 + '@fastify/error': 3.4.1 + '@fastify/fast-json-stringify-compiler': 4.3.0 + abstract-logging: 2.0.1 + avvio: 8.3.2 + fast-content-type-parse: 1.1.0 + fast-json-stringify: 5.16.1 + find-my-way: 8.2.0 + light-my-request: 5.13.0 + pino: 9.2.0 + process-warning: 3.0.0 + proxy-addr: 2.0.7 + rfdc: 1.3.0 + secure-json-parse: 2.7.0 + semver: 7.6.0 + toad-cache: 3.7.0 + fastq@1.13.0: dependencies: reusify: 1.0.4 + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + fault@1.0.4: dependencies: format: 0.2.2 @@ -19058,6 +20841,12 @@ snapshots: fs-exists-sync: 0.1.0 resolve-dir: 0.1.1 + find-my-way@8.2.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 3.1.0 + find-pkg@0.1.2: dependencies: find-file-up: 0.1.3 @@ -19112,6 +20901,11 @@ snapshots: dependencies: is-callable: 1.2.7 + foreground-child@2.0.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 @@ -19147,8 +20941,12 @@ snapshots: hexoid: 1.0.0 once: 1.4.0 + forwarded@0.2.0: {} + fresh@0.5.2: {} + fromentries@1.3.2: {} + fs-exists-sync@0.1.0: {} fs-extra@7.0.1: @@ -19163,6 +20961,14 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs-minipass@3.0.3: + dependencies: + minipass: 7.0.4 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -19172,6 +20978,8 @@ snapshots: function-bind@1.1.2: {} + function-loop@4.0.0: {} + function.prototype.name@1.1.5: dependencies: call-bind: 1.0.7 @@ -19188,19 +20996,19 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.1.1: + gaxios@6.1.1(encoding@0.1.13): dependencies: extend: 3.0.2 https-proxy-agent: 7.0.4 is-stream: 2.0.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color - gcp-metadata@6.1.0: + gcp-metadata@6.1.0(encoding@0.1.13): dependencies: - gaxios: 6.1.1 + gaxios: 6.1.1(encoding@0.1.13) json-bigint: 1.0.0 transitivePeerDependencies: - encoding @@ -19262,6 +21070,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.7.5: + dependencies: + resolve-pkg-maps: 1.0.0 + get-uri@6.0.1: dependencies: basic-ftp: 5.0.3 @@ -19367,13 +21179,13 @@ snapshots: dependencies: csstype: 3.0.11 - google-auth-library@9.8.0: + google-auth-library@9.8.0(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.1.1 - gcp-metadata: 6.1.0 - gtoken: 7.0.1 + gaxios: 6.1.1(encoding@0.1.13) + gcp-metadata: 6.1.0(encoding@0.1.13) + gtoken: 7.0.1(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding @@ -19419,9 +21231,9 @@ snapshots: graphemer@1.4.0: {} - gtoken@7.0.1: + gtoken@7.0.1(encoding@0.1.13): dependencies: - gaxios: 6.1.1 + gaxios: 6.1.1(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding @@ -19539,6 +21351,8 @@ snapshots: helmet@7.0.0: {} + help-me@5.0.0: {} + hexoid@1.0.0: {} highlight.js@10.7.3: {} @@ -19561,6 +21375,10 @@ snapshots: dependencies: lru-cache: 6.0.0 + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.2.0 + hpagent@1.2.0: {} html-encoding-sniffer@3.0.0: @@ -19713,6 +21531,10 @@ snapshots: ignore-by-default@1.0.1: {} + ignore-walk@6.0.5: + dependencies: + minimatch: 9.0.4 + ignore@5.3.1: {} immutable@4.1.0: {} @@ -19763,6 +21585,40 @@ snapshots: ini@4.1.1: {} + ink@4.4.1(@types/react@18.0.31)(react@18.2.0): + dependencies: + '@alcalzone/ansi-tokenize': 0.1.3 + ansi-escapes: 6.0.0 + auto-bind: 5.0.1 + chalk: 5.3.0 + cli-boxes: 3.0.0 + cli-cursor: 4.0.0 + cli-truncate: 3.1.0 + code-excerpt: 4.0.0 + indent-string: 5.0.0 + is-ci: 3.0.1 + is-lower-case: 2.0.2 + is-upper-case: 2.0.2 + lodash: 4.17.21 + patch-console: 2.0.0 + react: 18.2.0 + react-reconciler: 0.29.2(react@18.2.0) + scheduler: 0.23.0 + signal-exit: 3.0.7 + slice-ansi: 6.0.0 + stack-utils: 2.0.6 + string-width: 5.1.2 + type-fest: 0.12.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 + ws: 8.16.0 + yoga-wasm-web: 0.3.3 + optionalDependencies: + '@types/react': 18.0.31 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + inline-style-parser@0.1.1: {} inquirer@9.1.4: @@ -19797,12 +21653,21 @@ snapshots: internmap@1.0.1: {} + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + ip@1.1.9: {} ip@2.0.1: {} + ipaddr.js@1.9.1: {} + ipaddr.js@2.1.0: {} + is-actual-promise@1.0.2: {} + is-alphabetical@1.0.4: {} is-alphanumerical@1.0.4: @@ -19848,10 +21713,6 @@ snapshots: dependencies: ci-info: 3.8.0 - is-core-module@2.12.1: - dependencies: - has: 1.0.3 - is-core-module@2.13.1: dependencies: hasown: 2.0.2 @@ -19901,6 +21762,12 @@ snapshots: is-json@2.0.1: {} + is-lambda@1.0.1: {} + + is-lower-case@2.0.2: + dependencies: + tslib: 2.6.2 + is-map@2.0.3: {} is-module@1.0.0: {} @@ -19986,6 +21853,10 @@ snapshots: is-unicode-supported@2.0.0: {} + is-upper-case@2.0.2: + dependencies: + tslib: 2.6.2 + is-weakmap@2.0.2: {} is-weakref@1.0.2: @@ -20011,6 +21882,8 @@ snapshots: isexe@2.0.0: {} + isexe@3.1.1: {} + iso8601-duration@2.1.2: {} istanbul-lib-coverage@3.2.2: {} @@ -20108,16 +21981,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)): + jest-cli@29.7.0(@types/node@20.10.4): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + create-jest: 29.7.0(@types/node@20.10.4) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + jest-config: 29.7.0(@types/node@20.10.4) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -20127,7 +22000,7 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)): + jest-cli@29.7.0(@types/node@20.12.7): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) '@jest/test-result': 29.7.0 @@ -20146,38 +22019,26 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)): + jest-cli@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)): dependencies: - '@babel/core': 7.24.4 - '@jest/test-sequencer': 29.7.0 + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) + '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.4) chalk: 4.1.2 - ci-info: 3.8.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 + create-jest: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.10.4 - ts-node: 10.9.2(@types/node@20.10.4)(typescript@5.3.3) + yargs: 17.7.2 transitivePeerDependencies: + - '@types/node' - babel-plugin-macros - supports-color + - ts-node - jest-config@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)): + jest-config@29.7.0(@types/node@20.10.4): dependencies: '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 @@ -20202,13 +22063,12 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.7 - ts-node: 10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3) + '@types/node': 20.10.4 transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)): + jest-config@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)): dependencies: '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 @@ -20234,7 +22094,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.12.7 - ts-node: 10.9.2(@types/node@20.10.4)(typescript@5.3.3) + ts-node: 10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -20513,6 +22373,11 @@ snapshots: jest: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) react: 18.2.0 + jest-transformer-svg@2.0.0(jest@29.7.0(@types/node@20.12.7))(react@18.2.0): + dependencies: + jest: 29.7.0(@types/node@20.12.7) + react: 18.2.0 + jest-util@29.5.0: dependencies: '@jest/types': 29.6.3 @@ -20565,12 +22430,24 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)): + jest@29.7.0(@types/node@20.10.4): + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@20.10.4) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@29.7.0(@types/node@20.12.7): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) + jest-cli: 29.7.0(@types/node@20.12.7) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -20605,6 +22482,8 @@ snapshots: jose@5.2.4: {} + joycon@3.1.1: {} + js-base64@3.7.5: {} js-tokens@4.0.0: {} @@ -20622,6 +22501,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsbn@1.1.0: {} + jsdom@20.0.2: dependencies: abab: 2.0.6 @@ -20669,6 +22550,12 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-parse-even-better-errors@3.0.2: {} + + json-schema-ref-resolver@1.0.1: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -20902,6 +22789,12 @@ snapshots: libphonenumber-js@1.10.51: {} + light-my-request@5.13.0: + dependencies: + cookie: 0.6.0 + process-warning: 3.0.0 + set-cookie-parser: 2.6.0 + lightningcss-darwin-arm64@1.16.1: optional: true @@ -21132,6 +23025,23 @@ snapshots: make-error@1.3.6: {} + make-fetch-happen@13.0.1: + dependencies: + '@npmcli/agent': 2.2.2 + cacache: 18.0.3 + http-cache-semantics: 4.1.1 + is-lambda: 1.0.1 + minipass: 7.0.4 + minipass-fetch: 3.0.5 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + proc-log: 4.2.0 + promise-retry: 2.0.1 + ssri: 10.0.6 + transitivePeerDependencies: + - supports-color + makeerror@1.0.12: dependencies: tmpl: 1.0.5 @@ -21566,12 +23476,50 @@ snapshots: minimist@1.2.8: {} + minipass-collect@2.0.1: + dependencies: + minipass: 7.0.4 + + minipass-fetch@3.0.5: + dependencies: + minipass: 7.0.4 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-json-stream@1.0.1: + dependencies: + jsonparse: 1.3.1 + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + minipass@4.2.8: {} minipass@5.0.0: {} minipass@7.0.4: {} + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + minizlib@3.0.1: dependencies: minipass: 7.0.4 @@ -21581,6 +23529,8 @@ snapshots: mixme@0.5.4: {} + mkdirp@1.0.4: {} + mkdirp@3.0.1: {} mlly@1.6.1: @@ -21675,9 +23625,11 @@ snapshots: node-addon-api@4.3.0: {} - node-fetch@2.7.0: + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 node-forge@1.3.1: {} @@ -21688,6 +23640,21 @@ snapshots: node-gyp-build@4.5.0: {} + node-gyp@10.1.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.1 + glob: 10.3.12 + graceful-fs: 4.2.11 + make-fetch-happen: 13.0.1 + nopt: 7.2.1 + proc-log: 3.0.0 + semver: 7.6.0 + tar: 6.2.1 + which: 4.0.0 + transitivePeerDependencies: + - supports-color + node-int64@0.4.0: {} node-mocks-http@1.12.1: @@ -21732,6 +23699,10 @@ snapshots: dependencies: abbrev: 1.1.1 + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 @@ -21746,10 +23717,57 @@ snapshots: semver: 7.6.0 validate-npm-package-license: 3.0.4 + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.6.0 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} normalize-url@8.0.0: {} + npm-bundled@3.0.1: + dependencies: + npm-normalize-package-bin: 3.0.1 + + npm-install-checks@6.3.0: + dependencies: + semver: 7.6.0 + + npm-normalize-package-bin@3.0.1: {} + + npm-package-arg@11.0.2: + dependencies: + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.6.0 + validate-npm-package-name: 5.0.1 + + npm-packlist@8.0.2: + dependencies: + ignore-walk: 6.0.5 + + npm-pick-manifest@9.0.1: + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.2 + semver: 7.6.0 + + npm-registry-fetch@16.2.1: + dependencies: + '@npmcli/redact': 1.1.0 + make-fetch-happen: 13.0.1 + minipass: 7.0.4 + minipass-fetch: 3.0.5 + minipass-json-stream: 1.0.1 + minizlib: 2.1.2 + npm-package-arg: 11.0.2 + proc-log: 4.2.0 + transitivePeerDependencies: + - supports-color + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -21843,6 +23861,8 @@ snapshots: oidc-token-hash@5.0.3: {} + on-exit-leak-free@2.1.2: {} + on-finished@2.3.0: dependencies: ee-first: 1.1.1 @@ -21874,6 +23894,8 @@ snapshots: openapi-types@12.1.3: {} + opener@1.5.2: {} + optionator@0.8.3: dependencies: deep-is: 0.1.4 @@ -21977,6 +23999,10 @@ snapshots: p-map@2.1.0: {} + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + p-map@7.0.2: {} p-queue@8.0.1: @@ -22014,6 +24040,30 @@ snapshots: packet-reader@1.0.0: {} + pacote@17.0.7: + dependencies: + '@npmcli/git': 5.0.7 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/promise-spawn': 7.0.2 + '@npmcli/run-script': 7.0.4 + cacache: 18.0.3 + fs-minipass: 3.0.3 + minipass: 7.0.4 + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-pick-manifest: 9.0.1 + npm-registry-fetch: 16.2.1 + proc-log: 4.2.0 + promise-retry: 2.0.1 + read-package-json: 7.0.1 + read-package-json-fast: 3.0.2 + sigstore: 2.3.1 + ssri: 10.0.6 + tar: 6.2.1 + transitivePeerDependencies: + - bluebird + - supports-color + pako@1.0.11: {} parcel-resolver-ignore@2.1.3(parcel@2.9.3(@swc/helpers@0.5.1)(postcss@8.4.31)(srcset@4.0.0)): @@ -22078,6 +24128,8 @@ snapshots: passthrough-counter@1.0.0: {} + patch-console@2.0.0: {} + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -22196,6 +24248,44 @@ snapshots: pify@4.0.1: {} + pino-abstract-transport@1.2.0: + dependencies: + readable-stream: 4.5.2 + split2: 4.2.0 + + pino-pretty@11.2.1: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.0.2 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pump: 3.0.0 + readable-stream: 4.5.2 + secure-json-parse: 2.7.0 + sonic-boom: 4.0.1 + strip-json-comments: 3.1.1 + + pino-std-serializers@7.0.0: {} + + pino@9.2.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 7.0.0 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 4.0.1 + thread-stream: 3.1.0 + pirates@4.0.5: {} pkg-dir@4.2.0: @@ -22216,6 +24306,10 @@ snapshots: pngjs@5.0.0: {} + polite-json@4.0.1: {} + + polite-json@5.0.0: {} + possible-typed-array-names@1.0.0: {} postcss-media-query-parser@0.2.3: {} @@ -22353,6 +24447,8 @@ snapshots: prettier@3.0.0: {} + prettier@3.3.2: {} + pretty-bytes@6.1.1: {} pretty-format@27.5.1: @@ -22367,12 +24463,37 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.2.0 + prismjs-terminal@1.2.3: + dependencies: + chalk: 5.3.0 + prismjs: 1.29.0 + string-length: 6.0.0 + prismjs@1.27.0: {} + prismjs@1.29.0: {} + + proc-log@3.0.0: {} + + proc-log@4.2.0: {} + + process-on-spawn@1.0.0: + dependencies: + fromentries: 1.3.2 + + process-warning@3.0.0: {} + process@0.11.10: {} progress@2.0.3: {} + promise-inflight@1.0.1: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -22394,6 +24515,11 @@ snapshots: proto-props@2.0.0: {} + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + proxy-agent@6.4.0: dependencies: agent-base: 7.1.0 @@ -22477,6 +24603,8 @@ snapshots: queue-tick@1.0.1: {} + quick-format-unescaped@4.0.4: {} + quick-lru@4.0.1: {} quick-lru@5.1.1: {} @@ -22551,6 +24679,14 @@ snapshots: prop-types: 15.8.1 react: 18.2.0 + react-element-to-jsx-string@15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@base2/pretty-print-object': 1.0.1 + is-plain-object: 5.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.1.0 + react-error-boundary@3.1.4(react@18.2.0): dependencies: '@babel/runtime': 7.21.0 @@ -22597,6 +24733,8 @@ snapshots: react-is@17.0.2: {} + react-is@18.1.0: {} + react-is@18.2.0: {} react-lifecycles-compat@3.0.4: {} @@ -22633,6 +24771,12 @@ snapshots: prop-types: 15.8.1 react: 18.2.0 + react-reconciler@0.29.2(react@18.2.0): + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.2 + react-refresh@0.9.0: {} react-resize-detector@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): @@ -22703,6 +24847,18 @@ snapshots: lodash: 4.17.21 react: 18.2.0 + read-package-json-fast@3.0.2: + dependencies: + json-parse-even-better-errors: 3.0.2 + npm-normalize-package-bin: 3.0.1 + + read-package-json@7.0.1: + dependencies: + glob: 10.3.12 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 6.0.2 + npm-normalize-package-bin: 3.0.1 + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 @@ -22742,10 +24898,20 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 + real-require@0.2.0: {} + recharts-scale@0.4.5: dependencies: decimal.js-light: 2.5.1 @@ -22939,6 +25105,11 @@ snapshots: resolve-from@5.0.0: {} + resolve-import@1.4.5: + dependencies: + glob: 10.3.12 + walk-up-path: 3.0.1 + resolve-path@1.4.0: dependencies: http-errors: 1.6.3 @@ -22948,12 +25119,6 @@ snapshots: resolve.exports@2.0.1: {} - resolve@1.22.2: - dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -22975,15 +25140,19 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-request@7.0.2: + ret@0.4.3: {} + + retry-request@7.0.2(encoding@0.1.13): dependencies: '@types/request': 2.48.12 extend: 3.0.2 - teeny-request: 9.0.0 + teeny-request: 9.0.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color + retry@0.12.0: {} + retry@0.13.1: {} reusify@1.0.4: {} @@ -23105,6 +25274,10 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 + safe-regex2@3.1.0: + dependencies: + ret: 0.4.3 + safe-stable-stringify@2.4.3: {} safer-buffer@2.1.2: {} @@ -23139,6 +25312,12 @@ snapshots: dependencies: loose-envify: 1.4.0 + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + secure-json-parse@2.7.0: {} + semver-compare@1.0.0: {} semver@5.7.2: {} @@ -23159,6 +25338,8 @@ snapshots: set-blocking@2.0.0: {} + set-cookie-parser@2.6.0: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -23208,6 +25389,17 @@ snapshots: signal-exit@4.1.0: {} + sigstore@2.3.1: + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/sign': 2.3.2 + '@sigstore/tuf': 2.3.4 + '@sigstore/verify': 1.2.1 + transitivePeerDependencies: + - supports-color + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -23240,6 +25432,11 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 + slice-ansi@6.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + smart-buffer@4.2.0: {} smartwrap@2.0.2: @@ -23274,11 +25471,28 @@ snapshots: transitivePeerDependencies: - supports-color + socks-proxy-agent@8.0.4: + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + socks@2.7.1: dependencies: ip: 2.0.1 smart-buffer: 4.2.0 + socks@2.8.3: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + + sonic-boom@4.0.1: + dependencies: + atomic-sleep: 1.0.0 + source-map-js@1.0.2: {} source-map-js@1.2.0: {} @@ -23334,10 +25548,16 @@ snapshots: sprintf-js@1.0.3: {} + sprintf-js@1.1.3: {} + sql-parse@0.1.5: {} srcset@4.0.0: {} + ssri@10.0.6: + dependencies: + minipass: 7.0.4 + stable@0.1.8: {} stack-chain@1.3.7: {} @@ -23346,6 +25566,10 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + stackback@0.0.2: {} state-local@1.0.7: {} @@ -23384,6 +25608,10 @@ snapshots: char-regex: 1.0.2 strip-ansi: 6.0.1 + string-length@6.0.0: + dependencies: + strip-ansi: 7.1.0 + string-similarity@4.0.4: {} string-width@4.2.3: @@ -23637,6 +25865,13 @@ snapshots: symbol-tree@3.2.4: {} + sync-content@1.0.2: + dependencies: + glob: 10.3.12 + mkdirp: 3.0.1 + path-scurry: 1.10.2 + rimraf: 5.0.5 + synckit@0.8.8: dependencies: '@pkgr/core': 0.1.1 @@ -23650,6 +25885,51 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + tap-parser@15.3.2: + dependencies: + events-to-array: 2.0.3 + tap-yaml: 2.2.2 + + tap-yaml@2.2.2: + dependencies: + yaml: 2.4.5 + yaml-types: 0.3.0(yaml@2.4.5) + + tap@18.8.0(@swc/core@1.3.52)(@types/node@20.12.7)(@types/react@18.0.31)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.2): + dependencies: + '@tapjs/after': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/after-each': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/asserts': 1.2.0(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/before': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/before-each': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/core': 1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/filter': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/fixture': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/intercept': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/mock': 1.3.4(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/node-serialize': 1.3.4(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/run': 1.5.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(@types/react@18.0.31)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/snapshot': 1.2.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/spawn': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/stdin': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@tapjs/test': 1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tapjs/typescript': 1.4.4(@swc/core@1.3.52)(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/node@20.12.7)(typescript@5.5.2) + '@tapjs/worker': 1.1.22(@tapjs/core@1.5.4(@swc/core@1.3.52)(@types/node@20.12.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + resolve-import: 1.4.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - '@types/react' + - bluebird + - bufferutil + - react + - react-devtools-core + - react-dom + - supports-color + - typescript + - utf-8-validate + tapable@2.2.1: {} tar-fs@3.0.5: @@ -23666,6 +25946,15 @@ snapshots: fast-fifo: 1.3.2 streamx: 2.15.1 + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + tar@7.0.1: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -23675,11 +25964,19 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - teeny-request@9.0.0: + tcompare@6.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + diff: 5.2.0 + react-element-to-jsx-string: 15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + transitivePeerDependencies: + - react + - react-dom + + teeny-request@9.0.0(encoding@0.1.13): dependencies: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) stream-events: 1.0.5 uuid: 9.0.1 transitivePeerDependencies: @@ -23702,6 +25999,10 @@ snapshots: thirty-two@1.0.2: {} + thread-stream@3.1.0: + dependencies: + real-require: 0.2.0 + through2@4.0.2: dependencies: readable-stream: 3.6.2 @@ -23732,6 +26033,8 @@ snapshots: dependencies: is-number: 7.0.0 + toad-cache@3.7.0: {} + toidentifier@1.0.1: {} touch@3.1.0: @@ -23767,6 +26070,8 @@ snapshots: trim@0.0.1: {} + trivial-deferred@2.0.0: {} + trough@1.0.5: {} trough@2.1.0: {} @@ -23775,6 +26080,10 @@ snapshots: dependencies: typescript: 5.3.3 + ts-api-utils@1.3.0(typescript@5.5.2): + dependencies: + typescript: 5.5.2 + ts-node@10.9.2(@swc/core@1.3.52(@swc/helpers@0.5.1))(@types/node@20.12.7)(typescript@5.3.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -23795,24 +26104,25 @@ snapshots: optionalDependencies: '@swc/core': 1.3.52(@swc/helpers@0.5.1) - ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3): + ts-node@10.9.2(@swc/core@1.3.52)(@types/node@20.12.7)(typescript@5.5.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.4 + '@types/node': 20.12.7 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.3.3 + typescript: 5.5.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - optional: true + optionalDependencies: + '@swc/core': 1.3.52(@swc/helpers@0.5.1) tsconfig-paths@3.15.0: dependencies: @@ -23821,6 +26131,20 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tshy@1.16.2: + dependencies: + chalk: 5.3.0 + chokidar: 3.6.0 + foreground-child: 3.1.1 + minimatch: 9.0.4 + mkdirp: 3.0.1 + polite-json: 5.0.0 + resolve-import: 1.4.5 + rimraf: 5.0.5 + sync-content: 1.0.2 + typescript: 5.5.2 + walk-up-path: 3.0.1 + tslib@1.14.1: {} tslib@2.4.1: {} @@ -23831,6 +26155,13 @@ snapshots: tsscmp@1.0.6: {} + tsx@4.16.0: + dependencies: + esbuild: 0.21.5 + get-tsconfig: 4.7.5 + optionalDependencies: + fsevents: 2.3.3 + tty-table@4.1.6: dependencies: chalk: 4.1.2 @@ -23841,6 +26172,14 @@ snapshots: wcwidth: 1.0.1 yargs: 17.7.2 + tuf-js@2.2.1: + dependencies: + '@tufjs/models': 2.0.1 + debug: 4.3.4 + make-fetch-happen: 13.0.1 + transitivePeerDependencies: + - supports-color + tunnel@0.0.6: {} tween-functions@1.2.0: {} @@ -23855,6 +26194,8 @@ snapshots: type-detect@4.0.8: {} + type-fest@0.12.0: {} + type-fest@0.13.1: {} type-fest@0.20.2: {} @@ -23914,8 +26255,12 @@ snapshots: typescript@5.0.2: {} + typescript@5.2.2: {} + typescript@5.3.3: {} + typescript@5.5.2: {} + ua-parser-js@1.0.37: {} ufo@1.5.2: {} @@ -23963,6 +26308,14 @@ snapshots: trough: 1.0.5 vfile: 4.2.1 + unique-filename@3.0.0: + dependencies: + unique-slug: 4.0.0 + + unique-slug@4.0.0: + dependencies: + imurmurhash: 0.1.4 + unist-builder@2.0.3: {} unist-util-generated@1.1.6: {} @@ -24075,6 +26428,8 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + validate-npm-package-name@5.0.1: {} + vary@1.1.2: {} vfile-location@3.2.0: {} @@ -24301,6 +26656,8 @@ snapshots: transitivePeerDependencies: - debug + walk-up-path@3.0.1: {} + walker@1.0.8: dependencies: makeerror: 1.0.12 @@ -24398,11 +26755,19 @@ snapshots: dependencies: isexe: 2.0.0 + which@4.0.0: + dependencies: + isexe: 3.1.1 + why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@4.0.1: + dependencies: + string-width: 5.1.2 + word-wrap@1.2.3: {} wrap-ansi@6.2.0: @@ -24481,10 +26846,16 @@ snapshots: yallist@5.0.0: {} + yaml-types@0.3.0(yaml@2.4.5): + dependencies: + yaml: 2.4.5 + yaml@1.10.2: {} yaml@2.3.3: {} + yaml@2.4.5: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 @@ -24541,6 +26912,8 @@ snapshots: yocto-queue@1.0.0: {} + yoga-wasm-web@0.3.3: {} + zod-to-ts@1.2.0(typescript@5.3.3)(zod@3.22.4): dependencies: typescript: 5.3.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 43fd2c458ab..c7e68892b3e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,3 +3,5 @@ packages: - packages/toolkit/* - packages/connectors/* - "!packages/connectors/templates" + # OGCIO - adding mygovid mock service + - mygovid-mock-service