From 211d1a35a81e4413a00ced44ac8a56a064f38968 Mon Sep 17 00:00:00 2001 From: Eliya Cohen Date: Mon, 6 May 2024 23:40:16 +0300 Subject: [PATCH] Flat Config & ESM/CJS & Vitest --- .changeset/config.json | 11 +- .changeset/neat-cheetahs-matter.md | 30 + .eslintrc.json | 3 +- .github/workflows/ci.yml | 20 +- .prettierignore | 4 +- demos/basic-flat-config/.gitignore | 1 + demos/basic-flat-config/.vscode/settings.json | 3 + demos/basic-flat-config/eslint.config.js | 12 + demos/basic-flat-config/package.json | 25 + demos/basic-flat-config/src/index.ts | 42 + demos/basic-flat-config/src/setup.ts | 38 + demos/basic-flat-config/tsconfig.json | 6 + demos/basic-migrations-raw/package.json | 8 +- demos/basic-transform-type/package.json | 10 +- demos/basic/package.json | 10 +- demos/big-project/package.json | 10 +- demos/config-file-flat-config/.gitignore | 1 + .../.vscode/settings.json | 3 + .../config-file-flat-config/eslint.config.js | 9 + demos/config-file-flat-config/package.json | 25 + .../config-file-flat-config/safeql.config.ts | 8 + demos/config-file-flat-config/src/index.ts | 42 + demos/config-file-flat-config/src/setup.ts | 38 + demos/config-file-flat-config/tsconfig.json | 6 + demos/from-config-file/package.json | 10 +- demos/multi-connections/package.json | 8 +- demos/multi-connections/src/index.ts | 2 +- demos/playground/package.json | 10 +- demos/postgresjs-custom-types/package.json | 10 +- demos/postgresjs-demo/package.json | 10 +- demos/prisma/package.json | 17 +- demos/prisma/prisma/schema.prisma | 1 + demos/prisma/src/prisma.test.ts | 9 +- demos/prisma/src/setup.ts | 16 +- demos/prisma/tsconfig.json | 5 +- demos/shared/package.json | 2 +- demos/typeorm/package.json | 10 +- demos/vercel-postgres/package.json | 10 +- docs/.vitepress/config.ts | 8 +- docs/.vitepress/theme/index.ts | 5 +- docs/compatibility/node-postgres.md | 45 +- docs/compatibility/postgres.js.md | 49 +- docs/compatibility/prisma.md | 48 +- docs/compatibility/sequelize.md | 48 +- docs/compatibility/slonik.md | 46 +- docs/compatibility/vercel.md | 3 +- docs/guide/configuration.md | 257 +- docs/guide/getting-started.md | 72 +- docs/package.json | 1 + package.json | 19 +- packages/ast-types/.eslintrc.json | 7 + packages/ast-types/.gitignore | 1 + packages/ast-types/build.config.ts | 12 + packages/ast-types/package.json | 36 + packages/ast-types/src/index.ts | 2863 +++++ packages/ast-types/tsconfig.json | 3 + packages/eslint-plugin/.gitignore | 2 +- packages/eslint-plugin/build.config.ts | 14 + packages/eslint-plugin/package.json | 60 +- packages/eslint-plugin/src/config.ts | 37 + packages/eslint-plugin/src/dirs.ts | 3 + packages/eslint-plugin/src/index.ts | 6 +- packages/eslint-plugin/src/plugin.ts | 11 + .../eslint-plugin/src/rules/RuleOptions.ts | 143 + .../src/rules/check-sql.config.ts | 49 +- .../eslint-plugin/src/rules/check-sql.rule.ts | 247 +- .../eslint-plugin/src/rules/check-sql.test.ts | 26 +- .../src/rules/check-sql.utils.ts | 31 +- .../src/rules/check-sql.worker.ts | 18 +- .../src/utils/connection-manager.ts | 8 +- .../eslint-plugin/src/utils/estree.utils.ts | 2 +- packages/eslint-plugin/src/utils/fp-ts.ts | 11 +- .../utils/get-resolved-target-by-type-node.ts | 12 +- packages/eslint-plugin/src/utils/pg.utils.ts | 14 +- .../eslint-plugin/src/utils/ts-pg.utils.ts | 14 +- packages/eslint-plugin/src/utils/ts.utils.ts | 2 +- .../eslint-plugin/src/utils/watch-manager.ts | 4 +- packages/eslint-plugin/tsconfig.json | 3 - packages/generate/.gitignore | 2 +- packages/generate/build.config.ts | 13 + packages/generate/index.ts | 4 +- packages/generate/package.json | 40 +- packages/generate/src/ast-decribe.utils.ts | 10 +- packages/generate/src/ast-describe.ts | 15 +- packages/generate/src/ast-get-sources.ts | 5 +- packages/generate/src/generate.test.ts | 22 +- packages/generate/src/generate.ts | 20 +- .../src/utils/get-nonnullable-columns.test.ts | 10 +- .../src/utils/get-nonnullable-columns.ts | 9 +- .../utils/get-relations-with-joins.test.ts | 15 +- .../src/utils/get-relations-with-joins.ts | 6 +- packages/generate/tsconfig.json | 3 - packages/shared/.gitignore | 2 +- packages/shared/build.config.ts | 12 + packages/shared/package.json | 38 +- packages/shared/src/case.test.ts | 2 +- packages/shared/src/common.ts | 4 +- packages/shared/src/errors.ts | 26 +- packages/shared/src/index.ts | 1 - packages/shared/src/parsedQuery.ts | 2865 ----- packages/shared/tsconfig.json | 3 - packages/sql-tag/.gitignore | 2 +- packages/sql-tag/build.config.ts | 13 + packages/sql-tag/package.json | 38 +- packages/sql-tag/src/sql-tag.test.ts | 6 +- packages/sql-tag/src/sql-tag.ts | 4 +- packages/sql-tag/tsconfig.json | 4 - packages/test-utils/.gitignore | 2 +- packages/test-utils/build.config.ts | 13 + packages/test-utils/package.json | 32 +- .../test-utils/src/setup-test-database.ts | 4 +- packages/test-utils/tsconfig.json | 3 - pnpm-lock.yaml | 9879 ++++++++++------- tsconfig.node.json | 14 +- turbo.json | 28 +- 115 files changed, 10550 insertions(+), 7344 deletions(-) create mode 100644 .changeset/neat-cheetahs-matter.md create mode 100644 demos/basic-flat-config/.gitignore create mode 100644 demos/basic-flat-config/.vscode/settings.json create mode 100644 demos/basic-flat-config/eslint.config.js create mode 100644 demos/basic-flat-config/package.json create mode 100644 demos/basic-flat-config/src/index.ts create mode 100644 demos/basic-flat-config/src/setup.ts create mode 100644 demos/basic-flat-config/tsconfig.json create mode 100644 demos/config-file-flat-config/.gitignore create mode 100644 demos/config-file-flat-config/.vscode/settings.json create mode 100644 demos/config-file-flat-config/eslint.config.js create mode 100644 demos/config-file-flat-config/package.json create mode 100644 demos/config-file-flat-config/safeql.config.ts create mode 100644 demos/config-file-flat-config/src/index.ts create mode 100644 demos/config-file-flat-config/src/setup.ts create mode 100644 demos/config-file-flat-config/tsconfig.json create mode 100644 packages/ast-types/.eslintrc.json create mode 100644 packages/ast-types/.gitignore create mode 100644 packages/ast-types/build.config.ts create mode 100644 packages/ast-types/package.json create mode 100644 packages/ast-types/src/index.ts create mode 100644 packages/ast-types/tsconfig.json create mode 100644 packages/eslint-plugin/build.config.ts create mode 100644 packages/eslint-plugin/src/config.ts create mode 100644 packages/eslint-plugin/src/dirs.ts create mode 100644 packages/eslint-plugin/src/plugin.ts create mode 100644 packages/eslint-plugin/src/rules/RuleOptions.ts create mode 100644 packages/generate/build.config.ts create mode 100644 packages/shared/build.config.ts delete mode 100644 packages/shared/src/parsedQuery.ts create mode 100644 packages/sql-tag/build.config.ts create mode 100644 packages/test-utils/build.config.ts diff --git a/.changeset/config.json b/.changeset/config.json index 70ab89c..9a61c49 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -2,10 +2,17 @@ "$schema": "https://unpkg.com/@changesets/config@2.1.1/schema.json", "changelog": "@changesets/cli/changelog", "commit": false, - "fixed": [["@ts-safeql/eslint-plugin", "@ts-safeql/generate", "@ts-safeql/shared"]], + "fixed": [ + [ + "@ts-safeql/eslint-plugin", + "@ts-safeql/generate", + "@ts-safeql/shared", + "@ts-safeql/sql-ast" + ] + ], "linked": [], "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", "ignore": [] -} +} \ No newline at end of file diff --git a/.changeset/neat-cheetahs-matter.md b/.changeset/neat-cheetahs-matter.md new file mode 100644 index 0000000..f8cdf49 --- /dev/null +++ b/.changeset/neat-cheetahs-matter.md @@ -0,0 +1,30 @@ +--- +"@ts-safeql/eslint-plugin": minor +"@ts-safeql/generate": minor +"@ts-safeql/sql-tag": minor +"@ts-safeql/docs": minor +--- + +This release introduces a lot of (internal) changes, but to be honest, I'm too lazy to write them all down so I'll mention the highlights: + +### SafeQL supports Flat Config! 🎉 + +You can now use SafeQL with the new ESLint [Flat Config](https://eslint.org/docs/latest/use/configure/configuration-files#configuration-file) API: + +```js +// eslint.config.js + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + // ... + safeql.configs.connections({ + // ... + }), +); +``` + +### SafeQL is now built for both ESM and CJS + +Up until now, I built SafeQL using only TSC (targeting CJS). In order to support both ESM and CJS, I had to use a different build system. I chose to use [unbuild](https://github.com/unjs/unbuild) because it's awesome. diff --git a/.eslintrc.json b/.eslintrc.json index 1054a82..29b2d1e 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -18,7 +18,6 @@ "@typescript-eslint" ], "rules": { - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/switch-exhaustiveness-check": "error" + "@typescript-eslint/no-non-null-assertion": "off" } } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7de039b..8989253 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,12 @@ concurrency: jobs: check: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node-version: ["18", "20"] + fail-fast: false services: postgres: image: postgres:14 @@ -27,13 +32,13 @@ jobs: options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v2.2.2 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v3 + - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: ${{ matrix.node-version }} cache: "pnpm" - run: pnpm install - run: pnpm run setup @@ -43,6 +48,7 @@ jobs: PGHOST: localhost PGDATABASE: postgres - run: pnpm build + - run: pnpm typecheck - run: pnpm lint - - run: pnpm run prettier + - run: pnpm format - run: pnpm test diff --git a/.prettierignore b/.prettierignore index 5c3a3a4..ad2aa0a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,2 @@ -/demos/**/lib -/packages/**/lib \ No newline at end of file +/demos/**/dist +/packages/**/dist \ No newline at end of file diff --git a/demos/basic-flat-config/.gitignore b/demos/basic-flat-config/.gitignore new file mode 100644 index 0000000..a65b417 --- /dev/null +++ b/demos/basic-flat-config/.gitignore @@ -0,0 +1 @@ +lib diff --git a/demos/basic-flat-config/.vscode/settings.json b/demos/basic-flat-config/.vscode/settings.json new file mode 100644 index 0000000..ba56d32 --- /dev/null +++ b/demos/basic-flat-config/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "eslint.experimental.useFlatConfig": true +} \ No newline at end of file diff --git a/demos/basic-flat-config/eslint.config.js b/demos/basic-flat-config/eslint.config.js new file mode 100644 index 0000000..b356c70 --- /dev/null +++ b/demos/basic-flat-config/eslint.config.js @@ -0,0 +1,12 @@ +// @ts-check + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + ...tseslint.configs.recommendedTypeCheckedOnly, + safeql.configs.connections({ + databaseUrl: "postgres://postgres:postgres@localhost:5432/safeql_basic_flat_config", + targets: [{ tag: "sql", transform: "{type}[]" }], + }) +); diff --git a/demos/basic-flat-config/package.json b/demos/basic-flat-config/package.json new file mode 100644 index 0000000..db8249f --- /dev/null +++ b/demos/basic-flat-config/package.json @@ -0,0 +1,25 @@ +{ + "name": "@ts-safeql-demos/basic-flat-config", + "version": "0.0.0", + "type": "module", + "scripts": { + "build": "tsc", + "watch": "tsc --watch", + "setup": "tsx src/setup.ts", + "lint": "eslint src", + "lint!": "eslint src --fix" + }, + "devDependencies": { + "@types/node": "^18.15.11", + "@eslint/js": "^8.56.0", + "@types/eslint": "^8.56.10", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5", + "typescript-eslint": "^7.8.0" + }, + "dependencies": { + "@ts-safeql/eslint-plugin": "workspace:*", + "postgres": "^3.3.4" + } +} diff --git a/demos/basic-flat-config/src/index.ts b/demos/basic-flat-config/src/index.ts new file mode 100644 index 0000000..04e94a2 --- /dev/null +++ b/demos/basic-flat-config/src/index.ts @@ -0,0 +1,42 @@ +import postgres from "postgres"; + +type ID = number; + +export async function check(idsFromParameter: ID[]) { + const sql = postgres(); + + await sql<{ id: number }[]>` + SELECT id + FROM person + WHERE TRUE + AND id = ${idsFromParameter[0] > 5 ? 5 : 5} + AND id = ANY(${idsFromParameter}) + AND name = ${"John"} -- string literal + `; + + // Conditional expression + await sql<{ id: number }[]>`SELECT id FROM starship WHERE id = ${ + idsFromParameter[0] > 5 ? 5 : 5 + }`; + + // Nullish coalescing operator + const x = 5 as number | null; + await sql<{ id: number }[]>`SELECT id FROM starship WHERE id = ${x ?? 10}`; + + interface AgencyIdNameType { + id: number; + name: string; + } + + await sql`SELECT id, name FROM person`; + + interface AgencyIdNameInterface { + id: number; + name: string; + } + + await sql`SELECT id, name FROM person`; + await sql<{ id: number; name: string }[]>`SELECT id, name FROM person`; + + await sql.end(); +} diff --git a/demos/basic-flat-config/src/setup.ts b/demos/basic-flat-config/src/setup.ts new file mode 100644 index 0000000..f0e82d2 --- /dev/null +++ b/demos/basic-flat-config/src/setup.ts @@ -0,0 +1,38 @@ +import { execSync } from "child_process"; +import postgres from "postgres"; + +const DATABASE_NAME = "safeql_basic_flat_config"; + +async function main() { + // 1. Drop the database if exists + console.log("Dropping database if exists..."); + execSync(`psql -c "DROP DATABASE IF EXISTS ${DATABASE_NAME} WITH (FORCE);"`); + + // 2. Create a new database + console.log("Creating database..."); + execSync(`psql -U postgres -c "CREATE DATABASE ${DATABASE_NAME};"`); + + // 3. Connect to the database + console.log("Connecting to database..."); + const sql = postgres(`postgres://postgres@localhost:5432/${DATABASE_NAME}`); + + // 4. Create tables + console.log("Creating tables..."); + await sql.unsafe(` + CREATE TABLE person ( + id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY, + name VARCHAR(255) NOT NULL + ); + + CREATE TABLE starship ( + id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY, + name VARCHAR(255) NOT NULL, + captain_id INTEGER REFERENCES person(id) + ); + `); + + console.log("✅ Done!"); + await sql.end(); +} + +await main(); diff --git a/demos/basic-flat-config/tsconfig.json b/demos/basic-flat-config/tsconfig.json new file mode 100644 index 0000000..ec4ec57 --- /dev/null +++ b/demos/basic-flat-config/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.node.json", + "compilerOptions": { + "noEmit": true + } +} diff --git a/demos/basic-migrations-raw/package.json b/demos/basic-migrations-raw/package.json index 97621b8..24ced75 100644 --- a/demos/basic-migrations-raw/package.json +++ b/demos/basic-migrations-raw/package.json @@ -8,10 +8,10 @@ "lint!": "eslint src --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql-demos/shared": "workspace:*", diff --git a/demos/basic-transform-type/package.json b/demos/basic-transform-type/package.json index 0e4ed8c..7995182 100644 --- a/demos/basic-transform-type/package.json +++ b/demos/basic-transform-type/package.json @@ -9,11 +9,11 @@ "lint!": "eslint src --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql-demos/shared": "workspace:*", diff --git a/demos/basic/package.json b/demos/basic/package.json index 788a823..1a4e9fd 100644 --- a/demos/basic/package.json +++ b/demos/basic/package.json @@ -9,11 +9,11 @@ "lint!": "eslint src --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql-demos/shared": "workspace:*", diff --git a/demos/big-project/package.json b/demos/big-project/package.json index e9d726f..cd320c9 100644 --- a/demos/big-project/package.json +++ b/demos/big-project/package.json @@ -10,11 +10,11 @@ "lint!": "eslint src --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql/eslint-plugin": "workspace:*", diff --git a/demos/config-file-flat-config/.gitignore b/demos/config-file-flat-config/.gitignore new file mode 100644 index 0000000..a65b417 --- /dev/null +++ b/demos/config-file-flat-config/.gitignore @@ -0,0 +1 @@ +lib diff --git a/demos/config-file-flat-config/.vscode/settings.json b/demos/config-file-flat-config/.vscode/settings.json new file mode 100644 index 0000000..ba56d32 --- /dev/null +++ b/demos/config-file-flat-config/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "eslint.experimental.useFlatConfig": true +} \ No newline at end of file diff --git a/demos/config-file-flat-config/eslint.config.js b/demos/config-file-flat-config/eslint.config.js new file mode 100644 index 0000000..2446798 --- /dev/null +++ b/demos/config-file-flat-config/eslint.config.js @@ -0,0 +1,9 @@ +// @ts-check + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + ...tseslint.configs.recommendedTypeCheckedOnly, + safeql.configs.useConfigFile +); diff --git a/demos/config-file-flat-config/package.json b/demos/config-file-flat-config/package.json new file mode 100644 index 0000000..69c8b28 --- /dev/null +++ b/demos/config-file-flat-config/package.json @@ -0,0 +1,25 @@ +{ + "name": "@ts-safeql-demos/config-file-flat-config", + "version": "0.0.0", + "type": "module", + "scripts": { + "build": "tsc", + "watch": "tsc --watch", + "setup": "tsx src/setup.ts", + "lint": "eslint src", + "lint!": "eslint src --fix" + }, + "devDependencies": { + "@types/node": "^18.15.11", + "@eslint/js": "^8.56.0", + "@types/eslint": "^8.56.10", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5", + "typescript-eslint": "^7.8.0" + }, + "dependencies": { + "@ts-safeql/eslint-plugin": "workspace:*", + "postgres": "^3.3.4" + } +} diff --git a/demos/config-file-flat-config/safeql.config.ts b/demos/config-file-flat-config/safeql.config.ts new file mode 100644 index 0000000..40d629c --- /dev/null +++ b/demos/config-file-flat-config/safeql.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "@ts-safeql/eslint-plugin"; + +export default defineConfig({ + connections: { + databaseUrl: "postgres://postgres:postgres@localhost:5432/safeql_config_file_flat_config", + targets: [{ tag: "sql", transform: "{type}[]" }], + }, +}); diff --git a/demos/config-file-flat-config/src/index.ts b/demos/config-file-flat-config/src/index.ts new file mode 100644 index 0000000..04e94a2 --- /dev/null +++ b/demos/config-file-flat-config/src/index.ts @@ -0,0 +1,42 @@ +import postgres from "postgres"; + +type ID = number; + +export async function check(idsFromParameter: ID[]) { + const sql = postgres(); + + await sql<{ id: number }[]>` + SELECT id + FROM person + WHERE TRUE + AND id = ${idsFromParameter[0] > 5 ? 5 : 5} + AND id = ANY(${idsFromParameter}) + AND name = ${"John"} -- string literal + `; + + // Conditional expression + await sql<{ id: number }[]>`SELECT id FROM starship WHERE id = ${ + idsFromParameter[0] > 5 ? 5 : 5 + }`; + + // Nullish coalescing operator + const x = 5 as number | null; + await sql<{ id: number }[]>`SELECT id FROM starship WHERE id = ${x ?? 10}`; + + interface AgencyIdNameType { + id: number; + name: string; + } + + await sql`SELECT id, name FROM person`; + + interface AgencyIdNameInterface { + id: number; + name: string; + } + + await sql`SELECT id, name FROM person`; + await sql<{ id: number; name: string }[]>`SELECT id, name FROM person`; + + await sql.end(); +} diff --git a/demos/config-file-flat-config/src/setup.ts b/demos/config-file-flat-config/src/setup.ts new file mode 100644 index 0000000..9b8b60e --- /dev/null +++ b/demos/config-file-flat-config/src/setup.ts @@ -0,0 +1,38 @@ +import { execSync } from "child_process"; +import postgres from "postgres"; + +const DATABASE_NAME = "safeql_config_file_flat_config"; + +async function main() { + // 1. Drop the database if exists + console.log("Dropping database if exists..."); + execSync(`psql -c "DROP DATABASE IF EXISTS ${DATABASE_NAME} WITH (FORCE);"`); + + // 2. Create a new database + console.log("Creating database..."); + execSync(`psql -U postgres -c "CREATE DATABASE ${DATABASE_NAME};"`); + + // 3. Connect to the database + console.log("Connecting to database..."); + const sql = postgres(`postgres://postgres@localhost:5432/${DATABASE_NAME}`); + + // 4. Create tables + console.log("Creating tables..."); + await sql.unsafe(` + CREATE TABLE person ( + id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY, + name VARCHAR(255) NOT NULL + ); + + CREATE TABLE starship ( + id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY, + name VARCHAR(255) NOT NULL, + captain_id INTEGER REFERENCES person(id) + ); + `); + + console.log("✅ Done!"); + await sql.end(); +} + +await main(); diff --git a/demos/config-file-flat-config/tsconfig.json b/demos/config-file-flat-config/tsconfig.json new file mode 100644 index 0000000..ec4ec57 --- /dev/null +++ b/demos/config-file-flat-config/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.node.json", + "compilerOptions": { + "noEmit": true + } +} diff --git a/demos/from-config-file/package.json b/demos/from-config-file/package.json index 9bc8d78..bf5ef5e 100644 --- a/demos/from-config-file/package.json +++ b/demos/from-config-file/package.json @@ -9,11 +9,11 @@ "lint!": "eslint src --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql/eslint-plugin": "workspace:*", diff --git a/demos/multi-connections/package.json b/demos/multi-connections/package.json index 55308b5..89faf55 100644 --- a/demos/multi-connections/package.json +++ b/demos/multi-connections/package.json @@ -8,10 +8,10 @@ "lint!": "eslint src --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql-demos/shared": "workspace:*", diff --git a/demos/multi-connections/src/index.ts b/demos/multi-connections/src/index.ts index 5bbbf36..21985ad 100644 --- a/demos/multi-connections/src/index.ts +++ b/demos/multi-connections/src/index.ts @@ -8,5 +8,5 @@ export function check(client1: Db, client2: Db) { client1.queryOne<{ post_id: number | null }>(sql`SELECT post_id FROM comments`); // client 2 points to acme/migrations2/ - client2.queryOne<{ name: string | null }>(sql`SELECT name FROM chat_rooms`); + client2.queryOne<{ name: string | null }>(sql`SELECT name FROM chat_rooms`); } diff --git a/demos/playground/package.json b/demos/playground/package.json index 0575569..0e077a7 100644 --- a/demos/playground/package.json +++ b/demos/playground/package.json @@ -10,11 +10,11 @@ }, "devDependencies": { "@types/node": "^20.10.6", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "tsx": "^4.7.0", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql-demos/shared": "workspace:*", diff --git a/demos/postgresjs-custom-types/package.json b/demos/postgresjs-custom-types/package.json index 1bb9c12..651ebc1 100644 --- a/demos/postgresjs-custom-types/package.json +++ b/demos/postgresjs-custom-types/package.json @@ -9,11 +9,11 @@ }, "devDependencies": { "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@js-joda/core": "^5.5.3", diff --git a/demos/postgresjs-demo/package.json b/demos/postgresjs-demo/package.json index f1ec33e..267318a 100644 --- a/demos/postgresjs-demo/package.json +++ b/demos/postgresjs-demo/package.json @@ -9,11 +9,11 @@ "lint!": "eslint src --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql-demos/shared": "workspace:*", diff --git a/demos/prisma/package.json b/demos/prisma/package.json index 52c0e27..71de95d 100644 --- a/demos/prisma/package.json +++ b/demos/prisma/package.json @@ -1,6 +1,7 @@ { "name": "@ts-safeql-demos/prisma-demo", "version": "0.0.0", + "type": "module", "scripts": { "build": "tsc", "watch": "tsc --watch", @@ -13,16 +14,16 @@ "devDependencies": { "@ts-safeql/eslint-plugin": "workspace:*", "@types/node": "^18.15.11", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "conditional-type-checks": "1.0.6", - "eslint": "^8.39.0", - "tsx": "3.12.6", - "typescript": "^5.3.3" + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5", + "zx": "^8.0.2" }, "dependencies": { - "@prisma/client": "4.12.0", - "dotenv": "16.0.3", - "prisma": "4.12.0" + "@prisma/client": "5.13.0", + "prisma": "5.13.0" } } diff --git a/demos/prisma/prisma/schema.prisma b/demos/prisma/prisma/schema.prisma index cfbd19f..c83b892 100644 --- a/demos/prisma/prisma/schema.prisma +++ b/demos/prisma/prisma/schema.prisma @@ -3,6 +3,7 @@ generator client { provider = "prisma-client-js" + output = "../node_modules/.prisma/client" } datasource db { diff --git a/demos/prisma/src/prisma.test.ts b/demos/prisma/src/prisma.test.ts index d84fe7e..9a5a01e 100644 --- a/demos/prisma/src/prisma.test.ts +++ b/demos/prisma/src/prisma.test.ts @@ -1,18 +1,13 @@ import { PrismaClient } from "@prisma/client"; import assert from "assert"; -import { config } from "dotenv"; -import path from "path"; - -config({ path: path.join(__dirname, "..", ".env") }); - async function run() { const prisma = new PrismaClient(); test(`SELECT id FROM "User" LIMIT 1`, async () => { return assert.deepEqual( await prisma.$queryRaw<{ id: number }[]>`SELECT id FROM "User" LIMIT 1`, - await prisma.user.findMany({ select: { id: true }, take: 1 }) + await prisma.user.findMany({ select: { id: true }, take: 1 }), ); }); @@ -21,7 +16,7 @@ async function run() { await prisma.$queryRaw< { id: number; createdAt: Date; email: string; name: string | null }[] >`SELECT * FROM "User"`, - await prisma.user.findMany() + await prisma.user.findMany(), ); }); } diff --git a/demos/prisma/src/setup.ts b/demos/prisma/src/setup.ts index 222d756..30557c9 100644 --- a/demos/prisma/src/setup.ts +++ b/demos/prisma/src/setup.ts @@ -1,18 +1,14 @@ -import { execSync } from "child_process"; -import { config } from "dotenv"; -import path from "path"; - -config({ path: path.join(__dirname, "..", ".env") }); +import { $ } from "zx"; const DATABASE_NAME = "safeql_prisma_demo"; async function main() { - execSync(`psql -c "DROP DATABASE IF EXISTS ${DATABASE_NAME} WITH (FORCE);"`); - execSync(`psql -U postgres -c "CREATE DATABASE ${DATABASE_NAME};"`); - execSync(`pnpm prisma generate`, { stdio: "inherit" }); - execSync(`pnpm prisma migrate deploy`, { stdio: "inherit" }); + await $`psql -c "DROP DATABASE IF EXISTS ${DATABASE_NAME} WITH (FORCE);"`; + await $`psql -U postgres -c "CREATE DATABASE ${DATABASE_NAME};"`; + await $`pnpm prisma generate`; + await $`pnpm prisma migrate deploy`; - const { PrismaClient } = await import("@prisma/client"); + const { PrismaClient } = await import("@/prisma-client"); const prisma = new PrismaClient(); await prisma.user.createMany({ diff --git a/demos/prisma/tsconfig.json b/demos/prisma/tsconfig.json index ec4ec57..2d190fe 100644 --- a/demos/prisma/tsconfig.json +++ b/demos/prisma/tsconfig.json @@ -1,6 +1,9 @@ { "extends": "../../tsconfig.node.json", "compilerOptions": { - "noEmit": true + "noEmit": true, + "paths": { + "@/prisma-client": ["./node_modules/.prisma/client"] + } } } diff --git a/demos/shared/package.json b/demos/shared/package.json index 3c5c4a1..ba367f6 100644 --- a/demos/shared/package.json +++ b/demos/shared/package.json @@ -2,7 +2,7 @@ "name": "@ts-safeql-demos/shared", "version": "0.0.0", "devDependencies": { - "typescript": "^5.3.3" + "typescript": "^5.4.5" }, "dependencies": { "@types/node": "^18.15.11", diff --git a/demos/typeorm/package.json b/demos/typeorm/package.json index 6fc1a3c..e0ff259 100644 --- a/demos/typeorm/package.json +++ b/demos/typeorm/package.json @@ -14,12 +14,12 @@ "@ts-safeql/eslint-plugin": "workspace:*", "@types/node": "^16.11.10", "@types/pg": "^8.6.6", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", "ts-node": "10.7.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql/sql-tag": "workspace:*", diff --git a/demos/vercel-postgres/package.json b/demos/vercel-postgres/package.json index 699c94f..2fa5b52 100644 --- a/demos/vercel-postgres/package.json +++ b/demos/vercel-postgres/package.json @@ -10,12 +10,12 @@ }, "devDependencies": { "@types/pg": "^8.6.6", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "dotenv": "16.0.3", - "eslint": "^8.39.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "eslint": "^8.57.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5" }, "dependencies": { "@ts-safeql-demos/shared": "workspace:*", diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index d30f59b..673800d 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,4 +1,5 @@ import { defineConfig } from "vitepress"; +import { tabsMarkdownPlugin } from "vitepress-plugin-tabs"; export default defineConfig({ title: "SafeQL", @@ -8,6 +9,9 @@ export default defineConfig({ dark: "material-theme-ocean", light: "min-light", }, + config(md) { + md.use(tabsMarkdownPlugin); + }, }, themeConfig: { search: { @@ -30,11 +34,11 @@ export default defineConfig({ text: "Compatibility", items: [ { text: "Prisma", link: "/compatibility/prisma" }, - { text: "Sequelize", link: "/compatibility/sequelize" }, { text: "Postgres.js", link: "/compatibility/postgres.js" }, - { text: "node-postgres (pg)", link: "/compatibility/node-postgres" }, { text: "@vercel/postgres", link: "/compatibility/vercel" }, { text: "slonik", link: "/compatibility/slonik" }, + { text: "node-postgres (pg)", link: "/compatibility/node-postgres" }, + { text: "Sequelize", link: "/compatibility/sequelize" }, ], }, { diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 96e65c3..12f6b05 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,3 +1,4 @@ +import { enhanceAppWithTabs } from "vitepress-plugin-tabs/client"; import Theme from "vitepress/theme"; import Layout from "./Layout.vue"; import "./custom.css"; @@ -5,7 +6,9 @@ import "./custom.css"; export default { extends: Theme, Layout: Layout, - async enhanceApp() { + async enhanceApp({ app }) { + enhanceAppWithTabs(app); + import("@vercel/analytics").then(({ default: analytics }) => { analytics.inject(); }); diff --git a/docs/compatibility/node-postgres.md b/docs/compatibility/node-postgres.md index 1b4e859..0a44c8a 100644 --- a/docs/compatibility/node-postgres.md +++ b/docs/compatibility/node-postgres.md @@ -17,22 +17,45 @@ If you prefer using a different SQL template tag library, that's fine too! see [sql-template-strings](https://www.npmjs.com/package/sql-template-strings) and [sql-template-tag](https://www.npmjs.com/package/sql-template-tag) ::: ---- +::: tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + // ... + safeql.configs.connections({ + // ... (read more about configuration in the API docs) + targets: [ + // this will lint syntax that matches "client.query(sql`...`)" + { wrapper: "client.query" }, + ], + }) +); +``` -First, Make sure you've added `@ts-safeql/eslint-plugin` to your ESLint plugins: +== Legacy Config -```json{3} +1. Add `@ts-safeql/eslint-plugin` to your ESLint plugins: + +```json // .eslintrc.json + { - "plugins": [..., "@ts-safeql/eslint-plugin"], - ... + "plugins": [..., "@ts-safeql/eslint-plugin"], // [!code highlight] + // ... } ``` -Second, add the following rule to your ESLint config: +2. Add `@ts-safeql/check-sql` to your rules and set the `connections` option: ```json // .eslintrc.json + { // ... "rules": { @@ -42,12 +65,10 @@ Second, add the following rule to your ESLint config: { "connections": [ { - // ... + // ... (read more about configuration in the API docs) "targets": [ - { - // The name of the wrapper that should be checked: - "wrapper": "client.query", - } + // this will lint syntax that matches "client.query(sql`...`)" + { "wrapper": "client.query" } ] } ] @@ -57,7 +78,7 @@ Second, add the following rule to your ESLint config: } ``` -Lastly, SafeQL will be able to lint your queries like so: +Once you've set up your configuration, you can start linting your queries: ```typescript import { Client } from "pg"; diff --git a/docs/compatibility/postgres.js.md b/docs/compatibility/postgres.js.md index 2fc3b04..1b8d675 100644 --- a/docs/compatibility/postgres.js.md +++ b/docs/compatibility/postgres.js.md @@ -4,22 +4,48 @@ layout: doc # SafeQL :handshake: Postgres.js -SafeQL is compatible with [Postgres.js](https://github.com/porsager/postgres). In fact, SafeQL is built on top of Postgres.js! +SafeQL is compatible with [Postgres.js](https://github.com/porsager/postgres). SafeQL is built on top of Postgres.js! -First, Make sure you've added `@ts-safeql/eslint-plugin` to your ESLint plugins: +::: tabs key:eslintrc + +== Flat Config + +```js +// eslint.config.js + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + // ... + safeql.configs.connections({ + // ... (read more about configuration in the API docs) + targets: [ + // this will lint syntax that matches "sql`...`" + { tag: "sql", transform: "{type}[]" } + ], + }) +); +``` + +== Legacy Config + +1. Add `@ts-safeql/eslint-plugin` to your ESLint plugins: ```json{3} // .eslintrc.json + { "plugins": [..., "@ts-safeql/eslint-plugin"], ... } ``` -Second, add the following rule to your ESLint config: +2. Add `@ts-safeql/check-sql` to your rules and set the `connections` option: ```json // .eslintrc.json + { // ... "rules": { @@ -29,15 +55,10 @@ Second, add the following rule to your ESLint config: { "connections": [ { - // ... - + // ... (read more about configuration in the API docs) "targets": [ - { - // The name of the sql tag that should be checked: - "tag": "sql", - // Postgres.js type should be an array, so we add an extra "[]" after the generated type: - "transform": "{type}[]" - } + // this will lint syntax that matches "sql`...`" + { "tag": "sql", "transform": "{type}[]" } ] } ] @@ -47,7 +68,9 @@ Second, add the following rule to your ESLint config: } ``` -Lastly, SafeQL will be able to lint your queries like so: +::: + +Once you've set up your configuration, you can start linting your queries: ```typescript import { sql } from "postgres"; @@ -63,4 +86,4 @@ const query = sql`SELECT id FROM users` // After: ✅ const query = sql<{ id: number; }[]>`SELECT id FROM users` -``` \ No newline at end of file +``` diff --git a/docs/compatibility/prisma.md b/docs/compatibility/prisma.md index 333571f..867a00d 100644 --- a/docs/compatibility/prisma.md +++ b/docs/compatibility/prisma.md @@ -10,20 +10,46 @@ SafeQL is compatible with [Prisma](https://www.prisma.io/) which [supports raw q Check out [@ts-safeql-demos/prisma](https://github.com/ts-safeql/safeql/tree/main/demos/prisma) for a working example. ::: -First, Make sure you've added `@ts-safeql/eslint-plugin` to your ESLint plugins: +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + // ... + safeql.configs.connections({ + // ... (read more about configuration in the API docs) + targets: [ + // this will lint syntax that matches + // `prisma.$queryRaw` or `prisma.$executeRaw` + { tag: "prisma.+($queryRaw|$executeRaw)", transform: "{type}[]" }, + ], + }) +); +``` + +== Legacy Config + +1. Add `@ts-safeql/eslint-plugin` to your ESLint plugins: ```json{3} // .eslintrc.json + { "plugins": [..., "@ts-safeql/eslint-plugin"], - ... + // ... } ``` -Second, add the following rule to your ESLint config: +2. Add `@ts-safeql/check-sql` to your rules and set the `connections` option: ```json // .eslintrc.json + { // ... "rules": { @@ -33,14 +59,12 @@ Second, add the following rule to your ESLint config: { "connections": [ { - // The migrations path: - "migrationsDir": "./prisma/migrations", + // ... (read more about configuration in the API docs) "targets": [ + // this will lint syntax that matches + // `prisma.$queryRaw` or `prisma.$executeRaw` { - // The sql tags that should be checked. - // either `db.$queryRaw` or `db.$executeRaw`: "tag": "prisma.+($queryRaw|$executeRaw)", - // Transform the query result to array "transform": "{type}[]" } ] @@ -52,7 +76,9 @@ Second, add the following rule to your ESLint config: } ``` -Lastly, SafeQL will be able to lint your queries like so: +::: + +Once you've set up your configuration, you can start linting your queries: ```typescript import { Prisma, PrismaClient } from "@prisma/client"; @@ -61,7 +87,7 @@ const prisma = new PrismaClient(); // Before: const query = prisma.$queryRaw`SELECT idd FROM users`; - ~~~ Error: column "idd" does not exist // [!code error] + ~~~ Error: column "idd" does not exist // [!code error] // After bug fix: const query = prisma.$queryRaw`SELECT id FROM users`; @@ -69,4 +95,4 @@ const query = prisma.$queryRaw`SELECT id FROM users`; // After: ✅ const query = prisma.$queryRaw<{ id: number; }[]>`SELECT id FROM users`; -``` \ No newline at end of file +``` diff --git a/docs/compatibility/sequelize.md b/docs/compatibility/sequelize.md index 0ec5b12..bc80939 100644 --- a/docs/compatibility/sequelize.md +++ b/docs/compatibility/sequelize.md @@ -17,22 +17,45 @@ If you prefer using a different SQL template tag library, that's fine too! see [sql-template-strings](https://www.npmjs.com/package/sql-template-strings) and [sql-template-tag](https://www.npmjs.com/package/sql-template-tag) ::: ---- +::: tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + // ... + safeql.configs.connections({ + // ... (read more about configuration in the API docs) + targets: [ + // this will lint syntax that matches "sequelize.query(sql`...`)" + { wrapper: "sequelize.query" }, + ], + }) +); +``` + +== Legacy Config -First, Make sure you've added `@ts-safeql/eslint-plugin` to your ESLint plugins: +1. Add `@ts-safeql/eslint-plugin` to your ESLint plugins: ```json{3} // .eslintrc.json + { "plugins": [..., "@ts-safeql/eslint-plugin"], - ... + // ... } ``` -Second, add the following rule to your ESLint config: +2. Add `@ts-safeql/check-sql` to your rules and set the `connections` option: ```json // .eslintrc.json + { // ... "rules": { @@ -42,22 +65,23 @@ Second, add the following rule to your ESLint config: { "connections": [ { - // ... - + // ... (read more about configuration in the API docs) "targets": [ - { - // The name of the wrapper that should be checked: - "wrapper": "sequelize.query", - } + // this will lint syntax that matches + // "sequelize.query(sql`...`)" + { "wrapper": "sequelize.query" } ] } + ] } ] } } ``` -Lastly, SafeQL will be able to lint your queries like so: +::: + +Once you've set up your configuration, you can start linting your queries: ```typescript import { Sequelize } from "sequelize"; @@ -74,4 +98,4 @@ const query = sequelize.query("SELECT id FROM users"); // After: ✅ const query = sequelize.query(sql`SELECT id FROM users`); -``` \ No newline at end of file +``` diff --git a/docs/compatibility/slonik.md b/docs/compatibility/slonik.md index ca19be5..be180c2 100644 --- a/docs/compatibility/slonik.md +++ b/docs/compatibility/slonik.md @@ -6,20 +6,51 @@ layout: doc SafeQL is compatible with [Slonik](https://github.com/gajus/slonik) as well with a few setting tweaks. -First, Make sure you've added `@ts-safeql/eslint-plugin` to your ESLint plugins: +::: tabs key:eslintrc + +== Flat Config + +```js +// eslint.config.js + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + // ... + safeql.configs.connections({ + // ... (read more about configuration in the API docs) + targets: [ + { + // This will lint syntax that matches "sql.type`...`" or "sql.unsafe`...`" + tag: "sql.+(type(*)|unsafe)", + // this will tell SafeQL to not suggest type annotations + // since we will be using our Zod schemas in slonik + skipTypeAnnotations: true, + }, + ], + }) +); +``` + +== Legacy Config + +1. Add `@ts-safeql/eslint-plugin` to your ESLint plugins: ```json{3} // .eslintrc.json + { "plugins": [..., "@ts-safeql/eslint-plugin"], ... } ``` -Second, add the following rule to your ESLint config: +2. Add `@ts-safeql/check-sql` to your rules and set the `connections` option: ```json // .eslintrc.json + { // ... "rules": { @@ -29,14 +60,15 @@ Second, add the following rule to your ESLint config: { "connections": [ { - // ... + // ... (read more about configuration in the API docs) "targets": [ { - // The name of the tag that should be checked: + // This will lint syntax that matches + // "sql.type`...`" or "sql.unsafe`...`" "tag": "sql.+(type\\(*\\)|unsafe)", // this will tell safeql to not suggest type annotations // since we will be using our Zod schemas in slonik - "skipTypeAnnotations": true + "skipTypeAnnotations": true } ] } @@ -47,7 +79,7 @@ Second, add the following rule to your ESLint config: } ``` -Lastly, SafeQL will be able to lint your queries like so: +Once you've set up your configuration, you can start linting your queries: ```typescript import { z } from 'zod'; @@ -59,4 +91,4 @@ const query = sql.type(z.object({ id: z.number() }))`SELECT idd FROM users`; // After: ✅ const query = sql.type(z.object({ id: z.number() }))`SELECT id FROM users`; -``` \ No newline at end of file +``` diff --git a/docs/compatibility/vercel.md b/docs/compatibility/vercel.md index 40f1642..6a70332 100644 --- a/docs/compatibility/vercel.md +++ b/docs/compatibility/vercel.md @@ -33,6 +33,7 @@ This example uses the development `DATABASE_URL` environment variable, but you c ```ts // safeql.config.ts + import { defineConfig } from "@ts-safeql/eslint-plugin"; import dotenv from "dotenv"; @@ -46,7 +47,7 @@ export default defineConfig({ }); ``` -3. Lint your queries with SafeQL: +Once you've set up your configuration, you can start linting your queries: ```typescript import { db, sql } from "@vercel/postgres"; diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md index 47aa88e..578b1f7 100644 --- a/docs/guide/configuration.md +++ b/docs/guide/configuration.md @@ -4,29 +4,33 @@ layout: doc # Configuration -## Prerequisites - -Make sure you've added `@ts-safeql/eslint-plugin` to your ESLint plugins and set [`parserOptions.project`](https://typescript-eslint.io/docs/linting/typed-linting). - -```json{3,5} -// .eslintrc.json -{ - "plugins": [..., "@ts-safeql/eslint-plugin"], - "parserOptions": { - "project": "./tsconfig.json" - } - ... -} -``` - ## Example 1: Single database connected to your app Connect using the same database and credentials your app uses ::: tip DEMO -Check out [@ts-safeql-demos/basic](https://github.com/ts-safeql/safeql/tree/main/demos/basic) for a working example. +Check out [@ts-safeql-demos/basic-flat-config](https://github.com/ts-safeql/safeql/tree/main/demos/basic-flat-config) or [@ts-safeql-demos/basic](https://github.com/ts-safeql/safeql/tree/main/demos/basic). ::: +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + // The URL of the database: + databaseUrl: "postgres://postgres:postgres@localhost:5432/my_database", + // Check all of the queries that are used with the `sql` tag: + targets: [{ tag: "sql" }], + }), +]; +``` + +== Legacy Config + ```json // .eslintrc.json { @@ -50,7 +54,9 @@ Check out [@ts-safeql-demos/basic](https://github.com/ts-safeql/safeql/tree/main } ``` -And now SafeQL will be able to lint your queries like so: +::: + +Once you've set up your configuration, you can start linting your queries: ```typescript const query = sql`SELECT * FROM users` @@ -76,6 +82,39 @@ Connect using multiple databases and credentials used by multiple apps Check out [@ts-safeql-demos/multi-connections](https://github.com/ts-safeql/safeql/tree/main/demos/multi-connections) for a working example. ::: +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + connections: [ + { + // The URL of the database: + databaseUrl: "postgres://postgres:postgres@localhost:5432/my_database_1", + targets: [ + // Check all of the queries that matches db1.sql`...` + { tag: "db1.sql" }, + ], + }, + { + // The URL of the database: + databaseUrl: "postgres://postgres:postgres@localhost:5432/my_database_2", + targets: [ + // Check all of the queries that matches db1.sql`...` + { tag: "db2.sql" }, + ], + }, + ], + }), +]; +``` + +== Legacy Config + ```json // .eslintrc.json { @@ -109,6 +148,8 @@ Check out [@ts-safeql-demos/multi-connections](https://github.com/ts-safeql/safe } ``` +::: + ## Example 3: Migrations If your project contains `.sql` migration files, configuring [`connections.migrationsDir` option](/api/index.html#connections-migrationsdir) instead of `databaseUrl` will automatically synchronize the changes in your migrations to a separate "shadow database", which will also be used to retrieve type information related to your queries. @@ -119,6 +160,32 @@ This is beneficial in cases where it is impossible or inconvenient to manually k Check out [@ts-safeql-demos/basic-migrations-raw](https://github.com/ts-safeql/safeql/tree/main/demos/basic-migrations-raw) for a working example. ::: +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + connections: [ + { + migrationsDir: "./migrations", + targets: [ + // Check all of the queries that matches db.sql`...` + { tag: "db.sql" }, + ], + // To connect using alternate superuser credentials, see below + // "connectionUrl": "postgres://pguser:password@localhost:5432/postgres" + }, + ], + }), +]; +``` + +== Legacy Config + ```json // .eslintrc.json { @@ -130,7 +197,6 @@ Check out [@ts-safeql-demos/basic-migrations-raw](https://github.com/ts-safeql/s { "connections": [ { - // The migrations path: "migrationsDir": "./migrations", "targets": [ // Check all of the queries that matches db.sql`...` @@ -146,9 +212,11 @@ Check out [@ts-safeql-demos/basic-migrations-raw](https://github.com/ts-safeql/s } ``` +::: + ::: info Why do we need a shadow database? The shadow database is used to run the migrations on it, and then compare the raw queries against it. -The shadow database is dropped and recreated every time ESLint initializes the query (When VS Code boots up, or when you run ESLint from the terminal). +The shadow database is dropped and recreated every time ESLint initializes (When VSCode boots up, or when you run ESLint from the terminal). ::: ### What is `connectionUrl` and should I configure it? @@ -177,6 +245,37 @@ By default, the `connectionUrl` is set `postgres://postgres:postgres@localhost:5 Check out [@ts-safeql-demos/multi-connections](https://github.com/ts-safeql/safeql/tree/main/demos/multi-connections) for a working example. ::: +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + connections: [ + { + migrationsDir: "./db1/migrations", + targets: [ + // Check all of the queries that matches db1.sql`...` + { tag: "db1.sql" }, + ], + }, + { + migrationsDir: "./db2/migrations", + targets: [ + // Check all of the queries that matches db2.sql`...` + { tag: "db2.sql" }, + ], + }, + ], + }), +]; +``` + +== Legacy Config + ```json // .eslintrc.json { @@ -208,8 +307,48 @@ Check out [@ts-safeql-demos/multi-connections](https://github.com/ts-safeql/safe } ``` +::: + ## Example 5: Mixing `databaseUrl` and `migrationsDir` configurations +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + connections: [ + { + databaseUrl: "postgres://postgres:postgres@localhost:5432/my_database", + targets: [ + // Check all of the queries that matches db1.sql`...` + { tag: "db1.sql" }, + ], + }, + { + migrationsDir: "./packages/a/migrations", + targets: [ + // Check all of the queries that matches db2.sql`...` + { tag: "db2.sql" }, + ], + }, + { + migrationsDir: "./packages/b/migrations", + targets: [ + // Check all of the queries that matches db3.sql`...` + { tag: "db3.sql" }, + ], + }, + ], + }), +]; +``` + +== Legacy Config + ```json // .eslintrc.json { @@ -249,11 +388,33 @@ Check out [@ts-safeql-demos/multi-connections](https://github.com/ts-safeql/safe } ``` +::: + ## Example 6: Using glob pattern SafeQL uses [minimatch](https://github.com/isaacs/minimatch) to match the glob pattern. -```json +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + // The URL of the database: + databaseUrl: "postgres://postgres:postgres@localhost:5432/my_database", + targets: [ + // The sql tags that should be checked. // [!code focus] + // either `db.$queryRaw` or `db.$executeRaw` // [!code focus] + { tag: "db.+($queryRaw|$executeRaw)" }, // [!code focus] + ], + }), +]; +``` + +== Legacy Config ```json{16} // .eslintrc.json @@ -281,11 +442,33 @@ SafeQL uses [minimatch](https://github.com/isaacs/minimatch) to match the glob p } ``` +::: + ## Example 7: Using regex SafeQL can also use regex to match the sql tags. -```json +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + // The URL of the database: + databaseUrl: "postgres://postgres:postgres@localhost:5432/my_database", + targets: [ + // The sql tags that should be checked. // [!code focus] + // either `db.$queryRaw` or `db.$executeRaw` // [!code focus] + { tag: { regex: 'db\.($queryRaw|$executeRaw)' } }, // [!code focus] + ], + }), +]; +``` + +== Legacy Config ```json{16} // .eslintrc.json @@ -313,6 +496,8 @@ SafeQL can also use regex to match the sql tags. } ``` +::: + ## Example 8: Using a wrapper function Sometimes we want to wrap our queries with a function and set the type annotations in the wrapper instead. for example: @@ -321,13 +506,37 @@ Sometimes we want to wrap our queries with a function and set the type annotatio import { db, sql } from "./db"; function getName() { - return db.queryOne<{name: string }>( + return db.queryOne<{ name: string }>( sql`SELECT name FROM users WHERE id = ${1}` ); } ``` -> Note that the Typescript type is on the function (wrapper) rather than on the tag. +> Note that the auto-generated type is on the function (wrapper) rather than on the tag. + +:::tabs key:eslintrc +== Flat Config + +```js +// eslint.config.js + +export default [ + // ... + safeql.configs.connections({ + connections: [ + { + migrationsDir: "./migrations", + targets: [ + // Check all of the queries that matches db.queryOne(*`...`) // [!code focus] + { wrapper: "db.queryOne" }, // [!code focus] + ], + }, + ], + }), +]; +``` + +== Legacy Config ```json{16} // .eslintrc.json @@ -344,3 +553,5 @@ function getName() { ] } ``` + +::: diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index 8a09780..cfda86a 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -10,20 +10,84 @@ Make sure you have [ESLint](https://eslint.org/) installed in your project and t ## Installation -With NPM: +::: tabs npm +== npm ```bash npm install --save-dev @ts-safeql/eslint-plugin libpg-query ``` -With PNPM: +== pnpm ```bash -pnpm add --save-dev @ts-safeql/eslint-plugin libpg-query +pnpm install --save-dev @ts-safeql/eslint-plugin libpg-query ``` -With Yarn: +== yarn ```bash yarn add --dev @ts-safeql/eslint-plugin libpg-query ``` + +::: + +## Integrate with ESLint + +In order for SafeQL to be able to lint your queries, you need to specify either a [`databaseUrl`](/api/#connections-databaseurl) or a [`migrationsDir`](/api/#connections-migrationsdir) in your ESLint configuration: + +:::tabs eslintrc +== Flat Config + +```js +// eslint.config.js + +import safeql from "@ts-safeql/eslint-plugin/config"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + // ... + safeql.configs.connections({ + // read more about configuration in the next section + databaseUrl: "postgres://postgres:postgres@localhost:5432/my_database", + targets: [{ tag: "sql" }], + }) +); +``` + +== Legacy Config +1. Add `@ts-safeql/eslint-plugin` to your plugins and set [`parserOptions.project`](https://typescript-eslint.io/docs/linting/typed-linting): + +```json +// .eslintrc.json + +{ + "plugins": [..., "@ts-safeql/eslint-plugin"], // [!code highlight] + "parserOptions": { + "project": "./tsconfig.json" // [!code highlight] + } + // ... +} +``` + +2. Add `@ts-safeql/check-sql` to your rules and set the `connections` option: + +```js +// .eslintrc.json + +{ + // ... + "rules": { + "@ts-safeql/check-sql": ["error", { + "connections": { + // ... read more about configuration in the next section + "databaseUrl": "postgres://postgres:postgres@localhost:5432/my_database", + "targets": [{ "tag": "sql" }], + } + }] + } +} +``` + +::: + +In the next section, you'll learn how to [configure your connection(s)](/guide/configuration). diff --git a/docs/package.json b/docs/package.json index 46c73e8..4e1f8fb 100644 --- a/docs/package.json +++ b/docs/package.json @@ -11,6 +11,7 @@ "license": "MIT", "devDependencies": { "vitepress": "1.1.4", + "vitepress-plugin-tabs": "^0.5.0", "vue": "3.4.26" }, "dependencies": { diff --git a/package.json b/package.json index 066faed..820dc29 100644 --- a/package.json +++ b/package.json @@ -7,13 +7,14 @@ "license": "MIT", "scripts": { "build": "turbo run build", + "typecheck": "turbo run typecheck", "test": "turbo run test", "lint": "turbo run lint", "lint!": "turbo run lint!", - "watch": "pnpm run --parallel --filter './packages/**' watch", - "prettier": "prettier --check '**/*.ts'", - "prettier!": "prettier --write '**/*.ts'", - "clean": "turbo run clean", + "dev": "pnpm run --parallel --filter './packages/**' dev", + "format": "prettier --check '**/*.ts'", + "format!": "prettier --write '**/*.ts'", + "clean": "pnpm run --parallel --filter './packages/**' clean", "release": "pnpm build --filter='./packages/*' -- --declaration && changeset publish", "version": "changeset version && pnpm i --frozen-lockfile=false", "setup": "pnpm run --parallel setup" @@ -26,10 +27,10 @@ "node": "18.x" }, "devDependencies": { - "@changesets/cli": "^2.26.1", - "prettier": "^2.8.8", - "turbo": "^1.9.3", - "typescript": "^5.3.3" + "@changesets/cli": "^2.27.1", + "prettier": "^3.2.5", + "turbo": "^1.13.3", + "typescript": "^5.4.5" }, - "packageManager": "pnpm@7.11.0" + "packageManager": "pnpm@9.0.6" } diff --git a/packages/ast-types/.eslintrc.json b/packages/ast-types/.eslintrc.json new file mode 100644 index 0000000..38450ad --- /dev/null +++ b/packages/ast-types/.eslintrc.json @@ -0,0 +1,7 @@ +{ + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint"], + "parserOptions": { + "project": "./tsconfig.json" + } +} diff --git a/packages/ast-types/.gitignore b/packages/ast-types/.gitignore new file mode 100644 index 0000000..53c37a1 --- /dev/null +++ b/packages/ast-types/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/packages/ast-types/build.config.ts b/packages/ast-types/build.config.ts new file mode 100644 index 0000000..2b6088a --- /dev/null +++ b/packages/ast-types/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig([ + { + entries: ["src/index"], + declaration: true, + sourcemap: true, + rollup: { + emitCJS: true, + }, + }, +]); diff --git a/packages/ast-types/package.json b/packages/ast-types/package.json new file mode 100644 index 0000000..f054c70 --- /dev/null +++ b/packages/ast-types/package.json @@ -0,0 +1,36 @@ +{ + "name": "@ts-safeql/sql-ast", + "version": "3.1.0", + "license": "MIT", + "repository": "https://github.com/ts-safeql/safeql/tree/master/packages/eslint-plugin", + "files": [ + "dist", + "package.json" + ], + "type": "module", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", + "main": "dist/index.cjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "scripts": { + "build": "unbuild", + "dev": "unbuild --stub", + "lint": "eslint src", + "lint!": "eslint src --fix", + "clean": "rm -rf lib" + }, + "devDependencies": { + "@types/node": "^18.15.11", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "typescript": "^5.4.5", + "unbuild": "^2.0.0" + } +} \ No newline at end of file diff --git a/packages/ast-types/src/index.ts b/packages/ast-types/src/index.ts new file mode 100644 index 0000000..a353d9a --- /dev/null +++ b/packages/ast-types/src/index.ts @@ -0,0 +1,2863 @@ +/* eslint-disable @typescript-eslint/no-empty-interface */ +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable @typescript-eslint/no-namespace */ + +// https://raw.githubusercontent.com/pganalyze/libpg_query/f1b475ddcbea7951a7ef825f137abdc54e5a34e4/protobuf/pg_query.proto + +export interface ParseResult { + version: number; + stmts: RawStmt[]; +} + +export interface ScanResult { + version: number; + tokens: ScanToken[]; +} + +export interface Node { + Alias?: Alias | undefined; + RangeVar?: RangeVar | undefined; + TableFunc?: TableFunc | undefined; + Var?: Var | undefined; + Param?: Param | undefined; + Aggref?: Aggref | undefined; + GroupingFunc?: GroupingFunc | undefined; + WindowFunc?: WindowFunc | undefined; + SubscriptingRef?: SubscriptingRef | undefined; + FuncExpr?: FuncExpr | undefined; + NamedArgExpr?: NamedArgExpr | undefined; + OpExpr?: OpExpr | undefined; + DistinctExpr?: DistinctExpr | undefined; + NullIfExpr?: NullIfExpr | undefined; + ScalarArrayOpExpr?: ScalarArrayOpExpr | undefined; + BoolExpr?: BoolExpr | undefined; + SubLink?: SubLink | undefined; + SubPlan?: SubPlan | undefined; + AlternativeSubPlan?: AlternativeSubPlan | undefined; + FieldSelect?: FieldSelect | undefined; + FieldStore?: FieldStore | undefined; + RelabelType?: RelabelType | undefined; + CoerceViaIo?: CoerceViaIO | undefined; + ArrayCoerceExpr?: ArrayCoerceExpr | undefined; + ConvertRowtypeExpr?: ConvertRowtypeExpr | undefined; + CollateExpr?: CollateExpr | undefined; + CaseExpr?: CaseExpr | undefined; + CaseWhen?: CaseWhen | undefined; + CaseTestExpr?: CaseTestExpr | undefined; + ArrayExpr?: ArrayExpr | undefined; + RowExpr?: RowExpr | undefined; + RowCompareExpr?: RowCompareExpr | undefined; + CoalesceExpr?: CoalesceExpr | undefined; + MinMaxExpr?: MinMaxExpr | undefined; + SqlvalueFunction?: SQLValueFunction | undefined; + XmlExpr?: XmlExpr | undefined; + NullTest?: NullTest | undefined; + BooleanTest?: BooleanTest | undefined; + CoerceToDomain?: CoerceToDomain | undefined; + CoerceToDomainValue?: CoerceToDomainValue | undefined; + SetToDefault?: SetToDefault | undefined; + CurrentOfExpr?: CurrentOfExpr | undefined; + NextValueExpr?: NextValueExpr | undefined; + InferenceElem?: InferenceElem | undefined; + TargetEntry?: TargetEntry | undefined; + RangeTblRef?: RangeTblRef | undefined; + JoinExpr?: JoinExpr | undefined; + FromExpr?: FromExpr | undefined; + OnConflictExpr?: OnConflictExpr | undefined; + IntoClause?: IntoClause | undefined; + MergeAction?: MergeAction | undefined; + RawStmt?: RawStmt | undefined; + Query?: Query | undefined; + InsertStmt?: InsertStmt | undefined; + DeleteStmt?: DeleteStmt | undefined; + UpdateStmt?: UpdateStmt | undefined; + MergeStmt?: MergeStmt | undefined; + SelectStmt?: SelectStmt | undefined; + ReturnStmt?: ReturnStmt | undefined; + PlassignStmt?: PLAssignStmt | undefined; + AlterTableStmt?: AlterTableStmt | undefined; + AlterTableCmd?: AlterTableCmd | undefined; + AlterDomainStmt?: AlterDomainStmt | undefined; + SetOperationStmt?: SetOperationStmt | undefined; + GrantStmt?: GrantStmt | undefined; + GrantRoleStmt?: GrantRoleStmt | undefined; + AlterDefaultPrivilegesStmt?: AlterDefaultPrivilegesStmt | undefined; + ClosePortalStmt?: ClosePortalStmt | undefined; + ClusterStmt?: ClusterStmt | undefined; + CopyStmt?: CopyStmt | undefined; + CreateStmt?: CreateStmt | undefined; + DefineStmt?: DefineStmt | undefined; + DropStmt?: DropStmt | undefined; + TruncateStmt?: TruncateStmt | undefined; + CommentStmt?: CommentStmt | undefined; + FetchStmt?: FetchStmt | undefined; + IndexStmt?: IndexStmt | undefined; + CreateFunctionStmt?: CreateFunctionStmt | undefined; + AlterFunctionStmt?: AlterFunctionStmt | undefined; + DoStmt?: DoStmt | undefined; + RenameStmt?: RenameStmt | undefined; + RuleStmt?: RuleStmt | undefined; + NotifyStmt?: NotifyStmt | undefined; + ListenStmt?: ListenStmt | undefined; + UnlistenStmt?: UnlistenStmt | undefined; + TransactionStmt?: TransactionStmt | undefined; + ViewStmt?: ViewStmt | undefined; + LoadStmt?: LoadStmt | undefined; + CreateDomainStmt?: CreateDomainStmt | undefined; + CreatedbStmt?: CreatedbStmt | undefined; + DropdbStmt?: DropdbStmt | undefined; + VacuumStmt?: VacuumStmt | undefined; + ExplainStmt?: ExplainStmt | undefined; + CreateTableAsStmt?: CreateTableAsStmt | undefined; + CreateSeqStmt?: CreateSeqStmt | undefined; + AlterSeqStmt?: AlterSeqStmt | undefined; + VariableSetStmt?: VariableSetStmt | undefined; + VariableShowStmt?: VariableShowStmt | undefined; + DiscardStmt?: DiscardStmt | undefined; + CreateTrigStmt?: CreateTrigStmt | undefined; + CreatePlangStmt?: CreatePLangStmt | undefined; + CreateRoleStmt?: CreateRoleStmt | undefined; + AlterRoleStmt?: AlterRoleStmt | undefined; + DropRoleStmt?: DropRoleStmt | undefined; + LockStmt?: LockStmt | undefined; + ConstraintsSetStmt?: ConstraintsSetStmt | undefined; + ReindexStmt?: ReindexStmt | undefined; + CheckPointStmt?: CheckPointStmt | undefined; + CreateSchemaStmt?: CreateSchemaStmt | undefined; + AlterDatabaseStmt?: AlterDatabaseStmt | undefined; + AlterDatabaseRefreshCollStmt?: AlterDatabaseRefreshCollStmt | undefined; + AlterDatabaseSetStmt?: AlterDatabaseSetStmt | undefined; + AlterRoleSetStmt?: AlterRoleSetStmt | undefined; + CreateConversionStmt?: CreateConversionStmt | undefined; + CreateCastStmt?: CreateCastStmt | undefined; + CreateOpClassStmt?: CreateOpClassStmt | undefined; + CreateOpFamilyStmt?: CreateOpFamilyStmt | undefined; + AlterOpFamilyStmt?: AlterOpFamilyStmt | undefined; + PrepareStmt?: PrepareStmt | undefined; + ExecuteStmt?: ExecuteStmt | undefined; + DeallocateStmt?: DeallocateStmt | undefined; + DeclareCursorStmt?: DeclareCursorStmt | undefined; + CreateTableSpaceStmt?: CreateTableSpaceStmt | undefined; + DropTableSpaceStmt?: DropTableSpaceStmt | undefined; + AlterObjectDependsStmt?: AlterObjectDependsStmt | undefined; + AlterObjectSchemaStmt?: AlterObjectSchemaStmt | undefined; + AlterOwnerStmt?: AlterOwnerStmt | undefined; + AlterOperatorStmt?: AlterOperatorStmt | undefined; + AlterTypeStmt?: AlterTypeStmt | undefined; + DropOwnedStmt?: DropOwnedStmt | undefined; + ReassignOwnedStmt?: ReassignOwnedStmt | undefined; + CompositeTypeStmt?: CompositeTypeStmt | undefined; + CreateEnumStmt?: CreateEnumStmt | undefined; + CreateRangeStmt?: CreateRangeStmt | undefined; + AlterEnumStmt?: AlterEnumStmt | undefined; + AlterTsdictionaryStmt?: AlterTSDictionaryStmt | undefined; + AlterTsconfigurationStmt?: AlterTSConfigurationStmt | undefined; + CreateFdwStmt?: CreateFdwStmt | undefined; + AlterFdwStmt?: AlterFdwStmt | undefined; + CreateForeignServerStmt?: CreateForeignServerStmt | undefined; + AlterForeignServerStmt?: AlterForeignServerStmt | undefined; + CreateUserMappingStmt?: CreateUserMappingStmt | undefined; + AlterUserMappingStmt?: AlterUserMappingStmt | undefined; + DropUserMappingStmt?: DropUserMappingStmt | undefined; + AlterTableSpaceOptionsStmt?: AlterTableSpaceOptionsStmt | undefined; + AlterTableMoveAllStmt?: AlterTableMoveAllStmt | undefined; + SecLabelStmt?: SecLabelStmt | undefined; + CreateForeignTableStmt?: CreateForeignTableStmt | undefined; + ImportForeignSchemaStmt?: ImportForeignSchemaStmt | undefined; + CreateExtensionStmt?: CreateExtensionStmt | undefined; + AlterExtensionStmt?: AlterExtensionStmt | undefined; + AlterExtensionContentsStmt?: AlterExtensionContentsStmt | undefined; + CreateEventTrigStmt?: CreateEventTrigStmt | undefined; + AlterEventTrigStmt?: AlterEventTrigStmt | undefined; + RefreshMatViewStmt?: RefreshMatViewStmt | undefined; + ReplicaIdentityStmt?: ReplicaIdentityStmt | undefined; + AlterSystemStmt?: AlterSystemStmt | undefined; + CreatePolicyStmt?: CreatePolicyStmt | undefined; + AlterPolicyStmt?: AlterPolicyStmt | undefined; + CreateTransformStmt?: CreateTransformStmt | undefined; + CreateAmStmt?: CreateAmStmt | undefined; + CreatePublicationStmt?: CreatePublicationStmt | undefined; + AlterPublicationStmt?: AlterPublicationStmt | undefined; + CreateSubscriptionStmt?: CreateSubscriptionStmt | undefined; + AlterSubscriptionStmt?: AlterSubscriptionStmt | undefined; + DropSubscriptionStmt?: DropSubscriptionStmt | undefined; + CreateStatsStmt?: CreateStatsStmt | undefined; + AlterCollationStmt?: AlterCollationStmt | undefined; + CallStmt?: CallStmt | undefined; + AlterStatsStmt?: AlterStatsStmt | undefined; + A_Expr?: AExpr | undefined; + ColumnRef?: ColumnRef | undefined; + ParamRef?: ParamRef | undefined; + FuncCall?: FuncCall | undefined; + A_Star?: AStar | undefined; + AIndices?: AIndices | undefined; + AIndirection?: AIndirection | undefined; + A_ArrayExpr?: AArrayExpr | undefined; + ResTarget?: ResTarget | undefined; + MultiAssignRef?: MultiAssignRef | undefined; + TypeCast?: TypeCast | undefined; + CollateClause?: CollateClause | undefined; + SortBy?: SortBy | undefined; + WindowDef?: WindowDef | undefined; + RangeSubselect?: RangeSubselect | undefined; + RangeFunction?: RangeFunction | undefined; + RangeTableSample?: RangeTableSample | undefined; + RangeTableFunc?: RangeTableFunc | undefined; + RangeTableFuncCol?: RangeTableFuncCol | undefined; + TypeName?: TypeName | undefined; + ColumnDef?: ColumnDef | undefined; + IndexElem?: IndexElem | undefined; + StatsElem?: StatsElem | undefined; + Constraint?: Constraint | undefined; + DefElem?: DefElem | undefined; + RangeTblEntry?: RangeTblEntry | undefined; + RangeTblFunction?: RangeTblFunction | undefined; + TableSampleClause?: TableSampleClause | undefined; + WithCheckOption?: WithCheckOption | undefined; + SortGroupClause?: SortGroupClause | undefined; + GroupingSet?: GroupingSet | undefined; + WindowClause?: WindowClause | undefined; + ObjectWithArgs?: ObjectWithArgs | undefined; + AccessPriv?: AccessPriv | undefined; + CreateOpClassItem?: CreateOpClassItem | undefined; + TableLikeClause?: TableLikeClause | undefined; + FunctionParameter?: FunctionParameter | undefined; + LockingClause?: LockingClause | undefined; + RowMarkClause?: RowMarkClause | undefined; + XmlSerialize?: XmlSerialize | undefined; + WithClause?: WithClause | undefined; + InferClause?: InferClause | undefined; + OnConflictClause?: OnConflictClause | undefined; + CtesearchClause?: CTESearchClause | undefined; + CtecycleClause?: CTECycleClause | undefined; + CommonTableExpr?: CommonTableExpr | undefined; + MergeWhenClause?: MergeWhenClause | undefined; + RoleSpec?: RoleSpec | undefined; + TriggerTransition?: TriggerTransition | undefined; + PartitionElem?: PartitionElem | undefined; + PartitionSpec?: PartitionSpec | undefined; + PartitionBoundSpec?: PartitionBoundSpec | undefined; + PartitionRangeDatum?: PartitionRangeDatum | undefined; + PartitionCmd?: PartitionCmd | undefined; + VacuumRelation?: VacuumRelation | undefined; + PublicationObjSpec?: PublicationObjSpec | undefined; + PublicationTable?: PublicationTable | undefined; + InlineCodeBlock?: InlineCodeBlock | undefined; + CallContext?: CallContext | undefined; + Integer?: Integer | undefined; + Float?: Float | undefined; + Boolean?: Boolean | undefined; + String?: String | undefined; + BitString?: BitString | undefined; + List?: List | undefined; + IntList?: IntList | undefined; + OidList?: OidList | undefined; + A_Const?: AConst | undefined; +} + +export interface Integer { + /** machine integer */ + ival: number; +} + +export interface Float { + /** string */ + fval: string; +} + +export interface Boolean { + boolval: boolean; +} + +export interface String { + /** string */ + sval: string; +} + +export interface BitString { + /** string */ + bsval: string; +} + +export interface List { + items: Node[]; +} + +export interface OidList { + items: Node[]; +} + +export interface IntList { + items: Node[]; +} + +export interface AConst { + ival?: Integer | undefined; + fval?: Float | undefined; + boolval?: Boolean | undefined; + sval?: String | undefined; + bsval?: BitString | undefined; + isnull?: boolean; + location: number; +} + +export interface Alias { + aliasname: string; + colnames: Node[]; +} + +export interface RangeVar { + catalogname: string; + schemaname: string; + relname: string; + inh: boolean; + relpersistence: string; + alias: Alias | undefined; + location: number; +} + +export interface TableFunc { + nsUris: Node[]; + nsNames: Node[]; + docexpr: Node | undefined; + rowexpr: Node | undefined; + colnames: Node[]; + coltypes: Node[]; + coltypmods: Node[]; + colcollations: Node[]; + colexprs: Node[]; + coldefexprs: Node[]; + notnulls: number[]; + ordinalitycol: number; + location: number; +} + +export interface Var { + xpr: Node | undefined; + varno: number; + varattno: number; + vartype: number; + vartypmod: number; + varcollid: number; + varlevelsup: number; + varnosyn: number; + varattnosyn: number; + location: number; +} + +export interface Param { + xpr: Node | undefined; + paramkind: ParamKind; + paramid: number; + paramtype: number; + paramtypmod: number; + paramcollid: number; + location: number; +} + +export interface Aggref { + xpr: Node | undefined; + aggfnoid: number; + aggtype: number; + aggcollid: number; + inputcollid: number; + aggtranstype: number; + aggargtypes: Node[]; + aggdirectargs: Node[]; + args: Node[]; + aggorder: Node[]; + aggdistinct: Node[]; + aggfilter: Node | undefined; + aggstar: boolean; + aggvariadic: boolean; + aggkind: string; + agglevelsup: number; + aggsplit: AggSplit; + aggno: number; + aggtransno: number; + location: number; +} + +export interface GroupingFunc { + xpr: Node | undefined; + args: Node[]; + refs: Node[]; + cols: Node[]; + agglevelsup: number; + location: number; +} + +export interface WindowFunc { + xpr: Node | undefined; + winfnoid: number; + wintype: number; + wincollid: number; + inputcollid: number; + args: Node[]; + aggfilter: Node | undefined; + winref: number; + winstar: boolean; + winagg: boolean; + location: number; +} + +export interface SubscriptingRef { + xpr: Node | undefined; + refcontainertype: number; + refelemtype: number; + refrestype: number; + reftypmod: number; + refcollid: number; + refupperindexpr: Node[]; + reflowerindexpr: Node[]; + refexpr: Node | undefined; + refassgnexpr: Node | undefined; +} + +export interface FuncExpr { + xpr: Node | undefined; + funcid: number; + funcresulttype: number; + funcretset: boolean; + funcvariadic: boolean; + funcformat: CoercionForm; + funccollid: number; + inputcollid: number; + args: Node[]; + location: number; +} + +export interface NamedArgExpr { + xpr: Node | undefined; + arg: Node | undefined; + name: string; + argnumber: number; + location: number; +} + +export interface OpExpr { + xpr: Node | undefined; + opno: number; + opfuncid: number; + opresulttype: number; + opretset: boolean; + opcollid: number; + inputcollid: number; + args: Node[]; + location: number; +} + +export interface DistinctExpr { + xpr: Node | undefined; + opno: number; + opfuncid: number; + opresulttype: number; + opretset: boolean; + opcollid: number; + inputcollid: number; + args: Node[]; + location: number; +} + +export interface NullIfExpr { + xpr: Node | undefined; + opno: number; + opfuncid: number; + opresulttype: number; + opretset: boolean; + opcollid: number; + inputcollid: number; + args: Node[]; + location: number; +} + +export interface ScalarArrayOpExpr { + xpr: Node | undefined; + opno: number; + opfuncid: number; + hashfuncid: number; + negfuncid: number; + useOr: boolean; + inputcollid: number; + args: Node[]; + location: number; +} + +export interface BoolExpr { + xpr: Node | undefined; + boolop: BoolExprType; + args: Node[]; + location: number; +} + +export interface SubLink { + xpr: Node | undefined; + subLinkType: SubLinkType; + subLinkId: number; + testexpr: Node | undefined; + operName: Node[]; + subselect: Node | undefined; + location: number; +} + +export interface SubPlan { + xpr: Node | undefined; + subLinkType: SubLinkType; + testexpr: Node | undefined; + paramIds: Node[]; + planId: number; + planName: string; + firstColType: number; + firstColTypmod: number; + firstColCollation: number; + useHashTable: boolean; + unknownEqFalse: boolean; + parallelSafe: boolean; + setParam: Node[]; + parParam: Node[]; + args: Node[]; + startupCost: number; + perCallCost: number; +} + +export interface AlternativeSubPlan { + xpr: Node | undefined; + subplans: Node[]; +} + +export interface FieldSelect { + xpr: Node | undefined; + arg: Node | undefined; + fieldnum: number; + resulttype: number; + resulttypmod: number; + resultcollid: number; +} + +export interface FieldStore { + xpr: Node | undefined; + arg: Node | undefined; + newvals: Node[]; + fieldnums: Node[]; + resulttype: number; +} + +export interface RelabelType { + xpr: Node | undefined; + arg: Node | undefined; + resulttype: number; + resulttypmod: number; + resultcollid: number; + relabelformat: CoercionForm; + location: number; +} + +export interface CoerceViaIO { + xpr: Node | undefined; + arg: Node | undefined; + resulttype: number; + resultcollid: number; + coerceformat: CoercionForm; + location: number; +} + +export interface ArrayCoerceExpr { + xpr: Node | undefined; + arg: Node | undefined; + elemexpr: Node | undefined; + resulttype: number; + resulttypmod: number; + resultcollid: number; + coerceformat: CoercionForm; + location: number; +} + +export interface ConvertRowtypeExpr { + xpr: Node | undefined; + arg: Node | undefined; + resulttype: number; + convertformat: CoercionForm; + location: number; +} + +export interface CollateExpr { + xpr: Node | undefined; + arg: Node | undefined; + collOid: number; + location: number; +} + +export interface CaseExpr { + xpr: Node | undefined; + casetype: number; + casecollid: number; + arg: Node | undefined; + args: Node[]; + defresult: Node | undefined; + location: number; +} + +export interface CaseWhen { + xpr: Node | undefined; + expr: Node | undefined; + result: Node | undefined; + location: number; +} + +export interface CaseTestExpr { + xpr: Node | undefined; + typeId: number; + typeMod: number; + collation: number; +} + +export interface ArrayExpr { + xpr: Node | undefined; + arrayTypeid: number; + arrayCollid: number; + elementTypeid: number; + elements: Node[]; + multidims: boolean; + location: number; +} + +export interface RowExpr { + xpr: Node | undefined; + args: Node[]; + rowTypeid: number; + rowFormat: CoercionForm; + colnames: Node[]; + location: number; +} + +export interface RowCompareExpr { + xpr: Node | undefined; + rctype: RowCompareType; + opnos: Node[]; + opfamilies: Node[]; + inputcollids: Node[]; + largs: Node[]; + rargs: Node[]; +} + +export interface CoalesceExpr { + xpr: Node | undefined; + coalescetype: number; + coalescecollid: number; + args: Node[]; + location: number; +} + +export interface MinMaxExpr { + xpr: Node | undefined; + minmaxtype: number; + minmaxcollid: number; + inputcollid: number; + op: MinMaxOp; + args: Node[]; + location: number; +} + +export interface SQLValueFunction { + xpr: Node | undefined; + op: SQLValueFunctionOp; + type: number; + typmod: number; + location: number; +} + +export interface XmlExpr { + xpr: Node | undefined; + op: XmlExprOp; + name: string; + namedArgs: Node[]; + argNames: Node[]; + args: Node[]; + xmloption: XmlOptionType; + type: number; + typmod: number; + location: number; +} + +export interface NullTest { + xpr: Node | undefined; + arg: Node | undefined; + nulltesttype: NullTestType; + argisrow: boolean; + location: number; +} + +export interface BooleanTest { + xpr: Node | undefined; + arg: Node | undefined; + booltesttype: BoolTestType; + location: number; +} + +export interface CoerceToDomain { + xpr: Node | undefined; + arg: Node | undefined; + resulttype: number; + resulttypmod: number; + resultcollid: number; + coercionformat: CoercionForm; + location: number; +} + +export interface CoerceToDomainValue { + xpr: Node | undefined; + typeId: number; + typeMod: number; + collation: number; + location: number; +} + +export interface SetToDefault { + xpr: Node | undefined; + typeId: number; + typeMod: number; + collation: number; + location: number; +} + +export interface CurrentOfExpr { + xpr: Node | undefined; + cvarno: number; + cursorName: string; + cursorParam: number; +} + +export interface NextValueExpr { + xpr: Node | undefined; + seqid: number; + typeId: number; +} + +export interface InferenceElem { + xpr: Node | undefined; + expr: Node | undefined; + infercollid: number; + inferopclass: number; +} + +export interface TargetEntry { + xpr: Node | undefined; + expr: Node | undefined; + resno: number; + resname: string; + ressortgroupref: number; + resorigtbl: number; + resorigcol: number; + resjunk: boolean; +} + +export interface RangeTblRef { + rtindex: number; +} + +export interface JoinExpr { + jointype: JoinType; + isNatural: boolean; + larg: Node | undefined; + rarg: Node | undefined; + usingClause: Node[]; + joinUsingAlias: Alias | undefined; + quals: Node | undefined; + alias: Alias | undefined; + rtindex: number; +} + +export interface FromExpr { + fromlist: Node[]; + quals: Node | undefined; +} + +export interface OnConflictExpr { + action: OnConflictAction; + arbiterElems: Node[]; + arbiterWhere: Node | undefined; + constraint: number; + onConflictSet: Node[]; + onConflictWhere: Node | undefined; + exclRelIndex: number; + exclRelTlist: Node[]; +} + +export interface IntoClause { + rel: RangeVar | undefined; + colNames: Node[]; + accessMethod: string; + options: Node[]; + onCommit: OnCommitAction; + tableSpaceName: string; + viewQuery: Node | undefined; + skipData: boolean; +} + +export interface MergeAction { + matched: boolean; + commandType: CmdType; + override: OverridingKind; + qual: Node | undefined; + targetList: Node[]; + updateColnos: Node[]; +} + +export interface RawStmt { + stmt: Node | undefined; + stmtLocation: number; + stmtLen: number; +} + +export interface Query { + commandType: CmdType; + querySource: QuerySource; + canSetTag: boolean; + utilityStmt: Node | undefined; + resultRelation: number; + hasAggs: boolean; + hasWindowFuncs: boolean; + hasTargetSrfs: boolean; + hasSubLinks: boolean; + hasDistinctOn: boolean; + hasRecursive: boolean; + hasModifyingCte: boolean; + hasForUpdate: boolean; + hasRowSecurity: boolean; + isReturn: boolean; + cteList: Node[]; + rtable: Node[]; + jointree: FromExpr | undefined; + mergeActionList: Node[]; + mergeUseOuterJoin: boolean; + targetList: Node[]; + override: OverridingKind; + onConflict: OnConflictExpr | undefined; + returningList: Node[]; + groupClause: Node[]; + groupDistinct: boolean; + groupingSets: Node[]; + havingQual: Node | undefined; + windowClause: Node[]; + distinctClause: Node[]; + sortClause: Node[]; + limitOffset: Node | undefined; + limitCount: Node | undefined; + limitOption: LimitOption; + rowMarks: Node[]; + setOperations: Node | undefined; + constraintDeps: Node[]; + withCheckOptions: Node[]; + stmtLocation: number; + stmtLen: number; +} + +export interface InsertStmt { + relation: RangeVar | undefined; + cols: Node[]; + selectStmt: Node | undefined; + onConflictClause: OnConflictClause | undefined; + returningList: Node[]; + withClause: WithClause | undefined; + override: OverridingKind; +} + +export interface DeleteStmt { + relation: RangeVar | undefined; + usingClause: Node[]; + whereClause: Node | undefined; + returningList: Node[]; + withClause: WithClause | undefined; +} + +export interface UpdateStmt { + relation: RangeVar | undefined; + targetList: Node[]; + whereClause: Node | undefined; + fromClause: Node[]; + returningList: Node[]; + withClause: WithClause | undefined; +} + +export interface MergeStmt { + relation: RangeVar | undefined; + sourceRelation: Node | undefined; + joinCondition: Node | undefined; + mergeWhenClauses: Node[]; + withClause: WithClause | undefined; +} + +export interface SelectStmt { + distinctClause: Node[]; + intoClause: IntoClause | undefined; + targetList: Node[]; + fromClause?: Node[]; + whereClause: Node | undefined; + groupClause: Node[]; + groupDistinct: boolean; + havingClause: Node | undefined; + windowClause: Node[]; + valuesLists: Node[]; + sortClause: Node[]; + limitOffset: Node | undefined; + limitCount: Node | undefined; + limitOption: LimitOption; + lockingClause: Node[]; + withClause: WithClause | undefined; + op: SetOperation; + all: boolean; + larg: SelectStmt | undefined; + rarg: SelectStmt | undefined; +} + +export interface ReturnStmt { + returnval: Node | undefined; +} + +export interface PLAssignStmt { + name: string; + indirection: Node[]; + nnames: number; + val: SelectStmt | undefined; + location: number; +} + +export interface AlterTableStmt { + relation: RangeVar | undefined; + cmds: Node[]; + objtype: ObjectType; + missingOk: boolean; +} + +export interface AlterTableCmd { + subtype: AlterTableType; + name: string; + num: number; + newowner: RoleSpec | undefined; + def: Node | undefined; + behavior: DropBehavior; + missingOk: boolean; + recurse: boolean; +} + +export interface AlterDomainStmt { + subtype: string; + typeName: Node[]; + name: string; + def: Node | undefined; + behavior: DropBehavior; + missingOk: boolean; +} + +export interface SetOperationStmt { + op: SetOperation; + all: boolean; + larg: Node | undefined; + rarg: Node | undefined; + colTypes: Node[]; + colTypmods: Node[]; + colCollations: Node[]; + groupClauses: Node[]; +} + +export interface GrantStmt { + isGrant: boolean; + targtype: GrantTargetType; + objtype: ObjectType; + objects: Node[]; + privileges: Node[]; + grantees: Node[]; + grantOption: boolean; + grantor: RoleSpec | undefined; + behavior: DropBehavior; +} + +export interface GrantRoleStmt { + grantedRoles: Node[]; + granteeRoles: Node[]; + isGrant: boolean; + adminOpt: boolean; + grantor: RoleSpec | undefined; + behavior: DropBehavior; +} + +export interface AlterDefaultPrivilegesStmt { + options: Node[]; + action: GrantStmt | undefined; +} + +export interface ClosePortalStmt { + portalname: string; +} + +export interface ClusterStmt { + relation: RangeVar | undefined; + indexname: string; + params: Node[]; +} + +export interface CopyStmt { + relation: RangeVar | undefined; + query: Node | undefined; + attlist: Node[]; + isFrom: boolean; + isProgram: boolean; + filename: string; + options: Node[]; + whereClause: Node | undefined; +} + +export interface CreateStmt { + relation: RangeVar | undefined; + tableElts: Node[]; + inhRelations: Node[]; + partbound: PartitionBoundSpec | undefined; + partspec: PartitionSpec | undefined; + ofTypename: TypeName | undefined; + constraints: Node[]; + options: Node[]; + oncommit: OnCommitAction; + tablespacename: string; + accessMethod: string; + ifNotExists: boolean; +} + +export interface DefineStmt { + kind: ObjectType; + oldstyle: boolean; + defnames: Node[]; + args: Node[]; + definition: Node[]; + ifNotExists: boolean; + replace: boolean; +} + +export interface DropStmt { + objects: Node[]; + removeType: ObjectType; + behavior: DropBehavior; + missingOk: boolean; + concurrent: boolean; +} + +export interface TruncateStmt { + relations: Node[]; + restartSeqs: boolean; + behavior: DropBehavior; +} + +export interface CommentStmt { + objtype: ObjectType; + object: Node | undefined; + comment: string; +} + +export interface FetchStmt { + direction: FetchDirection; + howMany: number; + portalname: string; + ismove: boolean; +} + +export interface IndexStmt { + idxname: string; + relation: RangeVar | undefined; + accessMethod: string; + tableSpace: string; + indexParams: Node[]; + indexIncludingParams: Node[]; + options: Node[]; + whereClause: Node | undefined; + excludeOpNames: Node[]; + idxcomment: string; + indexOid: number; + oldNode: number; + oldCreateSubid: number; + oldFirstRelfilenodeSubid: number; + unique: boolean; + nullsNotDistinct: boolean; + primary: boolean; + isconstraint: boolean; + deferrable: boolean; + initdeferred: boolean; + transformed: boolean; + concurrent: boolean; + ifNotExists: boolean; + resetDefaultTblspc: boolean; +} + +export interface CreateFunctionStmt { + isProcedure: boolean; + replace: boolean; + funcname: Node[]; + parameters: Node[]; + returnType: TypeName | undefined; + options: Node[]; + sqlBody: Node | undefined; +} + +export interface AlterFunctionStmt { + objtype: ObjectType; + func: ObjectWithArgs | undefined; + actions: Node[]; +} + +export interface DoStmt { + args: Node[]; +} + +export interface RenameStmt { + renameType: ObjectType; + relationType: ObjectType; + relation: RangeVar | undefined; + object: Node | undefined; + subname: string; + newname: string; + behavior: DropBehavior; + missingOk: boolean; +} + +export interface RuleStmt { + relation: RangeVar | undefined; + rulename: string; + whereClause: Node | undefined; + event: CmdType; + instead: boolean; + actions: Node[]; + replace: boolean; +} + +export interface NotifyStmt { + conditionname: string; + payload: string; +} + +export interface ListenStmt { + conditionname: string; +} + +export interface UnlistenStmt { + conditionname: string; +} + +export interface TransactionStmt { + kind: TransactionStmtKind; + options: Node[]; + savepointName: string; + gid: string; + chain: boolean; +} + +export interface ViewStmt { + view: RangeVar | undefined; + aliases: Node[]; + query: Node | undefined; + replace: boolean; + options: Node[]; + withCheckOption: ViewCheckOption; +} + +export interface LoadStmt { + filename: string; +} + +export interface CreateDomainStmt { + domainname: Node[]; + typeName: TypeName | undefined; + collClause: CollateClause | undefined; + constraints: Node[]; +} + +export interface CreatedbStmt { + dbname: string; + options: Node[]; +} + +export interface DropdbStmt { + dbname: string; + missingOk: boolean; + options: Node[]; +} + +export interface VacuumStmt { + options: Node[]; + rels: Node[]; + isVacuumcmd: boolean; +} + +export interface ExplainStmt { + query: Node | undefined; + options: Node[]; +} + +export interface CreateTableAsStmt { + query: Node | undefined; + into: IntoClause | undefined; + objtype: ObjectType; + isSelectInto: boolean; + ifNotExists: boolean; +} + +export interface CreateSeqStmt { + sequence: RangeVar | undefined; + options: Node[]; + ownerId: number; + forIdentity: boolean; + ifNotExists: boolean; +} + +export interface AlterSeqStmt { + sequence: RangeVar | undefined; + options: Node[]; + forIdentity: boolean; + missingOk: boolean; +} + +export interface VariableSetStmt { + kind: VariableSetKind; + name: string; + args: Node[]; + isLocal: boolean; +} + +export interface VariableShowStmt { + name: string; +} + +export interface DiscardStmt { + target: DiscardMode; +} + +export interface CreateTrigStmt { + replace: boolean; + isconstraint: boolean; + trigname: string; + relation: RangeVar | undefined; + funcname: Node[]; + args: Node[]; + row: boolean; + timing: number; + events: number; + columns: Node[]; + whenClause: Node | undefined; + transitionRels: Node[]; + deferrable: boolean; + initdeferred: boolean; + constrrel: RangeVar | undefined; +} + +export interface CreatePLangStmt { + replace: boolean; + plname: string; + plhandler: Node[]; + plinline: Node[]; + plvalidator: Node[]; + pltrusted: boolean; +} + +export interface CreateRoleStmt { + stmtType: RoleStmtType; + role: string; + options: Node[]; +} + +export interface AlterRoleStmt { + role: RoleSpec | undefined; + options: Node[]; + action: number; +} + +export interface DropRoleStmt { + roles: Node[]; + missingOk: boolean; +} + +export interface LockStmt { + relations: Node[]; + mode: number; + nowait: boolean; +} + +export interface ConstraintsSetStmt { + constraints: Node[]; + deferred: boolean; +} + +export interface ReindexStmt { + kind: ReindexObjectType; + relation: RangeVar | undefined; + name: string; + params: Node[]; +} + +export interface CheckPointStmt {} + +export interface CreateSchemaStmt { + schemaname: string; + authrole: RoleSpec | undefined; + schemaElts: Node[]; + ifNotExists: boolean; +} + +export interface AlterDatabaseStmt { + dbname: string; + options: Node[]; +} + +export interface AlterDatabaseRefreshCollStmt { + dbname: string; +} + +export interface AlterDatabaseSetStmt { + dbname: string; + setstmt: VariableSetStmt | undefined; +} + +export interface AlterRoleSetStmt { + role: RoleSpec | undefined; + database: string; + setstmt: VariableSetStmt | undefined; +} + +export interface CreateConversionStmt { + conversionName: Node[]; + forEncodingName: string; + toEncodingName: string; + funcName: Node[]; + def: boolean; +} + +export interface CreateCastStmt { + sourcetype: TypeName | undefined; + targettype: TypeName | undefined; + func: ObjectWithArgs | undefined; + context: CoercionContext; + inout: boolean; +} + +export interface CreateOpClassStmt { + opclassname: Node[]; + opfamilyname: Node[]; + amname: string; + datatype: TypeName | undefined; + items: Node[]; + isDefault: boolean; +} + +export interface CreateOpFamilyStmt { + opfamilyname: Node[]; + amname: string; +} + +export interface AlterOpFamilyStmt { + opfamilyname: Node[]; + amname: string; + isDrop: boolean; + items: Node[]; +} + +export interface PrepareStmt { + name: string; + argtypes: Node[]; + query: Node | undefined; +} + +export interface ExecuteStmt { + name: string; + params: Node[]; +} + +export interface DeallocateStmt { + name: string; +} + +export interface DeclareCursorStmt { + portalname: string; + options: number; + query: Node | undefined; +} + +export interface CreateTableSpaceStmt { + tablespacename: string; + owner: RoleSpec | undefined; + location: string; + options: Node[]; +} + +export interface DropTableSpaceStmt { + tablespacename: string; + missingOk: boolean; +} + +export interface AlterObjectDependsStmt { + objectType: ObjectType; + relation: RangeVar | undefined; + object: Node | undefined; + extname: String | undefined; + remove: boolean; +} + +export interface AlterObjectSchemaStmt { + objectType: ObjectType; + relation: RangeVar | undefined; + object: Node | undefined; + newschema: string; + missingOk: boolean; +} + +export interface AlterOwnerStmt { + objectType: ObjectType; + relation: RangeVar | undefined; + object: Node | undefined; + newowner: RoleSpec | undefined; +} + +export interface AlterOperatorStmt { + opername: ObjectWithArgs | undefined; + options: Node[]; +} + +export interface AlterTypeStmt { + typeName: Node[]; + options: Node[]; +} + +export interface DropOwnedStmt { + roles: Node[]; + behavior: DropBehavior; +} + +export interface ReassignOwnedStmt { + roles: Node[]; + newrole: RoleSpec | undefined; +} + +export interface CompositeTypeStmt { + typevar: RangeVar | undefined; + coldeflist: Node[]; +} + +export interface CreateEnumStmt { + typeName: Node[]; + vals: Node[]; +} + +export interface CreateRangeStmt { + typeName: Node[]; + params: Node[]; +} + +export interface AlterEnumStmt { + typeName: Node[]; + oldVal: string; + newVal: string; + newValNeighbor: string; + newValIsAfter: boolean; + skipIfNewValExists: boolean; +} + +export interface AlterTSDictionaryStmt { + dictname: Node[]; + options: Node[]; +} + +export interface AlterTSConfigurationStmt { + kind: AlterTSConfigType; + cfgname: Node[]; + tokentype: Node[]; + dicts: Node[]; + override: boolean; + replace: boolean; + missingOk: boolean; +} + +export interface CreateFdwStmt { + fdwname: string; + funcOptions: Node[]; + options: Node[]; +} + +export interface AlterFdwStmt { + fdwname: string; + funcOptions: Node[]; + options: Node[]; +} + +export interface CreateForeignServerStmt { + servername: string; + servertype: string; + version: string; + fdwname: string; + ifNotExists: boolean; + options: Node[]; +} + +export interface AlterForeignServerStmt { + servername: string; + version: string; + options: Node[]; + hasVersion: boolean; +} + +export interface CreateUserMappingStmt { + user: RoleSpec | undefined; + servername: string; + ifNotExists: boolean; + options: Node[]; +} + +export interface AlterUserMappingStmt { + user: RoleSpec | undefined; + servername: string; + options: Node[]; +} + +export interface DropUserMappingStmt { + user: RoleSpec | undefined; + servername: string; + missingOk: boolean; +} + +export interface AlterTableSpaceOptionsStmt { + tablespacename: string; + options: Node[]; + isReset: boolean; +} + +export interface AlterTableMoveAllStmt { + origTablespacename: string; + objtype: ObjectType; + roles: Node[]; + newTablespacename: string; + nowait: boolean; +} + +export interface SecLabelStmt { + objtype: ObjectType; + object: Node | undefined; + provider: string; + label: string; +} + +export interface CreateForeignTableStmt { + baseStmt: CreateStmt | undefined; + servername: string; + options: Node[]; +} + +export interface ImportForeignSchemaStmt { + serverName: string; + remoteSchema: string; + localSchema: string; + listType: ImportForeignSchemaType; + tableList: Node[]; + options: Node[]; +} + +export interface CreateExtensionStmt { + extname: string; + ifNotExists: boolean; + options: Node[]; +} + +export interface AlterExtensionStmt { + extname: string; + options: Node[]; +} + +export interface AlterExtensionContentsStmt { + extname: string; + action: number; + objtype: ObjectType; + object: Node | undefined; +} + +export interface CreateEventTrigStmt { + trigname: string; + eventname: string; + whenclause: Node[]; + funcname: Node[]; +} + +export interface AlterEventTrigStmt { + trigname: string; + tgenabled: string; +} + +export interface RefreshMatViewStmt { + concurrent: boolean; + skipData: boolean; + relation: RangeVar | undefined; +} + +export interface ReplicaIdentityStmt { + identityType: string; + name: string; +} + +export interface AlterSystemStmt { + setstmt: VariableSetStmt | undefined; +} + +export interface CreatePolicyStmt { + policyName: string; + table: RangeVar | undefined; + cmdName: string; + permissive: boolean; + roles: Node[]; + qual: Node | undefined; + withCheck: Node | undefined; +} + +export interface AlterPolicyStmt { + policyName: string; + table: RangeVar | undefined; + roles: Node[]; + qual: Node | undefined; + withCheck: Node | undefined; +} + +export interface CreateTransformStmt { + replace: boolean; + typeName: TypeName | undefined; + lang: string; + fromsql: ObjectWithArgs | undefined; + tosql: ObjectWithArgs | undefined; +} + +export interface CreateAmStmt { + amname: string; + handlerName: Node[]; + amtype: string; +} + +export interface CreatePublicationStmt { + pubname: string; + options: Node[]; + pubobjects: Node[]; + forAllTables: boolean; +} + +export interface AlterPublicationStmt { + pubname: string; + options: Node[]; + pubobjects: Node[]; + forAllTables: boolean; + action: AlterPublicationAction; +} + +export interface CreateSubscriptionStmt { + subname: string; + conninfo: string; + publication: Node[]; + options: Node[]; +} + +export interface AlterSubscriptionStmt { + kind: AlterSubscriptionType; + subname: string; + conninfo: string; + publication: Node[]; + options: Node[]; +} + +export interface DropSubscriptionStmt { + subname: string; + missingOk: boolean; + behavior: DropBehavior; +} + +export interface CreateStatsStmt { + defnames: Node[]; + statTypes: Node[]; + exprs: Node[]; + relations: Node[]; + stxcomment: string; + transformed: boolean; + ifNotExists: boolean; +} + +export interface AlterCollationStmt { + collname: Node[]; +} + +export interface CallStmt { + funccall: FuncCall | undefined; + funcexpr: FuncExpr | undefined; + outargs: Node[]; +} + +export interface AlterStatsStmt { + defnames: Node[]; + stxstattarget: number; + missingOk: boolean; +} + +export interface AExpr { + kind: AExprKind; + name: Node[]; + lexpr: Node | undefined; + rexpr: Node | undefined; + location: number; +} + +export interface ColumnRef { + fields: Node[]; + location: number; +} + +export interface ParamRef { + number: number; + location: number; +} + +export interface FuncCall { + funcname: Node[]; + args: Node[] | undefined; + aggOrder: Node[]; + aggFilter: Node | undefined; + over: WindowDef | undefined; + aggWithinGroup: boolean; + aggStar: boolean; + aggDistinct: boolean; + funcVariadic: boolean; + funcformat: CoercionForm; + location: number; +} + +export interface AStar {} + +export interface AIndices { + isSlice: boolean; + lidx: Node | undefined; + uidx: Node | undefined; +} + +export interface AIndirection { + arg: Node | undefined; + indirection: Node[]; +} + +export interface AArrayExpr { + elements: Node[]; + location: number; +} + +export interface ResTarget { + name: string | undefined; + indirection: Node[]; + val: Node | undefined; + location: number; +} + +export interface MultiAssignRef { + source: Node | undefined; + colno: number; + ncolumns: number; +} + +export interface TypeCast { + arg: Node | undefined; + typeName: TypeName | undefined; + location: number; +} + +export interface CollateClause { + arg: Node | undefined; + collname: Node[]; + location: number; +} + +export interface SortBy { + node: Node | undefined; + sortbyDir: SortByDir; + sortbyNulls: SortByNulls; + useOp: Node[]; + location: number; +} + +export interface WindowDef { + name: string; + refname: string; + partitionClause: Node[]; + orderClause: Node[]; + frameOptions: number; + startOffset: Node | undefined; + endOffset: Node | undefined; + location: number; +} + +export interface RangeSubselect { + lateral: boolean; + subquery: Node | undefined; + alias: Alias | undefined; +} + +export interface RangeFunction { + lateral: boolean; + ordinality: boolean; + isRowsfrom: boolean; + functions: Node[]; + alias: Alias | undefined; + coldeflist: Node[]; +} + +export interface RangeTableSample { + relation: Node | undefined; + method: Node[]; + args: Node[]; + repeatable: Node | undefined; + location: number; +} + +export interface RangeTableFunc { + lateral: boolean; + docexpr: Node | undefined; + rowexpr: Node | undefined; + namespaces: Node[]; + columns: Node[]; + alias: Alias | undefined; + location: number; +} + +export interface RangeTableFuncCol { + colname: string; + typeName: TypeName | undefined; + forOrdinality: boolean; + isNotNull: boolean; + colexpr: Node | undefined; + coldefexpr: Node | undefined; + location: number; +} + +export interface TypeName { + names: Node[]; + typeOid: number; + setof: boolean; + pctType: boolean; + typmods: Node[]; + typemod: number; + arrayBounds: Node[]; + location: number; +} + +export interface ColumnDef { + colname: string; + typeName: TypeName | undefined; + compression: string; + inhcount: number; + isLocal: boolean; + isNotNull: boolean; + isFromType: boolean; + storage: string; + rawDefault: Node | undefined; + cookedDefault: Node | undefined; + identity: string; + identitySequence: RangeVar | undefined; + generated: string; + collClause: CollateClause | undefined; + collOid: number; + constraints: Node[]; + fdwoptions: Node[]; + location: number; +} + +export interface IndexElem { + name: string; + expr: Node | undefined; + indexcolname: string; + collation: Node[]; + opclass: Node[]; + opclassopts: Node[]; + ordering: SortByDir; + nullsOrdering: SortByNulls; +} + +export interface StatsElem { + name: string; + expr: Node | undefined; +} + +export interface Constraint { + contype: ConstrType; + conname: string; + deferrable: boolean; + initdeferred: boolean; + location: number; + isNoInherit: boolean; + rawExpr: Node | undefined; + cookedExpr: string; + generatedWhen: string; + nullsNotDistinct: boolean; + keys: Node[]; + including: Node[]; + exclusions: Node[]; + options: Node[]; + indexname: string; + indexspace: string; + resetDefaultTblspc: boolean; + accessMethod: string; + whereClause: Node | undefined; + pktable: RangeVar | undefined; + fkAttrs: Node[]; + pkAttrs: Node[]; + fkMatchtype: string; + fkUpdAction: string; + fkDelAction: string; + fkDelSetCols: Node[]; + oldConpfeqop: Node[]; + oldPktableOid: number; + skipValidation: boolean; + initiallyValid: boolean; +} + +export interface DefElem { + defnamespace: string; + defname: string; + arg: Node | undefined; + defaction: DefElemAction; + location: number; +} + +export interface RangeTblEntry { + rtekind: RTEKind; + relid: number; + relkind: string; + rellockmode: number; + tablesample: TableSampleClause | undefined; + subquery: Query | undefined; + securityBarrier: boolean; + jointype: JoinType; + joinmergedcols: number; + joinaliasvars: Node[]; + joinleftcols: Node[]; + joinrightcols: Node[]; + joinUsingAlias: Alias | undefined; + functions: Node[]; + funcordinality: boolean; + tablefunc: TableFunc | undefined; + valuesLists: Node[]; + ctename: string; + ctelevelsup: number; + selfReference: boolean; + coltypes: Node[]; + coltypmods: Node[]; + colcollations: Node[]; + enrname: string; + enrtuples: number; + alias: Alias | undefined; + eref: Alias | undefined; + lateral: boolean; + inh: boolean; + inFromCl: boolean; + requiredPerms: number; + checkAsUser: number; + selectedCols: number[]; + insertedCols: number[]; + updatedCols: number[]; + extraUpdatedCols: number[]; + securityQuals: Node[]; +} + +export interface RangeTblFunction { + funcexpr: Node | undefined; + funccolcount: number; + funccolnames: Node[]; + funccoltypes: Node[]; + funccoltypmods: Node[]; + funccolcollations: Node[]; + funcparams: number[]; +} + +export interface TableSampleClause { + tsmhandler: number; + args: Node[]; + repeatable: Node | undefined; +} + +export interface WithCheckOption { + kind: WCOKind; + relname: string; + polname: string; + qual: Node | undefined; + cascaded: boolean; +} + +export interface SortGroupClause { + tleSortGroupRef: number; + eqop: number; + sortop: number; + nullsFirst: boolean; + hashable: boolean; +} + +export interface GroupingSet { + kind: GroupingSetKind; + content: Node[]; + location: number; +} + +export interface WindowClause { + name: string; + refname: string; + partitionClause: Node[]; + orderClause: Node[]; + frameOptions: number; + startOffset: Node | undefined; + endOffset: Node | undefined; + runCondition: Node[]; + startInRangeFunc: number; + endInRangeFunc: number; + inRangeColl: number; + inRangeAsc: boolean; + inRangeNullsFirst: boolean; + winref: number; + copiedOrder: boolean; +} + +export interface ObjectWithArgs { + objname: Node[]; + objargs: Node[]; + objfuncargs: Node[]; + argsUnspecified: boolean; +} + +export interface AccessPriv { + privName: string; + cols: Node[]; +} + +export interface CreateOpClassItem { + itemtype: number; + name: ObjectWithArgs | undefined; + number: number; + orderFamily: Node[]; + classArgs: Node[]; + storedtype: TypeName | undefined; +} + +export interface TableLikeClause { + relation: RangeVar | undefined; + options: number; + relationOid: number; +} + +export interface FunctionParameter { + name: string; + argType: TypeName | undefined; + mode: FunctionParameterMode; + defexpr: Node | undefined; +} + +export interface LockingClause { + lockedRels: Node[]; + strength: LockClauseStrength; + waitPolicy: LockWaitPolicy; +} + +export interface RowMarkClause { + rti: number; + strength: LockClauseStrength; + waitPolicy: LockWaitPolicy; + pushedDown: boolean; +} + +export interface XmlSerialize { + xmloption: XmlOptionType; + expr: Node | undefined; + typeName: TypeName | undefined; + location: number; +} + +export interface WithClause { + ctes: Node[]; + recursive: boolean; + location: number; +} + +export interface InferClause { + indexElems: Node[]; + whereClause: Node | undefined; + conname: string; + location: number; +} + +export interface OnConflictClause { + action: OnConflictAction; + infer: InferClause | undefined; + targetList: Node[]; + whereClause: Node | undefined; + location: number; +} + +export interface CTESearchClause { + searchColList: Node[]; + searchBreadthFirst: boolean; + searchSeqColumn: string; + location: number; +} + +export interface CTECycleClause { + cycleColList: Node[]; + cycleMarkColumn: string; + cycleMarkValue: Node | undefined; + cycleMarkDefault: Node | undefined; + cyclePathColumn: string; + location: number; + cycleMarkType: number; + cycleMarkTypmod: number; + cycleMarkCollation: number; + cycleMarkNeop: number; +} + +export interface CommonTableExpr { + ctename: string; + aliascolnames: Node[]; + ctematerialized: CTEMaterialize; + ctequery: Node | undefined; + searchClause: CTESearchClause | undefined; + cycleClause: CTECycleClause | undefined; + location: number; + cterecursive: boolean; + cterefcount: number; + ctecolnames: Node[]; + ctecoltypes: Node[]; + ctecoltypmods: Node[]; + ctecolcollations: Node[]; +} + +export interface MergeWhenClause { + matched: boolean; + commandType: CmdType; + override: OverridingKind; + condition: Node | undefined; + targetList: Node[]; + values: Node[]; +} + +export interface RoleSpec { + roletype: RoleSpecType; + rolename: string; + location: number; +} + +export interface TriggerTransition { + name: string; + isNew: boolean; + isTable: boolean; +} + +export interface PartitionElem { + name: string; + expr: Node | undefined; + collation: Node[]; + opclass: Node[]; + location: number; +} + +export interface PartitionSpec { + strategy: string; + partParams: Node[]; + location: number; +} + +export interface PartitionBoundSpec { + strategy: string; + isDefault: boolean; + modulus: number; + remainder: number; + listdatums: Node[]; + lowerdatums: Node[]; + upperdatums: Node[]; + location: number; +} + +export interface PartitionRangeDatum { + kind: PartitionRangeDatumKind; + value: Node | undefined; + location: number; +} + +export interface PartitionCmd { + name: RangeVar | undefined; + bound: PartitionBoundSpec | undefined; + concurrent: boolean; +} + +export interface VacuumRelation { + relation: RangeVar | undefined; + oid: number; + vaCols: Node[]; +} + +export interface PublicationObjSpec { + pubobjtype: PublicationObjSpecType; + name: string; + pubtable: PublicationTable | undefined; + location: number; +} + +export interface PublicationTable { + relation: RangeVar | undefined; + whereClause: Node | undefined; + columns: Node[]; +} + +export interface InlineCodeBlock { + sourceText: string; + langOid: number; + langIsTrusted: boolean; + atomic: boolean; +} + +export interface CallContext { + atomic: boolean; +} + +export interface ScanToken { + start: number; + end: number; + token: Token; + keywordKind: KeywordKind; +} + +enum OverridingKind { + OVERRIDING_KIND_UNDEFINED = 0, + OVERRIDING_NOT_SET = 1, + OVERRIDING_USER_VALUE = 2, + OVERRIDING_SYSTEM_VALUE = 3, + UNRECOGNIZED = -1, +} + +enum QuerySource { + QUERY_SOURCE_UNDEFINED = 0, + QSRC_ORIGINAL = 1, + QSRC_PARSER = 2, + QSRC_INSTEAD_RULE = 3, + QSRC_QUAL_INSTEAD_RULE = 4, + QSRC_NON_INSTEAD_RULE = 5, + UNRECOGNIZED = -1, +} + +enum SortByDir { + SORT_BY_DIR_UNDEFINED = 0, + SORTBY_DEFAULT = 1, + SORTBY_ASC = 2, + SORTBY_DESC = 3, + SORTBY_USING = 4, + UNRECOGNIZED = -1, +} + +enum SortByNulls { + SORT_BY_NULLS_UNDEFINED = 0, + SORTBY_NULLS_DEFAULT = 1, + SORTBY_NULLS_FIRST = 2, + SORTBY_NULLS_LAST = 3, + UNRECOGNIZED = -1, +} + +export enum AExprKind { + A_EXPR_KIND_UNDEFINED = "A_EXPR_KIND_UNDEFINED", + AEXPR_OP = "AEXPR_OP", + AEXPR_OP_ANY = "AEXPR_OP_ANY", + AEXPR_OP_ALL = "AEXPR_OP_ALL", + AEXPR_DISTINCT = "AEXPR_DISTINCT", + AEXPR_NOT_DISTINCT = "AEXPR_NOT_DISTINCT", + AEXPR_NULLIF = "AEXPR_NULLIF", + AEXPR_IN = "AEXPR_IN", + AEXPR_LIKE = "AEXPR_LIKE", + AEXPR_ILIKE = "AEXPR_ILIKE", + AEXPR_SIMILAR = "AEXPR_SIMILAR", + AEXPR_BETWEEN = "AEXPR_BETWEEN", + AEXPR_NOT_BETWEEN = "AEXPR_NOT_BETWEEN", + AEXPR_BETWEEN_SYM = "AEXPR_BETWEEN_SYM", + AEXPR_NOT_BETWEEN_SYM = "AEXPR_NOT_BETWEEN_SYM", + UNRECOGNIZED = "UNRECOGNIZED", +} + +enum RoleSpecType { + ROLE_SPEC_TYPE_UNDEFINED = 0, + ROLESPEC_CSTRING = 1, + ROLESPEC_CURRENT_ROLE = 2, + ROLESPEC_CURRENT_USER = 3, + ROLESPEC_SESSION_USER = 4, + ROLESPEC_PUBLIC = 5, + UNRECOGNIZED = -1, +} + +enum DefElemAction { + DEF_ELEM_ACTION_UNDEFINED = 0, + DEFELEM_UNSPEC = 1, + DEFELEM_SET = 2, + DEFELEM_ADD = 3, + DEFELEM_DROP = 4, + UNRECOGNIZED = -1, +} + +enum PartitionRangeDatumKind { + PARTITION_RANGE_DATUM_KIND_UNDEFINED = 0, + PARTITION_RANGE_DATUM_MINVALUE = 1, + PARTITION_RANGE_DATUM_VALUE = 2, + PARTITION_RANGE_DATUM_MAXVALUE = 3, + UNRECOGNIZED = -1, +} + +enum RTEKind { + RTEKIND_UNDEFINED = 0, + RTE_RELATION = 1, + RTE_SUBQUERY = 2, + RTE_JOIN = 3, + RTE_FUNCTION = 4, + RTE_TABLEFUNC = 5, + RTE_VALUES = 6, + RTE_CTE = 7, + RTE_NAMEDTUPLESTORE = 8, + RTE_RESULT = 9, + UNRECOGNIZED = -1, +} + +enum WCOKind { + WCOKIND_UNDEFINED = 0, + WCO_VIEW_CHECK = 1, + WCO_RLS_INSERT_CHECK = 2, + WCO_RLS_UPDATE_CHECK = 3, + WCO_RLS_CONFLICT_CHECK = 4, + WCO_RLS_MERGE_UPDATE_CHECK = 5, + WCO_RLS_MERGE_DELETE_CHECK = 6, + UNRECOGNIZED = -1, +} + +enum GroupingSetKind { + GROUPING_SET_KIND_UNDEFINED = 0, + GROUPING_SET_EMPTY = 1, + GROUPING_SET_SIMPLE = 2, + GROUPING_SET_ROLLUP = 3, + GROUPING_SET_CUBE = 4, + GROUPING_SET_SETS = 5, + UNRECOGNIZED = -1, +} + +enum CTEMaterialize { + CTEMATERIALIZE_UNDEFINED = 0, + CTEMaterializeDefault = 1, + CTEMaterializeAlways = 2, + CTEMaterializeNever = 3, + UNRECOGNIZED = -1, +} + +enum SetOperation { + SET_OPERATION_UNDEFINED = 0, + SETOP_NONE = 1, + SETOP_UNION = 2, + SETOP_INTERSECT = 3, + SETOP_EXCEPT = 4, + UNRECOGNIZED = -1, +} + +enum ObjectType { + OBJECT_TYPE_UNDEFINED = 0, + OBJECT_ACCESS_METHOD = 1, + OBJECT_AGGREGATE = 2, + OBJECT_AMOP = 3, + OBJECT_AMPROC = 4, + OBJECT_ATTRIBUTE = 5, + OBJECT_CAST = 6, + OBJECT_COLUMN = 7, + OBJECT_COLLATION = 8, + OBJECT_CONVERSION = 9, + OBJECT_DATABASE = 10, + OBJECT_DEFAULT = 11, + OBJECT_DEFACL = 12, + OBJECT_DOMAIN = 13, + OBJECT_DOMCONSTRAINT = 14, + OBJECT_EVENT_TRIGGER = 15, + OBJECT_EXTENSION = 16, + OBJECT_FDW = 17, + OBJECT_FOREIGN_SERVER = 18, + OBJECT_FOREIGN_TABLE = 19, + OBJECT_FUNCTION = 20, + OBJECT_INDEX = 21, + OBJECT_LANGUAGE = 22, + OBJECT_LARGEOBJECT = 23, + OBJECT_MATVIEW = 24, + OBJECT_OPCLASS = 25, + OBJECT_OPERATOR = 26, + OBJECT_OPFAMILY = 27, + OBJECT_PARAMETER_ACL = 28, + OBJECT_POLICY = 29, + OBJECT_PROCEDURE = 30, + OBJECT_PUBLICATION = 31, + OBJECT_PUBLICATION_NAMESPACE = 32, + OBJECT_PUBLICATION_REL = 33, + OBJECT_ROLE = 34, + OBJECT_ROUTINE = 35, + OBJECT_RULE = 36, + OBJECT_SCHEMA = 37, + OBJECT_SEQUENCE = 38, + OBJECT_SUBSCRIPTION = 39, + OBJECT_STATISTIC_EXT = 40, + OBJECT_TABCONSTRAINT = 41, + OBJECT_TABLE = 42, + OBJECT_TABLESPACE = 43, + OBJECT_TRANSFORM = 44, + OBJECT_TRIGGER = 45, + OBJECT_TSCONFIGURATION = 46, + OBJECT_TSDICTIONARY = 47, + OBJECT_TSPARSER = 48, + OBJECT_TSTEMPLATE = 49, + OBJECT_TYPE = 50, + OBJECT_USER_MAPPING = 51, + OBJECT_VIEW = 52, + UNRECOGNIZED = -1, +} + +enum DropBehavior { + DROP_BEHAVIOR_UNDEFINED = 0, + DROP_RESTRICT = 1, + DROP_CASCADE = 2, + UNRECOGNIZED = -1, +} + +enum AlterTableType { + ALTER_TABLE_TYPE_UNDEFINED = 0, + AT_AddColumn = 1, + AT_AddColumnRecurse = 2, + AT_AddColumnToView = 3, + AT_ColumnDefault = 4, + AT_CookedColumnDefault = 5, + AT_DropNotNull = 6, + AT_SetNotNull = 7, + AT_DropExpression = 8, + AT_CheckNotNull = 9, + AT_SetStatistics = 10, + AT_SetOptions = 11, + AT_ResetOptions = 12, + AT_SetStorage = 13, + AT_SetCompression = 14, + AT_DropColumn = 15, + AT_DropColumnRecurse = 16, + AT_AddIndex = 17, + AT_ReAddIndex = 18, + AT_AddConstraint = 19, + AT_AddConstraintRecurse = 20, + AT_ReAddConstraint = 21, + AT_ReAddDomainConstraint = 22, + AT_AlterConstraint = 23, + AT_ValidateConstraint = 24, + AT_ValidateConstraintRecurse = 25, + AT_AddIndexConstraint = 26, + AT_DropConstraint = 27, + AT_DropConstraintRecurse = 28, + AT_ReAddComment = 29, + AT_AlterColumnType = 30, + AT_AlterColumnGenericOptions = 31, + AT_ChangeOwner = 32, + AT_ClusterOn = 33, + AT_DropCluster = 34, + AT_SetLogged = 35, + AT_SetUnLogged = 36, + AT_DropOids = 37, + AT_SetAccessMethod = 38, + AT_SetTableSpace = 39, + AT_SetRelOptions = 40, + AT_ResetRelOptions = 41, + AT_ReplaceRelOptions = 42, + AT_EnableTrig = 43, + AT_EnableAlwaysTrig = 44, + AT_EnableReplicaTrig = 45, + AT_DisableTrig = 46, + AT_EnableTrigAll = 47, + AT_DisableTrigAll = 48, + AT_EnableTrigUser = 49, + AT_DisableTrigUser = 50, + AT_EnableRule = 51, + AT_EnableAlwaysRule = 52, + AT_EnableReplicaRule = 53, + AT_DisableRule = 54, + AT_AddInherit = 55, + AT_DropInherit = 56, + AT_AddOf = 57, + AT_DropOf = 58, + AT_ReplicaIdentity = 59, + AT_EnableRowSecurity = 60, + AT_DisableRowSecurity = 61, + AT_ForceRowSecurity = 62, + AT_NoForceRowSecurity = 63, + AT_GenericOptions = 64, + AT_AttachPartition = 65, + AT_DetachPartition = 66, + AT_DetachPartitionFinalize = 67, + AT_AddIdentity = 68, + AT_SetIdentity = 69, + AT_DropIdentity = 70, + AT_ReAddStatistics = 71, + UNRECOGNIZED = -1, +} + +enum GrantTargetType { + GRANT_TARGET_TYPE_UNDEFINED = 0, + ACL_TARGET_OBJECT = 1, + ACL_TARGET_ALL_IN_SCHEMA = 2, + ACL_TARGET_DEFAULTS = 3, + UNRECOGNIZED = -1, +} + +enum VariableSetKind { + VARIABLE_SET_KIND_UNDEFINED = 0, + VAR_SET_VALUE = 1, + VAR_SET_DEFAULT = 2, + VAR_SET_CURRENT = 3, + VAR_SET_MULTI = 4, + VAR_RESET = 5, + VAR_RESET_ALL = 6, + UNRECOGNIZED = -1, +} + +enum ConstrType { + CONSTR_TYPE_UNDEFINED = 0, + CONSTR_NULL = 1, + CONSTR_NOTNULL = 2, + CONSTR_DEFAULT = 3, + CONSTR_IDENTITY = 4, + CONSTR_GENERATED = 5, + CONSTR_CHECK = 6, + CONSTR_PRIMARY = 7, + CONSTR_UNIQUE = 8, + CONSTR_EXCLUSION = 9, + CONSTR_FOREIGN = 10, + CONSTR_ATTR_DEFERRABLE = 11, + CONSTR_ATTR_NOT_DEFERRABLE = 12, + CONSTR_ATTR_DEFERRED = 13, + CONSTR_ATTR_IMMEDIATE = 14, + UNRECOGNIZED = -1, +} + +enum ImportForeignSchemaType { + IMPORT_FOREIGN_SCHEMA_TYPE_UNDEFINED = 0, + FDW_IMPORT_SCHEMA_ALL = 1, + FDW_IMPORT_SCHEMA_LIMIT_TO = 2, + FDW_IMPORT_SCHEMA_EXCEPT = 3, + UNRECOGNIZED = -1, +} + +enum RoleStmtType { + ROLE_STMT_TYPE_UNDEFINED = 0, + ROLESTMT_ROLE = 1, + ROLESTMT_USER = 2, + ROLESTMT_GROUP = 3, + UNRECOGNIZED = -1, +} + +enum FetchDirection { + FETCH_DIRECTION_UNDEFINED = 0, + FETCH_FORWARD = 1, + FETCH_BACKWARD = 2, + FETCH_ABSOLUTE = 3, + FETCH_RELATIVE = 4, + UNRECOGNIZED = -1, +} + +enum FunctionParameterMode { + FUNCTION_PARAMETER_MODE_UNDEFINED = 0, + FUNC_PARAM_IN = 1, + FUNC_PARAM_OUT = 2, + FUNC_PARAM_INOUT = 3, + FUNC_PARAM_VARIADIC = 4, + FUNC_PARAM_TABLE = 5, + FUNC_PARAM_DEFAULT = 6, + UNRECOGNIZED = -1, +} + +enum TransactionStmtKind { + TRANSACTION_STMT_KIND_UNDEFINED = 0, + TRANS_STMT_BEGIN = 1, + TRANS_STMT_START = 2, + TRANS_STMT_COMMIT = 3, + TRANS_STMT_ROLLBACK = 4, + TRANS_STMT_SAVEPOINT = 5, + TRANS_STMT_RELEASE = 6, + TRANS_STMT_ROLLBACK_TO = 7, + TRANS_STMT_PREPARE = 8, + TRANS_STMT_COMMIT_PREPARED = 9, + TRANS_STMT_ROLLBACK_PREPARED = 10, + UNRECOGNIZED = -1, +} + +enum ViewCheckOption { + VIEW_CHECK_OPTION_UNDEFINED = 0, + NO_CHECK_OPTION = 1, + LOCAL_CHECK_OPTION = 2, + CASCADED_CHECK_OPTION = 3, + UNRECOGNIZED = -1, +} + +enum DiscardMode { + DISCARD_MODE_UNDEFINED = 0, + DISCARD_ALL = 1, + DISCARD_PLANS = 2, + DISCARD_SEQUENCES = 3, + DISCARD_TEMP = 4, + UNRECOGNIZED = -1, +} + +enum ReindexObjectType { + REINDEX_OBJECT_TYPE_UNDEFINED = 0, + REINDEX_OBJECT_INDEX = 1, + REINDEX_OBJECT_TABLE = 2, + REINDEX_OBJECT_SCHEMA = 3, + REINDEX_OBJECT_SYSTEM = 4, + REINDEX_OBJECT_DATABASE = 5, + UNRECOGNIZED = -1, +} + +enum AlterTSConfigType { + ALTER_TSCONFIG_TYPE_UNDEFINED = 0, + ALTER_TSCONFIG_ADD_MAPPING = 1, + ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN = 2, + ALTER_TSCONFIG_REPLACE_DICT = 3, + ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN = 4, + ALTER_TSCONFIG_DROP_MAPPING = 5, + UNRECOGNIZED = -1, +} + +enum PublicationObjSpecType { + PUBLICATION_OBJ_SPEC_TYPE_UNDEFINED = 0, + PUBLICATIONOBJ_TABLE = 1, + PUBLICATIONOBJ_TABLES_IN_SCHEMA = 2, + PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA = 3, + PUBLICATIONOBJ_CONTINUATION = 4, + UNRECOGNIZED = -1, +} + +enum AlterPublicationAction { + ALTER_PUBLICATION_ACTION_UNDEFINED = 0, + AP_AddObjects = 1, + AP_DropObjects = 2, + AP_SetObjects = 3, + UNRECOGNIZED = -1, +} + +enum AlterSubscriptionType { + ALTER_SUBSCRIPTION_TYPE_UNDEFINED = 0, + ALTER_SUBSCRIPTION_OPTIONS = 1, + ALTER_SUBSCRIPTION_CONNECTION = 2, + ALTER_SUBSCRIPTION_SET_PUBLICATION = 3, + ALTER_SUBSCRIPTION_ADD_PUBLICATION = 4, + ALTER_SUBSCRIPTION_DROP_PUBLICATION = 5, + ALTER_SUBSCRIPTION_REFRESH = 6, + ALTER_SUBSCRIPTION_ENABLED = 7, + ALTER_SUBSCRIPTION_SKIP = 8, + UNRECOGNIZED = -1, +} + +enum OnCommitAction { + ON_COMMIT_ACTION_UNDEFINED = 0, + ONCOMMIT_NOOP = 1, + ONCOMMIT_PRESERVE_ROWS = 2, + ONCOMMIT_DELETE_ROWS = 3, + ONCOMMIT_DROP = 4, + UNRECOGNIZED = -1, +} + +enum ParamKind { + PARAM_KIND_UNDEFINED = 0, + PARAM_EXTERN = 1, + PARAM_EXEC = 2, + PARAM_SUBLINK = 3, + PARAM_MULTIEXPR = 4, + UNRECOGNIZED = -1, +} + +enum CoercionContext { + COERCION_CONTEXT_UNDEFINED = 0, + COERCION_IMPLICIT = 1, + COERCION_ASSIGNMENT = 2, + COERCION_PLPGSQL = 3, + COERCION_EXPLICIT = 4, + UNRECOGNIZED = -1, +} + +enum CoercionForm { + COERCION_FORM_UNDEFINED = 0, + COERCE_EXPLICIT_CALL = 1, + COERCE_EXPLICIT_CAST = 2, + COERCE_IMPLICIT_CAST = 3, + COERCE_SQL_SYNTAX = 4, + UNRECOGNIZED = -1, +} + +export enum BoolExprType { + BOOL_EXPR_TYPE_UNDEFINED = "BOOL_EXPR_TYPE_UNDEFINED", + AND_EXPR = "AND_EXPR", + OR_EXPR = "OR_EXPR", + NOT_EXPR = "NOT_EXPR", + UNRECOGNIZED = "UNRECOGNIZED", +} + +export enum SubLinkType { + SUB_LINK_TYPE_UNDEFINED = "SUB_LINK_TYPE_UNDEFINED", + EXISTS_SUBLINK = "EXISTS_SUBLINK", + ALL_SUBLINK = "ALL_SUBLINK", + ANY_SUBLINK = "ANY_SUBLINK", + ROWCOMPARE_SUBLINK = "ROWCOMPARE_SUBLINK", + EXPR_SUBLINK = "EXPR_SUBLINK", + MULTIEXPR_SUBLINK = "MULTIEXPR_SUBLINK", + ARRAY_SUBLINK = "ARRAY_SUBLINK", + CTE_SUBLINK = "CTE_SUBLINK", + UNRECOGNIZED = "UNRECOGNIZED", +} + +enum RowCompareType { + ROW_COMPARE_TYPE_UNDEFINED = 0, + ROWCOMPARE_LT = 1, + ROWCOMPARE_LE = 2, + ROWCOMPARE_EQ = 3, + ROWCOMPARE_GE = 4, + ROWCOMPARE_GT = 5, + ROWCOMPARE_NE = 6, + UNRECOGNIZED = -1, +} + +enum MinMaxOp { + MIN_MAX_OP_UNDEFINED = 0, + IS_GREATEST = 1, + IS_LEAST = 2, + UNRECOGNIZED = -1, +} + +enum SQLValueFunctionOp { + SQLVALUE_FUNCTION_OP_UNDEFINED = 0, + SVFOP_CURRENT_DATE = 1, + SVFOP_CURRENT_TIME = 2, + SVFOP_CURRENT_TIME_N = 3, + SVFOP_CURRENT_TIMESTAMP = 4, + SVFOP_CURRENT_TIMESTAMP_N = 5, + SVFOP_LOCALTIME = 6, + SVFOP_LOCALTIME_N = 7, + SVFOP_LOCALTIMESTAMP = 8, + SVFOP_LOCALTIMESTAMP_N = 9, + SVFOP_CURRENT_ROLE = 10, + SVFOP_CURRENT_USER = 11, + SVFOP_USER = 12, + SVFOP_SESSION_USER = 13, + SVFOP_CURRENT_CATALOG = 14, + SVFOP_CURRENT_SCHEMA = 15, + UNRECOGNIZED = -1, +} + +enum XmlExprOp { + XML_EXPR_OP_UNDEFINED = 0, + IS_XMLCONCAT = 1, + IS_XMLELEMENT = 2, + IS_XMLFOREST = 3, + IS_XMLPARSE = 4, + IS_XMLPI = 5, + IS_XMLROOT = 6, + IS_XMLSERIALIZE = 7, + IS_DOCUMENT = 8, + UNRECOGNIZED = -1, +} + +enum XmlOptionType { + XML_OPTION_TYPE_UNDEFINED = 0, + XMLOPTION_DOCUMENT = 1, + XMLOPTION_CONTENT = 2, + UNRECOGNIZED = -1, +} + +export enum NullTestType { + NULL_TEST_TYPE_UNDEFINED = "NULL_TEST_TYPE_UNDEFINED", + IS_NULL = "IS_NULL", + IS_NOT_NULL = "IS_NOT_NULL", + UNRECOGNIZED = "UNRECOGNIZED", +} + +enum BoolTestType { + BOOL_TEST_TYPE_UNDEFINED = 0, + IS_TRUE = 1, + IS_NOT_TRUE = 2, + IS_FALSE = 3, + IS_NOT_FALSE = 4, + IS_UNKNOWN = 5, + IS_NOT_UNKNOWN = 6, + UNRECOGNIZED = -1, +} + +enum CmdType { + CMD_TYPE_UNDEFINED = 0, + CMD_UNKNOWN = 1, + CMD_SELECT = 2, + CMD_UPDATE = 3, + CMD_INSERT = 4, + CMD_DELETE = 5, + CMD_MERGE = 6, + CMD_UTILITY = 7, + CMD_NOTHING = 8, + UNRECOGNIZED = -1, +} + +export enum JoinType { + JOIN_TYPE_UNDEFINED = "JOIN_TYPE_UNDEFINED", + JOIN_INNER = "JOIN_INNER", + JOIN_LEFT = "JOIN_LEFT", + JOIN_FULL = "JOIN_FULL", + JOIN_RIGHT = "JOIN_RIGHT", + JOIN_SEMI = "JOIN_SEMI", + JOIN_ANTI = "JOIN_ANTI", + JOIN_UNIQUE_OUTER = "JOIN_UNIQUE_OUTER", + JOIN_UNIQUE_INNER = "JOIN_UNIQUE_INNER", + UNRECOGNIZED = "UNRECOGNIZED", +} + +enum AggSplit { + AGG_SPLIT_UNDEFINED = 0, + AGGSPLIT_SIMPLE = 1, + AGGSPLIT_INITIAL_SERIAL = 2, + AGGSPLIT_FINAL_DESERIAL = 3, + UNRECOGNIZED = -1, +} + +enum OnConflictAction { + ON_CONFLICT_ACTION_UNDEFINED = 0, + ONCONFLICT_NONE = 1, + ONCONFLICT_NOTHING = 2, + ONCONFLICT_UPDATE = 3, + UNRECOGNIZED = -1, +} + +enum LimitOption { + LIMIT_OPTION_UNDEFINED = 0, + LIMIT_OPTION_DEFAULT = 1, + LIMIT_OPTION_COUNT = 2, + LIMIT_OPTION_WITH_TIES = 3, + UNRECOGNIZED = -1, +} + +enum LockClauseStrength { + LOCK_CLAUSE_STRENGTH_UNDEFINED = 0, + LCS_NONE = 1, + LCS_FORKEYSHARE = 2, + LCS_FORSHARE = 3, + LCS_FORNOKEYUPDATE = 4, + LCS_FORUPDATE = 5, + UNRECOGNIZED = -1, +} + +enum LockWaitPolicy { + LOCK_WAIT_POLICY_UNDEFINED = 0, + LockWaitBlock = 1, + LockWaitSkip = 2, + LockWaitError = 3, + UNRECOGNIZED = -1, +} + +enum KeywordKind { + NO_KEYWORD = 0, + UNRESERVED_KEYWORD = 1, + COL_NAME_KEYWORD = 2, + TYPE_FUNC_NAME_KEYWORD = 3, + RESERVED_KEYWORD = 4, + UNRECOGNIZED = -1, +} + +type Token = unknown; diff --git a/packages/ast-types/tsconfig.json b/packages/ast-types/tsconfig.json new file mode 100644 index 0000000..ee5d1da --- /dev/null +++ b/packages/ast-types/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.node.json" +} diff --git a/packages/eslint-plugin/.gitignore b/packages/eslint-plugin/.gitignore index 7951405..53c37a1 100644 --- a/packages/eslint-plugin/.gitignore +++ b/packages/eslint-plugin/.gitignore @@ -1 +1 @@ -lib \ No newline at end of file +dist \ No newline at end of file diff --git a/packages/eslint-plugin/build.config.ts b/packages/eslint-plugin/build.config.ts new file mode 100644 index 0000000..557f261 --- /dev/null +++ b/packages/eslint-plugin/build.config.ts @@ -0,0 +1,14 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig([ + { + entries: ["src/index", "src/config", "src/rules/check-sql.worker.ts"], + declaration: true, + sourcemap: true, + rollup: { + emitCJS: true, + inlineDependencies: true, + }, + externals: ["typescript"], + }, +]); diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 8be1621..98610ca 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,46 +1,60 @@ { "name": "@ts-safeql/eslint-plugin", "version": "3.1.0", - "main": "lib/index.js", "license": "MIT", "repository": "https://github.com/ts-safeql/safeql/tree/master/packages/eslint-plugin", "files": [ - "lib", + "dist", "package.json" ], + "type": "module", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", + "main": "dist/index.cjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./config": { + "types": "./dist/config.d.ts", + "import": "./dist/config.mjs", + "require": "./dist/config.cjs" + } + }, "scripts": { "demo": "tsx src/index.ts", - "build": "tsc", - "watch": "tsc --watch", - "test": "mocha -r=@esbuild-kit/cjs-loader '**/*.test.ts' --timeout 10000", + "build": "unbuild", + "dev": "unbuild --stub", + "test": "vitest", "lint": "eslint src", "lint!": "eslint src --fix", "clean": "rm -rf lib" }, "devDependencies": { - "@esbuild-kit/cjs-loader": "2.4.2", - "@types/mocha": "10.0.1", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "esbuild-register": "^3.4.2", - "eslint": "^8.39.0", - "libpg-query": "^15.0.2", - "mocha": "^10.2.0", - "tsx": "3.12.6", - "typescript": "^5.3.3" - }, - "dependencies": { "@ts-safeql/generate": "workspace:*", "@ts-safeql/shared": "workspace:*", + "@ts-safeql/sql-ast": "workspace:*", "@ts-safeql/test-utils": "workspace:*", - "@typescript-eslint/utils": "^5.59.0", + "@types/node": "^20.12.8", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@typescript-eslint/rule-tester": "^7.8.0", + "eslint": "^8.57.0", + "libpg-query": "^16.2.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5", + "unbuild": "^2.0.0", + "vitest": "^1.6.0" + }, + "dependencies": { + "@typescript-eslint/utils": "^7.8.0", "chokidar": "^3.5.3", - "esbuild": "0.17.17", - "fp-ts": "^2.13.1", + "fp-ts": "^2.16.5", "pg-connection-string": "2.5.0", "postgres": "^3.3.4", - "recast": "^0.22.0", - "synckit": "^0.8.5", + "synckit": "^0.9.0", "ts-pattern": "^4.2.2", "zod": "^3.21.4", "zod-to-json-schema": "3.20.1" @@ -48,4 +62,4 @@ "peerDependencies": { "libpg-query": ">=13.2.5" } -} +} \ No newline at end of file diff --git a/packages/eslint-plugin/src/config.ts b/packages/eslint-plugin/src/config.ts new file mode 100644 index 0000000..82ac52e --- /dev/null +++ b/packages/eslint-plugin/src/config.ts @@ -0,0 +1,37 @@ +import { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import { Config } from "./rules/RuleOptions"; +import safeqlPlugin from "./plugin"; + +export default { + configs: { + /** + * If you prefer configuring safeql via a config file (safeql.config.ts), use this config. + */ + useConfigFile: { + plugins: { + "@ts-safeql": safeqlPlugin, + }, + rules: { + "@ts-safeql/check-sql": ["error", { useConfigFile: true }], + }, + languageOptions: { + parserOptions: { project: true }, + }, + } satisfies FlatConfig.Config, + + /** + * If you prefer configuring safeql via a flat config, use this config. + */ + connections: (connections: Config["connections"]): FlatConfig.Config => ({ + plugins: { + "@ts-safeql": safeqlPlugin, + }, + rules: { + "@ts-safeql/check-sql": ["error", { connections }], + }, + languageOptions: { + parserOptions: { project: true }, + }, + }), + }, +}; diff --git a/packages/eslint-plugin/src/dirs.ts b/packages/eslint-plugin/src/dirs.ts new file mode 100644 index 0000000..7ef298f --- /dev/null +++ b/packages/eslint-plugin/src/dirs.ts @@ -0,0 +1,3 @@ +import { fileURLToPath } from "node:url"; + +export const distDir = fileURLToPath(new URL("../dist", import.meta.url)); diff --git a/packages/eslint-plugin/src/index.ts b/packages/eslint-plugin/src/index.ts index 13ce29e..abf8056 100644 --- a/packages/eslint-plugin/src/index.ts +++ b/packages/eslint-plugin/src/index.ts @@ -1,4 +1,2 @@ -import rules from "./rules"; -import { defineConfig } from "./rules/check-sql.config"; - -export = { rules, defineConfig }; +export { default as rules } from "./rules"; +export { defineConfig } from "./rules/check-sql.config"; diff --git a/packages/eslint-plugin/src/plugin.ts b/packages/eslint-plugin/src/plugin.ts new file mode 100644 index 0000000..1ec7bed --- /dev/null +++ b/packages/eslint-plugin/src/plugin.ts @@ -0,0 +1,11 @@ +import { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import rules from "./rules"; +import { version } from "../package.json"; + +export default { + rules: rules, + meta: { + name: "safeql", + version: version, + }, +} satisfies FlatConfig.Plugin; diff --git a/packages/eslint-plugin/src/rules/RuleOptions.ts b/packages/eslint-plugin/src/rules/RuleOptions.ts new file mode 100644 index 0000000..d817fbd --- /dev/null +++ b/packages/eslint-plugin/src/rules/RuleOptions.ts @@ -0,0 +1,143 @@ +import { defaultTypeMapping, objectKeysNonEmpty } from "@ts-safeql/shared"; +import z from "zod"; + +const zStringOrRegex = z.union([z.string(), z.object({ regex: z.string() })]); +const zBaseTarget = z.object({ + /** + * Transform the end result of the type. + * + * For example: + * - `"{type}[]"` will transform the type to an array + * - `["colname", "x_colname"]` will replace `colname` with `x_colname` in the type. + * - `["{type}[]", ["colname", x_colname"]]` will do both + */ + transform: z + .union([z.string(), z.array(z.union([z.string(), z.tuple([z.string(), z.string()])]))]) + .optional(), + + /** + * Transform the (column) field key. Can be one of the following: + * - `"snake"` - `userId` → `user_id` + * - `"camel"` - `user_id` → `userId` + * - `"pascal"` - `user_id` → `UserId` + * - `"screaming snake"` - `user_id` → `USER_ID` + */ + fieldTransform: z.enum(["snake", "pascal", "camel", "screaming snake"]).optional(), + + /** + * Whether or not to skip type annotation. + */ + skipTypeAnnotations: z.boolean().optional(), +}); +/** + * A target that acts as a wrapper for the query. For example: + * + * ```ts + * const query = conn.query(sql`SELECT * FROM users`); + * ^^^^^^^^^^ wrapper + * ``` + */ +const zWrapperTarget = z.object({ wrapper: zStringOrRegex }).merge(zBaseTarget); +export type WrapperTarget = z.infer; +/** + * A target that is a tag expression. For example: + * + * ```ts + * const query = sql`SELECT * FROM users`; + * ^^^ tag + * ``` + */ +const zTagTarget = z.object({ tag: zStringOrRegex }).merge(zBaseTarget); +export type TagTarget = z.infer; + +export type ConnectionTarget = WrapperTarget | TagTarget; +const zOverrideTypeResolver = z.union([ + z.string(), + z.object({ parameter: zStringOrRegex, return: z.string() }), +]); +const zBaseSchema = z.object({ + targets: z.union([zWrapperTarget, zTagTarget]).array(), + + /** + * Whether or not keep the connection alive. Change it only if you know what you're doing. + */ + keepAlive: z.boolean().optional(), + + /** + * Override defaults + */ + overrides: z + .object({ + types: z.union([ + z.record(z.enum(objectKeysNonEmpty(defaultTypeMapping)), zOverrideTypeResolver), + z.record(z.string(), zOverrideTypeResolver), + ]), + columns: z.record(z.string(), z.string()), + }) + .partial() + .optional(), + + /** + * Use `undefined` instead of `null` when the value is nullable. + */ + nullAsUndefined: z.boolean().optional(), + + /** + * Mark the property as optional when the value is nullable. + */ + nullAsOptional: z.boolean().optional(), +}); + +export const zConnectionMigration = z.object({ + /** + * The path where the migration files are located. + */ + migrationsDir: z.string(), + + /** + * THIS IS NOT THE PRODUCTION DATABASE. + * + * A connection url to the database. + * This is required since in order to run the migrations, a connection to postgres is required. + * Will be used only to create and drop the shadow database (see `databaseName`). + */ + connectionUrl: z.string().optional(), + + /** + * The name of the shadow database that will be created from the migration files. + */ + databaseName: z.string().optional(), + + /** + * Whether or not should refresh the shadow database when the migration files change. + */ + watchMode: z.boolean().optional(), +}); +const zConnectionUrl = z.object({ + /** + * The connection url to the database + */ + databaseUrl: z.string(), +}); +const zRuleOptionConnection = z.union([ + zBaseSchema.merge(zConnectionMigration), + zBaseSchema.merge(zConnectionUrl), +]); +export type RuleOptionConnection = z.infer; + +export const zConfig = z.object({ + connections: z.union([z.array(zRuleOptionConnection), zRuleOptionConnection]), +}); + +export type Config = z.infer; + +export const UserConfigFile = z.object({ + useConfigFile: z.boolean(), +}); +export type UserConfigFile = z.infer; + +export const Options = z.union([zConfig, UserConfigFile]); +export type Options = z.infer; + +export const RuleOptions = z.array(Options).min(1).max(1); +export type RuleOptions = z.infer; diff --git a/packages/eslint-plugin/src/rules/check-sql.config.ts b/packages/eslint-plugin/src/rules/check-sql.config.ts index 778eb7e..b52a518 100644 --- a/packages/eslint-plugin/src/rules/check-sql.config.ts +++ b/packages/eslint-plugin/src/rules/check-sql.config.ts @@ -1,9 +1,9 @@ -import esbuild from "esbuild"; -import fs from "fs"; +import { createRequire } from "module"; import path from "path"; -import z from "zod"; import { E, pipe } from "../utils/fp-ts"; -import { Config, Options, RuleContext, UserConfigFile, zConfig } from "./check-sql.rule"; +import { RuleContext } from "./check-sql.rule"; +import { Config, Options, UserConfigFile, zConfig } from "./RuleOptions"; +import { InvalidConfigError } from "@ts-safeql/shared"; export function getConfigFromFileWithContext(params: { context: RuleContext; @@ -15,55 +15,32 @@ export function getConfigFromFileWithContext(params: { } return pipe( - getConfigFromFile(params.projectDir, options.format ?? "cjs"), + getConfigFromFile(params.projectDir), E.getOrElseW((message) => { throw new Error(`safeql: ${message}`); - }) + }), ); } -function getConfigFromFile(projectDir: string, format: "esm" | "cjs"): E.Either { - const configFilePath = path.join(projectDir, "safeql.config.ts"); - const tempFileName = `safeql.config.temp-${Date.now()}.js`; - const tempFilePath = path.join(projectDir, tempFileName); - - const removeIfExists = (filePath: string) => { - if (fs.existsSync(filePath)) { - fs.unlinkSync(filePath); - } - }; - +function getConfigFromFile(projectDir: string): E.Either { try { - if (!fs.existsSync(configFilePath)) { - throw new Error(`safeql.config.ts was not found at ${projectDir}`); - } - - const result = esbuild.buildSync({ - entryPoints: [configFilePath], - write: false, - format: format, - }); - - fs.writeFileSync(tempFilePath, result.outputFiles[0].text); - - // eslint-disable-next-line @typescript-eslint/no-var-requires - const rawConfig = require(tempFilePath).default; + const configFilePath = path.join(projectDir, "safeql.config.ts"); + const require = createRequire(import.meta.url); + const rawConfig = require(`tsx/cjs/api`).require(configFilePath, configFilePath).default; if (rawConfig === undefined) { - throw new Error(`safeql.config.ts must export a default value`); + throw new InvalidConfigError(`safeql.config.ts must export a default value`); } const config = zConfig.safeParse(rawConfig); if (!config.success) { - throw new Error(`safeql.config.ts is invalid: ${config.error.message}`); + throw new InvalidConfigError(`safeql.config.ts is invalid: ${config.error.message}`); } return E.right(config.data); } catch (error) { return E.left(`${error}`); - } finally { - removeIfExists(tempFilePath); } } @@ -71,6 +48,6 @@ function isConfigFileRuleOptions(options: Options): options is UserConfigFile { return "useConfigFile" in options; } -export function defineConfig(config: z.infer) { +export function defineConfig(config: Config) { return config; } diff --git a/packages/eslint-plugin/src/rules/check-sql.rule.ts b/packages/eslint-plugin/src/rules/check-sql.rule.ts index 0912d21..60ca433 100644 --- a/packages/eslint-plugin/src/rules/check-sql.rule.ts +++ b/packages/eslint-plugin/src/rules/check-sql.rule.ts @@ -1,18 +1,18 @@ import { ResolvedTarget } from "@ts-safeql/generate"; +import { PostgresError, doesMatchPattern, fmap, InvalidConfigError } from "@ts-safeql/shared"; import { - PostgresError, - defaultTypeMapping, - doesMatchPattern, - fmap, - objectKeysNonEmpty, -} from "@ts-safeql/shared"; -import { ESLintUtils, ParserServices, TSESLint, TSESTree } from "@typescript-eslint/utils"; + ESLintUtils, + ParserServices, + ParserServicesWithTypeInformation, + TSESLint, + TSESTree, +} from "@typescript-eslint/utils"; import pgParser from "libpg-query"; +import path from "node:path"; import { createSyncFn } from "synckit"; import { match } from "ts-pattern"; import ts from "typescript"; -import z from "zod"; -import zodToJsonSchema from "zod-to-json-schema"; +import { zodToJsonSchema } from "zod-to-json-schema"; import { ESTreeUtils } from "../utils"; import { E, J, flow, pipe } from "../utils/fp-ts"; import { getResolvedTargetByTypeNode } from "../utils/get-resolved-target-by-type-node"; @@ -23,19 +23,30 @@ import { getConfigFromFileWithContext } from "./check-sql.config"; import { TypeTransformer, getFinalResolvedTargetString, + getResolvedTargetComparableString, + getResolvedTargetString, reportBaseError, reportDuplicateColumns, reportIncorrectTypeAnnotations, + reportInvalidConfig, reportInvalidQueryError, reportInvalidTypeAnnotations, reportMissingTypeAnnotations, reportPostgresError, shouldLintFile, - getResolvedTargetComparableString, - getResolvedTargetString, transformTypes, } from "./check-sql.utils"; import { WorkerError, WorkerParams, WorkerResult } from "./check-sql.worker"; +import { distDir } from "../dirs"; +import { + RuleOptions, + Config, + RuleOptionConnection, + ConnectionTarget, + TagTarget, + WrapperTarget, +} from "./RuleOptions"; +import { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; const messages = { typeInferenceFailed: "Type inference failed {{error}}", @@ -47,164 +58,16 @@ const messages = { }; export type RuleMessage = keyof typeof messages; -const zStringOrRegex = z.union([z.string(), z.object({ regex: z.string() })]); - -const zBaseTarget = z.object({ - /** - * Transform the end result of the type. - * - * For example: - * - `"{type}[]"` will transform the type to an array - * - `["colname", "x_colname"]` will replace `colname` with `x_colname` in the type. - * - `["{type}[]", ["colname", x_colname"]]` will do both - */ - transform: z - .union([z.string(), z.array(z.union([z.string(), z.tuple([z.string(), z.string()])]))]) - .optional(), - - /** - * Transform the (column) field key. Can be one of the following: - * - `"snake"` - `userId` → `user_id` - * - `"camel"` - `user_id` → `userId` - * - `"pascal"` - `user_id` → `UserId` - * - `"screaming snake"` - `user_id` → `USER_ID` - */ - fieldTransform: z.enum(["snake", "pascal", "camel", "screaming snake"]).optional(), - - /** - * Whether or not to skip type annotation. - */ - skipTypeAnnotations: z.boolean().optional(), -}); - -/** - * A target that acts as a wrapper for the query. For example: - * - * ```ts - * const query = conn.query(sql`SELECT * FROM users`); - * ^^^^^^^^^^ wrapper - * ``` - */ -const zWrapperTarget = z.object({ wrapper: zStringOrRegex }).merge(zBaseTarget); -type WrapperTarget = z.infer; - -/** - * A target that is a tag expression. For example: - * - * ```ts - * const query = sql`SELECT * FROM users`; - * ^^^ tag - * ``` - */ -const zTagTarget = z.object({ tag: zStringOrRegex }).merge(zBaseTarget); -type TagTarget = z.infer; - -export type ConnectionTarget = WrapperTarget | TagTarget; - -const zOverrideTypeResolver = z.union([ - z.string(), - z.object({ parameter: zStringOrRegex, return: z.string() }), -]); - -const zBaseSchema = z.object({ - targets: z.union([zWrapperTarget, zTagTarget]).array(), - - /** - * Whether or not keep the connection alive. Change it only if you know what you're doing. - */ - keepAlive: z.boolean().optional(), - - /** - * Override defaults - */ - overrides: z - .object({ - types: z.union([ - z.record(z.enum(objectKeysNonEmpty(defaultTypeMapping)), zOverrideTypeResolver), - z.record(z.string(), zOverrideTypeResolver), - ]), - columns: z.record(z.string(), z.string()), - }) - .partial() - .optional(), - - /** - * Use `undefined` instead of `null` when the value is nullable. - */ - nullAsUndefined: z.boolean().optional(), - - /** - * Mark the property as optional when the value is nullable. - */ - nullAsOptional: z.boolean().optional(), -}); - -export const zConnectionMigration = z.object({ - /** - * The path where the migration files are located. - */ - migrationsDir: z.string(), - - /** - * THIS IS NOT THE PRODUCTION DATABASE. - * - * A connection url to the database. - * This is required since in order to run the migrations, a connection to postgres is required. - * Will be used only to create and drop the shadow database (see `databaseName`). - */ - connectionUrl: z.string().optional(), - - /** - * The name of the shadow database that will be created from the migration files. - */ - databaseName: z.string().optional(), - - /** - * Whether or not should refresh the shadow database when the migration files change. - */ - watchMode: z.boolean().optional(), -}); - -const zConnectionUrl = z.object({ - /** - * The connection url to the database - */ - databaseUrl: z.string(), -}); - -const zRuleOptionConnection = z.union([ - zBaseSchema.merge(zConnectionMigration), - zBaseSchema.merge(zConnectionUrl), -]); -export type RuleOptionConnection = z.infer; - -export const zConfig = z.object({ - connections: z.union([z.array(zRuleOptionConnection), zRuleOptionConnection]), -}); -export type Config = z.infer; - -export const UserConfigFile = z.object({ - useConfigFile: z.boolean(), - format: z.enum(["esm", "cjs"]).optional(), -}); -export type UserConfigFile = z.infer; - -export const Options = z.union([zConfig, UserConfigFile]); -export type Options = z.infer; - -export const RuleOptions = z.array(Options).min(1).max(1); -export type RuleOptions = z.infer; - export type RuleContext = Readonly>; -const workerPath = require.resolve("./check-sql.worker"); +const workerPath = path.join(distDir, "./rules/check-sql.worker.mjs"); const generateSync = createSyncFn<(params: WorkerParams) => Promise>>( workerPath, { - tsRunner: "esbuild-register", + tsRunner: "tsx", timeout: 1000 * 60 * 5, - } + }, ); function check(params: { @@ -225,7 +88,7 @@ function check(params: { } function isTagMemberValid( - expr: TSESTree.TaggedTemplateExpression + expr: TSESTree.TaggedTemplateExpression, ): expr is TSESTree.TaggedTemplateExpression & ( | { @@ -272,8 +135,8 @@ const pgParseQueryE = (query: string) => { return pipe( E.tryCatch( () => pgParser.parseQuerySync(query), - (error) => PostgresError.to(query, error) - ) + (error) => PostgresError.to(query, error), + ), ); }; @@ -281,7 +144,7 @@ const generateSyncE = flow( generateSync, E.chain(J.parse), E.chainW((parsed) => parsed as unknown as E.Either), - E.mapLeft((error) => error as unknown as WorkerError) + E.mapLeft((error) => error as unknown as WorkerError), ); function reportCheck(params: { @@ -300,18 +163,29 @@ function reportCheck(params: { return pipe( E.Do, - E.bind("parser", () => E.of(context.getSourceCode().parserServices)), - E.bind("checker", ({ parser }) => E.of(parser.program.getTypeChecker())), - E.bind("query", ({ parser, checker }) => - mapTemplateLiteralToQueryText(tag.quasi, parser, checker, params.connection) + E.bind("parser", () => { + return hasParserServicesWithTypeInformation(context.sourceCode.parserServices) + ? E.right(context.sourceCode.parserServices) + : E.left(new InvalidConfigError("Parser services are not available")); + }), + E.bind("checker", ({ parser }) => { + return !parser.program + ? E.left(new InvalidConfigError("Type checker is not available")) + : E.right(parser.program.getTypeChecker()); + }), + E.bindW("query", ({ parser, checker }) => + mapTemplateLiteralToQueryText(tag.quasi, parser, checker, params.connection), ), E.bindW("pgParsed", ({ query }) => pgParseQueryE(query)), - E.bindW("result", ({ query, pgParsed }) => - generateSyncE({ query, pgParsed, connection, target, projectDir }) - ), + E.bindW("result", ({ query, pgParsed }) => { + return generateSyncE({ query, pgParsed, connection, target, projectDir }); + }), E.fold( (error) => { return match(error) + .with({ _tag: "InvalidConfigError" }, (error) => { + return reportInvalidConfig({ context, error, tag }); + }) .with({ _tag: "DuplicateColumnsError" }, (error) => { return reportDuplicateColumns({ context, error, tag }); }) @@ -328,7 +202,7 @@ function reportCheck(params: { { _tag: "InternalError" }, (error) => { return reportBaseError({ context, error, tag }); - } + }, ) .exhaustive(); }, @@ -403,7 +277,7 @@ function reportCheck(params: { target: expected, nullAsOptional: false, nullAsUndefined: false, - }) + }), ), actual: fmap(result.output, (output) => getFinalResolvedTargetString({ @@ -411,15 +285,21 @@ function reportCheck(params: { nullAsOptional: connection.nullAsOptional ?? false, nullAsUndefined: connection.nullAsUndefined ?? false, transform: target.transform, - }) + }), ), }); } - } - ) + }, + ), ); } +function hasParserServicesWithTypeInformation( + parser: Partial | undefined, +): parser is ParserServicesWithTypeInformation { + return parser !== undefined && parser.program !== null; +} + function checkConnectionByTagExpression(params: { context: RuleContext; connection: RuleOptionConnection; @@ -596,13 +476,12 @@ export default createRule({ fixable: "code", docs: { description: "Ensure that sql queries have type annotations", - recommended: "error", - suggestion: true, - requiresTypeChecking: false, + recommended: "recommended", + requiresTypeChecking: true, }, messages: messages, type: "problem", - schema: zodToJsonSchema(RuleOptions, { target: "openApi3" }) as object, + schema: zodToJsonSchema(RuleOptions, { target: "openApi3" }) as JSONSchema4, }, defaultOptions: [], create(context) { @@ -611,8 +490,8 @@ export default createRule({ } const projectDir = memoize({ - key: context.getFilename(), - value: () => locateNearestPackageJsonDir(context.getFilename()), + key: context.filename, + value: () => locateNearestPackageJsonDir(context.filename), }); const config = memoize({ diff --git a/packages/eslint-plugin/src/rules/check-sql.test.ts b/packages/eslint-plugin/src/rules/check-sql.test.ts index ed3a8da..d40174d 100644 --- a/packages/eslint-plugin/src/rules/check-sql.test.ts +++ b/packages/eslint-plugin/src/rules/check-sql.test.ts @@ -3,19 +3,24 @@ import { setupTestDatabase, typeColumnTsTypeEntries, } from "@ts-safeql/test-utils"; -import { ESLintUtils } from "@typescript-eslint/utils"; -import { RuleTester } from "@typescript-eslint/utils/dist/ts-eslint"; -import { after, before, describe, it } from "mocha"; +import { RuleTester } from "@typescript-eslint/rule-tester"; + +import { afterAll, beforeAll, describe, it } from "vitest"; import path from "path"; import { Sql } from "postgres"; import rules from "."; -import { RuleOptionConnection, RuleOptions } from "./check-sql.rule"; +import { RuleOptionConnection, RuleOptions } from "./RuleOptions"; const tsconfigRootDir = path.resolve(__dirname, "../../"); const project = "tsconfig.json"; const filename = path.join(tsconfigRootDir, "src/file.ts"); -const ruleTester = new ESLintUtils.RuleTester({ +RuleTester.describe = describe; +RuleTester.it = it; +RuleTester.itOnly = it.only; +RuleTester.afterAll = afterAll; + +const ruleTester = new RuleTester({ parser: "@typescript-eslint/parser", parserOptions: { project, tsconfigRootDir }, settings: {}, @@ -124,17 +129,14 @@ const runMigrations1 = >(sql: Sql ); `); -RuleTester.describe = describe; -RuleTester.it = it; - RuleTester.describe("check-sql", () => { - RuleTester.it = it; + // RuleTester.it = it; const databaseName = generateTestDatabaseName(); let sql!: Sql>; let dropFn!: () => Promise; - before(async () => { + beforeAll(async () => { const testDatabase = await setupTestDatabase({ databaseName: databaseName, postgresUrl: "postgres://postgres:postgres@localhost:5432/postgres", @@ -146,7 +148,7 @@ RuleTester.describe("check-sql", () => { await runMigrations1(sql); }); - after(async () => { + RuleTester.afterAll(async () => { await sql.end(); await dropFn(); }); @@ -196,7 +198,7 @@ RuleTester.describe("check-sql", () => { function withConnection( connection: RuleOptionConnection, - options?: Partial + options?: Partial, ): RuleOptions { return [{ connections: [{ ...connection, ...options }] }]; } diff --git a/packages/eslint-plugin/src/rules/check-sql.utils.ts b/packages/eslint-plugin/src/rules/check-sql.utils.ts index 4e9e4e8..93ff7aa 100644 --- a/packages/eslint-plugin/src/rules/check-sql.utils.ts +++ b/packages/eslint-plugin/src/rules/check-sql.utils.ts @@ -1,6 +1,7 @@ import { ResolvedTarget } from "@ts-safeql/generate"; import { DuplicateColumnsError, + InvalidConfigError, InvalidMigrationError, InvalidMigrationsPathError, InvalidQueryError, @@ -17,7 +18,8 @@ import { z } from "zod"; import { ESTreeUtils } from "../utils"; import { E, TE, pipe } from "../utils/fp-ts"; import { mapConnectionOptionsToString, parseConnection } from "../utils/pg.utils"; -import { RuleContext, RuleOptionConnection, zConnectionMigration } from "./check-sql.rule"; +import { RuleContext } from "./check-sql.rule"; +import { RuleOptionConnection, zConnectionMigration } from "./RuleOptions"; import { WorkerError } from "./check-sql.worker"; type TypeReplacerString = string; @@ -107,6 +109,23 @@ export function reportBaseError(params: { }); } +export function reportInvalidConfig(params: { + tag: TSESTree.TaggedTemplateExpression; + context: RuleContext; + error: InvalidConfigError; +}) { + const { tag, context, error } = params; + + return context.report({ + node: tag, + messageId: "invalidQuery", + loc: context.sourceCode.getLocFromIndex(tag.quasi.range[0]), + data: { + error: error.message, + }, + }); +} + export function reportDuplicateColumns(params: { tag: TSESTree.TaggedTemplateExpression; context: RuleContext; @@ -230,13 +249,13 @@ export function shouldLintFile(params: RuleContext) { } function isMigrationConnection( - connection: RuleOptionConnection + connection: RuleOptionConnection, ): connection is RuleOptionConnection & z.infer { return "migrationsDir" in connection; } export function isWatchMigrationsDirEnabled( - connection: RuleOptionConnection + connection: RuleOptionConnection, ): connection is RuleOptionConnection & z.infer & { watchMode: true } { return isMigrationConnection(connection) && (connection.watchMode ?? true) === true; } @@ -308,7 +327,7 @@ export function runMigrations(params: { migrationsPath: string; sql: Sql }) { return pipe( TE.Do, TE.chain(() => getMigrationFiles(params.migrationsPath)), - TE.chainW((files) => TE.sequenceSeqArray(files.map(runSingleMigrationFileWithSql))) + TE.chainW((files) => TE.sequenceSeqArray(files.map(runSingleMigrationFileWithSql))), ); } @@ -339,7 +358,7 @@ function getMigrationFiles(migrationsPath: string) { return pipe( E.tryCatch(() => findDeepSqlFiles(migrationsPath), E.toError), TE.fromEither, - TE.mapLeft(InvalidMigrationsPathError.fromErrorC(migrationsPath)) + TE.mapLeft(InvalidMigrationsPathError.fromErrorC(migrationsPath)), ); } @@ -347,7 +366,7 @@ function runSingleMigrationFile(sql: Sql, filePath: string) { return pipe( TE.tryCatch(() => fs.promises.readFile(filePath).then((x) => x.toString()), E.toError), TE.chain((content) => TE.tryCatch(() => sql.unsafe(content), E.toError)), - TE.mapLeft(InvalidMigrationError.fromErrorC(filePath)) + TE.mapLeft(InvalidMigrationError.fromErrorC(filePath)), ); } diff --git a/packages/eslint-plugin/src/rules/check-sql.worker.ts b/packages/eslint-plugin/src/rules/check-sql.worker.ts index af58368..c6fe03f 100644 --- a/packages/eslint-plugin/src/rules/check-sql.worker.ts +++ b/packages/eslint-plugin/src/rules/check-sql.worker.ts @@ -9,8 +9,8 @@ import { InternalError, InvalidMigrationError, InvalidMigrationsPathError, - LibPgQueryAST, } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; import path from "path"; import { runAsWorker } from "synckit"; import { match } from "ts-pattern"; @@ -18,14 +18,14 @@ import { createConnectionManager } from "../utils/connection-manager"; import { J, pipe, TE } from "../utils/fp-ts"; import { initDatabase } from "../utils/pg.utils"; import { createWatchManager } from "../utils/watch-manager"; -import { ConnectionTarget, RuleOptionConnection } from "./check-sql.rule"; import { ConnectionPayload, + getConnectionStartegyByRuleOptionConnection, getMigrationDatabaseMetadata, isWatchMigrationsDirEnabled, - getConnectionStartegyByRuleOptionConnection, runMigrations, } from "./check-sql.utils"; +import { ConnectionTarget, RuleOptionConnection } from "./RuleOptions"; export interface WorkerParams { connection: RuleOptionConnection; @@ -51,7 +51,7 @@ runAsWorker(async (params: WorkerParams) => { const result = await pipe( TE.Do, - TE.chain(() => workerHandler(params)) + TE.chain(() => workerHandler(params)), )(); if (params.connection.keepAlive === false) { @@ -74,7 +74,7 @@ function workerHandler(params: WorkerParams): TE.TaskEither - TE.right(connections.getOrCreate(databaseUrl)) + TE.right(connections.getOrCreate(databaseUrl)), ) .with({ type: "migrations" }, ({ migrationsDir, databaseName, connectionUrl }) => { const { connectionOptions, databaseUrl } = getMigrationDatabaseMetadata({ @@ -91,7 +91,7 @@ function workerHandler(params: WorkerParams): TE.TaskEither initDatabase(connectionOptions)), TE.chainW(() => runMigrations({ migrationsPath, sql })), - TE.map(() => connectionPayload) + TE.map(() => connectionPayload), ); } @@ -115,6 +115,10 @@ function workerHandler(params: WorkerParams): TE.TaskEither { + console.log("result", result); + return result; + }), ); } diff --git a/packages/eslint-plugin/src/utils/connection-manager.ts b/packages/eslint-plugin/src/utils/connection-manager.ts index 4885c2d..d81b2ca 100644 --- a/packages/eslint-plugin/src/utils/connection-manager.ts +++ b/packages/eslint-plugin/src/utils/connection-manager.ts @@ -1,6 +1,6 @@ import postgres, { Sql } from "postgres"; import { match } from "ts-pattern"; -import { RuleOptionConnection } from "../rules/check-sql.rule"; +import { RuleOptionConnection } from "../rules/RuleOptions"; import { ConnectionPayload, getConnectionStartegyByRuleOptionConnection, @@ -19,7 +19,7 @@ export function createConnectionManager() { function getOrCreateConnection( databaseUrl: string, - connectionMap: Map + connectionMap: Map, ): ConnectionPayload { return pipe( O.fromNullable(connectionMap.get(databaseUrl)), @@ -29,8 +29,8 @@ function getOrCreateConnection( connectionMap.set(databaseUrl, sql); return { sql, databaseUrl, isFirst: true }; }, - (sql) => ({ sql, databaseUrl, isFirst: false }) - ) + (sql) => ({ sql, databaseUrl, isFirst: false }), + ), ); } diff --git a/packages/eslint-plugin/src/utils/estree.utils.ts b/packages/eslint-plugin/src/utils/estree.utils.ts index 9a59b5a..12b845b 100644 --- a/packages/eslint-plugin/src/utils/estree.utils.ts +++ b/packages/eslint-plugin/src/utils/estree.utils.ts @@ -55,7 +55,7 @@ export function isCallExpression(node?: TSESTree.Node): node is TSESTree.CallExp } export function isTaggedTemplateExpression( - node?: TSESTree.Node + node?: TSESTree.Node, ): node is TSESTree.TaggedTemplateExpression { return node?.type === TSESTree.AST_NODE_TYPES.TaggedTemplateExpression; } diff --git a/packages/eslint-plugin/src/utils/fp-ts.ts b/packages/eslint-plugin/src/utils/fp-ts.ts index d24d6aa..353a7d7 100644 --- a/packages/eslint-plugin/src/utils/fp-ts.ts +++ b/packages/eslint-plugin/src/utils/fp-ts.ts @@ -1,6 +1,5 @@ -export { json } from "fp-ts"; -export * as E from "fp-ts/Either"; -export { flow, identity, pipe } from "fp-ts/function"; -export * as O from "fp-ts/Option"; -export * as TE from "fp-ts/TaskEither"; -export * as J from "fp-ts/Json"; +export * as E from "fp-ts/lib/Either.js"; +export { flow, identity, pipe } from "fp-ts/lib/function.js"; +export * as O from "fp-ts/lib/Option.js"; +export * as TE from "fp-ts/lib/TaskEither.js"; +export * as J from "fp-ts/lib/Json.js"; diff --git a/packages/eslint-plugin/src/utils/get-resolved-target-by-type-node.ts b/packages/eslint-plugin/src/utils/get-resolved-target-by-type-node.ts index cb47b19..fa91616 100644 --- a/packages/eslint-plugin/src/utils/get-resolved-target-by-type-node.ts +++ b/packages/eslint-plugin/src/utils/get-resolved-target-by-type-node.ts @@ -10,7 +10,7 @@ type GetResolvedTargetByTypeNodeParams = { }; export function getResolvedTargetByTypeNode( - params: GetResolvedTargetByTypeNodeParams + params: GetResolvedTargetByTypeNodeParams, ): ResolvedTarget { if ( params.typeNode.type === TSESTree.AST_NODE_TYPES.TSLiteralType && @@ -23,7 +23,7 @@ export function getResolvedTargetByTypeNode( return { kind: "union", value: params.typeNode.types.map((type) => - getResolvedTargetByTypeNode({ ...params, typeNode: type }) + getResolvedTargetByTypeNode({ ...params, typeNode: type }), ), }; } @@ -95,7 +95,7 @@ export function getResolvedTargetByTypeNode( } const type = params.checker.getTypeFromTypeNode( - params.parser.esTreeNodeToTSNodeMap.get(params.typeNode) + params.parser.esTreeNodeToTSNodeMap.get(params.typeNode), ); return getTypePropertiesFromTypeReference({ @@ -115,7 +115,7 @@ export function getResolvedTargetByTypeNode( params.typeNode.types.flatMap((type) => { const targetEntry = getResolvedTargetByTypeNode({ ...params, typeNode: type }); return targetEntry.kind === "object" ? targetEntry.value : []; - }) + }), ).entries(), ], }; @@ -193,7 +193,7 @@ function getTypePropertiesFromTypeReference(params: { return { kind: "union", value: type.types.map((type) => - getTypePropertiesFromTypeReference({ type, typeNode, parser, checker, reservedTypes }) + getTypePropertiesFromTypeReference({ type, typeNode, parser, checker, reservedTypes }), ), }; } @@ -248,7 +248,7 @@ function getTypePropertiesFromTypeReference(params: { const propType = checker.getTypeOfSymbolAtLocation( property, - parser.esTreeNodeToTSNodeMap.get(typeNode) + parser.esTreeNodeToTSNodeMap.get(typeNode), ); const propTypeString = checker.typeToString(propType); diff --git a/packages/eslint-plugin/src/utils/pg.utils.ts b/packages/eslint-plugin/src/utils/pg.utils.ts index cc0ce7f..8506a84 100644 --- a/packages/eslint-plugin/src/utils/pg.utils.ts +++ b/packages/eslint-plugin/src/utils/pg.utils.ts @@ -1,6 +1,6 @@ import { DatabaseInitializationError } from "@ts-safeql/shared"; import { spawn, ChildProcessWithoutNullStreams } from "child_process"; -import { parse } from "pg-connection-string"; +import pgConnectionString from "pg-connection-string"; import { pipe, TE } from "./fp-ts"; export interface ConnectionOptions { @@ -16,7 +16,7 @@ export function mapConnectionOptionsToString(connectionOptions: ConnectionOption } export function parseConnection(databaseUrl: string): ConnectionOptions { - const connection = parse(databaseUrl); + const connection = pgConnectionString.parse(databaseUrl); if (connection.host === null) { throw new Error("Could not resolve database host"); @@ -52,7 +52,7 @@ export function initDatabase(connection: ConnectionOptions) { TE.Do, TE.chain(() => dropDatabase(connection)), TE.altW(() => TE.right(undefined)), - TE.chain(() => createDatabase(connection)) + TE.chain(() => createDatabase(connection)), ); } @@ -70,7 +70,7 @@ export function createDatabase(connection: ConnectionOptions) { ], { env: { ...process.env, PGPASSWORD: connection.password }, - } + }, ); return execToTaskEither(exec, DatabaseInitializationError.to); @@ -92,7 +92,7 @@ export function dropDatabase(connection: ConnectionOptions) { ], { env: { ...process.env, PGPASSWORD: connection.password }, - } + }, ); return execToTaskEither(exec, DatabaseInitializationError.to); @@ -100,7 +100,7 @@ export function dropDatabase(connection: ConnectionOptions) { function execToTaskEither( exec: ChildProcessWithoutNullStreams, - mapLeft: (error: unknown) => L + mapLeft: (error: unknown) => L, ) { return TE.tryCatch( () => @@ -108,7 +108,7 @@ function execToTaskEither( exec.stderr.on("data", (x) => reject(new Error(x))); exec.on("exit", (code) => (code === 0 ? resolve() : reject(new Error(code + "")))); }), - mapLeft + mapLeft, ); } diff --git a/packages/eslint-plugin/src/utils/ts-pg.utils.ts b/packages/eslint-plugin/src/utils/ts-pg.utils.ts index b4dc183..a7243fe 100644 --- a/packages/eslint-plugin/src/utils/ts-pg.utils.ts +++ b/packages/eslint-plugin/src/utils/ts-pg.utils.ts @@ -7,7 +7,7 @@ import { import { TSESTreeToTSNode } from "@typescript-eslint/typescript-estree"; import { ParserServices, TSESTree } from "@typescript-eslint/utils"; import ts, { TypeChecker } from "typescript"; -import { RuleOptionConnection } from "../rules/check-sql.rule"; +import { RuleOptionConnection } from "../rules/RuleOptions"; import { E, pipe } from "./fp-ts"; import { TSUtils } from "./ts.utils"; @@ -15,7 +15,7 @@ export function mapTemplateLiteralToQueryText( quasi: TSESTree.TemplateLiteral, parser: ParserServices, checker: ts.TypeChecker, - options: RuleOptionConnection + options: RuleOptionConnection, ) { let $idx = 0; let $queryText = ""; @@ -30,7 +30,7 @@ export function mapTemplateLiteralToQueryText( const expression = quasi.expressions[$idx]; const pgType = pipe(mapExpressionToTsTypeString({ expression, parser, checker }), (params) => - getPgTypeFromTsType({ ...params, checker, options }) + getPgTypeFromTsType({ ...params, checker, options }), ); if (E.isLeft(pgType)) { @@ -124,13 +124,13 @@ function getPgTypeFromTsType(params: { if (whenTrueType === undefined || whenFalseType === undefined) { return E.left( - `Unsupported conditional expression flags (true = ${whenTrue.flags}, false = ${whenFalse.flags})` + `Unsupported conditional expression flags (true = ${whenTrue.flags}, false = ${whenFalse.flags})`, ); } if (whenTrueType !== whenFalseType) { return E.left( - `Conditional expression must have the same type (true = ${whenTrueType}, false = ${whenFalseType})` + `Conditional expression must have the same type (true = ${whenTrueType}, false = ${whenFalseType})`, ); } @@ -149,7 +149,7 @@ function getPgTypeFromTsType(params: { return pipe( E.Do, E.chain(() => getPgTypeFromTsTypeUnion({ types: type.resolvedTypeArguments[0].types })), - E.map((pgType) => `${pgType}[]`) + E.map((pgType) => `${pgType}[]`), ); } } @@ -196,7 +196,7 @@ function getPgTypeFromTsType(params: { doesMatchPattern({ pattern: typeof entry.tsType === "string" ? entry.tsType : entry.tsType.parameter, text: singularType, - }) + }), ); if (override !== undefined) { diff --git a/packages/eslint-plugin/src/utils/ts.utils.ts b/packages/eslint-plugin/src/utils/ts.utils.ts index 290e654..c987a6a 100644 --- a/packages/eslint-plugin/src/utils/ts.utils.ts +++ b/packages/eslint-plugin/src/utils/ts.utils.ts @@ -12,7 +12,7 @@ export const TSUtils = { }, isTsArrayUnionType( checker: ts.TypeChecker, - type: ts.Type + type: ts.Type, ): type is ts.ObjectType & { objectFlags: ts.ObjectFlags.Reference; resolvedTypeArguments: (ts.TypeReference & { types: [ts.UnionType] })[]; diff --git a/packages/eslint-plugin/src/utils/watch-manager.ts b/packages/eslint-plugin/src/utils/watch-manager.ts index a0347e5..f88f043 100644 --- a/packages/eslint-plugin/src/utils/watch-manager.ts +++ b/packages/eslint-plugin/src/utils/watch-manager.ts @@ -1,7 +1,7 @@ import chokidar from "chokidar"; import path from "path"; import { z } from "zod"; -import { RuleOptionConnection, zConnectionMigration } from "../rules/check-sql.rule"; +import { RuleOptionConnection, zConnectionMigration } from "../rules/RuleOptions"; import { DEFAULT_CONNECTION_URL, getDatabaseName, @@ -26,7 +26,7 @@ interface WatchMigrationsDirParams { export function watchMigrationsDir( params: WatchMigrationsDirParams, - watchers: Map + watchers: Map, ) { const migrationsPath = path.join(params.projectDir, params.connection.migrationsDir); diff --git a/packages/eslint-plugin/tsconfig.json b/packages/eslint-plugin/tsconfig.json index 8f672f9..4c9ab8e 100644 --- a/packages/eslint-plugin/tsconfig.json +++ b/packages/eslint-plugin/tsconfig.json @@ -1,7 +1,4 @@ { "extends": "../../tsconfig.node.json", - "compilerOptions": { - "outDir": "lib" - }, "include": ["src/**/*"], } diff --git a/packages/generate/.gitignore b/packages/generate/.gitignore index 7951405..53c37a1 100644 --- a/packages/generate/.gitignore +++ b/packages/generate/.gitignore @@ -1 +1 @@ -lib \ No newline at end of file +dist \ No newline at end of file diff --git a/packages/generate/build.config.ts b/packages/generate/build.config.ts new file mode 100644 index 0000000..d3c75c6 --- /dev/null +++ b/packages/generate/build.config.ts @@ -0,0 +1,13 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig([ + { + entries: ["index"], + declaration: true, + sourcemap: true, + rollup: { + emitCJS: true, + inlineDependencies: true, + }, + }, +]); diff --git a/packages/generate/index.ts b/packages/generate/index.ts index 1f8bd2b..5142af0 100644 --- a/packages/generate/index.ts +++ b/packages/generate/index.ts @@ -1,8 +1,8 @@ -export { +export type { GenerateError, GenerateParams, GenerateResult, ResolvedTargetEntry, ResolvedTarget, - createGenerator, } from "./src/generate"; +export { createGenerator } from "./src/generate"; diff --git a/packages/generate/package.json b/packages/generate/package.json index 09e23f5..23e4a0e 100644 --- a/packages/generate/package.json +++ b/packages/generate/package.json @@ -2,39 +2,49 @@ "name": "@ts-safeql/generate", "version": "3.1.0", "description": "", - "main": "lib/index.js", "license": "MIT", "repository": "https://github.com/ts-safeql/safeql/tree/master/packages/eslint-plugin", "files": [ - "lib", + "dist", "package.json" ], + "type": "module", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", + "main": "dist/index.cjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, "scripts": { "demo": "tsx index.ts", - "build": "tsc", - "watch": "tsc --watch", - "test": "mocha -r=@esbuild-kit/cjs-loader '**/*.test.ts'", + "build": "unbuild", + "dev": "unbuild --stub", + "test": "vitest", "lint": "eslint src", "lint!": "eslint src --fix", "clean": "rm -rf lib" }, "devDependencies": { - "@esbuild-kit/cjs-loader": "^2.4.2", - "@types/mocha": "^10.0.1", "@types/node": "^18.15.11", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "libpg-query": "^15.0.2", - "mocha": "^10.2.0", - "tsx": "^4.6.2", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "libpg-query": "^16.2.0", + "tsx": "^4.9.1", + "typescript": "^5.4.5", + "unbuild": "^2.0.0", + "vitest": "^1.6.0" }, "dependencies": { "@ts-safeql/shared": "workspace:3.1.0", + "@ts-safeql/sql-ast": "workspace:3.1.0", "@ts-safeql/test-utils": "workspace:0.0.16", "fp-ts": "^2.13.1", "pg-connection-string": "^2.5.0", "postgres": "^3.3.4" } -} +} \ No newline at end of file diff --git a/packages/generate/src/ast-decribe.utils.ts b/packages/generate/src/ast-decribe.utils.ts index 0a94288..c78f66c 100644 --- a/packages/generate/src/ast-decribe.utils.ts +++ b/packages/generate/src/ast-decribe.utils.ts @@ -1,25 +1,25 @@ -import { LibPgQueryAST } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; export function isColumnStarRef( - fields: LibPgQueryAST.Node[] + fields: LibPgQueryAST.Node[], ): fields is [{ A_Star: LibPgQueryAST.AStar }] { return isSingleCell(fields) && fields[0]?.A_Star !== undefined; } export function isColumnTableStarRef( - fields: LibPgQueryAST.Node[] + fields: LibPgQueryAST.Node[], ): fields is [{ String: LibPgQueryAST.String }, { A_Star: LibPgQueryAST.AStar }] { return isTuple(fields) && fields[0].String !== undefined && fields[1].A_Star !== undefined; } export function isColumnUnknownRef( - fields: LibPgQueryAST.Node[] + fields: LibPgQueryAST.Node[], ): fields is [{ String: LibPgQueryAST.String }] { return isSingleCell(fields) && fields[0].String !== undefined; } export function isColumnTableColumnRef( - fields: LibPgQueryAST.Node[] + fields: LibPgQueryAST.Node[], ): fields is [{ String: LibPgQueryAST.String }, { String: LibPgQueryAST.String }] { return isTuple(fields) && fields[0].String !== undefined && fields[1].String !== undefined; } diff --git a/packages/generate/src/ast-describe.ts b/packages/generate/src/ast-describe.ts index 32c34ae..63cd26d 100644 --- a/packages/generate/src/ast-describe.ts +++ b/packages/generate/src/ast-describe.ts @@ -1,4 +1,5 @@ -import { LibPgQueryAST, fmap, normalizeIndent } from "@ts-safeql/shared"; +import { fmap, normalizeIndent } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; import { isColumnStarRef, isColumnTableColumnRef, @@ -27,7 +28,7 @@ type ASTDescriptionContext = ASTDescriptionOptions & { resolver: SourcesResolver; resolved: WeakMap; toTypeScriptType: ( - params: { oid: number; baseOid: number | null } | { name: string } + params: { oid: number; baseOid: number | null } | { name: string }, ) => ASTDescribedColumnType; }; @@ -77,7 +78,7 @@ export function getASTDescription(params: ASTDescriptionOptions): Map { if ("name" in p) { return { kind: "type", value: params.typesMap.get(p.name)?.value ?? "unknown" }; @@ -246,7 +247,7 @@ function getDescribedArrayExpr({ const types = dedupDescribedColumnTypes( node.elements .flatMap((node) => getDescribedNode({ alias: undefined, node, context })) - .map((x) => x.type) + .map((x) => x.type), ); return [ @@ -333,7 +334,7 @@ function getDescribedTypeCast({ } function getDescribedResTarget( - params: GetDescribedParamsOf + params: GetDescribedParamsOf, ): ASTDescribedColumn[] { const { node, context } = params; @@ -349,7 +350,7 @@ function getDescribedResTarget( } function getDescribedFuncCall( - params: GetDescribedParamsOf + params: GetDescribedParamsOf, ): ASTDescribedColumn[] { const functionName = params.node.funcname.at(-1)?.String?.sval; @@ -670,7 +671,7 @@ function asNonNullableType(type: ASTDescribedColumnType): ASTDescribedColumnType return type; case "union": { const filtered = type.value.filter( - (described) => described.kind !== "type" || described.value !== "null" + (described) => described.kind !== "type" || described.value !== "null", ); if (filtered.length === 0) { diff --git a/packages/generate/src/ast-get-sources.ts b/packages/generate/src/ast-get-sources.ts index d8b4376..f76c6e0 100644 --- a/packages/generate/src/ast-get-sources.ts +++ b/packages/generate/src/ast-get-sources.ts @@ -1,4 +1,5 @@ -import { LibPgQueryAST, assertNever, fmap } from "@ts-safeql/shared"; +import { assertNever, fmap } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; import { PgColRow } from "./generate"; import { FlattenedRelationWithJoins } from "./utils/get-relations-with-joins"; @@ -195,7 +196,7 @@ export function getSources({ sources.push([source.name, source]); const resolvedColumns = getColumnSources( - node.RangeSubselect.subquery.SelectStmt.fromClause + node.RangeSubselect.subquery.SelectStmt.fromClause, ).columns.map((x) => x.column); for (const column of resolvedColumns) { diff --git a/packages/generate/src/generate.test.ts b/packages/generate/src/generate.test.ts index 7754143..98666a6 100644 --- a/packages/generate/src/generate.test.ts +++ b/packages/generate/src/generate.test.ts @@ -1,11 +1,11 @@ import { InternalError, normalizeIndent } from "@ts-safeql/shared"; import { generateTestDatabaseName, setupTestDatabase } from "@ts-safeql/test-utils"; import assert from "assert"; -import * as TE from "fp-ts/TaskEither"; -import * as O from "fp-ts/Option"; -import { flow, identity, pipe } from "fp-ts/function"; +import * as TE from "fp-ts/lib/TaskEither"; +import * as O from "fp-ts/lib/Option"; +import { flow, identity, pipe } from "fp-ts/lib/function"; import { parseQuery } from "libpg-query"; -import { before, test } from "mocha"; +import { beforeAll, afterAll, test } from "vitest"; import { Sql } from "postgres"; import { GenerateParams, ResolvedTargetEntry, createGenerator } from "./generate"; @@ -127,7 +127,7 @@ function runMigrations(sql: SQL) { let sql!: SQL; let dropFn!: () => Promise; -before(async () => { +beforeAll(async () => { const testDatabase = await setupTestDatabase({ databaseName: generateTestDatabaseName(), postgresUrl: "postgres://postgres:postgres@localhost:5432/postgres", @@ -139,7 +139,7 @@ before(async () => { await runMigrations(sql); }); -after(async () => { +afterAll(async () => { await sql.end(); await dropFn(); }); @@ -176,7 +176,7 @@ const testQuery = async (params: { }, }, ...params.options, - }) + }), ), TE.chainW(({ result }) => TE.fromEither(result)), TE.match( @@ -186,8 +186,8 @@ const testQuery = async (params: { O.fromNullable, O.fold( () => assert.fail(error), - (expectedError) => assert.strictEqual(error.message, expectedError) - ) + (expectedError) => assert.strictEqual(error.message, expectedError), + ), ), ({ output, unknownColumns }) => { assert.deepEqual(output?.value ?? null, params.expected); @@ -195,8 +195,8 @@ const testQuery = async (params: { if (unknownColumns.length > 0) { assert.deepEqual(unknownColumns, params.unknownColumns); } - } - ) + }, + ), )(); }; diff --git a/packages/generate/src/generate.ts b/packages/generate/src/generate.ts index 9536a41..0aafa1e 100644 --- a/packages/generate/src/generate.ts +++ b/packages/generate/src/generate.ts @@ -6,12 +6,12 @@ import { getOrSetFromMapWithEnabled, groupBy, IdentiferCase, - LibPgQueryAST, PostgresError, toCase, } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; import { either } from "fp-ts"; -import postgres, { PostgresError as OriginalPostgresError } from "postgres"; +import postgres from "postgres"; import { ASTDescribedColumn, getASTDescription } from "./ast-describe"; import { ColType } from "./utils/colTypes"; import { getNonNullableColumns } from "./utils/get-nonnullable-columns"; @@ -121,7 +121,7 @@ type GenerateContext = { async function generate( params: GenerateParams, - cache: Cache + cache: Cache, ): Promise> { const { sql, query, cacheKey, cacheMetadata = true } = params; @@ -213,7 +213,7 @@ async function generate( } const duplicateCols = result.columns.filter((col, index) => - result.columns.find((c, i) => c.name === col.name && i != index) + result.columns.find((c, i) => c.name === col.name && i != index), ); if (duplicateCols.length > 0) { @@ -226,7 +226,7 @@ async function generate( DuplicateColumnsError.of({ queryText: query, columns: dupes.map((x) => `${x.table}.${x.column}`), - }) + }), ); } @@ -282,14 +282,14 @@ async function generate( query: query, }); } catch (e) { - if (e instanceof OriginalPostgresError) { + if (e instanceof postgres.PostgresError) { return either.left( PostgresError.of({ queryText: query, message: e.message, line: e.line, position: e.position, - }) + }), ); } @@ -320,7 +320,7 @@ function getTypedColumnEntries(params: { context: GenerateContext; }): Extract { const value = params.context.columns.map((col) => - getResolvedTargetEntry({ col, context: params.context }) + getResolvedTargetEntry({ col, context: params.context }), ); return { kind: "object", value }; @@ -423,7 +423,7 @@ function getResolvedTargetEntry(params: { ({ values }): ResolvedTarget => ({ kind: "union", value: values.map((x): ResolvedTarget => ({ kind: "type", value: `'${x}'` })), - }) + }), ); const valueAsType = getTsTypeFromPgTypeOid({ @@ -433,7 +433,7 @@ function getResolvedTargetEntry(params: { const valueAsOverride = (() => { const pgType = params.context.pgTypes.get( - params.col.introspected?.colTypeOid ?? params.col.described.type + params.col.introspected?.colTypeOid ?? params.col.described.type, ); if (params.context.overrides?.types === undefined || pgType === undefined) { diff --git a/packages/generate/src/utils/get-nonnullable-columns.test.ts b/packages/generate/src/utils/get-nonnullable-columns.test.ts index 80f7e75..b32ba1e 100644 --- a/packages/generate/src/utils/get-nonnullable-columns.test.ts +++ b/packages/generate/src/utils/get-nonnullable-columns.test.ts @@ -1,9 +1,9 @@ import { InternalError } from "@ts-safeql/shared"; import assert from "assert"; import { taskEither } from "fp-ts"; -import { flow, identity, pipe } from "fp-ts/function"; +import { flow, identity, pipe } from "fp-ts/lib/function"; import parser from "libpg-query"; -import { test } from "mocha"; +import { test } from "vitest"; import { getNonNullableColumns } from "./get-nonnullable-columns"; const cases: { @@ -72,7 +72,7 @@ export const getNonNullableColumnsTE = flow( parser.parseQuery, taskEither.tryCatchK(identity, InternalError.to), taskEither.map(getNonNullableColumns), - taskEither.map((set) => Array.from(set)) + taskEither.map((set) => Array.from(set)), ); for (const { query, expected, only } of cases) { @@ -82,8 +82,8 @@ for (const { query, expected, only } of cases) { getNonNullableColumnsTE(query), taskEither.match( (error) => assert.fail(error.message), - (result) => assert.deepEqual(result, expected) - ) + (result) => assert.deepEqual(result, expected), + ), )(); }); } diff --git a/packages/generate/src/utils/get-nonnullable-columns.ts b/packages/generate/src/utils/get-nonnullable-columns.ts index c70d2c4..30c676a 100644 --- a/packages/generate/src/utils/get-nonnullable-columns.ts +++ b/packages/generate/src/utils/get-nonnullable-columns.ts @@ -1,4 +1,5 @@ -import { LibPgQueryAST, assertNever } from "@ts-safeql/shared"; +import { assertNever } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; // Function names that are always non-nullable. const nonNullFunctions: Set = new Set([ @@ -76,7 +77,7 @@ function concatStringNodes(nodes: LibPgQueryAST.Node[] | undefined): string { function isColumnNonNullable( val: LibPgQueryAST.Node | undefined, - root: LibPgQueryAST.ParseResult + root: LibPgQueryAST.ParseResult, ): boolean { if (val === undefined) { return false; @@ -154,7 +155,7 @@ function isColumnNonNullable( if (stmt?.stmt?.SelectStmt?.whereClause) { const whereClause = stmt.stmt.SelectStmt.whereClause; const whereClauseColumnName = concatStringNodes( - whereClause.NullTest?.arg?.ColumnRef?.fields + whereClause.NullTest?.arg?.ColumnRef?.fields, ); if ( @@ -252,7 +253,7 @@ function getTargetName(target: LibPgQueryAST.ResTarget): string { function getNonNullableColumnsInSelectStmt( stmt: LibPgQueryAST.SelectStmt, - root: LibPgQueryAST.ParseResult + root: LibPgQueryAST.ParseResult, ): Set { const nonNullableColumns = new Set(); diff --git a/packages/generate/src/utils/get-relations-with-joins.test.ts b/packages/generate/src/utils/get-relations-with-joins.test.ts index e8a47dc..d35f3ae 100644 --- a/packages/generate/src/utils/get-relations-with-joins.test.ts +++ b/packages/generate/src/utils/get-relations-with-joins.test.ts @@ -1,9 +1,10 @@ -import { InternalError, LibPgQueryAST } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; +import { InternalError } from "@ts-safeql/shared"; import assert from "assert"; import { taskEither } from "fp-ts"; -import { flow, identity, pipe } from "fp-ts/function"; +import { flow, identity, pipe } from "fp-ts/lib/function"; import parser from "libpg-query"; -import { test } from "mocha"; +import { test } from "vitest"; import { getRelationsWithJoins } from "./get-relations-with-joins"; const cases: { @@ -15,7 +16,7 @@ const cases: { alias: string | undefined; type: LibPgQueryAST.JoinType; name: string; - }[] + }[], ][]; }[] = [ { @@ -117,7 +118,7 @@ const cases: { export const getRelationsWithJoinsTE = flow( parser.parseQuery, taskEither.tryCatchK(identity, InternalError.to), - taskEither.map(getRelationsWithJoins) + taskEither.map(getRelationsWithJoins), ); for (const { query, expected, only } of cases) { @@ -127,8 +128,8 @@ for (const { query, expected, only } of cases) { getRelationsWithJoinsTE(query), taskEither.match( (error) => assert.fail(error.message), - (result) => assert.deepEqual([...result.entries()], expected) - ) + (result) => assert.deepEqual([...result.entries()], expected), + ), )(); }); } diff --git a/packages/generate/src/utils/get-relations-with-joins.ts b/packages/generate/src/utils/get-relations-with-joins.ts index e441ddb..67167aa 100644 --- a/packages/generate/src/utils/get-relations-with-joins.ts +++ b/packages/generate/src/utils/get-relations-with-joins.ts @@ -1,4 +1,4 @@ -import { LibPgQueryAST } from "@ts-safeql/shared"; +import * as LibPgQueryAST from "@ts-safeql/sql-ast"; interface Join { type: LibPgQueryAST.JoinType; @@ -28,7 +28,7 @@ export function getRelationsWithJoins(parsed: LibPgQueryAST.ParseResult): Relati function recursiveTraverseJoins( joins: Join[], - joinExpr: LibPgQueryAST.JoinExpr + joinExpr: LibPgQueryAST.JoinExpr, ): { relName: string; joins: Join[]; @@ -68,7 +68,7 @@ export interface FlattenedRelationWithJoins { } export function flattenRelationsWithJoinsMap( - relationsWithJoinsMap: RelationsWithJoinsMap + relationsWithJoinsMap: RelationsWithJoinsMap, ): FlattenedRelationWithJoins[] { const result: FlattenedRelationWithJoins[] = []; diff --git a/packages/generate/tsconfig.json b/packages/generate/tsconfig.json index 8fb43b7..ee5d1da 100644 --- a/packages/generate/tsconfig.json +++ b/packages/generate/tsconfig.json @@ -1,6 +1,3 @@ { - "compilerOptions": { - "outDir": "lib" - }, "extends": "../../tsconfig.node.json" } diff --git a/packages/shared/.gitignore b/packages/shared/.gitignore index a65b417..53c37a1 100644 --- a/packages/shared/.gitignore +++ b/packages/shared/.gitignore @@ -1 +1 @@ -lib +dist \ No newline at end of file diff --git a/packages/shared/build.config.ts b/packages/shared/build.config.ts new file mode 100644 index 0000000..2b6088a --- /dev/null +++ b/packages/shared/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig([ + { + entries: ["src/index"], + declaration: true, + sourcemap: true, + rollup: { + emitCJS: true, + }, + }, +]); diff --git a/packages/shared/package.json b/packages/shared/package.json index 9e2e713..3d6df78 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,35 +1,43 @@ { "name": "@ts-safeql/shared", "version": "3.1.0", - "main": "lib/index.js", - "types": "src/index.ts", "license": "MIT", "repository": "https://github.com/ts-safeql/safeql/tree/master/packages/eslint-plugin", "files": [ - "lib", + "dist", "package.json" ], + "type": "module", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", + "main": "dist/index.cjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, "scripts": { - "build": "tsc", - "watch": "tsc --watch", - "test": "mocha -r=@esbuild-kit/cjs-loader '**/*.test.ts' --timeout 10000", + "build": "unbuild", + "dev": "unbuild --stub", + "test": "vitest", "lint": "eslint src", "lint!": "eslint src --fix", "clean": "rm -rf lib" }, "devDependencies": { - "@esbuild-kit/cjs-loader": "^2.4.2", - "@types/mocha": "^10.0.1", "@types/node": "^18.15.11", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "@typescript-eslint/utils": "^5.59.0", - "eslint": "^8.39.0", - "mocha": "^10.2.0", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "typescript": "^5.4.5", + "unbuild": "^2.0.0", + "vitest": "^1.6.0" }, "dependencies": { + "@typescript-eslint/utils": "^7.8.0", "minimatch": "^9.0.0", "postgres": "^3.3.4" } -} +} \ No newline at end of file diff --git a/packages/shared/src/case.test.ts b/packages/shared/src/case.test.ts index ef86d8c..c3f4e55 100644 --- a/packages/shared/src/case.test.ts +++ b/packages/shared/src/case.test.ts @@ -1,5 +1,5 @@ import assert from "assert"; -import { describe, test } from "mocha"; +import { describe, test } from "vitest"; import { toCamelCase, toPascalCase, toScreamingSnakeCase, toSnakeCase } from "./case"; describe("case", () => { diff --git a/packages/shared/src/common.ts b/packages/shared/src/common.ts index 517c73d..fc1d5fa 100644 --- a/packages/shared/src/common.ts +++ b/packages/shared/src/common.ts @@ -16,8 +16,8 @@ export function validateOneOf(value: unknown, possibilies: readonly T[]): T { if (!possibilies.includes(valueAsT)) { throw new Error( `validation of validateOneOf failed. Expected "${value}" to be one of "${possibilies.join( - ", " - )}"` + ", ", + )}"`, ); } diff --git a/packages/shared/src/errors.ts b/packages/shared/src/errors.ts index b706267..ac47b31 100644 --- a/packages/shared/src/errors.ts +++ b/packages/shared/src/errors.ts @@ -1,6 +1,6 @@ import path from "path"; -import { TSESTree } from "@typescript-eslint/types"; -import { PostgresError as OriginalPostgresError } from "postgres"; +import { TSESTree } from "@typescript-eslint/utils"; +import postgres from "postgres"; export class DatabaseInitializationError extends Error { _tag = "DatabaseInitializationError" as const; @@ -58,6 +58,26 @@ export class InvalidMigrationsPathError extends Error { } } +export class InvalidConfigError extends Error { + _tag = "InvalidConfigError" as const; + + constructor(message: string) { + super(`Invalid configuration (${message})`); + this.message = message; + } + + static of(message: string) { + return new InvalidConfigError(message); + } + + toJSON() { + return { + _tag: this._tag, + message: this.message, + }; + } +} + export class InvalidMigrationError extends Error { _tag = "InvalidMigrationError" as const; @@ -185,7 +205,7 @@ export class PostgresError extends Error { } static to(query: string, error: unknown) { - if (error instanceof OriginalPostgresError) { + if (error instanceof postgres.PostgresError) { return PostgresError.of({ queryText: query, message: error.message, diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 9782beb..3ffa40d 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,6 +1,5 @@ export * from "./case"; export * from "./common"; export * from "./errors"; -export * from "./parsedQuery"; export * from "./pg"; export * from "./matcher"; diff --git a/packages/shared/src/parsedQuery.ts b/packages/shared/src/parsedQuery.ts deleted file mode 100644 index ca628a6..0000000 --- a/packages/shared/src/parsedQuery.ts +++ /dev/null @@ -1,2865 +0,0 @@ -/* eslint-disable @typescript-eslint/no-empty-interface */ -/* eslint-disable @typescript-eslint/ban-types */ -/* eslint-disable @typescript-eslint/no-namespace */ - -// https://raw.githubusercontent.com/pganalyze/libpg_query/f1b475ddcbea7951a7ef825f137abdc54e5a34e4/protobuf/pg_query.proto - -export namespace LibPgQueryAST { - export interface ParseResult { - version: number; - stmts: RawStmt[]; - } - - export interface ScanResult { - version: number; - tokens: ScanToken[]; - } - - export interface Node { - Alias?: Alias | undefined; - RangeVar?: RangeVar | undefined; - TableFunc?: TableFunc | undefined; - Var?: Var | undefined; - Param?: Param | undefined; - Aggref?: Aggref | undefined; - GroupingFunc?: GroupingFunc | undefined; - WindowFunc?: WindowFunc | undefined; - SubscriptingRef?: SubscriptingRef | undefined; - FuncExpr?: FuncExpr | undefined; - NamedArgExpr?: NamedArgExpr | undefined; - OpExpr?: OpExpr | undefined; - DistinctExpr?: DistinctExpr | undefined; - NullIfExpr?: NullIfExpr | undefined; - ScalarArrayOpExpr?: ScalarArrayOpExpr | undefined; - BoolExpr?: BoolExpr | undefined; - SubLink?: SubLink | undefined; - SubPlan?: SubPlan | undefined; - AlternativeSubPlan?: AlternativeSubPlan | undefined; - FieldSelect?: FieldSelect | undefined; - FieldStore?: FieldStore | undefined; - RelabelType?: RelabelType | undefined; - CoerceViaIo?: CoerceViaIO | undefined; - ArrayCoerceExpr?: ArrayCoerceExpr | undefined; - ConvertRowtypeExpr?: ConvertRowtypeExpr | undefined; - CollateExpr?: CollateExpr | undefined; - CaseExpr?: CaseExpr | undefined; - CaseWhen?: CaseWhen | undefined; - CaseTestExpr?: CaseTestExpr | undefined; - ArrayExpr?: ArrayExpr | undefined; - RowExpr?: RowExpr | undefined; - RowCompareExpr?: RowCompareExpr | undefined; - CoalesceExpr?: CoalesceExpr | undefined; - MinMaxExpr?: MinMaxExpr | undefined; - SqlvalueFunction?: SQLValueFunction | undefined; - XmlExpr?: XmlExpr | undefined; - NullTest?: NullTest | undefined; - BooleanTest?: BooleanTest | undefined; - CoerceToDomain?: CoerceToDomain | undefined; - CoerceToDomainValue?: CoerceToDomainValue | undefined; - SetToDefault?: SetToDefault | undefined; - CurrentOfExpr?: CurrentOfExpr | undefined; - NextValueExpr?: NextValueExpr | undefined; - InferenceElem?: InferenceElem | undefined; - TargetEntry?: TargetEntry | undefined; - RangeTblRef?: RangeTblRef | undefined; - JoinExpr?: JoinExpr | undefined; - FromExpr?: FromExpr | undefined; - OnConflictExpr?: OnConflictExpr | undefined; - IntoClause?: IntoClause | undefined; - MergeAction?: MergeAction | undefined; - RawStmt?: RawStmt | undefined; - Query?: Query | undefined; - InsertStmt?: InsertStmt | undefined; - DeleteStmt?: DeleteStmt | undefined; - UpdateStmt?: UpdateStmt | undefined; - MergeStmt?: MergeStmt | undefined; - SelectStmt?: SelectStmt | undefined; - ReturnStmt?: ReturnStmt | undefined; - PlassignStmt?: PLAssignStmt | undefined; - AlterTableStmt?: AlterTableStmt | undefined; - AlterTableCmd?: AlterTableCmd | undefined; - AlterDomainStmt?: AlterDomainStmt | undefined; - SetOperationStmt?: SetOperationStmt | undefined; - GrantStmt?: GrantStmt | undefined; - GrantRoleStmt?: GrantRoleStmt | undefined; - AlterDefaultPrivilegesStmt?: AlterDefaultPrivilegesStmt | undefined; - ClosePortalStmt?: ClosePortalStmt | undefined; - ClusterStmt?: ClusterStmt | undefined; - CopyStmt?: CopyStmt | undefined; - CreateStmt?: CreateStmt | undefined; - DefineStmt?: DefineStmt | undefined; - DropStmt?: DropStmt | undefined; - TruncateStmt?: TruncateStmt | undefined; - CommentStmt?: CommentStmt | undefined; - FetchStmt?: FetchStmt | undefined; - IndexStmt?: IndexStmt | undefined; - CreateFunctionStmt?: CreateFunctionStmt | undefined; - AlterFunctionStmt?: AlterFunctionStmt | undefined; - DoStmt?: DoStmt | undefined; - RenameStmt?: RenameStmt | undefined; - RuleStmt?: RuleStmt | undefined; - NotifyStmt?: NotifyStmt | undefined; - ListenStmt?: ListenStmt | undefined; - UnlistenStmt?: UnlistenStmt | undefined; - TransactionStmt?: TransactionStmt | undefined; - ViewStmt?: ViewStmt | undefined; - LoadStmt?: LoadStmt | undefined; - CreateDomainStmt?: CreateDomainStmt | undefined; - CreatedbStmt?: CreatedbStmt | undefined; - DropdbStmt?: DropdbStmt | undefined; - VacuumStmt?: VacuumStmt | undefined; - ExplainStmt?: ExplainStmt | undefined; - CreateTableAsStmt?: CreateTableAsStmt | undefined; - CreateSeqStmt?: CreateSeqStmt | undefined; - AlterSeqStmt?: AlterSeqStmt | undefined; - VariableSetStmt?: VariableSetStmt | undefined; - VariableShowStmt?: VariableShowStmt | undefined; - DiscardStmt?: DiscardStmt | undefined; - CreateTrigStmt?: CreateTrigStmt | undefined; - CreatePlangStmt?: CreatePLangStmt | undefined; - CreateRoleStmt?: CreateRoleStmt | undefined; - AlterRoleStmt?: AlterRoleStmt | undefined; - DropRoleStmt?: DropRoleStmt | undefined; - LockStmt?: LockStmt | undefined; - ConstraintsSetStmt?: ConstraintsSetStmt | undefined; - ReindexStmt?: ReindexStmt | undefined; - CheckPointStmt?: CheckPointStmt | undefined; - CreateSchemaStmt?: CreateSchemaStmt | undefined; - AlterDatabaseStmt?: AlterDatabaseStmt | undefined; - AlterDatabaseRefreshCollStmt?: AlterDatabaseRefreshCollStmt | undefined; - AlterDatabaseSetStmt?: AlterDatabaseSetStmt | undefined; - AlterRoleSetStmt?: AlterRoleSetStmt | undefined; - CreateConversionStmt?: CreateConversionStmt | undefined; - CreateCastStmt?: CreateCastStmt | undefined; - CreateOpClassStmt?: CreateOpClassStmt | undefined; - CreateOpFamilyStmt?: CreateOpFamilyStmt | undefined; - AlterOpFamilyStmt?: AlterOpFamilyStmt | undefined; - PrepareStmt?: PrepareStmt | undefined; - ExecuteStmt?: ExecuteStmt | undefined; - DeallocateStmt?: DeallocateStmt | undefined; - DeclareCursorStmt?: DeclareCursorStmt | undefined; - CreateTableSpaceStmt?: CreateTableSpaceStmt | undefined; - DropTableSpaceStmt?: DropTableSpaceStmt | undefined; - AlterObjectDependsStmt?: AlterObjectDependsStmt | undefined; - AlterObjectSchemaStmt?: AlterObjectSchemaStmt | undefined; - AlterOwnerStmt?: AlterOwnerStmt | undefined; - AlterOperatorStmt?: AlterOperatorStmt | undefined; - AlterTypeStmt?: AlterTypeStmt | undefined; - DropOwnedStmt?: DropOwnedStmt | undefined; - ReassignOwnedStmt?: ReassignOwnedStmt | undefined; - CompositeTypeStmt?: CompositeTypeStmt | undefined; - CreateEnumStmt?: CreateEnumStmt | undefined; - CreateRangeStmt?: CreateRangeStmt | undefined; - AlterEnumStmt?: AlterEnumStmt | undefined; - AlterTsdictionaryStmt?: AlterTSDictionaryStmt | undefined; - AlterTsconfigurationStmt?: AlterTSConfigurationStmt | undefined; - CreateFdwStmt?: CreateFdwStmt | undefined; - AlterFdwStmt?: AlterFdwStmt | undefined; - CreateForeignServerStmt?: CreateForeignServerStmt | undefined; - AlterForeignServerStmt?: AlterForeignServerStmt | undefined; - CreateUserMappingStmt?: CreateUserMappingStmt | undefined; - AlterUserMappingStmt?: AlterUserMappingStmt | undefined; - DropUserMappingStmt?: DropUserMappingStmt | undefined; - AlterTableSpaceOptionsStmt?: AlterTableSpaceOptionsStmt | undefined; - AlterTableMoveAllStmt?: AlterTableMoveAllStmt | undefined; - SecLabelStmt?: SecLabelStmt | undefined; - CreateForeignTableStmt?: CreateForeignTableStmt | undefined; - ImportForeignSchemaStmt?: ImportForeignSchemaStmt | undefined; - CreateExtensionStmt?: CreateExtensionStmt | undefined; - AlterExtensionStmt?: AlterExtensionStmt | undefined; - AlterExtensionContentsStmt?: AlterExtensionContentsStmt | undefined; - CreateEventTrigStmt?: CreateEventTrigStmt | undefined; - AlterEventTrigStmt?: AlterEventTrigStmt | undefined; - RefreshMatViewStmt?: RefreshMatViewStmt | undefined; - ReplicaIdentityStmt?: ReplicaIdentityStmt | undefined; - AlterSystemStmt?: AlterSystemStmt | undefined; - CreatePolicyStmt?: CreatePolicyStmt | undefined; - AlterPolicyStmt?: AlterPolicyStmt | undefined; - CreateTransformStmt?: CreateTransformStmt | undefined; - CreateAmStmt?: CreateAmStmt | undefined; - CreatePublicationStmt?: CreatePublicationStmt | undefined; - AlterPublicationStmt?: AlterPublicationStmt | undefined; - CreateSubscriptionStmt?: CreateSubscriptionStmt | undefined; - AlterSubscriptionStmt?: AlterSubscriptionStmt | undefined; - DropSubscriptionStmt?: DropSubscriptionStmt | undefined; - CreateStatsStmt?: CreateStatsStmt | undefined; - AlterCollationStmt?: AlterCollationStmt | undefined; - CallStmt?: CallStmt | undefined; - AlterStatsStmt?: AlterStatsStmt | undefined; - A_Expr?: AExpr | undefined; - ColumnRef?: ColumnRef | undefined; - ParamRef?: ParamRef | undefined; - FuncCall?: FuncCall | undefined; - A_Star?: AStar | undefined; - AIndices?: AIndices | undefined; - AIndirection?: AIndirection | undefined; - A_ArrayExpr?: AArrayExpr | undefined; - ResTarget?: ResTarget | undefined; - MultiAssignRef?: MultiAssignRef | undefined; - TypeCast?: TypeCast | undefined; - CollateClause?: CollateClause | undefined; - SortBy?: SortBy | undefined; - WindowDef?: WindowDef | undefined; - RangeSubselect?: RangeSubselect | undefined; - RangeFunction?: RangeFunction | undefined; - RangeTableSample?: RangeTableSample | undefined; - RangeTableFunc?: RangeTableFunc | undefined; - RangeTableFuncCol?: RangeTableFuncCol | undefined; - TypeName?: TypeName | undefined; - ColumnDef?: ColumnDef | undefined; - IndexElem?: IndexElem | undefined; - StatsElem?: StatsElem | undefined; - Constraint?: Constraint | undefined; - DefElem?: DefElem | undefined; - RangeTblEntry?: RangeTblEntry | undefined; - RangeTblFunction?: RangeTblFunction | undefined; - TableSampleClause?: TableSampleClause | undefined; - WithCheckOption?: WithCheckOption | undefined; - SortGroupClause?: SortGroupClause | undefined; - GroupingSet?: GroupingSet | undefined; - WindowClause?: WindowClause | undefined; - ObjectWithArgs?: ObjectWithArgs | undefined; - AccessPriv?: AccessPriv | undefined; - CreateOpClassItem?: CreateOpClassItem | undefined; - TableLikeClause?: TableLikeClause | undefined; - FunctionParameter?: FunctionParameter | undefined; - LockingClause?: LockingClause | undefined; - RowMarkClause?: RowMarkClause | undefined; - XmlSerialize?: XmlSerialize | undefined; - WithClause?: WithClause | undefined; - InferClause?: InferClause | undefined; - OnConflictClause?: OnConflictClause | undefined; - CtesearchClause?: CTESearchClause | undefined; - CtecycleClause?: CTECycleClause | undefined; - CommonTableExpr?: CommonTableExpr | undefined; - MergeWhenClause?: MergeWhenClause | undefined; - RoleSpec?: RoleSpec | undefined; - TriggerTransition?: TriggerTransition | undefined; - PartitionElem?: PartitionElem | undefined; - PartitionSpec?: PartitionSpec | undefined; - PartitionBoundSpec?: PartitionBoundSpec | undefined; - PartitionRangeDatum?: PartitionRangeDatum | undefined; - PartitionCmd?: PartitionCmd | undefined; - VacuumRelation?: VacuumRelation | undefined; - PublicationObjSpec?: PublicationObjSpec | undefined; - PublicationTable?: PublicationTable | undefined; - InlineCodeBlock?: InlineCodeBlock | undefined; - CallContext?: CallContext | undefined; - Integer?: Integer | undefined; - Float?: Float | undefined; - Boolean?: Boolean | undefined; - String?: String | undefined; - BitString?: BitString | undefined; - List?: List | undefined; - IntList?: IntList | undefined; - OidList?: OidList | undefined; - A_Const?: AConst | undefined; - } - - export interface Integer { - /** machine integer */ - ival: number; - } - - export interface Float { - /** string */ - fval: string; - } - - export interface Boolean { - boolval: boolean; - } - - export interface String { - /** string */ - sval: string; - } - - export interface BitString { - /** string */ - bsval: string; - } - - export interface List { - items: Node[]; - } - - export interface OidList { - items: Node[]; - } - - export interface IntList { - items: Node[]; - } - - export interface AConst { - ival?: Integer | undefined; - fval?: Float | undefined; - boolval?: Boolean | undefined; - sval?: String | undefined; - bsval?: BitString | undefined; - isnull?: boolean; - location: number; - } - - export interface Alias { - aliasname: string; - colnames: Node[]; - } - - export interface RangeVar { - catalogname: string; - schemaname: string; - relname: string; - inh: boolean; - relpersistence: string; - alias: Alias | undefined; - location: number; - } - - export interface TableFunc { - nsUris: Node[]; - nsNames: Node[]; - docexpr: Node | undefined; - rowexpr: Node | undefined; - colnames: Node[]; - coltypes: Node[]; - coltypmods: Node[]; - colcollations: Node[]; - colexprs: Node[]; - coldefexprs: Node[]; - notnulls: number[]; - ordinalitycol: number; - location: number; - } - - export interface Var { - xpr: Node | undefined; - varno: number; - varattno: number; - vartype: number; - vartypmod: number; - varcollid: number; - varlevelsup: number; - varnosyn: number; - varattnosyn: number; - location: number; - } - - export interface Param { - xpr: Node | undefined; - paramkind: ParamKind; - paramid: number; - paramtype: number; - paramtypmod: number; - paramcollid: number; - location: number; - } - - export interface Aggref { - xpr: Node | undefined; - aggfnoid: number; - aggtype: number; - aggcollid: number; - inputcollid: number; - aggtranstype: number; - aggargtypes: Node[]; - aggdirectargs: Node[]; - args: Node[]; - aggorder: Node[]; - aggdistinct: Node[]; - aggfilter: Node | undefined; - aggstar: boolean; - aggvariadic: boolean; - aggkind: string; - agglevelsup: number; - aggsplit: AggSplit; - aggno: number; - aggtransno: number; - location: number; - } - - export interface GroupingFunc { - xpr: Node | undefined; - args: Node[]; - refs: Node[]; - cols: Node[]; - agglevelsup: number; - location: number; - } - - export interface WindowFunc { - xpr: Node | undefined; - winfnoid: number; - wintype: number; - wincollid: number; - inputcollid: number; - args: Node[]; - aggfilter: Node | undefined; - winref: number; - winstar: boolean; - winagg: boolean; - location: number; - } - - export interface SubscriptingRef { - xpr: Node | undefined; - refcontainertype: number; - refelemtype: number; - refrestype: number; - reftypmod: number; - refcollid: number; - refupperindexpr: Node[]; - reflowerindexpr: Node[]; - refexpr: Node | undefined; - refassgnexpr: Node | undefined; - } - - export interface FuncExpr { - xpr: Node | undefined; - funcid: number; - funcresulttype: number; - funcretset: boolean; - funcvariadic: boolean; - funcformat: CoercionForm; - funccollid: number; - inputcollid: number; - args: Node[]; - location: number; - } - - export interface NamedArgExpr { - xpr: Node | undefined; - arg: Node | undefined; - name: string; - argnumber: number; - location: number; - } - - export interface OpExpr { - xpr: Node | undefined; - opno: number; - opfuncid: number; - opresulttype: number; - opretset: boolean; - opcollid: number; - inputcollid: number; - args: Node[]; - location: number; - } - - export interface DistinctExpr { - xpr: Node | undefined; - opno: number; - opfuncid: number; - opresulttype: number; - opretset: boolean; - opcollid: number; - inputcollid: number; - args: Node[]; - location: number; - } - - export interface NullIfExpr { - xpr: Node | undefined; - opno: number; - opfuncid: number; - opresulttype: number; - opretset: boolean; - opcollid: number; - inputcollid: number; - args: Node[]; - location: number; - } - - export interface ScalarArrayOpExpr { - xpr: Node | undefined; - opno: number; - opfuncid: number; - hashfuncid: number; - negfuncid: number; - useOr: boolean; - inputcollid: number; - args: Node[]; - location: number; - } - - export interface BoolExpr { - xpr: Node | undefined; - boolop: BoolExprType; - args: Node[]; - location: number; - } - - export interface SubLink { - xpr: Node | undefined; - subLinkType: SubLinkType; - subLinkId: number; - testexpr: Node | undefined; - operName: Node[]; - subselect: Node | undefined; - location: number; - } - - export interface SubPlan { - xpr: Node | undefined; - subLinkType: SubLinkType; - testexpr: Node | undefined; - paramIds: Node[]; - planId: number; - planName: string; - firstColType: number; - firstColTypmod: number; - firstColCollation: number; - useHashTable: boolean; - unknownEqFalse: boolean; - parallelSafe: boolean; - setParam: Node[]; - parParam: Node[]; - args: Node[]; - startupCost: number; - perCallCost: number; - } - - export interface AlternativeSubPlan { - xpr: Node | undefined; - subplans: Node[]; - } - - export interface FieldSelect { - xpr: Node | undefined; - arg: Node | undefined; - fieldnum: number; - resulttype: number; - resulttypmod: number; - resultcollid: number; - } - - export interface FieldStore { - xpr: Node | undefined; - arg: Node | undefined; - newvals: Node[]; - fieldnums: Node[]; - resulttype: number; - } - - export interface RelabelType { - xpr: Node | undefined; - arg: Node | undefined; - resulttype: number; - resulttypmod: number; - resultcollid: number; - relabelformat: CoercionForm; - location: number; - } - - export interface CoerceViaIO { - xpr: Node | undefined; - arg: Node | undefined; - resulttype: number; - resultcollid: number; - coerceformat: CoercionForm; - location: number; - } - - export interface ArrayCoerceExpr { - xpr: Node | undefined; - arg: Node | undefined; - elemexpr: Node | undefined; - resulttype: number; - resulttypmod: number; - resultcollid: number; - coerceformat: CoercionForm; - location: number; - } - - export interface ConvertRowtypeExpr { - xpr: Node | undefined; - arg: Node | undefined; - resulttype: number; - convertformat: CoercionForm; - location: number; - } - - export interface CollateExpr { - xpr: Node | undefined; - arg: Node | undefined; - collOid: number; - location: number; - } - - export interface CaseExpr { - xpr: Node | undefined; - casetype: number; - casecollid: number; - arg: Node | undefined; - args: Node[]; - defresult: Node | undefined; - location: number; - } - - export interface CaseWhen { - xpr: Node | undefined; - expr: Node | undefined; - result: Node | undefined; - location: number; - } - - export interface CaseTestExpr { - xpr: Node | undefined; - typeId: number; - typeMod: number; - collation: number; - } - - export interface ArrayExpr { - xpr: Node | undefined; - arrayTypeid: number; - arrayCollid: number; - elementTypeid: number; - elements: Node[]; - multidims: boolean; - location: number; - } - - export interface RowExpr { - xpr: Node | undefined; - args: Node[]; - rowTypeid: number; - rowFormat: CoercionForm; - colnames: Node[]; - location: number; - } - - export interface RowCompareExpr { - xpr: Node | undefined; - rctype: RowCompareType; - opnos: Node[]; - opfamilies: Node[]; - inputcollids: Node[]; - largs: Node[]; - rargs: Node[]; - } - - export interface CoalesceExpr { - xpr: Node | undefined; - coalescetype: number; - coalescecollid: number; - args: Node[]; - location: number; - } - - export interface MinMaxExpr { - xpr: Node | undefined; - minmaxtype: number; - minmaxcollid: number; - inputcollid: number; - op: MinMaxOp; - args: Node[]; - location: number; - } - - export interface SQLValueFunction { - xpr: Node | undefined; - op: SQLValueFunctionOp; - type: number; - typmod: number; - location: number; - } - - export interface XmlExpr { - xpr: Node | undefined; - op: XmlExprOp; - name: string; - namedArgs: Node[]; - argNames: Node[]; - args: Node[]; - xmloption: XmlOptionType; - type: number; - typmod: number; - location: number; - } - - export interface NullTest { - xpr: Node | undefined; - arg: Node | undefined; - nulltesttype: NullTestType; - argisrow: boolean; - location: number; - } - - export interface BooleanTest { - xpr: Node | undefined; - arg: Node | undefined; - booltesttype: BoolTestType; - location: number; - } - - export interface CoerceToDomain { - xpr: Node | undefined; - arg: Node | undefined; - resulttype: number; - resulttypmod: number; - resultcollid: number; - coercionformat: CoercionForm; - location: number; - } - - export interface CoerceToDomainValue { - xpr: Node | undefined; - typeId: number; - typeMod: number; - collation: number; - location: number; - } - - export interface SetToDefault { - xpr: Node | undefined; - typeId: number; - typeMod: number; - collation: number; - location: number; - } - - export interface CurrentOfExpr { - xpr: Node | undefined; - cvarno: number; - cursorName: string; - cursorParam: number; - } - - export interface NextValueExpr { - xpr: Node | undefined; - seqid: number; - typeId: number; - } - - export interface InferenceElem { - xpr: Node | undefined; - expr: Node | undefined; - infercollid: number; - inferopclass: number; - } - - export interface TargetEntry { - xpr: Node | undefined; - expr: Node | undefined; - resno: number; - resname: string; - ressortgroupref: number; - resorigtbl: number; - resorigcol: number; - resjunk: boolean; - } - - export interface RangeTblRef { - rtindex: number; - } - - export interface JoinExpr { - jointype: JoinType; - isNatural: boolean; - larg: Node | undefined; - rarg: Node | undefined; - usingClause: Node[]; - joinUsingAlias: Alias | undefined; - quals: Node | undefined; - alias: Alias | undefined; - rtindex: number; - } - - export interface FromExpr { - fromlist: Node[]; - quals: Node | undefined; - } - - export interface OnConflictExpr { - action: OnConflictAction; - arbiterElems: Node[]; - arbiterWhere: Node | undefined; - constraint: number; - onConflictSet: Node[]; - onConflictWhere: Node | undefined; - exclRelIndex: number; - exclRelTlist: Node[]; - } - - export interface IntoClause { - rel: RangeVar | undefined; - colNames: Node[]; - accessMethod: string; - options: Node[]; - onCommit: OnCommitAction; - tableSpaceName: string; - viewQuery: Node | undefined; - skipData: boolean; - } - - export interface MergeAction { - matched: boolean; - commandType: CmdType; - override: OverridingKind; - qual: Node | undefined; - targetList: Node[]; - updateColnos: Node[]; - } - - export interface RawStmt { - stmt: Node | undefined; - stmtLocation: number; - stmtLen: number; - } - - export interface Query { - commandType: CmdType; - querySource: QuerySource; - canSetTag: boolean; - utilityStmt: Node | undefined; - resultRelation: number; - hasAggs: boolean; - hasWindowFuncs: boolean; - hasTargetSrfs: boolean; - hasSubLinks: boolean; - hasDistinctOn: boolean; - hasRecursive: boolean; - hasModifyingCte: boolean; - hasForUpdate: boolean; - hasRowSecurity: boolean; - isReturn: boolean; - cteList: Node[]; - rtable: Node[]; - jointree: FromExpr | undefined; - mergeActionList: Node[]; - mergeUseOuterJoin: boolean; - targetList: Node[]; - override: OverridingKind; - onConflict: OnConflictExpr | undefined; - returningList: Node[]; - groupClause: Node[]; - groupDistinct: boolean; - groupingSets: Node[]; - havingQual: Node | undefined; - windowClause: Node[]; - distinctClause: Node[]; - sortClause: Node[]; - limitOffset: Node | undefined; - limitCount: Node | undefined; - limitOption: LimitOption; - rowMarks: Node[]; - setOperations: Node | undefined; - constraintDeps: Node[]; - withCheckOptions: Node[]; - stmtLocation: number; - stmtLen: number; - } - - export interface InsertStmt { - relation: RangeVar | undefined; - cols: Node[]; - selectStmt: Node | undefined; - onConflictClause: OnConflictClause | undefined; - returningList: Node[]; - withClause: WithClause | undefined; - override: OverridingKind; - } - - export interface DeleteStmt { - relation: RangeVar | undefined; - usingClause: Node[]; - whereClause: Node | undefined; - returningList: Node[]; - withClause: WithClause | undefined; - } - - export interface UpdateStmt { - relation: RangeVar | undefined; - targetList: Node[]; - whereClause: Node | undefined; - fromClause: Node[]; - returningList: Node[]; - withClause: WithClause | undefined; - } - - export interface MergeStmt { - relation: RangeVar | undefined; - sourceRelation: Node | undefined; - joinCondition: Node | undefined; - mergeWhenClauses: Node[]; - withClause: WithClause | undefined; - } - - export interface SelectStmt { - distinctClause: Node[]; - intoClause: IntoClause | undefined; - targetList: Node[]; - fromClause?: Node[]; - whereClause: Node | undefined; - groupClause: Node[]; - groupDistinct: boolean; - havingClause: Node | undefined; - windowClause: Node[]; - valuesLists: Node[]; - sortClause: Node[]; - limitOffset: Node | undefined; - limitCount: Node | undefined; - limitOption: LimitOption; - lockingClause: Node[]; - withClause: WithClause | undefined; - op: SetOperation; - all: boolean; - larg: SelectStmt | undefined; - rarg: SelectStmt | undefined; - } - - export interface ReturnStmt { - returnval: Node | undefined; - } - - export interface PLAssignStmt { - name: string; - indirection: Node[]; - nnames: number; - val: SelectStmt | undefined; - location: number; - } - - export interface AlterTableStmt { - relation: RangeVar | undefined; - cmds: Node[]; - objtype: ObjectType; - missingOk: boolean; - } - - export interface AlterTableCmd { - subtype: AlterTableType; - name: string; - num: number; - newowner: RoleSpec | undefined; - def: Node | undefined; - behavior: DropBehavior; - missingOk: boolean; - recurse: boolean; - } - - export interface AlterDomainStmt { - subtype: string; - typeName: Node[]; - name: string; - def: Node | undefined; - behavior: DropBehavior; - missingOk: boolean; - } - - export interface SetOperationStmt { - op: SetOperation; - all: boolean; - larg: Node | undefined; - rarg: Node | undefined; - colTypes: Node[]; - colTypmods: Node[]; - colCollations: Node[]; - groupClauses: Node[]; - } - - export interface GrantStmt { - isGrant: boolean; - targtype: GrantTargetType; - objtype: ObjectType; - objects: Node[]; - privileges: Node[]; - grantees: Node[]; - grantOption: boolean; - grantor: RoleSpec | undefined; - behavior: DropBehavior; - } - - export interface GrantRoleStmt { - grantedRoles: Node[]; - granteeRoles: Node[]; - isGrant: boolean; - adminOpt: boolean; - grantor: RoleSpec | undefined; - behavior: DropBehavior; - } - - export interface AlterDefaultPrivilegesStmt { - options: Node[]; - action: GrantStmt | undefined; - } - - export interface ClosePortalStmt { - portalname: string; - } - - export interface ClusterStmt { - relation: RangeVar | undefined; - indexname: string; - params: Node[]; - } - - export interface CopyStmt { - relation: RangeVar | undefined; - query: Node | undefined; - attlist: Node[]; - isFrom: boolean; - isProgram: boolean; - filename: string; - options: Node[]; - whereClause: Node | undefined; - } - - export interface CreateStmt { - relation: RangeVar | undefined; - tableElts: Node[]; - inhRelations: Node[]; - partbound: PartitionBoundSpec | undefined; - partspec: PartitionSpec | undefined; - ofTypename: TypeName | undefined; - constraints: Node[]; - options: Node[]; - oncommit: OnCommitAction; - tablespacename: string; - accessMethod: string; - ifNotExists: boolean; - } - - export interface DefineStmt { - kind: ObjectType; - oldstyle: boolean; - defnames: Node[]; - args: Node[]; - definition: Node[]; - ifNotExists: boolean; - replace: boolean; - } - - export interface DropStmt { - objects: Node[]; - removeType: ObjectType; - behavior: DropBehavior; - missingOk: boolean; - concurrent: boolean; - } - - export interface TruncateStmt { - relations: Node[]; - restartSeqs: boolean; - behavior: DropBehavior; - } - - export interface CommentStmt { - objtype: ObjectType; - object: Node | undefined; - comment: string; - } - - export interface FetchStmt { - direction: FetchDirection; - howMany: number; - portalname: string; - ismove: boolean; - } - - export interface IndexStmt { - idxname: string; - relation: RangeVar | undefined; - accessMethod: string; - tableSpace: string; - indexParams: Node[]; - indexIncludingParams: Node[]; - options: Node[]; - whereClause: Node | undefined; - excludeOpNames: Node[]; - idxcomment: string; - indexOid: number; - oldNode: number; - oldCreateSubid: number; - oldFirstRelfilenodeSubid: number; - unique: boolean; - nullsNotDistinct: boolean; - primary: boolean; - isconstraint: boolean; - deferrable: boolean; - initdeferred: boolean; - transformed: boolean; - concurrent: boolean; - ifNotExists: boolean; - resetDefaultTblspc: boolean; - } - - export interface CreateFunctionStmt { - isProcedure: boolean; - replace: boolean; - funcname: Node[]; - parameters: Node[]; - returnType: TypeName | undefined; - options: Node[]; - sqlBody: Node | undefined; - } - - export interface AlterFunctionStmt { - objtype: ObjectType; - func: ObjectWithArgs | undefined; - actions: Node[]; - } - - export interface DoStmt { - args: Node[]; - } - - export interface RenameStmt { - renameType: ObjectType; - relationType: ObjectType; - relation: RangeVar | undefined; - object: Node | undefined; - subname: string; - newname: string; - behavior: DropBehavior; - missingOk: boolean; - } - - export interface RuleStmt { - relation: RangeVar | undefined; - rulename: string; - whereClause: Node | undefined; - event: CmdType; - instead: boolean; - actions: Node[]; - replace: boolean; - } - - export interface NotifyStmt { - conditionname: string; - payload: string; - } - - export interface ListenStmt { - conditionname: string; - } - - export interface UnlistenStmt { - conditionname: string; - } - - export interface TransactionStmt { - kind: TransactionStmtKind; - options: Node[]; - savepointName: string; - gid: string; - chain: boolean; - } - - export interface ViewStmt { - view: RangeVar | undefined; - aliases: Node[]; - query: Node | undefined; - replace: boolean; - options: Node[]; - withCheckOption: ViewCheckOption; - } - - export interface LoadStmt { - filename: string; - } - - export interface CreateDomainStmt { - domainname: Node[]; - typeName: TypeName | undefined; - collClause: CollateClause | undefined; - constraints: Node[]; - } - - export interface CreatedbStmt { - dbname: string; - options: Node[]; - } - - export interface DropdbStmt { - dbname: string; - missingOk: boolean; - options: Node[]; - } - - export interface VacuumStmt { - options: Node[]; - rels: Node[]; - isVacuumcmd: boolean; - } - - export interface ExplainStmt { - query: Node | undefined; - options: Node[]; - } - - export interface CreateTableAsStmt { - query: Node | undefined; - into: IntoClause | undefined; - objtype: ObjectType; - isSelectInto: boolean; - ifNotExists: boolean; - } - - export interface CreateSeqStmt { - sequence: RangeVar | undefined; - options: Node[]; - ownerId: number; - forIdentity: boolean; - ifNotExists: boolean; - } - - export interface AlterSeqStmt { - sequence: RangeVar | undefined; - options: Node[]; - forIdentity: boolean; - missingOk: boolean; - } - - export interface VariableSetStmt { - kind: VariableSetKind; - name: string; - args: Node[]; - isLocal: boolean; - } - - export interface VariableShowStmt { - name: string; - } - - export interface DiscardStmt { - target: DiscardMode; - } - - export interface CreateTrigStmt { - replace: boolean; - isconstraint: boolean; - trigname: string; - relation: RangeVar | undefined; - funcname: Node[]; - args: Node[]; - row: boolean; - timing: number; - events: number; - columns: Node[]; - whenClause: Node | undefined; - transitionRels: Node[]; - deferrable: boolean; - initdeferred: boolean; - constrrel: RangeVar | undefined; - } - - export interface CreatePLangStmt { - replace: boolean; - plname: string; - plhandler: Node[]; - plinline: Node[]; - plvalidator: Node[]; - pltrusted: boolean; - } - - export interface CreateRoleStmt { - stmtType: RoleStmtType; - role: string; - options: Node[]; - } - - export interface AlterRoleStmt { - role: RoleSpec | undefined; - options: Node[]; - action: number; - } - - export interface DropRoleStmt { - roles: Node[]; - missingOk: boolean; - } - - export interface LockStmt { - relations: Node[]; - mode: number; - nowait: boolean; - } - - export interface ConstraintsSetStmt { - constraints: Node[]; - deferred: boolean; - } - - export interface ReindexStmt { - kind: ReindexObjectType; - relation: RangeVar | undefined; - name: string; - params: Node[]; - } - - export interface CheckPointStmt {} - - export interface CreateSchemaStmt { - schemaname: string; - authrole: RoleSpec | undefined; - schemaElts: Node[]; - ifNotExists: boolean; - } - - export interface AlterDatabaseStmt { - dbname: string; - options: Node[]; - } - - export interface AlterDatabaseRefreshCollStmt { - dbname: string; - } - - export interface AlterDatabaseSetStmt { - dbname: string; - setstmt: VariableSetStmt | undefined; - } - - export interface AlterRoleSetStmt { - role: RoleSpec | undefined; - database: string; - setstmt: VariableSetStmt | undefined; - } - - export interface CreateConversionStmt { - conversionName: Node[]; - forEncodingName: string; - toEncodingName: string; - funcName: Node[]; - def: boolean; - } - - export interface CreateCastStmt { - sourcetype: TypeName | undefined; - targettype: TypeName | undefined; - func: ObjectWithArgs | undefined; - context: CoercionContext; - inout: boolean; - } - - export interface CreateOpClassStmt { - opclassname: Node[]; - opfamilyname: Node[]; - amname: string; - datatype: TypeName | undefined; - items: Node[]; - isDefault: boolean; - } - - export interface CreateOpFamilyStmt { - opfamilyname: Node[]; - amname: string; - } - - export interface AlterOpFamilyStmt { - opfamilyname: Node[]; - amname: string; - isDrop: boolean; - items: Node[]; - } - - export interface PrepareStmt { - name: string; - argtypes: Node[]; - query: Node | undefined; - } - - export interface ExecuteStmt { - name: string; - params: Node[]; - } - - export interface DeallocateStmt { - name: string; - } - - export interface DeclareCursorStmt { - portalname: string; - options: number; - query: Node | undefined; - } - - export interface CreateTableSpaceStmt { - tablespacename: string; - owner: RoleSpec | undefined; - location: string; - options: Node[]; - } - - export interface DropTableSpaceStmt { - tablespacename: string; - missingOk: boolean; - } - - export interface AlterObjectDependsStmt { - objectType: ObjectType; - relation: RangeVar | undefined; - object: Node | undefined; - extname: String | undefined; - remove: boolean; - } - - export interface AlterObjectSchemaStmt { - objectType: ObjectType; - relation: RangeVar | undefined; - object: Node | undefined; - newschema: string; - missingOk: boolean; - } - - export interface AlterOwnerStmt { - objectType: ObjectType; - relation: RangeVar | undefined; - object: Node | undefined; - newowner: RoleSpec | undefined; - } - - export interface AlterOperatorStmt { - opername: ObjectWithArgs | undefined; - options: Node[]; - } - - export interface AlterTypeStmt { - typeName: Node[]; - options: Node[]; - } - - export interface DropOwnedStmt { - roles: Node[]; - behavior: DropBehavior; - } - - export interface ReassignOwnedStmt { - roles: Node[]; - newrole: RoleSpec | undefined; - } - - export interface CompositeTypeStmt { - typevar: RangeVar | undefined; - coldeflist: Node[]; - } - - export interface CreateEnumStmt { - typeName: Node[]; - vals: Node[]; - } - - export interface CreateRangeStmt { - typeName: Node[]; - params: Node[]; - } - - export interface AlterEnumStmt { - typeName: Node[]; - oldVal: string; - newVal: string; - newValNeighbor: string; - newValIsAfter: boolean; - skipIfNewValExists: boolean; - } - - export interface AlterTSDictionaryStmt { - dictname: Node[]; - options: Node[]; - } - - export interface AlterTSConfigurationStmt { - kind: AlterTSConfigType; - cfgname: Node[]; - tokentype: Node[]; - dicts: Node[]; - override: boolean; - replace: boolean; - missingOk: boolean; - } - - export interface CreateFdwStmt { - fdwname: string; - funcOptions: Node[]; - options: Node[]; - } - - export interface AlterFdwStmt { - fdwname: string; - funcOptions: Node[]; - options: Node[]; - } - - export interface CreateForeignServerStmt { - servername: string; - servertype: string; - version: string; - fdwname: string; - ifNotExists: boolean; - options: Node[]; - } - - export interface AlterForeignServerStmt { - servername: string; - version: string; - options: Node[]; - hasVersion: boolean; - } - - export interface CreateUserMappingStmt { - user: RoleSpec | undefined; - servername: string; - ifNotExists: boolean; - options: Node[]; - } - - export interface AlterUserMappingStmt { - user: RoleSpec | undefined; - servername: string; - options: Node[]; - } - - export interface DropUserMappingStmt { - user: RoleSpec | undefined; - servername: string; - missingOk: boolean; - } - - export interface AlterTableSpaceOptionsStmt { - tablespacename: string; - options: Node[]; - isReset: boolean; - } - - export interface AlterTableMoveAllStmt { - origTablespacename: string; - objtype: ObjectType; - roles: Node[]; - newTablespacename: string; - nowait: boolean; - } - - export interface SecLabelStmt { - objtype: ObjectType; - object: Node | undefined; - provider: string; - label: string; - } - - export interface CreateForeignTableStmt { - baseStmt: CreateStmt | undefined; - servername: string; - options: Node[]; - } - - export interface ImportForeignSchemaStmt { - serverName: string; - remoteSchema: string; - localSchema: string; - listType: ImportForeignSchemaType; - tableList: Node[]; - options: Node[]; - } - - export interface CreateExtensionStmt { - extname: string; - ifNotExists: boolean; - options: Node[]; - } - - export interface AlterExtensionStmt { - extname: string; - options: Node[]; - } - - export interface AlterExtensionContentsStmt { - extname: string; - action: number; - objtype: ObjectType; - object: Node | undefined; - } - - export interface CreateEventTrigStmt { - trigname: string; - eventname: string; - whenclause: Node[]; - funcname: Node[]; - } - - export interface AlterEventTrigStmt { - trigname: string; - tgenabled: string; - } - - export interface RefreshMatViewStmt { - concurrent: boolean; - skipData: boolean; - relation: RangeVar | undefined; - } - - export interface ReplicaIdentityStmt { - identityType: string; - name: string; - } - - export interface AlterSystemStmt { - setstmt: VariableSetStmt | undefined; - } - - export interface CreatePolicyStmt { - policyName: string; - table: RangeVar | undefined; - cmdName: string; - permissive: boolean; - roles: Node[]; - qual: Node | undefined; - withCheck: Node | undefined; - } - - export interface AlterPolicyStmt { - policyName: string; - table: RangeVar | undefined; - roles: Node[]; - qual: Node | undefined; - withCheck: Node | undefined; - } - - export interface CreateTransformStmt { - replace: boolean; - typeName: TypeName | undefined; - lang: string; - fromsql: ObjectWithArgs | undefined; - tosql: ObjectWithArgs | undefined; - } - - export interface CreateAmStmt { - amname: string; - handlerName: Node[]; - amtype: string; - } - - export interface CreatePublicationStmt { - pubname: string; - options: Node[]; - pubobjects: Node[]; - forAllTables: boolean; - } - - export interface AlterPublicationStmt { - pubname: string; - options: Node[]; - pubobjects: Node[]; - forAllTables: boolean; - action: AlterPublicationAction; - } - - export interface CreateSubscriptionStmt { - subname: string; - conninfo: string; - publication: Node[]; - options: Node[]; - } - - export interface AlterSubscriptionStmt { - kind: AlterSubscriptionType; - subname: string; - conninfo: string; - publication: Node[]; - options: Node[]; - } - - export interface DropSubscriptionStmt { - subname: string; - missingOk: boolean; - behavior: DropBehavior; - } - - export interface CreateStatsStmt { - defnames: Node[]; - statTypes: Node[]; - exprs: Node[]; - relations: Node[]; - stxcomment: string; - transformed: boolean; - ifNotExists: boolean; - } - - export interface AlterCollationStmt { - collname: Node[]; - } - - export interface CallStmt { - funccall: FuncCall | undefined; - funcexpr: FuncExpr | undefined; - outargs: Node[]; - } - - export interface AlterStatsStmt { - defnames: Node[]; - stxstattarget: number; - missingOk: boolean; - } - - export interface AExpr { - kind: AExprKind; - name: Node[]; - lexpr: Node | undefined; - rexpr: Node | undefined; - location: number; - } - - export interface ColumnRef { - fields: Node[]; - location: number; - } - - export interface ParamRef { - number: number; - location: number; - } - - export interface FuncCall { - funcname: Node[]; - args: Node[] | undefined; - aggOrder: Node[]; - aggFilter: Node | undefined; - over: WindowDef | undefined; - aggWithinGroup: boolean; - aggStar: boolean; - aggDistinct: boolean; - funcVariadic: boolean; - funcformat: CoercionForm; - location: number; - } - - export interface AStar {} - - export interface AIndices { - isSlice: boolean; - lidx: Node | undefined; - uidx: Node | undefined; - } - - export interface AIndirection { - arg: Node | undefined; - indirection: Node[]; - } - - export interface AArrayExpr { - elements: Node[]; - location: number; - } - - export interface ResTarget { - name: string | undefined; - indirection: Node[]; - val: Node | undefined; - location: number; - } - - export interface MultiAssignRef { - source: Node | undefined; - colno: number; - ncolumns: number; - } - - export interface TypeCast { - arg: Node | undefined; - typeName: TypeName | undefined; - location: number; - } - - export interface CollateClause { - arg: Node | undefined; - collname: Node[]; - location: number; - } - - export interface SortBy { - node: Node | undefined; - sortbyDir: SortByDir; - sortbyNulls: SortByNulls; - useOp: Node[]; - location: number; - } - - export interface WindowDef { - name: string; - refname: string; - partitionClause: Node[]; - orderClause: Node[]; - frameOptions: number; - startOffset: Node | undefined; - endOffset: Node | undefined; - location: number; - } - - export interface RangeSubselect { - lateral: boolean; - subquery: Node | undefined; - alias: Alias | undefined; - } - - export interface RangeFunction { - lateral: boolean; - ordinality: boolean; - isRowsfrom: boolean; - functions: Node[]; - alias: Alias | undefined; - coldeflist: Node[]; - } - - export interface RangeTableSample { - relation: Node | undefined; - method: Node[]; - args: Node[]; - repeatable: Node | undefined; - location: number; - } - - export interface RangeTableFunc { - lateral: boolean; - docexpr: Node | undefined; - rowexpr: Node | undefined; - namespaces: Node[]; - columns: Node[]; - alias: Alias | undefined; - location: number; - } - - export interface RangeTableFuncCol { - colname: string; - typeName: TypeName | undefined; - forOrdinality: boolean; - isNotNull: boolean; - colexpr: Node | undefined; - coldefexpr: Node | undefined; - location: number; - } - - export interface TypeName { - names: Node[]; - typeOid: number; - setof: boolean; - pctType: boolean; - typmods: Node[]; - typemod: number; - arrayBounds: Node[]; - location: number; - } - - export interface ColumnDef { - colname: string; - typeName: TypeName | undefined; - compression: string; - inhcount: number; - isLocal: boolean; - isNotNull: boolean; - isFromType: boolean; - storage: string; - rawDefault: Node | undefined; - cookedDefault: Node | undefined; - identity: string; - identitySequence: RangeVar | undefined; - generated: string; - collClause: CollateClause | undefined; - collOid: number; - constraints: Node[]; - fdwoptions: Node[]; - location: number; - } - - export interface IndexElem { - name: string; - expr: Node | undefined; - indexcolname: string; - collation: Node[]; - opclass: Node[]; - opclassopts: Node[]; - ordering: SortByDir; - nullsOrdering: SortByNulls; - } - - export interface StatsElem { - name: string; - expr: Node | undefined; - } - - export interface Constraint { - contype: ConstrType; - conname: string; - deferrable: boolean; - initdeferred: boolean; - location: number; - isNoInherit: boolean; - rawExpr: Node | undefined; - cookedExpr: string; - generatedWhen: string; - nullsNotDistinct: boolean; - keys: Node[]; - including: Node[]; - exclusions: Node[]; - options: Node[]; - indexname: string; - indexspace: string; - resetDefaultTblspc: boolean; - accessMethod: string; - whereClause: Node | undefined; - pktable: RangeVar | undefined; - fkAttrs: Node[]; - pkAttrs: Node[]; - fkMatchtype: string; - fkUpdAction: string; - fkDelAction: string; - fkDelSetCols: Node[]; - oldConpfeqop: Node[]; - oldPktableOid: number; - skipValidation: boolean; - initiallyValid: boolean; - } - - export interface DefElem { - defnamespace: string; - defname: string; - arg: Node | undefined; - defaction: DefElemAction; - location: number; - } - - export interface RangeTblEntry { - rtekind: RTEKind; - relid: number; - relkind: string; - rellockmode: number; - tablesample: TableSampleClause | undefined; - subquery: Query | undefined; - securityBarrier: boolean; - jointype: JoinType; - joinmergedcols: number; - joinaliasvars: Node[]; - joinleftcols: Node[]; - joinrightcols: Node[]; - joinUsingAlias: Alias | undefined; - functions: Node[]; - funcordinality: boolean; - tablefunc: TableFunc | undefined; - valuesLists: Node[]; - ctename: string; - ctelevelsup: number; - selfReference: boolean; - coltypes: Node[]; - coltypmods: Node[]; - colcollations: Node[]; - enrname: string; - enrtuples: number; - alias: Alias | undefined; - eref: Alias | undefined; - lateral: boolean; - inh: boolean; - inFromCl: boolean; - requiredPerms: number; - checkAsUser: number; - selectedCols: number[]; - insertedCols: number[]; - updatedCols: number[]; - extraUpdatedCols: number[]; - securityQuals: Node[]; - } - - export interface RangeTblFunction { - funcexpr: Node | undefined; - funccolcount: number; - funccolnames: Node[]; - funccoltypes: Node[]; - funccoltypmods: Node[]; - funccolcollations: Node[]; - funcparams: number[]; - } - - export interface TableSampleClause { - tsmhandler: number; - args: Node[]; - repeatable: Node | undefined; - } - - export interface WithCheckOption { - kind: WCOKind; - relname: string; - polname: string; - qual: Node | undefined; - cascaded: boolean; - } - - export interface SortGroupClause { - tleSortGroupRef: number; - eqop: number; - sortop: number; - nullsFirst: boolean; - hashable: boolean; - } - - export interface GroupingSet { - kind: GroupingSetKind; - content: Node[]; - location: number; - } - - export interface WindowClause { - name: string; - refname: string; - partitionClause: Node[]; - orderClause: Node[]; - frameOptions: number; - startOffset: Node | undefined; - endOffset: Node | undefined; - runCondition: Node[]; - startInRangeFunc: number; - endInRangeFunc: number; - inRangeColl: number; - inRangeAsc: boolean; - inRangeNullsFirst: boolean; - winref: number; - copiedOrder: boolean; - } - - export interface ObjectWithArgs { - objname: Node[]; - objargs: Node[]; - objfuncargs: Node[]; - argsUnspecified: boolean; - } - - export interface AccessPriv { - privName: string; - cols: Node[]; - } - - export interface CreateOpClassItem { - itemtype: number; - name: ObjectWithArgs | undefined; - number: number; - orderFamily: Node[]; - classArgs: Node[]; - storedtype: TypeName | undefined; - } - - export interface TableLikeClause { - relation: RangeVar | undefined; - options: number; - relationOid: number; - } - - export interface FunctionParameter { - name: string; - argType: TypeName | undefined; - mode: FunctionParameterMode; - defexpr: Node | undefined; - } - - export interface LockingClause { - lockedRels: Node[]; - strength: LockClauseStrength; - waitPolicy: LockWaitPolicy; - } - - export interface RowMarkClause { - rti: number; - strength: LockClauseStrength; - waitPolicy: LockWaitPolicy; - pushedDown: boolean; - } - - export interface XmlSerialize { - xmloption: XmlOptionType; - expr: Node | undefined; - typeName: TypeName | undefined; - location: number; - } - - export interface WithClause { - ctes: Node[]; - recursive: boolean; - location: number; - } - - export interface InferClause { - indexElems: Node[]; - whereClause: Node | undefined; - conname: string; - location: number; - } - - export interface OnConflictClause { - action: OnConflictAction; - infer: InferClause | undefined; - targetList: Node[]; - whereClause: Node | undefined; - location: number; - } - - export interface CTESearchClause { - searchColList: Node[]; - searchBreadthFirst: boolean; - searchSeqColumn: string; - location: number; - } - - export interface CTECycleClause { - cycleColList: Node[]; - cycleMarkColumn: string; - cycleMarkValue: Node | undefined; - cycleMarkDefault: Node | undefined; - cyclePathColumn: string; - location: number; - cycleMarkType: number; - cycleMarkTypmod: number; - cycleMarkCollation: number; - cycleMarkNeop: number; - } - - export interface CommonTableExpr { - ctename: string; - aliascolnames: Node[]; - ctematerialized: CTEMaterialize; - ctequery: Node | undefined; - searchClause: CTESearchClause | undefined; - cycleClause: CTECycleClause | undefined; - location: number; - cterecursive: boolean; - cterefcount: number; - ctecolnames: Node[]; - ctecoltypes: Node[]; - ctecoltypmods: Node[]; - ctecolcollations: Node[]; - } - - export interface MergeWhenClause { - matched: boolean; - commandType: CmdType; - override: OverridingKind; - condition: Node | undefined; - targetList: Node[]; - values: Node[]; - } - - export interface RoleSpec { - roletype: RoleSpecType; - rolename: string; - location: number; - } - - export interface TriggerTransition { - name: string; - isNew: boolean; - isTable: boolean; - } - - export interface PartitionElem { - name: string; - expr: Node | undefined; - collation: Node[]; - opclass: Node[]; - location: number; - } - - export interface PartitionSpec { - strategy: string; - partParams: Node[]; - location: number; - } - - export interface PartitionBoundSpec { - strategy: string; - isDefault: boolean; - modulus: number; - remainder: number; - listdatums: Node[]; - lowerdatums: Node[]; - upperdatums: Node[]; - location: number; - } - - export interface PartitionRangeDatum { - kind: PartitionRangeDatumKind; - value: Node | undefined; - location: number; - } - - export interface PartitionCmd { - name: RangeVar | undefined; - bound: PartitionBoundSpec | undefined; - concurrent: boolean; - } - - export interface VacuumRelation { - relation: RangeVar | undefined; - oid: number; - vaCols: Node[]; - } - - export interface PublicationObjSpec { - pubobjtype: PublicationObjSpecType; - name: string; - pubtable: PublicationTable | undefined; - location: number; - } - - export interface PublicationTable { - relation: RangeVar | undefined; - whereClause: Node | undefined; - columns: Node[]; - } - - export interface InlineCodeBlock { - sourceText: string; - langOid: number; - langIsTrusted: boolean; - atomic: boolean; - } - - export interface CallContext { - atomic: boolean; - } - - export interface ScanToken { - start: number; - end: number; - token: Token; - keywordKind: KeywordKind; - } - - enum OverridingKind { - OVERRIDING_KIND_UNDEFINED = 0, - OVERRIDING_NOT_SET = 1, - OVERRIDING_USER_VALUE = 2, - OVERRIDING_SYSTEM_VALUE = 3, - UNRECOGNIZED = -1, - } - - enum QuerySource { - QUERY_SOURCE_UNDEFINED = 0, - QSRC_ORIGINAL = 1, - QSRC_PARSER = 2, - QSRC_INSTEAD_RULE = 3, - QSRC_QUAL_INSTEAD_RULE = 4, - QSRC_NON_INSTEAD_RULE = 5, - UNRECOGNIZED = -1, - } - - enum SortByDir { - SORT_BY_DIR_UNDEFINED = 0, - SORTBY_DEFAULT = 1, - SORTBY_ASC = 2, - SORTBY_DESC = 3, - SORTBY_USING = 4, - UNRECOGNIZED = -1, - } - - enum SortByNulls { - SORT_BY_NULLS_UNDEFINED = 0, - SORTBY_NULLS_DEFAULT = 1, - SORTBY_NULLS_FIRST = 2, - SORTBY_NULLS_LAST = 3, - UNRECOGNIZED = -1, - } - - export enum AExprKind { - A_EXPR_KIND_UNDEFINED = "A_EXPR_KIND_UNDEFINED", - AEXPR_OP = "AEXPR_OP", - AEXPR_OP_ANY = "AEXPR_OP_ANY", - AEXPR_OP_ALL = "AEXPR_OP_ALL", - AEXPR_DISTINCT = "AEXPR_DISTINCT", - AEXPR_NOT_DISTINCT = "AEXPR_NOT_DISTINCT", - AEXPR_NULLIF = "AEXPR_NULLIF", - AEXPR_IN = "AEXPR_IN", - AEXPR_LIKE = "AEXPR_LIKE", - AEXPR_ILIKE = "AEXPR_ILIKE", - AEXPR_SIMILAR = "AEXPR_SIMILAR", - AEXPR_BETWEEN = "AEXPR_BETWEEN", - AEXPR_NOT_BETWEEN = "AEXPR_NOT_BETWEEN", - AEXPR_BETWEEN_SYM = "AEXPR_BETWEEN_SYM", - AEXPR_NOT_BETWEEN_SYM = "AEXPR_NOT_BETWEEN_SYM", - UNRECOGNIZED = "UNRECOGNIZED", - } - - enum RoleSpecType { - ROLE_SPEC_TYPE_UNDEFINED = 0, - ROLESPEC_CSTRING = 1, - ROLESPEC_CURRENT_ROLE = 2, - ROLESPEC_CURRENT_USER = 3, - ROLESPEC_SESSION_USER = 4, - ROLESPEC_PUBLIC = 5, - UNRECOGNIZED = -1, - } - - enum DefElemAction { - DEF_ELEM_ACTION_UNDEFINED = 0, - DEFELEM_UNSPEC = 1, - DEFELEM_SET = 2, - DEFELEM_ADD = 3, - DEFELEM_DROP = 4, - UNRECOGNIZED = -1, - } - - enum PartitionRangeDatumKind { - PARTITION_RANGE_DATUM_KIND_UNDEFINED = 0, - PARTITION_RANGE_DATUM_MINVALUE = 1, - PARTITION_RANGE_DATUM_VALUE = 2, - PARTITION_RANGE_DATUM_MAXVALUE = 3, - UNRECOGNIZED = -1, - } - - enum RTEKind { - RTEKIND_UNDEFINED = 0, - RTE_RELATION = 1, - RTE_SUBQUERY = 2, - RTE_JOIN = 3, - RTE_FUNCTION = 4, - RTE_TABLEFUNC = 5, - RTE_VALUES = 6, - RTE_CTE = 7, - RTE_NAMEDTUPLESTORE = 8, - RTE_RESULT = 9, - UNRECOGNIZED = -1, - } - - enum WCOKind { - WCOKIND_UNDEFINED = 0, - WCO_VIEW_CHECK = 1, - WCO_RLS_INSERT_CHECK = 2, - WCO_RLS_UPDATE_CHECK = 3, - WCO_RLS_CONFLICT_CHECK = 4, - WCO_RLS_MERGE_UPDATE_CHECK = 5, - WCO_RLS_MERGE_DELETE_CHECK = 6, - UNRECOGNIZED = -1, - } - - enum GroupingSetKind { - GROUPING_SET_KIND_UNDEFINED = 0, - GROUPING_SET_EMPTY = 1, - GROUPING_SET_SIMPLE = 2, - GROUPING_SET_ROLLUP = 3, - GROUPING_SET_CUBE = 4, - GROUPING_SET_SETS = 5, - UNRECOGNIZED = -1, - } - - enum CTEMaterialize { - CTEMATERIALIZE_UNDEFINED = 0, - CTEMaterializeDefault = 1, - CTEMaterializeAlways = 2, - CTEMaterializeNever = 3, - UNRECOGNIZED = -1, - } - - enum SetOperation { - SET_OPERATION_UNDEFINED = 0, - SETOP_NONE = 1, - SETOP_UNION = 2, - SETOP_INTERSECT = 3, - SETOP_EXCEPT = 4, - UNRECOGNIZED = -1, - } - - enum ObjectType { - OBJECT_TYPE_UNDEFINED = 0, - OBJECT_ACCESS_METHOD = 1, - OBJECT_AGGREGATE = 2, - OBJECT_AMOP = 3, - OBJECT_AMPROC = 4, - OBJECT_ATTRIBUTE = 5, - OBJECT_CAST = 6, - OBJECT_COLUMN = 7, - OBJECT_COLLATION = 8, - OBJECT_CONVERSION = 9, - OBJECT_DATABASE = 10, - OBJECT_DEFAULT = 11, - OBJECT_DEFACL = 12, - OBJECT_DOMAIN = 13, - OBJECT_DOMCONSTRAINT = 14, - OBJECT_EVENT_TRIGGER = 15, - OBJECT_EXTENSION = 16, - OBJECT_FDW = 17, - OBJECT_FOREIGN_SERVER = 18, - OBJECT_FOREIGN_TABLE = 19, - OBJECT_FUNCTION = 20, - OBJECT_INDEX = 21, - OBJECT_LANGUAGE = 22, - OBJECT_LARGEOBJECT = 23, - OBJECT_MATVIEW = 24, - OBJECT_OPCLASS = 25, - OBJECT_OPERATOR = 26, - OBJECT_OPFAMILY = 27, - OBJECT_PARAMETER_ACL = 28, - OBJECT_POLICY = 29, - OBJECT_PROCEDURE = 30, - OBJECT_PUBLICATION = 31, - OBJECT_PUBLICATION_NAMESPACE = 32, - OBJECT_PUBLICATION_REL = 33, - OBJECT_ROLE = 34, - OBJECT_ROUTINE = 35, - OBJECT_RULE = 36, - OBJECT_SCHEMA = 37, - OBJECT_SEQUENCE = 38, - OBJECT_SUBSCRIPTION = 39, - OBJECT_STATISTIC_EXT = 40, - OBJECT_TABCONSTRAINT = 41, - OBJECT_TABLE = 42, - OBJECT_TABLESPACE = 43, - OBJECT_TRANSFORM = 44, - OBJECT_TRIGGER = 45, - OBJECT_TSCONFIGURATION = 46, - OBJECT_TSDICTIONARY = 47, - OBJECT_TSPARSER = 48, - OBJECT_TSTEMPLATE = 49, - OBJECT_TYPE = 50, - OBJECT_USER_MAPPING = 51, - OBJECT_VIEW = 52, - UNRECOGNIZED = -1, - } - - enum DropBehavior { - DROP_BEHAVIOR_UNDEFINED = 0, - DROP_RESTRICT = 1, - DROP_CASCADE = 2, - UNRECOGNIZED = -1, - } - - enum AlterTableType { - ALTER_TABLE_TYPE_UNDEFINED = 0, - AT_AddColumn = 1, - AT_AddColumnRecurse = 2, - AT_AddColumnToView = 3, - AT_ColumnDefault = 4, - AT_CookedColumnDefault = 5, - AT_DropNotNull = 6, - AT_SetNotNull = 7, - AT_DropExpression = 8, - AT_CheckNotNull = 9, - AT_SetStatistics = 10, - AT_SetOptions = 11, - AT_ResetOptions = 12, - AT_SetStorage = 13, - AT_SetCompression = 14, - AT_DropColumn = 15, - AT_DropColumnRecurse = 16, - AT_AddIndex = 17, - AT_ReAddIndex = 18, - AT_AddConstraint = 19, - AT_AddConstraintRecurse = 20, - AT_ReAddConstraint = 21, - AT_ReAddDomainConstraint = 22, - AT_AlterConstraint = 23, - AT_ValidateConstraint = 24, - AT_ValidateConstraintRecurse = 25, - AT_AddIndexConstraint = 26, - AT_DropConstraint = 27, - AT_DropConstraintRecurse = 28, - AT_ReAddComment = 29, - AT_AlterColumnType = 30, - AT_AlterColumnGenericOptions = 31, - AT_ChangeOwner = 32, - AT_ClusterOn = 33, - AT_DropCluster = 34, - AT_SetLogged = 35, - AT_SetUnLogged = 36, - AT_DropOids = 37, - AT_SetAccessMethod = 38, - AT_SetTableSpace = 39, - AT_SetRelOptions = 40, - AT_ResetRelOptions = 41, - AT_ReplaceRelOptions = 42, - AT_EnableTrig = 43, - AT_EnableAlwaysTrig = 44, - AT_EnableReplicaTrig = 45, - AT_DisableTrig = 46, - AT_EnableTrigAll = 47, - AT_DisableTrigAll = 48, - AT_EnableTrigUser = 49, - AT_DisableTrigUser = 50, - AT_EnableRule = 51, - AT_EnableAlwaysRule = 52, - AT_EnableReplicaRule = 53, - AT_DisableRule = 54, - AT_AddInherit = 55, - AT_DropInherit = 56, - AT_AddOf = 57, - AT_DropOf = 58, - AT_ReplicaIdentity = 59, - AT_EnableRowSecurity = 60, - AT_DisableRowSecurity = 61, - AT_ForceRowSecurity = 62, - AT_NoForceRowSecurity = 63, - AT_GenericOptions = 64, - AT_AttachPartition = 65, - AT_DetachPartition = 66, - AT_DetachPartitionFinalize = 67, - AT_AddIdentity = 68, - AT_SetIdentity = 69, - AT_DropIdentity = 70, - AT_ReAddStatistics = 71, - UNRECOGNIZED = -1, - } - - enum GrantTargetType { - GRANT_TARGET_TYPE_UNDEFINED = 0, - ACL_TARGET_OBJECT = 1, - ACL_TARGET_ALL_IN_SCHEMA = 2, - ACL_TARGET_DEFAULTS = 3, - UNRECOGNIZED = -1, - } - - enum VariableSetKind { - VARIABLE_SET_KIND_UNDEFINED = 0, - VAR_SET_VALUE = 1, - VAR_SET_DEFAULT = 2, - VAR_SET_CURRENT = 3, - VAR_SET_MULTI = 4, - VAR_RESET = 5, - VAR_RESET_ALL = 6, - UNRECOGNIZED = -1, - } - - enum ConstrType { - CONSTR_TYPE_UNDEFINED = 0, - CONSTR_NULL = 1, - CONSTR_NOTNULL = 2, - CONSTR_DEFAULT = 3, - CONSTR_IDENTITY = 4, - CONSTR_GENERATED = 5, - CONSTR_CHECK = 6, - CONSTR_PRIMARY = 7, - CONSTR_UNIQUE = 8, - CONSTR_EXCLUSION = 9, - CONSTR_FOREIGN = 10, - CONSTR_ATTR_DEFERRABLE = 11, - CONSTR_ATTR_NOT_DEFERRABLE = 12, - CONSTR_ATTR_DEFERRED = 13, - CONSTR_ATTR_IMMEDIATE = 14, - UNRECOGNIZED = -1, - } - - enum ImportForeignSchemaType { - IMPORT_FOREIGN_SCHEMA_TYPE_UNDEFINED = 0, - FDW_IMPORT_SCHEMA_ALL = 1, - FDW_IMPORT_SCHEMA_LIMIT_TO = 2, - FDW_IMPORT_SCHEMA_EXCEPT = 3, - UNRECOGNIZED = -1, - } - - enum RoleStmtType { - ROLE_STMT_TYPE_UNDEFINED = 0, - ROLESTMT_ROLE = 1, - ROLESTMT_USER = 2, - ROLESTMT_GROUP = 3, - UNRECOGNIZED = -1, - } - - enum FetchDirection { - FETCH_DIRECTION_UNDEFINED = 0, - FETCH_FORWARD = 1, - FETCH_BACKWARD = 2, - FETCH_ABSOLUTE = 3, - FETCH_RELATIVE = 4, - UNRECOGNIZED = -1, - } - - enum FunctionParameterMode { - FUNCTION_PARAMETER_MODE_UNDEFINED = 0, - FUNC_PARAM_IN = 1, - FUNC_PARAM_OUT = 2, - FUNC_PARAM_INOUT = 3, - FUNC_PARAM_VARIADIC = 4, - FUNC_PARAM_TABLE = 5, - FUNC_PARAM_DEFAULT = 6, - UNRECOGNIZED = -1, - } - - enum TransactionStmtKind { - TRANSACTION_STMT_KIND_UNDEFINED = 0, - TRANS_STMT_BEGIN = 1, - TRANS_STMT_START = 2, - TRANS_STMT_COMMIT = 3, - TRANS_STMT_ROLLBACK = 4, - TRANS_STMT_SAVEPOINT = 5, - TRANS_STMT_RELEASE = 6, - TRANS_STMT_ROLLBACK_TO = 7, - TRANS_STMT_PREPARE = 8, - TRANS_STMT_COMMIT_PREPARED = 9, - TRANS_STMT_ROLLBACK_PREPARED = 10, - UNRECOGNIZED = -1, - } - - enum ViewCheckOption { - VIEW_CHECK_OPTION_UNDEFINED = 0, - NO_CHECK_OPTION = 1, - LOCAL_CHECK_OPTION = 2, - CASCADED_CHECK_OPTION = 3, - UNRECOGNIZED = -1, - } - - enum DiscardMode { - DISCARD_MODE_UNDEFINED = 0, - DISCARD_ALL = 1, - DISCARD_PLANS = 2, - DISCARD_SEQUENCES = 3, - DISCARD_TEMP = 4, - UNRECOGNIZED = -1, - } - - enum ReindexObjectType { - REINDEX_OBJECT_TYPE_UNDEFINED = 0, - REINDEX_OBJECT_INDEX = 1, - REINDEX_OBJECT_TABLE = 2, - REINDEX_OBJECT_SCHEMA = 3, - REINDEX_OBJECT_SYSTEM = 4, - REINDEX_OBJECT_DATABASE = 5, - UNRECOGNIZED = -1, - } - - enum AlterTSConfigType { - ALTER_TSCONFIG_TYPE_UNDEFINED = 0, - ALTER_TSCONFIG_ADD_MAPPING = 1, - ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN = 2, - ALTER_TSCONFIG_REPLACE_DICT = 3, - ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN = 4, - ALTER_TSCONFIG_DROP_MAPPING = 5, - UNRECOGNIZED = -1, - } - - enum PublicationObjSpecType { - PUBLICATION_OBJ_SPEC_TYPE_UNDEFINED = 0, - PUBLICATIONOBJ_TABLE = 1, - PUBLICATIONOBJ_TABLES_IN_SCHEMA = 2, - PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA = 3, - PUBLICATIONOBJ_CONTINUATION = 4, - UNRECOGNIZED = -1, - } - - enum AlterPublicationAction { - ALTER_PUBLICATION_ACTION_UNDEFINED = 0, - AP_AddObjects = 1, - AP_DropObjects = 2, - AP_SetObjects = 3, - UNRECOGNIZED = -1, - } - - enum AlterSubscriptionType { - ALTER_SUBSCRIPTION_TYPE_UNDEFINED = 0, - ALTER_SUBSCRIPTION_OPTIONS = 1, - ALTER_SUBSCRIPTION_CONNECTION = 2, - ALTER_SUBSCRIPTION_SET_PUBLICATION = 3, - ALTER_SUBSCRIPTION_ADD_PUBLICATION = 4, - ALTER_SUBSCRIPTION_DROP_PUBLICATION = 5, - ALTER_SUBSCRIPTION_REFRESH = 6, - ALTER_SUBSCRIPTION_ENABLED = 7, - ALTER_SUBSCRIPTION_SKIP = 8, - UNRECOGNIZED = -1, - } - - enum OnCommitAction { - ON_COMMIT_ACTION_UNDEFINED = 0, - ONCOMMIT_NOOP = 1, - ONCOMMIT_PRESERVE_ROWS = 2, - ONCOMMIT_DELETE_ROWS = 3, - ONCOMMIT_DROP = 4, - UNRECOGNIZED = -1, - } - - enum ParamKind { - PARAM_KIND_UNDEFINED = 0, - PARAM_EXTERN = 1, - PARAM_EXEC = 2, - PARAM_SUBLINK = 3, - PARAM_MULTIEXPR = 4, - UNRECOGNIZED = -1, - } - - enum CoercionContext { - COERCION_CONTEXT_UNDEFINED = 0, - COERCION_IMPLICIT = 1, - COERCION_ASSIGNMENT = 2, - COERCION_PLPGSQL = 3, - COERCION_EXPLICIT = 4, - UNRECOGNIZED = -1, - } - - enum CoercionForm { - COERCION_FORM_UNDEFINED = 0, - COERCE_EXPLICIT_CALL = 1, - COERCE_EXPLICIT_CAST = 2, - COERCE_IMPLICIT_CAST = 3, - COERCE_SQL_SYNTAX = 4, - UNRECOGNIZED = -1, - } - - export enum BoolExprType { - BOOL_EXPR_TYPE_UNDEFINED = "BOOL_EXPR_TYPE_UNDEFINED", - AND_EXPR = "AND_EXPR", - OR_EXPR = "OR_EXPR", - NOT_EXPR = "NOT_EXPR", - UNRECOGNIZED = "UNRECOGNIZED", - } - - export enum SubLinkType { - SUB_LINK_TYPE_UNDEFINED = "SUB_LINK_TYPE_UNDEFINED", - EXISTS_SUBLINK = "EXISTS_SUBLINK", - ALL_SUBLINK = "ALL_SUBLINK", - ANY_SUBLINK = "ANY_SUBLINK", - ROWCOMPARE_SUBLINK = "ROWCOMPARE_SUBLINK", - EXPR_SUBLINK = "EXPR_SUBLINK", - MULTIEXPR_SUBLINK = "MULTIEXPR_SUBLINK", - ARRAY_SUBLINK = "ARRAY_SUBLINK", - CTE_SUBLINK = "CTE_SUBLINK", - UNRECOGNIZED = "UNRECOGNIZED", - } - - enum RowCompareType { - ROW_COMPARE_TYPE_UNDEFINED = 0, - ROWCOMPARE_LT = 1, - ROWCOMPARE_LE = 2, - ROWCOMPARE_EQ = 3, - ROWCOMPARE_GE = 4, - ROWCOMPARE_GT = 5, - ROWCOMPARE_NE = 6, - UNRECOGNIZED = -1, - } - - enum MinMaxOp { - MIN_MAX_OP_UNDEFINED = 0, - IS_GREATEST = 1, - IS_LEAST = 2, - UNRECOGNIZED = -1, - } - - enum SQLValueFunctionOp { - SQLVALUE_FUNCTION_OP_UNDEFINED = 0, - SVFOP_CURRENT_DATE = 1, - SVFOP_CURRENT_TIME = 2, - SVFOP_CURRENT_TIME_N = 3, - SVFOP_CURRENT_TIMESTAMP = 4, - SVFOP_CURRENT_TIMESTAMP_N = 5, - SVFOP_LOCALTIME = 6, - SVFOP_LOCALTIME_N = 7, - SVFOP_LOCALTIMESTAMP = 8, - SVFOP_LOCALTIMESTAMP_N = 9, - SVFOP_CURRENT_ROLE = 10, - SVFOP_CURRENT_USER = 11, - SVFOP_USER = 12, - SVFOP_SESSION_USER = 13, - SVFOP_CURRENT_CATALOG = 14, - SVFOP_CURRENT_SCHEMA = 15, - UNRECOGNIZED = -1, - } - - enum XmlExprOp { - XML_EXPR_OP_UNDEFINED = 0, - IS_XMLCONCAT = 1, - IS_XMLELEMENT = 2, - IS_XMLFOREST = 3, - IS_XMLPARSE = 4, - IS_XMLPI = 5, - IS_XMLROOT = 6, - IS_XMLSERIALIZE = 7, - IS_DOCUMENT = 8, - UNRECOGNIZED = -1, - } - - enum XmlOptionType { - XML_OPTION_TYPE_UNDEFINED = 0, - XMLOPTION_DOCUMENT = 1, - XMLOPTION_CONTENT = 2, - UNRECOGNIZED = -1, - } - - export enum NullTestType { - NULL_TEST_TYPE_UNDEFINED = "NULL_TEST_TYPE_UNDEFINED", - IS_NULL = "IS_NULL", - IS_NOT_NULL = "IS_NOT_NULL", - UNRECOGNIZED = "UNRECOGNIZED", - } - - enum BoolTestType { - BOOL_TEST_TYPE_UNDEFINED = 0, - IS_TRUE = 1, - IS_NOT_TRUE = 2, - IS_FALSE = 3, - IS_NOT_FALSE = 4, - IS_UNKNOWN = 5, - IS_NOT_UNKNOWN = 6, - UNRECOGNIZED = -1, - } - - enum CmdType { - CMD_TYPE_UNDEFINED = 0, - CMD_UNKNOWN = 1, - CMD_SELECT = 2, - CMD_UPDATE = 3, - CMD_INSERT = 4, - CMD_DELETE = 5, - CMD_MERGE = 6, - CMD_UTILITY = 7, - CMD_NOTHING = 8, - UNRECOGNIZED = -1, - } - - export enum JoinType { - JOIN_TYPE_UNDEFINED = "JOIN_TYPE_UNDEFINED", - JOIN_INNER = "JOIN_INNER", - JOIN_LEFT = "JOIN_LEFT", - JOIN_FULL = "JOIN_FULL", - JOIN_RIGHT = "JOIN_RIGHT", - JOIN_SEMI = "JOIN_SEMI", - JOIN_ANTI = "JOIN_ANTI", - JOIN_UNIQUE_OUTER = "JOIN_UNIQUE_OUTER", - JOIN_UNIQUE_INNER = "JOIN_UNIQUE_INNER", - UNRECOGNIZED = "UNRECOGNIZED", - } - - enum AggSplit { - AGG_SPLIT_UNDEFINED = 0, - AGGSPLIT_SIMPLE = 1, - AGGSPLIT_INITIAL_SERIAL = 2, - AGGSPLIT_FINAL_DESERIAL = 3, - UNRECOGNIZED = -1, - } - - enum OnConflictAction { - ON_CONFLICT_ACTION_UNDEFINED = 0, - ONCONFLICT_NONE = 1, - ONCONFLICT_NOTHING = 2, - ONCONFLICT_UPDATE = 3, - UNRECOGNIZED = -1, - } - - enum LimitOption { - LIMIT_OPTION_UNDEFINED = 0, - LIMIT_OPTION_DEFAULT = 1, - LIMIT_OPTION_COUNT = 2, - LIMIT_OPTION_WITH_TIES = 3, - UNRECOGNIZED = -1, - } - - enum LockClauseStrength { - LOCK_CLAUSE_STRENGTH_UNDEFINED = 0, - LCS_NONE = 1, - LCS_FORKEYSHARE = 2, - LCS_FORSHARE = 3, - LCS_FORNOKEYUPDATE = 4, - LCS_FORUPDATE = 5, - UNRECOGNIZED = -1, - } - - enum LockWaitPolicy { - LOCK_WAIT_POLICY_UNDEFINED = 0, - LockWaitBlock = 1, - LockWaitSkip = 2, - LockWaitError = 3, - UNRECOGNIZED = -1, - } - - enum KeywordKind { - NO_KEYWORD = 0, - UNRESERVED_KEYWORD = 1, - COL_NAME_KEYWORD = 2, - TYPE_FUNC_NAME_KEYWORD = 3, - RESERVED_KEYWORD = 4, - UNRECOGNIZED = -1, - } - - type Token = unknown; -} diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json index 866ed6b..e59c083 100644 --- a/packages/shared/tsconfig.json +++ b/packages/shared/tsconfig.json @@ -1,6 +1,3 @@ { "extends": "../../tsconfig.node.json", - "compilerOptions": { - "outDir": "lib" - } } diff --git a/packages/sql-tag/.gitignore b/packages/sql-tag/.gitignore index 7951405..53c37a1 100644 --- a/packages/sql-tag/.gitignore +++ b/packages/sql-tag/.gitignore @@ -1 +1 @@ -lib \ No newline at end of file +dist \ No newline at end of file diff --git a/packages/sql-tag/build.config.ts b/packages/sql-tag/build.config.ts new file mode 100644 index 0000000..648aff8 --- /dev/null +++ b/packages/sql-tag/build.config.ts @@ -0,0 +1,13 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig([ + { + entries: ["src/index"], + declaration: true, + sourcemap: true, + rollup: { + emitCJS: true, + inlineDependencies: true, + }, + }, +]); diff --git a/packages/sql-tag/package.json b/packages/sql-tag/package.json index 7a85ca1..fc321dc 100644 --- a/packages/sql-tag/package.json +++ b/packages/sql-tag/package.json @@ -2,29 +2,43 @@ "name": "@ts-safeql/sql-tag", "version": "0.1.2", "description": "", - "main": "lib/index.js", "license": "MIT", "repository": "https://github.com/ts-safeql/safeql/tree/master/packages/eslint-plugin", "files": [ - "lib", + "dist", "package.json" ], + "type": "module", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", + "main": "dist/index.cjs", + "exports": { + ".": { + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + }, + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + } + }, "scripts": { - "build": "tsc", - "watch": "tsc --watch", - "test": "mocha -r=@esbuild-kit/cjs-loader '**/*.test.ts'", + "build": "unbuild", + "dev": "unbuild --stub", + "test": "vitest", "lint": "eslint src", "lint!": "eslint src --fix", "clean": "rm -rf lib" }, "devDependencies": { - "@esbuild-kit/cjs-loader": "^2.4.2", - "@types/mocha": "^10.0.1", "@types/node": "^18.15.11", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "eslint": "^8.39.0", - "mocha": "^10.2.0", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "typescript": "^5.4.5", + "unbuild": "^2.0.0", + "vitest": "^1.6.0" } } diff --git a/packages/sql-tag/src/sql-tag.test.ts b/packages/sql-tag/src/sql-tag.test.ts index 1c1fa06..212c0d0 100644 --- a/packages/sql-tag/src/sql-tag.test.ts +++ b/packages/sql-tag/src/sql-tag.test.ts @@ -1,5 +1,5 @@ import assert from "assert"; -import { test } from "mocha"; +import { test } from "vitest"; import { createTypedSqlTag, sql } from "./sql-tag"; test("sql", () => { @@ -76,7 +76,7 @@ test("createTypedSql", () => { AND id = $1 AND created_at = $2 AND first_name = $3 - ` + `, ); assert.deepEqual(query.values, [5, new Date("2023-01-01"), "John"]); }); @@ -108,7 +108,7 @@ test("createTypedSql transform", () => { FROM users WHERE TRUE AND created_at = $1 - AND first_name = $2` + AND first_name = $2`, ); assert.deepEqual(query.values, ["2023-01-01T00:00:00.000Z", "bar"]); diff --git a/packages/sql-tag/src/sql-tag.ts b/packages/sql-tag/src/sql-tag.ts index 87af39f..c51f1b5 100644 --- a/packages/sql-tag/src/sql-tag.ts +++ b/packages/sql-tag/src/sql-tag.ts @@ -16,7 +16,7 @@ class SqlTag<$Value> { constructor( private template: TemplateStringsArray, private rawValues: $Value[], - private options?: Partial> + private options?: Partial>, ) {} get values() { @@ -29,7 +29,7 @@ class SqlTag<$Value> { get text() { return this.template.reduce( (acc, part, i) => acc + part + (i === this.values.length ? "" : `$${++i}`), - "" + "", ); } diff --git a/packages/sql-tag/tsconfig.json b/packages/sql-tag/tsconfig.json index ba32059..ee5d1da 100644 --- a/packages/sql-tag/tsconfig.json +++ b/packages/sql-tag/tsconfig.json @@ -1,7 +1,3 @@ { - "compilerOptions": { - "outDir": "lib", - "declaration": true - }, "extends": "../../tsconfig.node.json" } diff --git a/packages/test-utils/.gitignore b/packages/test-utils/.gitignore index a65b417..53c37a1 100644 --- a/packages/test-utils/.gitignore +++ b/packages/test-utils/.gitignore @@ -1 +1 @@ -lib +dist \ No newline at end of file diff --git a/packages/test-utils/build.config.ts b/packages/test-utils/build.config.ts new file mode 100644 index 0000000..648aff8 --- /dev/null +++ b/packages/test-utils/build.config.ts @@ -0,0 +1,13 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig([ + { + entries: ["src/index"], + declaration: true, + sourcemap: true, + rollup: { + emitCJS: true, + inlineDependencies: true, + }, + }, +]); diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 0016357..aa3ff11 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,28 +1,38 @@ { "name": "@ts-safeql/test-utils", "version": "0.0.16", - "main": "lib/index.js", - "types": "src/index.ts", "license": "MIT", "repository": "https://github.com/ts-safeql/safeql/tree/master/packages/eslint-plugin", "files": [ - "lib", + "dist", "package.json" ], + "type": "module", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", + "main": "dist/index.cjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, "scripts": { - "build": "tsc", - "watch": "tsc --watch", + "build": "unbuild", + "dev": "unbuild --stub", "lint": "eslint src", "lint!": "eslint src --fix", "clean": "rm -rf lib" }, "devDependencies": { "@types/node": "^18.15.11", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", - "@typescript-eslint/utils": "^5.59.0", - "eslint": "^8.39.0", - "typescript": "^5.3.3" + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@typescript-eslint/utils": "^7.8.0", + "eslint": "^8.57.0", + "typescript": "^5.4.5", + "unbuild": "^2.0.0" }, "dependencies": { "@ts-safeql/shared": "workspace:3.1.0", @@ -30,4 +40,4 @@ "pg-connection-string": "^2.5.0", "postgres": "^3.3.4" } -} +} \ No newline at end of file diff --git a/packages/test-utils/src/setup-test-database.ts b/packages/test-utils/src/setup-test-database.ts index b3f658a..1c07247 100644 --- a/packages/test-utils/src/setup-test-database.ts +++ b/packages/test-utils/src/setup-test-database.ts @@ -96,7 +96,7 @@ function createDatabase(connection: ConnectionOptions) { ], { env: { ...process.env, PGPASSWORD: connection.password }, - } + }, ); return new Promise((resolve, reject) => { @@ -120,7 +120,7 @@ function dropDatabase(connection: ConnectionOptions) { ], { env: { ...process.env, PGPASSWORD: connection.password }, - } + }, ); return new Promise((resolve, reject) => { diff --git a/packages/test-utils/tsconfig.json b/packages/test-utils/tsconfig.json index 866ed6b..e59c083 100644 --- a/packages/test-utils/tsconfig.json +++ b/packages/test-utils/tsconfig.json @@ -1,6 +1,3 @@ { "extends": "../../tsconfig.node.json", - "compilerOptions": { - "outDir": "lib" - } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b1f750e..029812b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -9,16 +9,16 @@ importers: .: devDependencies: '@changesets/cli': - specifier: ^2.26.1 + specifier: ^2.27.1 version: 2.27.1 prettier: - specifier: ^2.8.8 - version: 2.8.8 + specifier: ^3.2.5 + version: 3.2.5 turbo: - specifier: ^1.9.3 + specifier: ^1.13.3 version: 1.13.3 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/basic: @@ -37,21 +37,52 @@ importers: version: 3.4.4 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + demos/basic-flat-config: + dependencies: + '@ts-safeql/eslint-plugin': + specifier: workspace:* + version: link:../../packages/eslint-plugin + postgres: + specifier: ^3.3.4 + version: 3.4.4 + devDependencies: + '@eslint/js': + specifier: ^8.56.0 + version: 8.57.0 + '@types/eslint': + specifier: ^8.56.10 + version: 8.56.10 + '@types/node': + specifier: ^18.15.11 + version: 18.19.31 + eslint: + specifier: ^8.57.0 + version: 8.57.0 + tsx: + specifier: ^4.9.1 + version: 4.9.1 + typescript: + specifier: ^5.4.5 + version: 5.4.5 + typescript-eslint: + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) + demos/basic-migrations-raw: dependencies: '@ts-safeql-demos/shared': @@ -65,16 +96,16 @@ importers: version: 3.4.4 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/basic-transform-type: @@ -93,19 +124,19 @@ importers: version: 3.4.4 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/big-project: @@ -121,20 +152,51 @@ importers: version: 3.4.4 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) + eslint: + specifier: ^8.57.0 + version: 8.57.0 + tsx: + specifier: ^4.9.1 + version: 4.9.1 + typescript: + specifier: ^5.4.5 + version: 5.4.5 + + demos/config-file-flat-config: + dependencies: + '@ts-safeql/eslint-plugin': + specifier: workspace:* + version: link:../../packages/eslint-plugin + postgres: + specifier: ^3.3.4 + version: 3.4.4 + devDependencies: + '@eslint/js': + specifier: ^8.56.0 + version: 8.57.0 + '@types/eslint': + specifier: ^8.56.10 + version: 8.56.10 + '@types/node': + specifier: ^18.15.11 + version: 18.19.31 eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + typescript-eslint: + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) demos/from-config-file: dependencies: @@ -149,19 +211,19 @@ importers: version: 3.4.4 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/multi-connections: @@ -177,16 +239,16 @@ importers: version: 3.4.4 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/playground: @@ -205,19 +267,19 @@ importers: specifier: ^20.10.6 version: 20.12.7 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.7.0 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/postgresjs-custom-types: @@ -239,19 +301,19 @@ importers: specifier: ^20.12.7 version: 20.12.7 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/postgresjs-demo: @@ -270,32 +332,29 @@ importers: version: 3.4.4 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/prisma: dependencies: '@prisma/client': - specifier: 4.12.0 - version: 4.12.0(prisma@4.12.0) - dotenv: - specifier: 16.0.3 - version: 16.0.3 + specifier: 5.13.0 + version: 5.13.0(prisma@5.13.0) prisma: - specifier: 4.12.0 - version: 4.12.0 + specifier: 5.13.0 + version: 5.13.0 devDependencies: '@ts-safeql/eslint-plugin': specifier: workspace:* @@ -304,23 +363,26 @@ importers: specifier: ^18.15.11 version: 18.19.31 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) conditional-type-checks: specifier: 1.0.6 version: 1.0.6 eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: 3.12.6 - version: 3.12.6 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + zx: + specifier: ^8.0.2 + version: 8.0.2 demos/shared: dependencies: @@ -332,7 +394,7 @@ importers: version: 3.4.4 devDependencies: typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/typeorm: @@ -348,7 +410,7 @@ importers: version: 0.1.14 typeorm: specifier: 0.3.17 - version: 0.3.17(pg@8.11.5)(ts-node@10.7.0) + version: 0.3.17(pg@8.11.5)(ts-node@10.7.0(@types/node@16.18.96)(typescript@5.4.5)) devDependencies: '@ts-safeql/eslint-plugin': specifier: workspace:* @@ -360,22 +422,22 @@ importers: specifier: ^8.6.6 version: 8.11.5 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 ts-node: specifier: 10.7.0 version: 10.7.0(@types/node@16.18.96)(typescript@5.4.5) tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 demos/vercel-postgres: @@ -400,22 +462,22 @@ importers: specifier: ^8.6.6 version: 8.11.5 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) dotenv: specifier: 16.0.3 version: 16.0.3 eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 docs: @@ -426,33 +488,45 @@ importers: devDependencies: vitepress: specifier: 1.1.4 - version: 1.1.4(@algolia/client-search@4.23.3)(search-insights@2.13.0)(typescript@5.4.5) + version: 1.1.4(@algolia/client-search@4.23.3)(@types/node@20.12.10)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5) + vitepress-plugin-tabs: + specifier: ^0.5.0 + version: 0.5.0(vitepress@1.1.4(@algolia/client-search@4.23.3)(@types/node@20.12.10)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5))(vue@3.4.26(typescript@5.4.5)) vue: specifier: 3.4.26 version: 3.4.26(typescript@5.4.5) + packages/ast-types: + devDependencies: + '@types/node': + specifier: ^18.15.11 + version: 18.19.31 + '@typescript-eslint/eslint-plugin': + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) + eslint: + specifier: ^8.57.0 + version: 8.57.0 + typescript: + specifier: ^5.4.5 + version: 5.4.5 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(typescript@5.4.5) + packages/eslint-plugin: dependencies: - '@ts-safeql/generate': - specifier: workspace:* - version: link:../generate - '@ts-safeql/shared': - specifier: workspace:* - version: link:../shared - '@ts-safeql/test-utils': - specifier: workspace:* - version: link:../test-utils '@typescript-eslint/utils': - specifier: ^5.59.0 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) chokidar: specifier: ^3.5.3 version: 3.6.0 - esbuild: - specifier: 0.17.17 - version: 0.17.17 fp-ts: - specifier: ^2.13.1 + specifier: ^2.16.5 version: 2.16.5 pg-connection-string: specifier: 2.5.0 @@ -460,12 +534,9 @@ importers: postgres: specifier: ^3.3.4 version: 3.4.4 - recast: - specifier: ^0.22.0 - version: 0.22.0 synckit: - specifier: ^0.8.5 - version: 0.8.8 + specifier: ^0.9.0 + version: 0.9.0 ts-pattern: specifier: ^4.2.2 version: 4.3.0 @@ -476,42 +547,57 @@ importers: specifier: 3.20.1 version: 3.20.1(zod@3.23.5) devDependencies: - '@esbuild-kit/cjs-loader': - specifier: 2.4.2 - version: 2.4.2 - '@types/mocha': - specifier: 10.0.1 - version: 10.0.1 + '@ts-safeql/generate': + specifier: workspace:* + version: link:../generate + '@ts-safeql/shared': + specifier: workspace:* + version: link:../shared + '@ts-safeql/sql-ast': + specifier: workspace:* + version: link:../ast-types + '@ts-safeql/test-utils': + specifier: workspace:* + version: link:../test-utils + '@types/node': + specifier: ^20.12.8 + version: 20.12.8 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) - esbuild-register: - specifier: ^3.4.2 - version: 3.5.0(esbuild@0.17.17) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/rule-tester': + specifier: ^7.8.0 + version: 7.8.0(@eslint/eslintrc@3.0.2)(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 libpg-query: - specifier: ^15.0.2 - version: 15.0.3 - mocha: - specifier: ^10.2.0 - version: 10.4.0 + specifier: ^16.2.0 + version: 16.2.0(encoding@0.1.13) tsx: - specifier: 3.12.6 - version: 3.12.6 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(typescript@5.4.5) + vitest: + specifier: ^1.6.0 + version: 1.6.0(@types/node@20.12.8) packages/generate: dependencies: '@ts-safeql/shared': specifier: workspace:3.1.0 version: link:../shared + '@ts-safeql/sql-ast': + specifier: workspace:3.1.0 + version: link:../ast-types '@ts-safeql/test-utils': specifier: workspace:0.0.16 version: link:../test-utils @@ -525,39 +611,39 @@ importers: specifier: ^3.3.4 version: 3.4.4 devDependencies: - '@esbuild-kit/cjs-loader': - specifier: ^2.4.2 - version: 2.4.4 - '@types/mocha': - specifier: ^10.0.1 - version: 10.0.6 '@types/node': specifier: ^18.15.11 version: 18.19.31 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 libpg-query: - specifier: ^15.0.2 - version: 15.0.3 - mocha: - specifier: ^10.2.0 - version: 10.4.0 + specifier: ^16.2.0 + version: 16.2.0(encoding@0.1.13) tsx: - specifier: ^4.6.2 - version: 4.7.3 + specifier: ^4.9.1 + version: 4.9.1 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(typescript@5.4.5) + vitest: + specifier: ^1.6.0 + version: 1.6.0(@types/node@18.19.31) packages/shared: dependencies: + '@typescript-eslint/utils': + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) minimatch: specifier: ^9.0.0 version: 9.0.4 @@ -565,60 +651,51 @@ importers: specifier: ^3.3.4 version: 3.4.4 devDependencies: - '@esbuild-kit/cjs-loader': - specifier: ^2.4.2 - version: 2.4.4 - '@types/mocha': - specifier: ^10.0.1 - version: 10.0.6 '@types/node': specifier: ^18.15.11 version: 18.19.31 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': - specifier: ^5.59.0 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 - mocha: - specifier: ^10.2.0 - version: 10.4.0 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(typescript@5.4.5) + vitest: + specifier: ^1.6.0 + version: 1.6.0(@types/node@18.19.31) packages/sql-tag: devDependencies: - '@esbuild-kit/cjs-loader': - specifier: ^2.4.2 - version: 2.4.4 - '@types/mocha': - specifier: ^10.0.1 - version: 10.0.6 '@types/node': specifier: ^18.15.11 version: 18.19.31 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 - mocha: - specifier: ^10.2.0 - version: 10.4.0 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(typescript@5.4.5) + vitest: + specifier: ^1.6.0 + version: 1.6.0(@types/node@18.19.31) packages/test-utils: dependencies: @@ -639,435 +716,257 @@ importers: specifier: ^18.15.11 version: 18.19.31 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/utils': - specifier: ^5.59.0 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.39.0 + specifier: ^8.57.0 version: 8.57.0 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 version: 5.4.5 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(typescript@5.4.5) packages: - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): + '@algolia/autocomplete-core@1.9.3': resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - dev: true - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): + '@algolia/autocomplete-plugin-algolia-insights@1.9.3': resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - search-insights: 2.13.0 - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - dev: true - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3): + '@algolia/autocomplete-preset-algolia@1.9.3': resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - '@algolia/client-search': 4.23.3 - algoliasearch: 4.23.3 - dev: true - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3): + '@algolia/autocomplete-shared@1.9.3': resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - dependencies: - '@algolia/client-search': 4.23.3 - algoliasearch: 4.23.3 - dev: true - /@algolia/cache-browser-local-storage@4.23.3: + '@algolia/cache-browser-local-storage@4.23.3': resolution: {integrity: sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==} - dependencies: - '@algolia/cache-common': 4.23.3 - dev: true - /@algolia/cache-common@4.23.3: + '@algolia/cache-common@4.23.3': resolution: {integrity: sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==} - dev: true - /@algolia/cache-in-memory@4.23.3: + '@algolia/cache-in-memory@4.23.3': resolution: {integrity: sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==} - dependencies: - '@algolia/cache-common': 4.23.3 - dev: true - /@algolia/client-account@4.23.3: + '@algolia/client-account@4.23.3': resolution: {integrity: sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==} - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/transporter': 4.23.3 - dev: true - /@algolia/client-analytics@4.23.3: + '@algolia/client-analytics@4.23.3': resolution: {integrity: sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==} - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - dev: true - /@algolia/client-common@4.23.3: + '@algolia/client-common@4.23.3': resolution: {integrity: sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==} - dependencies: - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - dev: true - /@algolia/client-personalization@4.23.3: + '@algolia/client-personalization@4.23.3': resolution: {integrity: sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==} - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - dev: true - /@algolia/client-search@4.23.3: + '@algolia/client-search@4.23.3': resolution: {integrity: sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==} - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - dev: true - /@algolia/logger-common@4.23.3: + '@algolia/logger-common@4.23.3': resolution: {integrity: sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==} - dev: true - /@algolia/logger-console@4.23.3: + '@algolia/logger-console@4.23.3': resolution: {integrity: sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==} - dependencies: - '@algolia/logger-common': 4.23.3 - dev: true - /@algolia/recommend@4.23.3: + '@algolia/recommend@4.23.3': resolution: {integrity: sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==} - dependencies: - '@algolia/cache-browser-local-storage': 4.23.3 - '@algolia/cache-common': 4.23.3 - '@algolia/cache-in-memory': 4.23.3 - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/logger-console': 4.23.3 - '@algolia/requester-browser-xhr': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http': 4.23.3 - '@algolia/transporter': 4.23.3 - dev: true - /@algolia/requester-browser-xhr@4.23.3: + '@algolia/requester-browser-xhr@4.23.3': resolution: {integrity: sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==} - dependencies: - '@algolia/requester-common': 4.23.3 - dev: true - /@algolia/requester-common@4.23.3: + '@algolia/requester-common@4.23.3': resolution: {integrity: sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==} - dev: true - /@algolia/requester-node-http@4.23.3: + '@algolia/requester-node-http@4.23.3': resolution: {integrity: sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==} - dependencies: - '@algolia/requester-common': 4.23.3 - dev: true - /@algolia/transporter@4.23.3: + '@algolia/transporter@4.23.3': resolution: {integrity: sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==} - dependencies: - '@algolia/cache-common': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - dev: true - /@babel/code-frame@7.24.2: + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.24.2': resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.24.5 - picocolors: 1.0.0 - dev: true - /@babel/helper-string-parser@7.24.1: + '@babel/compat-data@7.24.4': + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.24.5': + resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.5': + resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.3': + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.24.5': + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.24.5': + resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.24.5': + resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.1': resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-identifier@7.24.5: + '@babel/helper-validator-identifier@7.24.5': resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} - dev: true - /@babel/highlight@7.24.5: + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.24.5': + resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.5': resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - dev: true - /@babel/parser@7.24.5: + '@babel/parser@7.24.5': resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.24.5 - dev: true - /@babel/runtime@7.24.5: + '@babel/runtime@7.24.5': resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - /@babel/types@7.24.5: + '@babel/standalone@7.24.5': + resolution: {integrity: sha512-Sl8oN9bGfRlNUA2jzfzoHEZxFBDliBlwi5mPVCAWKSlBNkXXJOHpu7SDOqjF6mRoTa6GNX/1kAWG3Tr+YQ3N7A==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.24.5': + resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.24.5': resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 - to-fast-properties: 2.0.0 - dev: true - /@changesets/apply-release-plan@7.0.0: + '@changesets/apply-release-plan@7.0.0': resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/config': 3.0.0 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.6.0 - dev: true - /@changesets/assemble-release-plan@6.0.0: + '@changesets/assemble-release-plan@6.0.0': resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.0.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.6.0 - dev: true - /@changesets/changelog-git@0.2.0: + '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - dependencies: - '@changesets/types': 6.0.0 - dev: true - /@changesets/cli@2.27.1: + '@changesets/cli@2.27.1': resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/apply-release-plan': 7.0.0 - '@changesets/assemble-release-plan': 6.0.0 - '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.0 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.0.0 - '@changesets/get-release-plan': 4.0.0 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 - '@changesets/types': 6.0.0 - '@changesets/write': 0.3.0 - '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.8 - ansi-colors: 4.1.3 - chalk: 2.4.2 - ci-info: 3.9.0 - enquirer: 2.4.1 - external-editor: 3.1.0 - fs-extra: 7.0.1 - human-id: 1.0.2 - meow: 6.1.1 - outdent: 0.5.0 - p-limit: 2.3.0 - preferred-pm: 3.1.3 - resolve-from: 5.0.0 - semver: 7.6.0 - spawndamnit: 2.0.0 - term-size: 2.2.1 - tty-table: 4.2.3 - dev: true - /@changesets/config@3.0.0: + '@changesets/config@3.0.0': resolution: {integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==} - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.0.0 - '@changesets/logger': 0.1.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.5 - dev: true - /@changesets/errors@0.2.0: + '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - dependencies: - extendable-error: 0.1.7 - dev: true - /@changesets/get-dependents-graph@2.0.0: + '@changesets/get-dependents-graph@2.0.0': resolution: {integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==} - dependencies: - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - chalk: 2.4.2 - fs-extra: 7.0.1 - semver: 7.6.0 - dev: true - /@changesets/get-release-plan@4.0.0: + '@changesets/get-release-plan@4.0.0': resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/assemble-release-plan': 6.0.0 - '@changesets/config': 3.0.0 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - dev: true - /@changesets/get-version-range-type@0.4.0: + '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - dev: true - /@changesets/git@3.0.0: + '@changesets/git@3.0.0': resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.5 - spawndamnit: 2.0.0 - dev: true - /@changesets/logger@0.1.0: + '@changesets/logger@0.1.0': resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} - dependencies: - chalk: 2.4.2 - dev: true - /@changesets/parse@0.4.0: + '@changesets/parse@0.4.0': resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - dependencies: - '@changesets/types': 6.0.0 - js-yaml: 3.14.1 - dev: true - /@changesets/pre@2.0.0: + '@changesets/pre@2.0.0': resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - dev: true - /@changesets/read@0.6.0: + '@changesets/read@0.6.0': resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 - '@changesets/parse': 0.4.0 - '@changesets/types': 6.0.0 - chalk: 2.4.2 - fs-extra: 7.0.1 - p-filter: 2.1.0 - dev: true - /@changesets/types@4.1.0: + '@changesets/types@4.1.0': resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - dev: true - /@changesets/types@6.0.0: + '@changesets/types@6.0.0': resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} - dev: true - /@changesets/write@0.3.0: + '@changesets/write@0.3.0': resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/types': 6.0.0 - fs-extra: 7.0.1 - human-id: 1.0.2 - prettier: 2.8.8 - dev: true - /@cspotcode/source-map-consumer@0.8.0: + '@cspotcode/source-map-consumer@0.8.0': resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} engines: {node: '>= 12'} - /@cspotcode/source-map-support@0.7.0: + '@cspotcode/source-map-support@0.7.0': resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} engines: {node: '>=12'} - dependencies: - '@cspotcode/source-map-consumer': 0.8.0 - /@docsearch/css@3.6.0: + '@docsearch/css@3.6.0': resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - dev: true - /@docsearch/js@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0): + '@docsearch/js@3.6.0': resolution: {integrity: sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==} - dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) - preact: 10.21.0 - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/react' - - react - - react-dom - - search-insights - dev: true - /@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0): + '@docsearch/react@3.6.0': resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -1083,1358 +982,708 @@ packages: optional: true search-insights: optional: true - dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - '@docsearch/css': 3.6.0 - algoliasearch: 4.23.3 - search-insights: 2.13.0 - transitivePeerDependencies: - - '@algolia/client-search' - dev: true - - /@esbuild-kit/cjs-loader@2.4.2: - resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} - dependencies: - '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.7.3 - dev: true - - /@esbuild-kit/cjs-loader@2.4.4: - resolution: {integrity: sha512-NfsJX4PdzhwSkfJukczyUiZGc7zNNWZcEAyqeISpDnn0PTfzMJR1aR8xAIPskBejIxBJbIgCCMzbaYa9SXepIg==} - dependencies: - '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.7.3 - dev: true - - /@esbuild-kit/core-utils@3.3.2: - resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} - dependencies: - esbuild: 0.18.20 - source-map-support: 0.5.21 - dev: true - /@esbuild-kit/esm-loader@2.6.5: - resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} - dependencies: - '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.7.3 - dev: true + '@emnapi/runtime@0.43.1': + resolution: {integrity: sha512-Q5sMc4Z4gsD4tlmlyFu+MpNAwpR7Gv2errDhVJ+SOhNjWcx8UTqy+hswb8L31RfC8jBvDgcnT87l3xI2w08rAg==} - /@esbuild/aix-ppc64@0.19.12: + '@esbuild/aix-ppc64@0.19.12': resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - requiresBuild: true - dev: true - optional: true - /@esbuild/aix-ppc64@0.20.2: + '@esbuild/aix-ppc64@0.20.2': resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.17.17: - resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.19.12: + '@esbuild/android-arm64@0.19.12': resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.20.2: + '@esbuild/android-arm64@0.20.2': resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.17.17: - resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.19.12: + '@esbuild/android-arm@0.19.12': resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.20.2: + '@esbuild/android-arm@0.20.2': resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.17.17: - resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.19.12: + '@esbuild/android-x64@0.19.12': resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.20.2: + '@esbuild/android-x64@0.20.2': resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.17.17: - resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.19.12: + '@esbuild/darwin-arm64@0.19.12': resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.20.2: + '@esbuild/darwin-arm64@0.20.2': resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.17.17: - resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.19.12: + '@esbuild/darwin-x64@0.19.12': resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.20.2: + '@esbuild/darwin-x64@0.20.2': resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.17.17: - resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.19.12: + '@esbuild/freebsd-arm64@0.19.12': resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.20.2: + '@esbuild/freebsd-arm64@0.20.2': resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.17.17: - resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.19.12: + '@esbuild/freebsd-x64@0.19.12': resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.20.2: + '@esbuild/freebsd-x64@0.20.2': resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.17.17: - resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.19.12: + '@esbuild/linux-arm64@0.19.12': resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.20.2: + '@esbuild/linux-arm64@0.20.2': resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.17.17: - resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.19.12: + '@esbuild/linux-arm@0.19.12': resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.20.2: + '@esbuild/linux-arm@0.20.2': resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.17.17: - resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.19.12: + '@esbuild/linux-ia32@0.19.12': resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.20.2: + '@esbuild/linux-ia32@0.20.2': resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.17.17: - resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.19.12: + '@esbuild/linux-loong64@0.19.12': resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.20.2: + '@esbuild/linux-loong64@0.20.2': resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.17.17: - resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.19.12: + '@esbuild/linux-mips64el@0.19.12': resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.20.2: + '@esbuild/linux-mips64el@0.20.2': resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.17.17: - resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.19.12: + '@esbuild/linux-ppc64@0.19.12': resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.20.2: + '@esbuild/linux-ppc64@0.20.2': resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.17.17: - resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.19.12: + '@esbuild/linux-riscv64@0.19.12': resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.20.2: + '@esbuild/linux-riscv64@0.20.2': resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.17.17: - resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} - cpu: [s390x] + cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.20.2: - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.17.17: - resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.20.2: + '@esbuild/linux-x64@0.20.2': resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.17.17: - resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - - /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.19.12: + '@esbuild/netbsd-x64@0.19.12': resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.20.2: + '@esbuild/netbsd-x64@0.20.2': resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.17.17: - resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true - - /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.19.12: + '@esbuild/openbsd-x64@0.19.12': resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.20.2: + '@esbuild/openbsd-x64@0.20.2': resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.17.17: - resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - - /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.19.12: + '@esbuild/sunos-x64@0.19.12': resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.20.2: + '@esbuild/sunos-x64@0.20.2': resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.17.17: - resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.19.12: + '@esbuild/win32-arm64@0.19.12': resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.20.2: + '@esbuild/win32-arm64@0.20.2': resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.17.17: - resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.19.12: + '@esbuild/win32-ia32@0.19.12': resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.20.2: + '@esbuild/win32-ia32@0.20.2': resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.17.17: - resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.19.12: + '@esbuild/win32-x64@0.19.12': resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.20.2: + '@esbuild/win32-x64@0.20.2': resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.10.0: + '@eslint-community/regexpp@4.10.0': resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint/eslintrc@2.1.4: + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - /@eslint/js@8.57.0: + '@eslint/eslintrc@3.0.2': + resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@8.57.0': resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@gar/promisify@1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - dev: true - - /@humanwhocodes/config-array@0.11.14: + '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - /@humanwhocodes/module-importer@1.0.1: + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - /@humanwhocodes/object-schema@2.0.3: + '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - /@jridgewell/sourcemap-codec@1.4.15: + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - /@js-joda/core@5.6.2: + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@js-joda/core@5.6.2': resolution: {integrity: sha512-ow4R+7C24xeTjiMTTZ4k6lvxj7MRBqvqLCQjThQff3RjOmIMokMP20LNYVFhGafJtUx/Xo2Qp4qU8eNoTVH0SA==} - dev: false - /@manypkg/find-root@1.1.0: + '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - dependencies: - '@babel/runtime': 7.24.5 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - dev: true - /@manypkg/get-packages@1.1.3: + '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - dependencies: - '@babel/runtime': 7.24.5 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - dev: true - /@mapbox/node-pre-gyp@1.0.11: + '@mapbox/node-pre-gyp@1.0.11': resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true - dependencies: - detect-libc: 2.0.3 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 - node-fetch: 2.7.0 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.6.0 - tar: 6.2.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - /@neondatabase/serverless@0.4.3: + '@neondatabase/serverless@0.4.3': resolution: {integrity: sha512-U8tpuF5f0R5WRsciR7iaJ5S2h54DWa6Z6CEW+J4KgwyvRN3q3qDz0MibdfFXU0WqnRoi/9RSf/2XN4TfeaOCbQ==} - dependencies: - '@types/pg': 8.11.5 - dev: false - /@nodelib/fs.scandir@2.1.5: + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - /@npmcli/fs@1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.6.0 - dev: true + '@npmcli/agent@2.2.2': + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} + engines: {node: ^16.14.0 || >=18.0.0} - /@npmcli/move-file@1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - dev: true + '@npmcli/fs@3.1.0': + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} - /@pkgr/core@0.1.1: + '@pkgr/core@0.1.1': resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dev: false - /@prisma/client@4.12.0(prisma@4.12.0): - resolution: {integrity: sha512-j9/ighfWwux97J2dS15nqhl60tYoH8V0IuSsgZDb6bCFcQD3fXbXmxjYC8GHhIgOk3lB7Pq+8CwElz2MiDpsSg==} - engines: {node: '>=14.17'} - requiresBuild: true + '@prisma/client@5.13.0': + resolution: {integrity: sha512-uYdfpPncbZ/syJyiYBwGZS8Gt1PTNoErNYMuqHDa2r30rNSFtgTA/LXsSk55R7pdRTMi5pHkeP9B14K6nHmwkg==} + engines: {node: '>=16.13'} peerDependencies: prisma: '*' peerDependenciesMeta: prisma: optional: true - dependencies: - '@prisma/engines-version': 4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7 - prisma: 4.12.0 - dev: false - /@prisma/engines-version@4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7: - resolution: {integrity: sha512-JIHNj5jlXb9mcaJwakM0vpgRYJIAurxTUqM0iX0tfEQA5XLZ9ONkIckkhuAKdAzocZ+80GYg7QSsfpjg7OxbOA==} - dev: false + '@prisma/debug@5.13.0': + resolution: {integrity: sha512-699iqlEvzyCj9ETrXhs8o8wQc/eVW+FigSsHpiskSFydhjVuwTJEfj/nIYqTaWFYuxiWQRfm3r01meuW97SZaQ==} + + '@prisma/engines-version@5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b': + resolution: {integrity: sha512-AyUuhahTINGn8auyqYdmxsN+qn0mw3eg+uhkp8zwknXYIqoT3bChG4RqNY/nfDkPvzWAPBa9mrDyBeOnWSgO6A==} + + '@prisma/engines@5.13.0': + resolution: {integrity: sha512-hIFLm4H1boj6CBZx55P4xKby9jgDTeDG0Jj3iXtwaaHmlD5JmiDkZhh8+DYWkTGchu+rRF36AVROLnk0oaqhHw==} + + '@prisma/fetch-engine@5.13.0': + resolution: {integrity: sha512-Yh4W+t6YKyqgcSEB3odBXt7QyVSm0OQlBSldQF2SNXtmOgMX8D7PF/fvH6E6qBCpjB/yeJLy/FfwfFijoHI6sA==} + + '@prisma/get-platform@5.13.0': + resolution: {integrity: sha512-B/WrQwYTzwr7qCLifQzYOmQhZcFmIFhR81xC45gweInSUn2hTEbfKUPd2keAog+y5WI5xLAFNJ3wkXplvSVkSw==} + + '@rollup/plugin-alias@5.1.0': + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@25.0.7': + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.2.3': + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@5.0.5': + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - /@prisma/engines@4.12.0: - resolution: {integrity: sha512-0alKtnxhNB5hYU+ymESBlGI4b9XrGGSdv7Ud+8TE/fBNOEhIud0XQsAR+TrvUZgS4na5czubiMsODw0TUrgkIA==} - requiresBuild: true - dev: false + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - /@rollup/rollup-android-arm-eabi@4.17.2: + '@rollup/rollup-android-arm-eabi@4.17.2': resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-android-arm64@4.17.2: + '@rollup/rollup-android-arm64@4.17.2': resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-arm64@4.17.2: + '@rollup/rollup-darwin-arm64@4.17.2': resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-x64@4.17.2: + '@rollup/rollup-darwin-x64@4.17.2': resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.17.2: + '@rollup/rollup-linux-arm-gnueabihf@4.17.2': resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm-musleabihf@4.17.2: + '@rollup/rollup-linux-arm-musleabihf@4.17.2': resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.17.2: + '@rollup/rollup-linux-arm64-gnu@4.17.2': resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.17.2: + '@rollup/rollup-linux-arm64-musl@4.17.2': resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.17.2: + '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-riscv64-gnu@4.17.2: + '@rollup/rollup-linux-riscv64-gnu@4.17.2': resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-s390x-gnu@4.17.2: + '@rollup/rollup-linux-s390x-gnu@4.17.2': resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.17.2: + '@rollup/rollup-linux-x64-gnu@4.17.2': resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-musl@4.17.2: + '@rollup/rollup-linux-x64-musl@4.17.2': resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-arm64-msvc@4.17.2: + '@rollup/rollup-win32-arm64-msvc@4.17.2': resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-ia32-msvc@4.17.2: + '@rollup/rollup-win32-ia32-msvc@4.17.2': resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-x64-msvc@4.17.2: + '@rollup/rollup-win32-x64-msvc@4.17.2': resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@shikijs/core@1.4.0: + '@shikijs/core@1.4.0': resolution: {integrity: sha512-CxpKLntAi64h3j+TwWqVIQObPTED0FyXLHTTh3MKXtqiQNn2JGcMQQ362LftDbc9kYbDtrksNMNoVmVXzKFYUQ==} - dev: true - /@shikijs/transformers@1.4.0: + '@shikijs/transformers@1.4.0': resolution: {integrity: sha512-kzvlWmWYYSeaLKRce/kgmFFORUtBtFahfXRKndor0b60ocYiXufBQM6d6w1PlMuUkdk55aor9xLvy9wy7hTEJg==} - dependencies: - shiki: 1.4.0 - dev: true - /@sqltools/formatter@1.2.5: + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@sqltools/formatter@1.2.5': resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} - dev: false - /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - dev: true + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} - /@tsconfig/node10@1.0.11: + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - /@tsconfig/node12@1.0.11: + '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - /@tsconfig/node14@1.0.3: + '@tsconfig/node14@1.0.3': resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - /@tsconfig/node16@1.0.4: + '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - /@types/estree@1.0.5: + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - /@types/json-schema@7.0.15: + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - /@types/linkify-it@3.0.5: + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/linkify-it@3.0.5': resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} - dev: true - /@types/markdown-it@14.0.1: + '@types/markdown-it@14.0.1': resolution: {integrity: sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==} - dependencies: - '@types/linkify-it': 3.0.5 - '@types/mdurl': 1.0.5 - dev: true - /@types/mdurl@1.0.5: + '@types/mdurl@1.0.5': resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} - dev: true - /@types/minimist@1.2.5: + '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - dev: true - - /@types/mocha@10.0.1: - resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} - dev: true - /@types/mocha@10.0.6: - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - dev: true - - /@types/node@12.20.55: + '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - dev: true - /@types/node@16.18.96: + '@types/node@16.18.96': resolution: {integrity: sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==} - /@types/node@18.19.31: + '@types/node@18.19.31': resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} - dependencies: - undici-types: 5.26.5 - /@types/node@20.12.7: + '@types/node@20.12.10': + resolution: {integrity: sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==} + + '@types/node@20.12.7': resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} - dependencies: - undici-types: 5.26.5 - dev: true - /@types/normalize-package-data@2.4.4: + '@types/node@20.12.8': + resolution: {integrity: sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==} + + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: true - /@types/pg@8.11.5: + '@types/pg@8.11.5': resolution: {integrity: sha512-2xMjVviMxneZHDHX5p5S6tsRRs7TpDHeeK7kTTMe/kAC/mRRNjWHjZg0rkiY+e17jXSZV3zJYDxXV8Cy72/Vuw==} - dependencies: - '@types/node': 16.18.96 - pg-protocol: 1.6.1 - pg-types: 4.0.2 - /@types/semver@7.5.8: + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - /@types/web-bluetooth@0.0.20: + '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/eslint-plugin@7.8.0': + resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare-lite: 1.4.0 - semver: 7.6.0 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/parser@7.8.0': + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.57.0 - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - - /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/rule-tester@7.8.0': + resolution: {integrity: sha512-f1wXWeZx8XJB/z9Oyjx0ZLmhvcFelSJ0CVvOurCkrISOZhre+imIj5FQQz1rBy/Ips0dCbVl5G4MWTuzlzj5QQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: '*' + '@eslint/eslintrc': '>=2' + eslint: ^8.56.0 + + '@typescript-eslint/scope-manager@7.8.0': + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.8.0': + resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/types@7.8.0': + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} + engines: {node: ^18.18.0 || >=20.0.0} - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/typescript-estree@7.8.0': + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.0 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/utils@7.8.0': + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - 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': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript + eslint: ^8.56.0 - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@7.8.0': + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} + engines: {node: ^18.18.0 || >=20.0.0} - /@ungap/structured-clone@1.2.0: + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vercel/analytics@1.2.2: + '@vercel/analytics@1.2.2': resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==} peerDependencies: next: '>= 13' @@ -2444,144 +1693,77 @@ packages: optional: true react: optional: true - dependencies: - server-only: 0.0.1 - dev: false - /@vercel/postgres@0.1.3: + '@vercel/postgres@0.1.3': resolution: {integrity: sha512-qUKTGkkAfHFYQxP4qW6EL7JWCBowxPh23lXwBnzNBesHUCgPl4/xtfjoA9OXHSo4Iz3l57FKwgQhYl4a2Lr2gA==} engines: {node: '>=14.6'} - dependencies: - '@neondatabase/serverless': 0.4.3 - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 - ws: 8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) - dev: false - /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.26): + '@vitejs/plugin-vue@5.0.4': resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 - dependencies: - vite: 5.2.10 - vue: 3.4.26(typescript@5.4.5) - dev: true - /@vue/compiler-core@3.4.26: + '@vitest/expect@1.6.0': + resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + + '@vitest/runner@1.6.0': + resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + + '@vitest/snapshot@1.6.0': + resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + + '@vitest/spy@1.6.0': + resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + + '@vitest/utils@1.6.0': + resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + + '@vue/compiler-core@3.4.26': resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==} - dependencies: - '@babel/parser': 7.24.5 - '@vue/shared': 3.4.26 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - dev: true - /@vue/compiler-dom@3.4.26: + '@vue/compiler-dom@3.4.26': resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==} - dependencies: - '@vue/compiler-core': 3.4.26 - '@vue/shared': 3.4.26 - dev: true - /@vue/compiler-sfc@3.4.26: + '@vue/compiler-sfc@3.4.26': resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==} - dependencies: - '@babel/parser': 7.24.5 - '@vue/compiler-core': 3.4.26 - '@vue/compiler-dom': 3.4.26 - '@vue/compiler-ssr': 3.4.26 - '@vue/shared': 3.4.26 - estree-walker: 2.0.2 - magic-string: 0.30.10 - postcss: 8.4.38 - source-map-js: 1.2.0 - dev: true - /@vue/compiler-ssr@3.4.26: + '@vue/compiler-ssr@3.4.26': resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==} - dependencies: - '@vue/compiler-dom': 3.4.26 - '@vue/shared': 3.4.26 - dev: true - /@vue/devtools-api@7.1.3(vue@3.4.26): + '@vue/devtools-api@7.1.3': resolution: {integrity: sha512-W8IwFJ/o5iUk78jpqhvScbgCsPiOp2uileDVC0NDtW38gCWhsnu9SeBTjcdu3lbwLdsjc+H1c5Msd/x9ApbcFA==} - dependencies: - '@vue/devtools-kit': 7.1.3(vue@3.4.26) - transitivePeerDependencies: - - vue - dev: true - /@vue/devtools-kit@7.1.3(vue@3.4.26): + '@vue/devtools-kit@7.1.3': resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==} peerDependencies: vue: ^3.0.0 - dependencies: - '@vue/devtools-shared': 7.1.3 - hookable: 5.5.3 - mitt: 3.0.1 - perfect-debounce: 1.0.0 - speakingurl: 14.0.1 - vue: 3.4.26(typescript@5.4.5) - dev: true - /@vue/devtools-shared@7.1.3: + '@vue/devtools-shared@7.1.3': resolution: {integrity: sha512-KJ3AfgjTn3tJz/XKF+BlVShNPecim3G21oHRue+YQOsooW+0s+qXvm09U09aO7yBza5SivL1QgxSrzAbiKWjhQ==} - dependencies: - rfdc: 1.3.1 - dev: true - /@vue/reactivity@3.4.26: + '@vue/reactivity@3.4.26': resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==} - dependencies: - '@vue/shared': 3.4.26 - dev: true - /@vue/runtime-core@3.4.26: + '@vue/runtime-core@3.4.26': resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==} - dependencies: - '@vue/reactivity': 3.4.26 - '@vue/shared': 3.4.26 - dev: true - /@vue/runtime-dom@3.4.26: + '@vue/runtime-dom@3.4.26': resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==} - dependencies: - '@vue/runtime-core': 3.4.26 - '@vue/shared': 3.4.26 - csstype: 3.1.3 - dev: true - /@vue/server-renderer@3.4.26(vue@3.4.26): + '@vue/server-renderer@3.4.26': resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==} peerDependencies: vue: 3.4.26 - dependencies: - '@vue/compiler-ssr': 3.4.26 - '@vue/shared': 3.4.26 - vue: 3.4.26(typescript@5.4.5) - dev: true - /@vue/shared@3.4.26: + '@vue/shared@3.4.26': resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==} - dev: true - /@vueuse/core@10.9.0(vue@3.4.26): + '@vueuse/core@10.9.0': resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.9.0 - '@vueuse/shared': 10.9.0(vue@3.4.26) - vue-demi: 0.14.7(vue@3.4.26) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.26): + '@vueuse/integrations@10.9.0': resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} peerDependencies: async-validator: '*' @@ -2621,401 +1803,4191 @@ packages: optional: true universal-cookie: optional: true - dependencies: - '@vueuse/core': 10.9.0(vue@3.4.26) - '@vueuse/shared': 10.9.0(vue@3.4.26) - focus-trap: 7.5.4 - vue-demi: 0.14.7(vue@3.4.26) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /@vueuse/metadata@10.9.0: + '@vueuse/metadata@10.9.0': resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} - dev: true - /@vueuse/shared@10.9.0(vue@3.4.26): + '@vueuse/shared@10.9.0': resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} - dependencies: - vue-demi: 0.14.7(vue@3.4.26) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /abbrev@1.1.1: + abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.3 - /acorn-walk@8.3.2: + acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - /acorn@8.11.3: + acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - /agent-base@6.0.2: + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: true - /agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} - dependencies: - humanize-ms: 1.2.1 - dev: true + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} - /aggregate-error@3.1.0: + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /ajv@6.12.6: + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - /algoliasearch@4.23.3: + algoliasearch@4.23.3: resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} - dependencies: - '@algolia/cache-browser-local-storage': 4.23.3 - '@algolia/cache-common': 4.23.3 - '@algolia/cache-in-memory': 4.23.3 - '@algolia/client-account': 4.23.3 - '@algolia/client-analytics': 4.23.3 - '@algolia/client-common': 4.23.3 - '@algolia/client-personalization': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/logger-console': 4.23.3 - '@algolia/recommend': 4.23.3 - '@algolia/requester-browser-xhr': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http': 4.23.3 - '@algolia/transporter': 4.23.3 - dev: true - - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - /ansi-colors@4.1.3: + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - dev: true - /ansi-regex@5.0.1: + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-styles@3.2.1: + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - /ansi-styles@4.3.0: + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - /any-promise@1.3.0: + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: false - /anymatch@3.1.3: + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - /app-root-path@3.1.0: + app-root-path@3.1.0: resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==} engines: {node: '>= 6.0.0'} - dev: false - /aproba@2.0.0: + aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true - /are-we-there-yet@2.0.0: + are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - dev: true - - /are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - dev: true - /arg@4.1.3: + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - /argparse@1.0.10: + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - /argparse@2.0.1: + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /array-buffer-byte-length@1.0.1: + array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - dev: true - /array-union@2.1.0: + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - /array.prototype.flat@1.3.2: + array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - dev: true - /arraybuffer.prototype.slice@1.0.3: + arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 - dev: true - /arrify@1.0.1: + arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - dev: true - /assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} - dependencies: - call-bind: 1.0.7 - is-nan: 1.3.2 - object-is: 1.1.6 - object.assign: 4.1.5 - util: 0.12.5 - dev: false + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - /ast-types@0.15.2: - resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} - engines: {node: '>=4'} - dependencies: - tslib: 2.6.2 - dev: false + autoprefixer@10.4.19: + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 - /available-typed-arrays@1.0.7: + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.0.0 - /balanced-match@1.0.2: + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-js@1.5.1: + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - /better-path-resolve@1.0.0: + better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} - dependencies: - is-windows: 1.0.2 - dev: true - /binary-extensions@2.3.0: + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - /brace-expansion@1.1.11: + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - /brace-expansion@2.0.1: + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - /braces@3.0.2: + braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - /breakword@1.0.6: + breakword@1.0.6: resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} - dependencies: - wcwidth: 1.0.1 - dev: true - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true - - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true - /buffer@6.0.3: + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - /bufferutil@4.0.7: + bufferutil@4.0.7: resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==} engines: {node: '>=6.14.2'} - requiresBuild: true - dependencies: - node-gyp-build: 4.8.0 - dev: false - /cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} - dependencies: - '@npmcli/fs': 1.1.1 - '@npmcli/move-file': 1.1.2 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 7.2.3 - infer-owner: 1.0.4 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 8.0.1 - tar: 6.2.1 - unique-filename: 1.1.1 - transitivePeerDependencies: - - bluebird - dev: true + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} - /call-bind@1.0.7: + 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} + + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - /callsites@3.1.0: + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - /camelcase-keys@6.2.2: + camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: true - /camelcase@5.3.1: + camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - dev: true - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001615: + resolution: {integrity: sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==} + + chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} - /chalk@2.4.2: + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - /chalk@4.1.2: + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - /chardet@0.7.0: + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + conditional-type-checks@1.0.6: + resolution: {integrity: sha512-3vyi+yNcmKq+xl1sTX7Ta+4pUvjusMYbC6FSbrS6YJV8TI51wiRn24u4bfdFVhDKKH5GtpKQzxW7bqXbPWllgQ==} + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-default@7.0.1: + resolution: {integrity: sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano@7.0.1: + resolution: {integrity: sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + + csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + + csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + + csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dotenv@16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + engines: {node: '>=12'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.4.756: + resolution: {integrity: sha512-RJKZ9+vEBMeiPAvKNWyZjuYyUqMndcP1f335oHqn3BEQbs2NFtVrnK5+6Xg5wSM9TknNNpWghGDUCKGYF+xWXw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + 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==} + + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + fp-ts@2.16.5: + resolution: {integrity: sha512-N8T8PwMSeTKKtkm9lkj/zSTAnPC/aJIIrQhnHxxkL0KLsRCNUPANksJOlMXxcKKCo7H1ORP3No9EMD+fP0tsdA==} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + 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==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} + + human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + libpg-query@16.2.0: + resolution: {integrity: sha512-quviVdvqHPxQNhHKOHzc4XhIF/29TAwYPTfnNralWdWWORBCFI+m70cN3FeOEdTn/ndp83PBnok3+Tt7ofUjnw==} + + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + 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} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + 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-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@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.0: + resolution: {integrity: sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==} + engines: {node: '>=16 || 14 >=14.17'} + + minisearch@6.3.0: + resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mixme@0.5.10: + resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} + engines: {node: '>= 8.0.0'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + + mkdist@1.5.1: + resolution: {integrity: sha512-lCu1spNiA52o7IaKgZnOjg28nNHwYqUDjBfXePXyUtzD7Xhe6rRTkGTalQ/ALfrZC/SrPw2+A/0qkeJ+fPDZtQ==} + hasBin: true + peerDependencies: + sass: ^1.75.0 + typescript: '>=5.4.5' + vue-tsc: ^1.8.27 || ^2.0.14 + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + vue-tsc: + optional: true + + mlly@1.7.0: + resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + node-addon-api@7.1.0: + resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} + engines: {node: ^16 || ^18 || >= 20} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.0: + resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} + hasBin: true + + node-gyp@10.1.0: + resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + 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==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + pg-cloudflare@1.1.1: + resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + + pg-connection-string@2.5.0: + resolution: {integrity: sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==} + + pg-connection-string@2.6.4: + resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-numeric@1.0.2: + resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} + engines: {node: '>=4'} + + pg-pool@3.6.2: + resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.6.1: + resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg-types@4.0.2: + resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} + engines: {node: '>=10'} + + pg@8.11.5: + resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@1.1.0: + resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-calc@10.0.0: + resolution: {integrity: sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.0: + resolution: {integrity: sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@7.0.0: + resolution: {integrity: sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@7.0.0: + resolution: {integrity: sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@7.0.0: + resolution: {integrity: sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-longhand@7.0.0: + resolution: {integrity: sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-rules@7.0.0: + resolution: {integrity: sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@7.0.0: + resolution: {integrity: sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@7.0.0: + resolution: {integrity: sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@7.0.0: + resolution: {integrity: sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@7.0.0: + resolution: {integrity: sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@7.0.0: + resolution: {integrity: sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + + postcss-svgo@7.0.0: + resolution: {integrity: sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@7.0.0: + resolution: {integrity: sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-array@3.0.2: + resolution: {integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==} + engines: {node: '>=12'} + + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + + postgres-bytea@3.0.0: + resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==} + engines: {node: '>= 6'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-date@2.1.0: + resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==} + engines: {node: '>=12'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + + postgres-interval@3.0.0: + resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==} + engines: {node: '>=12'} + + postgres-range@1.1.4: + resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} + + postgres@3.4.4: + resolution: {integrity: sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==} + engines: {node: '>=12'} + + preact@10.21.0: + resolution: {integrity: sha512-aQAIxtzWEwH8ou+OovWVSVNlFImL7xUCwJX3YMqA3U8iKCNC34999fFOnWjYNsylgfPgMexpbk7WYOLtKr/mxg==} + + preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + 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} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + prisma@5.13.0: + resolution: {integrity: sha512-kGtcJaElNRAdAGsCNykFSZ7dBKpL14Cbs+VaQ8cECxQlRPDjBlMHNFYeYt0SKovAVy2Y65JXQwB3A5+zIQwnTg==} + engines: {node: '>=16.13'} + hasBin: true + + 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} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + reflect-metadata@0.1.14: + resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rollup-plugin-dts@6.1.0: + resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + + rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + rollup@4.17.2: + resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + search-insights@2.13.0: + resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@1.4.0: + resolution: {integrity: sha512-5WIn0OL8PWm7JhnTwRWXniy6eEDY234mRrERVlFa646V2ErQqwIFd2UML7e0Pq9eqSKLoMa3Ke+xbsF+DAuy+Q==} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + + socks-proxy-agent@8.0.3: + resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + engines: {node: '>= 14'} + + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + + stylehacks@7.0.0: + resolution: {integrity: sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + synckit@0.9.0: + resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + engines: {node: ^14.18.0 || >=16.0.0} + + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + + tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + + tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-node@10.7.0: + resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + ts-pattern@4.3.0: + resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tsx@4.9.1: + resolution: {integrity: sha512-CqSJaYyZ6GEqnGtPuMPQHvUwRGU6VHSVF+RDxoOmRg/XD4aF0pD973tKhoUYGQtdcoCHcSOGk34ioFaP+vYcMQ==} + engines: {node: '>=18.0.0'} + hasBin: true + + tty-table@4.2.3: + resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} + engines: {node: '>=8.0.0'} + hasBin: true + + turbo-darwin-64@1.13.3: + resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@1.13.3: + resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@1.13.3: + resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@1.13.3: + resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@1.13.3: + resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@1.13.3: + resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==} + cpu: [arm64] + os: [win32] + + turbo@1.13.3: + resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==} + hasBin: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typeorm@0.3.17: + resolution: {integrity: sha512-UDjUEwIQalO9tWw9O2A4GU+sT3oyoUXheHJy4ft+RFdnRdQctdQ34L9SqE2p7LdwzafHx1maxT+bqXON+Qnmig==} + engines: {node: '>= 12.9.0'} + hasBin: true + peerDependencies: + '@google-cloud/spanner': ^5.18.0 + '@sap/hana-client': ^2.12.25 + better-sqlite3: ^7.1.2 || ^8.0.0 + hdb-pool: ^0.1.6 + ioredis: ^5.0.4 + mongodb: ^5.2.0 + mssql: ^9.1.1 + mysql2: ^2.2.5 || ^3.0.1 + oracledb: ^5.1.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 || ^4.0.0 + sql.js: ^1.4.0 + sqlite3: ^5.0.3 + ts-node: ^10.7.0 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + '@google-cloud/spanner': + optional: true + '@sap/hana-client': + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + ts-node: + optional: true + typeorm-aurora-data-api-driver: + optional: true + + typescript-eslint@7.8.0: + resolution: {integrity: sha512-sheFG+/D8N/L7gC3WT0Q8sB97Nm573Yfr+vZFzl/4nBdYcmviBPtwGSX9TJ7wpVg28ocerKVOt+k2eGmHzcgVA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unbuild@2.0.0: + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} + hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + 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} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + untyped@1.4.2: + resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} + hasBin: true + + update-browserslist-db@1.0.15: + resolution: {integrity: sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + utf-8-validate@6.0.3: + resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==} + engines: {node: '>=6.14.2'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vite-node@1.6.0: + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@5.2.10: + resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitepress-plugin-tabs@0.5.0: + resolution: {integrity: sha512-SIhFWwGsUkTByfc2b279ray/E0Jt8vDTsM1LiHxmCOBAEMmvzIBZSuYYT1DpdDTiS3SuJieBheJkYnwCq/yD9A==} + peerDependencies: + vitepress: ^1.0.0-rc.27 + vue: ^3.3.8 + + vitepress@1.1.4: + resolution: {integrity: sha512-bWIzFZXpPB6NIDBuWnS20aMADH+FcFKDfQNYFvbOWij03PR29eImTceQHIzCKordjXYBhM/TjE5VKFTUJ3EheA==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + + vitest@1.6.0: + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vue-demi@0.14.7: + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue@3.4.26: + resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + 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 + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + zod-to-json-schema@3.20.1: + resolution: {integrity: sha512-U+zmNJUKqzv92E+LdEYv0g2LxBLks4HAwfC6cue8jXby5PAeSEPGO4xV9Sl4zmLYyFvJkm0FOfOs6orUO+AI1w==} + peerDependencies: + zod: ^3.20.0 + + zod@3.23.5: + resolution: {integrity: sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA==} + + zx@8.0.2: + resolution: {integrity: sha512-3g+ePtPYmyrjRuASlJiUhkje1je4a47woML/fzTKBb9PA5BzRQbSswwyJ8nlFWJjA1ORRi6TMyAdhuz/jK+Gaw==} + engines: {node: '>= 16.0.0'} + hasBin: true + +snapshots: + + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0)': + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0)': + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + search-insights: 2.13.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)': + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + '@algolia/client-search': 4.23.3 + algoliasearch: 4.23.3 + + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)': + dependencies: + '@algolia/client-search': 4.23.3 + algoliasearch: 4.23.3 + + '@algolia/cache-browser-local-storage@4.23.3': + dependencies: + '@algolia/cache-common': 4.23.3 + + '@algolia/cache-common@4.23.3': {} + + '@algolia/cache-in-memory@4.23.3': + dependencies: + '@algolia/cache-common': 4.23.3 + + '@algolia/client-account@4.23.3': + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/transporter': 4.23.3 + + '@algolia/client-analytics@4.23.3': + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + + '@algolia/client-common@4.23.3': + dependencies: + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + + '@algolia/client-personalization@4.23.3': + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + + '@algolia/client-search@4.23.3': + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + + '@algolia/logger-common@4.23.3': {} + + '@algolia/logger-console@4.23.3': + dependencies: + '@algolia/logger-common': 4.23.3 + + '@algolia/recommend@4.23.3': + dependencies: + '@algolia/cache-browser-local-storage': 4.23.3 + '@algolia/cache-common': 4.23.3 + '@algolia/cache-in-memory': 4.23.3 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/logger-console': 4.23.3 + '@algolia/requester-browser-xhr': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/requester-node-http': 4.23.3 + '@algolia/transporter': 4.23.3 + + '@algolia/requester-browser-xhr@4.23.3': + dependencies: + '@algolia/requester-common': 4.23.3 + + '@algolia/requester-common@4.23.3': {} + + '@algolia/requester-node-http@4.23.3': + dependencies: + '@algolia/requester-common': 4.23.3 + + '@algolia/transporter@4.23.3': + dependencies: + '@algolia/cache-common': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/code-frame@7.24.2': + dependencies: + '@babel/highlight': 7.24.5 + picocolors: 1.0.0 + + '@babel/compat-data@7.24.4': {} + + '@babel/core@7.24.5': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helpers': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.24.5': + dependencies: + '@babel/types': 7.24.5 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-compilation-targets@7.23.6': + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-environment-visitor@7.22.20': {} + + '@babel/helper-function-name@7.23.0': + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.5 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-module-imports@7.24.3': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + + '@babel/helper-simple-access@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-split-export-declaration@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-string-parser@7.24.1': {} + + '@babel/helper-validator-identifier@7.24.5': {} + + '@babel/helper-validator-option@7.23.5': {} + + '@babel/helpers@7.24.5': + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + transitivePeerDependencies: + - supports-color + + '@babel/highlight@7.24.5': + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + + '@babel/parser@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/runtime@7.24.5': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/standalone@7.24.5': {} + + '@babel/template@7.24.0': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + + '@babel/traverse@7.24.5': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.24.5': + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 + to-fast-properties: 2.0.0 + + '@changesets/apply-release-plan@7.0.0': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/config': 3.0.0 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.6.0 + + '@changesets/assemble-release-plan@6.0.0': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.0.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.6.0 + + '@changesets/changelog-git@0.2.0': + dependencies: + '@changesets/types': 6.0.0 + + '@changesets/cli@2.27.1': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/apply-release-plan': 7.0.0 + '@changesets/assemble-release-plan': 6.0.0 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.0 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.0.0 + '@changesets/get-release-plan': 4.0.0 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.0 + '@manypkg/get-packages': 1.1.3 + '@types/semver': 7.5.8 + ansi-colors: 4.1.3 + chalk: 2.4.2 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + meow: 6.1.1 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.1.3 + resolve-from: 5.0.0 + semver: 7.6.0 + spawndamnit: 2.0.0 + term-size: 2.2.1 + tty-table: 4.2.3 + + '@changesets/config@3.0.0': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.0.0 + '@changesets/logger': 0.1.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.5 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.0.0': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 7.6.0 + + '@changesets/get-release-plan@4.0.0': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/assemble-release-plan': 6.0.0 + '@changesets/config': 3.0.0 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.0': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.5 + spawndamnit: 2.0.0 + + '@changesets/logger@0.1.0': + dependencies: + chalk: 2.4.2 + + '@changesets/parse@0.4.0': + dependencies: + '@changesets/types': 6.0.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.0': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.0': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.0.0': {} + + '@changesets/write@0.3.0': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + + '@cspotcode/source-map-consumer@0.8.0': {} + + '@cspotcode/source-map-support@0.7.0': + dependencies: + '@cspotcode/source-map-consumer': 0.8.0 + + '@docsearch/css@3.6.0': {} + + '@docsearch/js@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0)': + dependencies: + '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) + preact: 10.21.0 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + + '@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0)': + dependencies: + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + '@docsearch/css': 3.6.0 + algoliasearch: 4.23.3 + optionalDependencies: + search-insights: 2.13.0 + transitivePeerDependencies: + - '@algolia/client-search' + + '@emnapi/runtime@0.43.1': + dependencies: + tslib: 2.6.2 + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.20.2': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.20.2': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.20.2': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.20.2': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.20.2': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.20.2': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.20.2': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.20.2': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.20.2': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.20.2': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.20.2': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.20.2': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.20.2': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.20.2': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.20.2': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.20.2': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.20.2': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.20.2': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.20.2': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.20.2': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.0.2': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@js-joda/core@5.6.2': {} + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.24.5 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.24.5 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0(encoding@0.1.13) + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.0 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@neondatabase/serverless@0.4.3': + dependencies: + '@types/pg': 8.11.5 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@npmcli/agent@2.2.2': + dependencies: + agent-base: 7.1.1 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + lru-cache: 10.2.2 + socks-proxy-agent: 8.0.3 + transitivePeerDependencies: + - supports-color + + '@npmcli/fs@3.1.0': + dependencies: + semver: 7.6.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} + + '@prisma/client@5.13.0(prisma@5.13.0)': + optionalDependencies: + prisma: 5.13.0 + + '@prisma/debug@5.13.0': {} + + '@prisma/engines-version@5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b': {} + + '@prisma/engines@5.13.0': + dependencies: + '@prisma/debug': 5.13.0 + '@prisma/engines-version': 5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b + '@prisma/fetch-engine': 5.13.0 + '@prisma/get-platform': 5.13.0 + + '@prisma/fetch-engine@5.13.0': + dependencies: + '@prisma/debug': 5.13.0 + '@prisma/engines-version': 5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b + '@prisma/get-platform': 5.13.0 + + '@prisma/get-platform@5.13.0': + dependencies: + '@prisma/debug': 5.13.0 + + '@rollup/plugin-alias@5.1.0(rollup@3.29.4)': + dependencies: + slash: 4.0.0 + optionalDependencies: + rollup: 3.29.4 + + '@rollup/plugin-commonjs@25.0.7(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.10 + optionalDependencies: + rollup: 3.29.4 + + '@rollup/plugin-json@6.1.0(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + optionalDependencies: + rollup: 3.29.4 + + '@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 3.29.4 + + '@rollup/plugin-replace@5.0.5(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + magic-string: 0.30.10 + optionalDependencies: + rollup: 3.29.4 + + '@rollup/pluginutils@5.1.0(rollup@3.29.4)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 3.29.4 + + '@rollup/rollup-android-arm-eabi@4.17.2': + optional: true + + '@rollup/rollup-android-arm64@4.17.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.17.2': + optional: true + + '@rollup/rollup-darwin-x64@4.17.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.17.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.17.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.17.2': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.17.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.17.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.17.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.17.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.17.2': + optional: true + + '@shikijs/core@1.4.0': {} + + '@shikijs/transformers@1.4.0': + dependencies: + shiki: 1.4.0 + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/merge-streams@2.3.0': {} + + '@sqltools/formatter@1.2.5': {} + + '@trysound/sax@0.2.0': {} + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/eslint@8.56.10': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.5': {} + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.12.10 + optional: true + + '@types/json-schema@7.0.15': {} + + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 20.12.10 + optional: true + + '@types/linkify-it@3.0.5': {} + + '@types/markdown-it@14.0.1': + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + + '@types/mdurl@1.0.5': {} + + '@types/minimist@1.2.5': {} + + '@types/node@12.20.55': {} + + '@types/node@16.18.96': {} + + '@types/node@18.19.31': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.12.10': + dependencies: + undici-types: 5.26.5 + optional: true + + '@types/node@20.12.7': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.12.8': + dependencies: + undici-types: 5.26.5 + + '@types/normalize-package-data@2.4.4': {} + + '@types/pg@8.11.5': + dependencies: + '@types/node': 20.12.8 + pg-protocol: 1.6.1 + pg-types: 4.0.2 + + '@types/resolve@1.20.2': {} + + '@types/semver@7.5.8': {} + + '@types/web-bluetooth@0.0.20': {} + + '@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/type-utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.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.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 + debug: 4.3.4 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/rule-tester@7.8.0(@eslint/eslintrc@3.0.2)(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint/eslintrc': 3.0.2 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + ajv: 6.12.6 + eslint: 8.57.0 + lodash.merge: 4.6.2 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/scope-manager@7.8.0': + dependencies: + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 + + '@typescript-eslint/type-utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@7.8.0': {} + + '@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.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.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)': + 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.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@7.8.0': + dependencies: + '@typescript-eslint/types': 7.8.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@vercel/analytics@1.2.2': + dependencies: + server-only: 0.0.1 + + '@vercel/postgres@0.1.3': + dependencies: + '@neondatabase/serverless': 0.4.3 + bufferutil: 4.0.7 + utf-8-validate: 6.0.3 + ws: 8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + + '@vitejs/plugin-vue@5.0.4(vite@5.2.10(@types/node@20.12.10))(vue@3.4.26(typescript@5.4.5))': + dependencies: + vite: 5.2.10(@types/node@20.12.10) + vue: 3.4.26(typescript@5.4.5) + + '@vitest/expect@1.6.0': + dependencies: + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + chai: 4.4.1 + + '@vitest/runner@1.6.0': + dependencies: + '@vitest/utils': 1.6.0 + p-limit: 5.0.0 + pathe: 1.1.2 + + '@vitest/snapshot@1.6.0': + dependencies: + magic-string: 0.30.10 + pathe: 1.1.2 + pretty-format: 29.7.0 + + '@vitest/spy@1.6.0': + dependencies: + tinyspy: 2.2.1 + + '@vitest/utils@1.6.0': + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + + '@vue/compiler-core@3.4.26': + dependencies: + '@babel/parser': 7.24.5 + '@vue/shared': 3.4.26 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.26': + dependencies: + '@vue/compiler-core': 3.4.26 + '@vue/shared': 3.4.26 + + '@vue/compiler-sfc@3.4.26': + dependencies: + '@babel/parser': 7.24.5 + '@vue/compiler-core': 3.4.26 + '@vue/compiler-dom': 3.4.26 + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.26': + dependencies: + '@vue/compiler-dom': 3.4.26 + '@vue/shared': 3.4.26 + + '@vue/devtools-api@7.1.3(vue@3.4.26(typescript@5.4.5))': + dependencies: + '@vue/devtools-kit': 7.1.3(vue@3.4.26(typescript@5.4.5)) + transitivePeerDependencies: + - vue + + '@vue/devtools-kit@7.1.3(vue@3.4.26(typescript@5.4.5))': + dependencies: + '@vue/devtools-shared': 7.1.3 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + vue: 3.4.26(typescript@5.4.5) + + '@vue/devtools-shared@7.1.3': + dependencies: + rfdc: 1.3.1 + + '@vue/reactivity@3.4.26': + dependencies: + '@vue/shared': 3.4.26 + + '@vue/runtime-core@3.4.26': + dependencies: + '@vue/reactivity': 3.4.26 + '@vue/shared': 3.4.26 + + '@vue/runtime-dom@3.4.26': + dependencies: + '@vue/runtime-core': 3.4.26 + '@vue/shared': 3.4.26 + csstype: 3.1.3 + + '@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5))': + dependencies: + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 + vue: 3.4.26(typescript@5.4.5) + + '@vue/shared@3.4.26': {} + + '@vueuse/core@10.9.0(vue@3.4.26(typescript@5.4.5))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.26(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.26(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.26(typescript@5.4.5))': + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.26(typescript@5.4.5)) + '@vueuse/shared': 10.9.0(vue@3.4.26(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.26(typescript@5.4.5)) + optionalDependencies: + focus-trap: 7.5.4 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.9.0': {} + + '@vueuse/shared@10.9.0(vue@3.4.26(typescript@5.4.5))': + dependencies: + vue-demi: 0.14.7(vue@3.4.26(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + abbrev@1.1.1: {} + + abbrev@2.0.0: {} + + acorn-jsx@5.3.2(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + + acorn-walk@8.3.2: {} + + acorn@8.11.3: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.4 + 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@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + algoliasearch@4.23.3: + dependencies: + '@algolia/cache-browser-local-storage': 4.23.3 + '@algolia/cache-common': 4.23.3 + '@algolia/cache-in-memory': 4.23.3 + '@algolia/client-account': 4.23.3 + '@algolia/client-analytics': 4.23.3 + '@algolia/client-common': 4.23.3 + '@algolia/client-personalization': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/logger-console': 4.23.3 + '@algolia/recommend': 4.23.3 + '@algolia/requester-browser-xhr': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/requester-node-http': 4.23.3 + '@algolia/transporter': 4.23.3 + + ansi-colors@4.1.3: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true + picomatch: 2.3.1 - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + app-root-path@3.1.0: {} + + aproba@2.0.0: {} + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + array-union@2.1.0: {} + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + arrify@1.0.1: {} + + assertion-error@1.1.0: {} + + autoprefixer@10.4.19(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001615 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + + binary-extensions@2.3.0: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + breakword@1.0.6: + dependencies: + wcwidth: 1.0.1 + + browserslist@4.23.0: + dependencies: + caniuse-lite: 1.0.30001615 + electron-to-chromium: 1.4.756 + node-releases: 2.0.14 + update-browserslist-db: 1.0.15(browserslist@4.23.0) + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.0.7: + dependencies: + node-gyp-build: 4.8.0 + + builtin-modules@3.3.0: {} + + cac@6.7.14: {} + + cacache@18.0.3: + dependencies: + '@npmcli/fs': 3.1.0 + fs-minipass: 3.0.3 + glob: 10.3.12 + lru-cache: 10.2.2 + minipass: 7.1.0 + 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 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camelcase-keys@6.2.2: + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + camelcase@5.3.1: {} + + caniuse-api@3.0.0: + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001615 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + + caniuse-lite@1.0.30001615: {} + + chai@4.4.1: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + chardet@0.7.0: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + chokidar@3.6.0: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -3026,27 +5998,18 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: false - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: true + chownr@2.0.0: {} - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - dev: true + ci-info@3.9.0: {} - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true + citty@0.1.6: + dependencies: + consola: 3.2.3 - /cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true + clean-stack@2.2.0: {} + + cli-highlight@2.1.11: dependencies: chalk: 4.1.2 highlight.js: 10.7.3 @@ -3054,291 +6017,290 @@ packages: parse5: 5.1.1 parse5-htmlparser2-tree-adapter: 6.0.1 yargs: 16.2.0 - dev: false - /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@6.0.0: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - dev: true - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true + clone@1.0.4: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - dev: true - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-name@1.1.4: {} - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - dev: true + color-support@1.1.3: {} - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + colord@2.9.3: {} - /conditional-type-checks@1.0.6: - resolution: {integrity: sha512-3vyi+yNcmKq+xl1sTX7Ta+4pUvjusMYbC6FSbrS6YJV8TI51wiRn24u4bfdFVhDKKH5GtpKQzxW7bqXbPWllgQ==} - dev: true + commander@7.2.0: {} - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: true + commondir@1.0.1: {} - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + concat-map@0.0.1: {} - /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + conditional-type-checks@1.0.6: {} + + confbox@0.1.7: {} + + consola@3.2.3: {} + + console-control-strings@1.1.0: {} + + convert-source-map@2.0.0: {} + + create-require@1.1.1: {} + + cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 which: 1.3.1 - dev: true - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - dev: true + css-declaration-sorter@7.2.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 - /csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} - dev: true + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 - /csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} - dev: true + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.0 - /csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} - dev: true + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 - /csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} - engines: {node: '>= 0.1.90'} + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + cssnano-preset-default@7.0.1(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + css-declaration-sorter: 7.2.0(postcss@8.4.38) + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 10.0.0(postcss@8.4.38) + postcss-colormin: 7.0.0(postcss@8.4.38) + postcss-convert-values: 7.0.0(postcss@8.4.38) + postcss-discard-comments: 7.0.0(postcss@8.4.38) + postcss-discard-duplicates: 7.0.0(postcss@8.4.38) + postcss-discard-empty: 7.0.0(postcss@8.4.38) + postcss-discard-overridden: 7.0.0(postcss@8.4.38) + postcss-merge-longhand: 7.0.0(postcss@8.4.38) + postcss-merge-rules: 7.0.0(postcss@8.4.38) + postcss-minify-font-values: 7.0.0(postcss@8.4.38) + postcss-minify-gradients: 7.0.0(postcss@8.4.38) + postcss-minify-params: 7.0.0(postcss@8.4.38) + postcss-minify-selectors: 7.0.0(postcss@8.4.38) + postcss-normalize-charset: 7.0.0(postcss@8.4.38) + postcss-normalize-display-values: 7.0.0(postcss@8.4.38) + postcss-normalize-positions: 7.0.0(postcss@8.4.38) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.38) + postcss-normalize-string: 7.0.0(postcss@8.4.38) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.38) + postcss-normalize-unicode: 7.0.0(postcss@8.4.38) + postcss-normalize-url: 7.0.0(postcss@8.4.38) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.38) + postcss-ordered-values: 7.0.0(postcss@8.4.38) + postcss-reduce-initial: 7.0.0(postcss@8.4.38) + postcss-reduce-transforms: 7.0.0(postcss@8.4.38) + postcss-svgo: 7.0.0(postcss@8.4.38) + postcss-unique-selectors: 7.0.0(postcss@8.4.38) + + cssnano-utils@5.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + cssnano@7.0.1(postcss@8.4.38): + dependencies: + cssnano-preset-default: 7.0.1(postcss@8.4.38) + lilconfig: 3.1.1 + postcss: 8.4.38 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + csstype@3.1.3: {} + + csv-generate@3.4.3: {} + + csv-parse@4.16.3: {} + + csv-stringify@5.6.5: {} + + csv@5.5.3: dependencies: csv-generate: 3.4.3 csv-parse: 4.16.3 csv-stringify: 5.6.5 stream-transform: 2.1.3 - dev: true - /data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} + date-fns@2.30.0: dependencies: '@babel/runtime': 7.24.5 - dev: false - /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.4: dependencies: ms: 2.1.2 - supports-color: 8.1.1 - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true + decamelize@1.2.0: {} - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true + deep-eql@4.1.3: + dependencies: + type-detect: 4.0.8 - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deep-is@0.1.4: {} - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + deepmerge@4.3.1: {} + + defaults@1.0.4: dependencies: clone: 1.0.4 - dev: true - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: true + defu@6.1.4: {} - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true + delegates@1.0.0: {} - /detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - dev: true + detect-indent@6.1.0: {} - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + detect-libc@2.0.3: {} - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true + diff-sequences@29.6.3: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + diff@4.0.2: {} + + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - /dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 - /dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - dev: false + domelementtype@2.3.0: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 - /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dotenv@16.0.3: {} + + dotenv@16.4.5: {} + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.4.756: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 - dev: true optional: true - /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - dev: true - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: true + entities@4.5.0: {} - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true + env-paths@2.2.1: {} - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true + err-code@2.0.3: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - dev: true - /es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} + es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -3355,7 +6317,7 @@ packages: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -3386,124 +6348,34 @@ packages: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 - dev: true - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + es-errors@1.3.0: {} - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - dev: true - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - - /esbuild-register@3.5.0(esbuild@0.17.17): - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} - peerDependencies: - esbuild: '>=0.12 <1' - dependencies: - debug: 4.3.4(supports-color@8.1.1) - esbuild: 0.17.17 - transitivePeerDependencies: - - supports-color - dev: true - /esbuild@0.17.17: - resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.17 - '@esbuild/android-arm64': 0.17.17 - '@esbuild/android-x64': 0.17.17 - '@esbuild/darwin-arm64': 0.17.17 - '@esbuild/darwin-x64': 0.17.17 - '@esbuild/freebsd-arm64': 0.17.17 - '@esbuild/freebsd-x64': 0.17.17 - '@esbuild/linux-arm': 0.17.17 - '@esbuild/linux-arm64': 0.17.17 - '@esbuild/linux-ia32': 0.17.17 - '@esbuild/linux-loong64': 0.17.17 - '@esbuild/linux-mips64el': 0.17.17 - '@esbuild/linux-ppc64': 0.17.17 - '@esbuild/linux-riscv64': 0.17.17 - '@esbuild/linux-s390x': 0.17.17 - '@esbuild/linux-x64': 0.17.17 - '@esbuild/netbsd-x64': 0.17.17 - '@esbuild/openbsd-x64': 0.17.17 - '@esbuild/sunos-x64': 0.17.17 - '@esbuild/win32-arm64': 0.17.17 - '@esbuild/win32-ia32': 0.17.17 - '@esbuild/win32-x64': 0.17.17 - - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - dev: true - - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.19.12: optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 '@esbuild/android-arm': 0.19.12 @@ -3528,13 +6400,8 @@ packages: '@esbuild/win32-arm64': 0.19.12 '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - dev: true - /esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -3559,43 +6426,23 @@ packages: '@esbuild/win32-arm64': 0.20.2 '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - dev: true - - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true + escalade@3.1.2: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + escape-string-regexp@1.0.5: {} - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + escape-string-regexp@4.0.0: {} - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@3.4.3: {} - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint-visitor-keys@4.0.0: {} + + eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 @@ -3608,7 +6455,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -3638,66 +6485,63 @@ packages: transitivePeerDependencies: - supports-color - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.0.1: + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 4.0.0 + + espree@9.6.1: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + esprima@4.0.1: {} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.5.0: dependencies: estraverse: 5.3.0 - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + estraverse@5.3.0: {} - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + estree-walker@2.0.2: {} - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + esutils@2.0.3: {} - /extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - dev: true + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + exponential-backoff@3.1.1: {} + + extendable-error@0.1.7: {} + + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - dev: true - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-deep-equal@3.1.3: {} - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -3705,137 +6549,105 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-levenshtein@2.0.6: {} - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.17.1: dependencies: reusify: 1.0.4 - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + find-yarn-workspace-root2@1.2.16: dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 - dev: true - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@3.2.0: dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.1: {} - /focus-trap@7.5.4: - resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + focus-trap@7.5.4: dependencies: tabbable: 6.2.0 - dev: true - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.3: dependencies: is-callable: 1.2.7 - /fp-ts@2.16.5: - resolution: {integrity: sha512-N8T8PwMSeTKKtkm9lkj/zSTAnPC/aJIIrQhnHxxkL0KLsRCNUPANksJOlMXxcKKCo7H1ORP3No9EMD+fP0tsdA==} - dev: false + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 - /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + fp-ts@2.16.5: {} + + fraction.js@4.3.7: {} + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true - /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - dev: true - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.0 - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + fs.realpath@1.0.0: {} + + fsevents@2.3.3: optional: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-bind@1.1.2: {} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} + gauge@3.0.2: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -3846,29 +6658,14 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 - dev: true - /gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + get-caller-file@2.0.5: {} - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + get-func-name@2.0.2: {} + + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 @@ -3876,35 +6673,35 @@ packages: has-symbols: 1.0.3 hasown: 2.0.2 - /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + get-stream@8.0.1: {} + + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.7.3: dependencies: resolve-pkg-maps: 1.0.0 - dev: true - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@10.3.12: + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.4 + minipass: 7.1.0 + path-scurry: 1.10.2 + + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3913,9 +6710,7 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + glob@8.1.0: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3923,22 +6718,20 @@ packages: minimatch: 5.0.1 once: 1.4.0 - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@11.12.0: {} + + globals@13.24.0: dependencies: type-fest: 0.20.2 - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globals@14.0.0: {} + + globalthis@1.0.4: dependencies: define-properties: 1.2.1 - dev: true + gopd: 1.0.1 - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -3947,572 +6740,394 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + + globby@14.0.1: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true + graceful-fs@4.2.11: {} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true + grapheme-splitter@1.0.4: {} - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphemer@1.4.0: {} - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true + hard-rejection@2.1.0: {} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + has-flag@4.0.0: {} - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + has-proto@1.0.3: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-symbols@1.0.3: {} - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: true + has-unicode@2.0.1: {} - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + hasown@2.0.2: dependencies: function-bind: 1.1.2 - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true + highlight.js@10.7.3: {} - /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: false + hookable@5.5.3: {} - /hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - dev: true + hosted-git-info@2.8.9: {} - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true + http-cache-semantics@4.1.1: {} - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color - /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} + https-proxy-agent@5.0.1: dependencies: - '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + https-proxy-agent@7.0.4: dependencies: - agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + agent-base: 7.1.1 + debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - dev: true + human-id@1.0.2: {} - /humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - dependencies: - ms: 2.1.3 - dev: true + human-signals@5.0.0: {} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - dev: true - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - requiresBuild: true + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - dev: true optional: true - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false + ieee754@1.2.1: {} - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + ignore@5.3.1: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true + imurmurhash@0.1.4: {} - /infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - dev: true + indent-string@4.0.0: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inherits@2.0.4: {} - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 - dev: true - /ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} + ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - dev: true - - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - dev: false - /is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true + is-arrayish@0.2.1: {} - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-callable@1.2.7: {} + + is-core-module@2.13.1: dependencies: hasown: 2.0.2 - dev: true - /is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + is-data-view@1.0.1: dependencies: is-typed-array: 1.1.13 - dev: true - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 - dev: false - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - dev: true + is-lambda@1.0.1: {} - /is-nan@1.3.2: - resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - dev: false + is-module@1.0.0: {} - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.3: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + is-number@7.0.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + is-path-inside@3.0.3: {} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true + is-plain-obj@1.1.0: {} - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: true + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 - dev: true - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-stream@3.0.0: {} + + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@2.0.0: {} - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true + isexe@3.1.1: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.0: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.0: {} + + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - /jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - dev: true + jsbn@1.1.0: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + jsesc@2.5.2: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true + json-buffer@3.0.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-parse-even-better-errors@2.3.1: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-schema-traverse@0.4.1: {} - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 - dev: true - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true + kind-of@6.0.3: {} - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: true + kleur@4.1.5: {} - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - /libpg-query@15.0.3: - resolution: {integrity: sha512-OVNa/tjZBBH/U6fVH53uC6MHjO/BWzr798rwSd8+0+L5nU4rExjR/X22L5RQqc+gGfbuTUf9B3JRLVbpwYE98g==} - requiresBuild: true + libpg-query@16.2.0(encoding@0.1.13): dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - node-addon-api: 1.7.2 - node-gyp: 8.4.1 + '@emnapi/runtime': 0.43.1 + '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) + node-addon-api: 7.1.0 + node-gyp: 10.1.0 transitivePeerDependencies: - - bluebird - encoding - supports-color - dev: true - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true + lilconfig@3.1.1: {} - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + lines-and-columns@1.2.4: {} + + load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - dev: true - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + local-pkg@0.5.0: + dependencies: + mlly: 1.7.0 + pkg-types: 1.1.0 + + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - dev: true - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.memoize@4.1.2: {} - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: true + lodash.merge@4.6.2: {} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + lodash.startcase@4.4.0: {} + + lodash.uniq@4.5.0: {} + + loupe@2.3.7: dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true + get-func-name: 2.0.2 - /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + lru-cache@10.2.2: {} + + lru-cache@4.1.5: dependencies: pseudomap: 1.0.2 yallist: 2.1.2 - dev: true - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - /magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.10: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + make-dir@3.1.0: dependencies: semver: 6.3.1 - dev: true - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-error@1.3.6: {} - /make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} + make-fetch-happen@13.0.1: dependencies: - agentkeepalive: 4.5.0 - cacache: 15.3.0 + '@npmcli/agent': 2.2.2 + cacache: 18.0.3 http-cache-semantics: 4.1.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 is-lambda: 1.0.1 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 1.4.1 + minipass: 7.1.0 + 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 - socks-proxy-agent: 6.2.1 - ssri: 8.0.1 + ssri: 10.0.6 transitivePeerDependencies: - - bluebird - supports-color - dev: true - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true + map-obj@1.0.1: {} - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true + map-obj@4.3.0: {} - /mark.js@8.11.1: - resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} - dev: true + mark.js@8.11.1: {} - /meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} - engines: {node: '>=8'} + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + + meow@6.1.1: dependencies: '@types/minimist': 1.2.5 camelcase-keys: 6.2.2 @@ -4525,322 +7140,215 @@ packages: trim-newlines: 3.0.1 type-fest: 0.13.1 yargs-parser: 18.1.3 - dev: true - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + merge-stream@2.0.0: {} - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + merge2@1.4.1: {} + + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + mimic-fn@4.0.0: {} - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + min-indent@1.0.1: {} + + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} + minimatch@5.0.1: dependencies: brace-expansion: 2.0.1 - /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.4: dependencies: brace-expansion: 2.0.1 - dev: false - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + minimist-options@4.1.0: dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true - /minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} + minipass-collect@2.0.1: dependencies: - minipass: 3.3.6 - dev: true + minipass: 7.1.0 - /minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} + minipass-fetch@3.0.5: dependencies: - minipass: 3.3.6 + minipass: 7.1.0 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: encoding: 0.1.13 - dev: true - /minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} + minipass-flush@1.0.5: dependencies: minipass: 3.3.6 - dev: true - /minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} + minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 - dev: true - /minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + minipass-sized@1.0.3: dependencies: minipass: 3.3.6 - dev: true - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - dev: true - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: true + minipass@5.0.0: {} - /minisearch@6.3.0: - resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} - dev: true + minipass@7.1.0: {} - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minisearch@6.3.0: {} + + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: true - /mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - dev: true + mitt@3.0.1: {} - /mixme@0.5.10: - resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} - engines: {node: '>= 8.0.0'} - dev: true + mixme@0.5.10: {} - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true + mkdirp@1.0.4: {} - /mkdirp@2.1.6: - resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} - engines: {node: '>=10'} - hasBin: true - dev: false + mkdirp@2.1.6: {} - /mocha@10.4.0: - resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} - engines: {node: '>= 14.0.0'} - hasBin: true + mkdist@1.5.1(typescript@5.4.5): dependencies: - ansi-colors: 4.1.1 - browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - diff: 5.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 8.1.0 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 5.0.1 - ms: 2.1.3 - serialize-javascript: 6.0.0 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 6.2.1 - yargs: 16.2.0 - yargs-parser: 20.2.4 - yargs-unparser: 2.0.0 - dev: true + autoprefixer: 10.4.19(postcss@8.4.38) + citty: 0.1.6 + cssnano: 7.0.1(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.20.2 + fs-extra: 11.2.0 + globby: 14.0.1 + jiti: 1.21.0 + mlly: 1.7.0 + mri: 1.2.0 + pathe: 1.1.2 + pkg-types: 1.1.0 + postcss: 8.4.38 + postcss-nested: 6.0.1(postcss@8.4.38) + semver: 7.6.0 + optionalDependencies: + typescript: 5.4.5 - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + mlly@1.7.0: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.0 + ufo: 1.5.3 - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true + mri@1.2.0: {} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + ms@2.1.2: {} + + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: false - - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - /nanoid@4.0.2: - resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} - engines: {node: ^14 || ^16 || >=18} - hasBin: true - dev: false + nanoid@3.3.7: {} - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true + nanoid@4.0.2: {} - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-compare@1.4.0: {} - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: true + negotiator@0.6.3: {} - /node-addon-api@1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - dev: true + node-addon-api@7.1.0: {} - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 - dev: true + optionalDependencies: + encoding: 0.1.13 - /node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} - hasBin: true - dev: false + node-gyp-build@4.8.0: {} - /node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true + node-gyp@10.1.0: dependencies: env-paths: 2.2.1 - glob: 7.2.3 + exponential-backoff: 3.1.1 + glob: 10.3.12 graceful-fs: 4.2.11 - make-fetch-happen: 9.1.0 - nopt: 5.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 + make-fetch-happen: 13.0.1 + nopt: 7.2.1 + proc-log: 3.0.0 semver: 7.6.0 tar: 6.2.1 - which: 2.0.2 + which: 4.0.0 transitivePeerDependencies: - - bluebird - supports-color - dev: true - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true + node-releases@2.0.14: {} + + nopt@5.0.0: dependencies: abbrev: 1.1.1 - dev: true - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + normalize-path@3.0.0: {} - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + normalize-range@0.1.2: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npmlog@5.0.1: dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - dev: true - /npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + nth-check@2.1.1: dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - dev: true - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + boolbase: 1.0.0 - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true + object-assign@4.1.1: {} - /object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - dev: false + object-inspect@1.13.1: {} - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + object-keys@1.1.1: {} - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + obuf@1.1.2: {} - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - /optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + optionator@0.9.4: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -4849,166 +7357,112 @@ packages: type-check: 0.4.0 word-wrap: 1.2.5 - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true + os-tmpdir@1.0.2: {} - /outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - dev: true + outdent@0.5.0: {} - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + p-filter@2.1.0: dependencies: p-map: 2.1.0 - dev: true - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - dev: true - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-limit@5.0.0: + dependencies: + yocto-queue: 1.0.0 + + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true + p-map@2.1.0: {} - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - dev: true - - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + p-try@2.2.0: {} + + parent-module@1.0.1: dependencies: callsites: 3.1.0 - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true - /parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: parse5: 6.0.1 - dev: false - /parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} - dev: false + parse5@5.1.1: {} - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: false + parse5@6.0.1: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + path-exists@4.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + path-is-absolute@1.0.1: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + path-key@3.1.1: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true + path-key@4.0.0: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-parse@1.0.7: {} - /perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - dev: true + path-scurry@1.10.2: + dependencies: + lru-cache: 10.2.2 + minipass: 7.1.0 - /pg-cloudflare@1.1.1: - resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - requiresBuild: true - dev: false + path-type@4.0.0: {} + + path-type@5.0.0: {} + + pathe@1.1.2: {} + + pathval@1.1.1: {} + + perfect-debounce@1.0.0: {} + + pg-cloudflare@1.1.1: optional: true - /pg-connection-string@2.5.0: - resolution: {integrity: sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==} - dev: false + pg-connection-string@2.5.0: {} - /pg-connection-string@2.6.4: - resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} - dev: false + pg-connection-string@2.6.4: {} - /pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} + pg-int8@1.0.1: {} - /pg-numeric@1.0.2: - resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} - engines: {node: '>=4'} + pg-numeric@1.0.2: {} - /pg-pool@3.6.2(pg@8.11.5): - resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} - peerDependencies: - pg: '>=8.0' + pg-pool@3.6.2(pg@8.11.5): dependencies: pg: 8.11.5 - dev: false - /pg-protocol@1.6.1: - resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} + pg-protocol@1.6.1: {} - /pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} + pg-types@2.2.0: dependencies: pg-int8: 1.0.1 postgres-array: 2.0.0 postgres-bytea: 1.0.0 postgres-date: 1.0.7 postgres-interval: 1.2.0 - dev: false - /pg-types@4.0.2: - resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} - engines: {node: '>=10'} + pg-types@4.0.2: dependencies: pg-int8: 1.0.1 pg-numeric: 1.0.2 @@ -5018,14 +7472,7 @@ packages: postgres-interval: 3.0.0 postgres-range: 1.1.4 - /pg@8.11.5: - resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} - engines: {node: '>= 8.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true + pg@8.11.5: dependencies: pg-connection-string: 2.6.4 pg-pool: 3.6.2(pg@8.11.5) @@ -5034,300 +7481,349 @@ packages: pgpass: 1.0.5 optionalDependencies: pg-cloudflare: 1.1.1 - dev: false - /pgpass@1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + pgpass@1.0.5: dependencies: split2: 4.2.0 - dev: false - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + picomatch@2.3.1: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true + pify@4.0.1: {} - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - dev: true - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} + pkg-types@1.1.0: + dependencies: + confbox: 0.1.7 + mlly: 1.7.0 + pathe: 1.1.2 - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} + possible-typed-array-names@1.0.0: {} + + postcss-calc@10.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-discard-duplicates@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-discard-empty@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-discard-overridden@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-merge-longhand@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.0(postcss@8.4.38) + + postcss-merge-rules@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + + postcss-minify-font-values@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.0(postcss@8.4.38): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + + postcss-nested@6.0.1(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + + postcss-normalize-charset@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-normalize-display-values@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.0(postcss@8.4.38): + dependencies: + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + postcss: 8.4.38 + + postcss-reduce-transforms@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-selector-parser@6.0.16: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + svgo: 3.2.0 + + postcss-unique-selectors@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.38: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - dev: true - /postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - dev: false + postgres-array@2.0.0: {} - /postgres-array@3.0.2: - resolution: {integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==} - engines: {node: '>=12'} + postgres-array@3.0.2: {} - /postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - dev: false + postgres-bytea@1.0.0: {} - /postgres-bytea@3.0.0: - resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==} - engines: {node: '>= 6'} + postgres-bytea@3.0.0: dependencies: obuf: 1.1.2 - /postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - dev: false + postgres-date@1.0.7: {} - /postgres-date@2.1.0: - resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==} - engines: {node: '>=12'} + postgres-date@2.1.0: {} - /postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} + postgres-interval@1.2.0: dependencies: xtend: 4.0.2 - dev: false - /postgres-interval@3.0.0: - resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==} - engines: {node: '>=12'} + postgres-interval@3.0.0: {} - /postgres-range@1.1.4: - resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} + postgres-range@1.1.4: {} - /postgres@3.4.4: - resolution: {integrity: sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==} - engines: {node: '>=12'} - dev: false + postgres@3.4.4: {} - /preact@10.21.0: - resolution: {integrity: sha512-aQAIxtzWEwH8ou+OovWVSVNlFImL7xUCwJX3YMqA3U8iKCNC34999fFOnWjYNsylgfPgMexpbk7WYOLtKr/mxg==} - dev: true + preact@10.21.0: {} - /preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} + preferred-pm@3.1.3: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - dev: true - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + prelude-ls@1.2.1: {} - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true + prettier@2.8.8: {} - /prisma@4.12.0: - resolution: {integrity: sha512-xqVper4mbwl32BWzLpdznHAYvYDWQQWK2tBfXjdUD397XaveRyAP7SkBZ6kFlIg8kKayF4hvuaVtYwXd9BodAg==} - engines: {node: '>=14.17'} - hasBin: true - requiresBuild: true + prettier@3.2.5: {} + + pretty-bytes@6.1.1: {} + + pretty-format@29.7.0: dependencies: - '@prisma/engines': 4.12.0 - dev: false + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - dev: true + prisma@5.13.0: + dependencies: + '@prisma/engines': 5.13.0 - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} + proc-log@3.0.0: {} + + proc-log@4.2.0: {} + + promise-retry@2.0.1: dependencies: err-code: 2.0.3 retry: 0.12.0 - dev: true - /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - dev: true + pseudomap@1.0.2: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + punycode@2.3.1: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-microtask@1.2.3: {} - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true + quick-lru@4.0.1: {} - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - dependencies: - safe-buffer: 5.2.1 - dev: true + react-is@18.3.1: {} - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - /recast@0.22.0: - resolution: {integrity: sha512-5AAx+mujtXijsEavc5lWXBPQqrM4+Dl5qNH96N2aNeuJFUzpiiToKPsxQD/zAIJHspz7zz0maX0PCtCTFVlixQ==} - engines: {node: '>= 4'} - dependencies: - assert: 2.1.0 - ast-types: 0.15.2 - esprima: 4.0.1 - source-map: 0.6.1 - tslib: 2.6.2 - dev: false - - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + redent@3.0.0: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - dev: true - /reflect-metadata@0.1.14: - resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} - dev: false + reflect-metadata@0.1.14: {} - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regenerator-runtime@0.14.1: {} - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - dev: true - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + require-directory@2.1.1: {} - /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true + require-main-filename@2.0.0: {} - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - dev: true + retry@0.12.0: {} - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + reusify@1.0.4: {} - /rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} - dev: true + rfdc@1.3.1: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - /rollup@4.17.2: - resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.4.5): + dependencies: + magic-string: 0.30.10 + rollup: 3.29.4 + typescript: 5.4.5 + optionalDependencies: + '@babel/code-frame': 7.24.2 + + rollup@3.29.4: + optionalDependencies: + fsevents: 2.3.3 + + rollup@4.17.2: dependencies: '@types/estree': 1.0.5 optionalDependencies: @@ -5348,77 +7844,45 @@ packages: '@rollup/rollup-win32-ia32-msvc': 4.17.2 '@rollup/rollup-win32-x64-msvc': 4.17.2 fsevents: 2.3.3 - dev: true - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - /safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-buffer@5.2.1: {} - /safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - dev: true - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true + safer-buffer@2.1.2: {} - /search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - dev: true + scule@1.3.0: {} - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - dev: true + search-insights@2.13.0: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true + semver@5.7.2: {} + + semver@6.3.1: {} - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true + semver@7.6.0: dependencies: lru-cache: 6.0.0 - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - dependencies: - randombytes: 2.1.0 - dev: true - - /server-only@0.0.1: - resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} - dev: false + server-only@0.0.1: {} - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true + set-blocking@2.0.0: {} - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -5427,79 +7891,56 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.2 - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: true - /sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true + sha.js@2.4.11: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 - dev: false - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 - dev: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true + shebang-regex@1.0.0: {} - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + shebang-regex@3.0.0: {} - /shiki@1.4.0: - resolution: {integrity: sha512-5WIn0OL8PWm7JhnTwRWXniy6eEDY234mRrERVlFa646V2ErQqwIFd2UML7e0Pq9eqSKLoMa3Ke+xbsF+DAuy+Q==} + shiki@1.4.0: dependencies: '@shikijs/core': 1.4.0 - dev: true - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - dev: true - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true + siginfo@2.0.0: {} - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + signal-exit@3.0.7: {} - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true + signal-exit@4.1.0: {} - /smartwrap@2.0.2: - resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} - engines: {node: '>=6'} - hasBin: true + slash@3.0.0: {} + + slash@4.0.0: {} + + slash@5.1.0: {} + + smart-buffer@4.2.0: {} + + smartwrap@2.0.2: dependencies: array.prototype.flat: 1.3.2 breakword: 1.0.6 @@ -5507,205 +7948,152 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 15.4.1 - dev: true - /socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} + socks-proxy-agent@8.0.3: dependencies: - agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + agent-base: 7.1.1 + debug: 4.3.4 socks: 2.8.3 transitivePeerDependencies: - supports-color - dev: true - /socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + socks@2.8.3: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 - dev: true - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true + source-map-js@1.2.0: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - /spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + spawndamnit@2.0.0: dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 - dev: true - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 - dev: true - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - dev: true + spdx-exceptions@2.5.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 - dev: true - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - dev: true + spdx-license-ids@3.0.17: {} - /speakingurl@14.0.1: - resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} - engines: {node: '>=0.10.0'} - dev: true + speakingurl@14.0.1: {} - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: false + split2@4.2.0: {} - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true + sprintf-js@1.0.3: {} - /sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - dev: true + sprintf-js@1.1.3: {} - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} + ssri@10.0.6: dependencies: - minipass: 3.3.6 - dev: true + minipass: 7.1.0 - /stream-transform@2.1.3: - resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + stackback@0.0.2: {} + + std-env@3.7.0: {} + + stream-transform@2.1.3: dependencies: mixme: 0.5.10 - dev: true - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-bom@3.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + strip-json-comments@3.1.1: {} - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + strip-literal@2.1.0: dependencies: - has-flag: 3.0.0 - dev: true + js-tokens: 9.0.0 - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + stylehacks@7.0.0(postcss@8.4.38): dependencies: - has-flag: 4.0.0 + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} + svgo@3.2.0: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.0 + + synckit@0.9.0: dependencies: '@pkgr/core': 0.1.1 tslib: 2.6.2 - dev: false - /tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - dev: true + tabbable@6.2.0: {} - /tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -5713,69 +8101,44 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true - /term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - dev: true + term-size@2.2.1: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + text-table@0.2.0: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: false - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: false - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tinybench@2.8.0: {} + + tinypool@0.8.4: {} + + tinyspy@2.2.1: {} + + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - dev: true - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: true + to-fast-properties@2.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: true + tr46@0.0.3: {} - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true + trim-newlines@3.0.1: {} - /ts-node@10.7.0(@types/node@16.18.96)(typescript@5.4.5): - resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true + ts-api-utils@1.3.0(typescript@5.4.5): + dependencies: + typescript: 5.4.5 + + ts-node@10.7.0(@types/node@16.18.96)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.7.0 '@tsconfig/node10': 1.0.11 @@ -5793,52 +8156,18 @@ packages: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - /ts-pattern@4.3.0: - resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} - dev: false - - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: false - - /tsutils@3.21.0(typescript@5.4.5): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.4.5 + ts-pattern@4.3.0: {} - /tsx@3.12.6: - resolution: {integrity: sha512-q93WgS3lBdHlPgS0h1i+87Pt6n9K/qULIMNYZo07nSeu2z5QE2CellcAZfofVXBo2tQg9av2ZcRMQ2S2i5oadQ==} - hasBin: true - dependencies: - '@esbuild-kit/cjs-loader': 2.4.2 - '@esbuild-kit/core-utils': 3.3.2 - '@esbuild-kit/esm-loader': 2.6.5 - optionalDependencies: - fsevents: 2.3.3 - dev: true + tslib@2.6.2: {} - /tsx@4.7.3: - resolution: {integrity: sha512-+fQnMqIp/jxZEXLcj6WzYy9FhcS5/Dfk8y4AtzJ6ejKcKqmfTF8Gso/jtrzDggCF2zTU20gJa6n8XqPYwDAUYQ==} - engines: {node: '>=18.0.0'} - hasBin: true + tsx@4.9.1: dependencies: - esbuild: 0.19.12 + esbuild: 0.20.2 get-tsconfig: 4.7.3 optionalDependencies: fsevents: 2.3.3 - dev: true - /tty-table@4.2.3: - resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} - engines: {node: '>=8.0.0'} - hasBin: true + tty-table@4.2.3: dependencies: chalk: 4.1.2 csv: 5.5.3 @@ -5847,59 +8176,26 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 17.7.2 - dev: true - /turbo-darwin-64@1.13.3: - resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + turbo-darwin-64@1.13.3: optional: true - /turbo-darwin-arm64@1.13.3: - resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + turbo-darwin-arm64@1.13.3: optional: true - /turbo-linux-64@1.13.3: - resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + turbo-linux-64@1.13.3: optional: true - /turbo-linux-arm64@1.13.3: - resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + turbo-linux-arm64@1.13.3: optional: true - /turbo-windows-64@1.13.3: - resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + turbo-windows-64@1.13.3: optional: true - /turbo-windows-arm64@1.13.3: - resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + turbo-windows-arm64@1.13.3: optional: true - /turbo@1.13.3: - resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==} - hasBin: true + turbo@1.13.3: optionalDependencies: turbo-darwin-64: 1.13.3 turbo-darwin-arm64: 1.13.3 @@ -5907,56 +8203,36 @@ packages: turbo-linux-arm64: 1.13.3 turbo-windows-64: 1.13.3 turbo-windows-arm64: 1.13.3 - dev: true - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - dev: true + type-detect@4.0.8: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + type-fest@0.13.1: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true + type-fest@0.20.2: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + type-fest@0.8.1: {} + + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -5964,77 +8240,17 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 - dev: true - - /typeorm@0.3.17(pg@8.11.5)(ts-node@10.7.0): - resolution: {integrity: sha512-UDjUEwIQalO9tWw9O2A4GU+sT3oyoUXheHJy4ft+RFdnRdQctdQ34L9SqE2p7LdwzafHx1maxT+bqXON+Qnmig==} - engines: {node: '>= 12.9.0'} - hasBin: true - peerDependencies: - '@google-cloud/spanner': ^5.18.0 - '@sap/hana-client': ^2.12.25 - better-sqlite3: ^7.1.2 || ^8.0.0 - hdb-pool: ^0.1.6 - ioredis: ^5.0.4 - mongodb: ^5.2.0 - mssql: ^9.1.1 - mysql2: ^2.2.5 || ^3.0.1 - oracledb: ^5.1.0 - pg: ^8.5.1 - pg-native: ^3.0.0 - pg-query-stream: ^4.0.0 - redis: ^3.1.1 || ^4.0.0 - sql.js: ^1.4.0 - sqlite3: ^5.0.3 - ts-node: ^10.7.0 - typeorm-aurora-data-api-driver: ^2.0.0 - peerDependenciesMeta: - '@google-cloud/spanner': - optional: true - '@sap/hana-client': - optional: true - better-sqlite3: - optional: true - hdb-pool: - optional: true - ioredis: - optional: true - mongodb: - optional: true - mssql: - optional: true - mysql2: - optional: true - oracledb: - optional: true - pg: - optional: true - pg-native: - optional: true - pg-query-stream: - optional: true - redis: - optional: true - sql.js: - optional: true - sqlite3: - optional: true - ts-node: - optional: true - typeorm-aurora-data-api-driver: - optional: true + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + + typeorm@0.3.17(pg@8.11.5)(ts-node@10.7.0(@types/node@16.18.96)(typescript@5.4.5)): dependencies: '@sqltools/formatter': 1.2.5 app-root-path: 3.1.0 @@ -6042,159 +8258,214 @@ packages: chalk: 4.1.2 cli-highlight: 2.1.11 date-fns: 2.30.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 dotenv: 16.4.5 glob: 8.1.0 mkdirp: 2.1.6 - pg: 8.11.5 reflect-metadata: 0.1.14 sha.js: 2.4.11 - ts-node: 10.7.0(@types/node@16.18.96)(typescript@5.4.5) tslib: 2.6.2 uuid: 9.0.1 yargs: 17.7.2 + optionalDependencies: + pg: 8.11.5 + ts-node: 10.7.0(@types/node@16.18.96)(typescript@5.4.5) transitivePeerDependencies: - supports-color - dev: false - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true + typescript-eslint@7.8.0(eslint@8.57.0)(typescript@5.4.5): + dependencies: + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + typescript@5.4.5: {} + + ufo@1.5.3: {} + + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + unbuild@2.0.0(typescript@5.4.5): + dependencies: + '@rollup/plugin-alias': 5.1.0(rollup@3.29.4) + '@rollup/plugin-commonjs': 25.0.7(rollup@3.29.4) + '@rollup/plugin-json': 6.1.0(rollup@3.29.4) + '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) + '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + chalk: 5.3.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + esbuild: 0.19.12 + globby: 13.2.2 + hookable: 5.5.3 + jiti: 1.21.0 + magic-string: 0.30.10 + mkdist: 1.5.1(typescript@5.4.5) + mlly: 1.7.0 + pathe: 1.1.2 + pkg-types: 1.1.0 + pretty-bytes: 6.1.1 + rollup: 3.29.4 + rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.4.5) + scule: 1.3.0 + untyped: 1.4.2 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - sass + - supports-color + - vue-tsc + + undici-types@5.26.5: {} - /unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + unicorn-magic@0.1.0: {} + + unique-filename@3.0.0: dependencies: - unique-slug: 2.0.2 - dev: true + unique-slug: 4.0.0 - /unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 - dev: true - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true + universalify@0.1.2: {} - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + universalify@2.0.1: {} + + untyped@1.4.2: dependencies: - punycode: 2.3.1 + '@babel/core': 7.24.5 + '@babel/standalone': 7.24.5 + '@babel/types': 7.24.5 + defu: 6.1.4 + jiti: 1.21.0 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color - /utf-8-validate@6.0.3: - resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==} - engines: {node: '>=6.14.2'} - requiresBuild: true + update-browserslist-db@1.0.15(browserslist@4.23.0): dependencies: - node-gyp-build: 4.8.0 - dev: false + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 - /util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + utf-8-validate@6.0.3: dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.15 - dev: false + node-gyp-build: 4.8.0 - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - dev: false + util-deprecate@1.0.2: {} - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + uuid@9.0.1: {} - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + v8-compile-cache-lib@3.0.1: {} + + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true - /vite@5.2.10: - resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite-node@1.6.0(@types/node@18.19.31): + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.2.10(@types/node@18.19.31) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite-node@1.6.0(@types/node@20.12.8): + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.2.10(@types/node@20.12.8) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite@5.2.10(@types/node@18.19.31): dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.17.2 optionalDependencies: + '@types/node': 18.19.31 fsevents: 2.3.3 - dev: true - /vitepress@1.1.4(@algolia/client-search@4.23.3)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-bWIzFZXpPB6NIDBuWnS20aMADH+FcFKDfQNYFvbOWij03PR29eImTceQHIzCKordjXYBhM/TjE5VKFTUJ3EheA==} - hasBin: true - peerDependencies: - markdown-it-mathjax3: ^4 - postcss: ^8 - peerDependenciesMeta: - markdown-it-mathjax3: - optional: true - postcss: - optional: true + vite@5.2.10(@types/node@20.12.10): + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.17.2 + optionalDependencies: + '@types/node': 20.12.10 + fsevents: 2.3.3 + + vite@5.2.10(@types/node@20.12.8): + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.17.2 + optionalDependencies: + '@types/node': 20.12.8 + fsevents: 2.3.3 + + vitepress-plugin-tabs@0.5.0(vitepress@1.1.4(@algolia/client-search@4.23.3)(@types/node@20.12.10)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5))(vue@3.4.26(typescript@5.4.5)): + dependencies: + vitepress: 1.1.4(@algolia/client-search@4.23.3)(@types/node@20.12.10)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) + + vitepress@1.1.4(@algolia/client-search@4.23.3)(@types/node@20.12.10)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5): dependencies: '@docsearch/css': 3.6.0 '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) '@shikijs/core': 1.4.0 '@shikijs/transformers': 1.4.0 '@types/markdown-it': 14.0.1 - '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.26) - '@vue/devtools-api': 7.1.3(vue@3.4.26) - '@vueuse/core': 10.9.0(vue@3.4.26) - '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.26) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10(@types/node@20.12.10))(vue@3.4.26(typescript@5.4.5)) + '@vue/devtools-api': 7.1.3(vue@3.4.26(typescript@5.4.5)) + '@vueuse/core': 10.9.0(vue@3.4.26(typescript@5.4.5)) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.26(typescript@5.4.5)) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 6.3.0 shiki: 1.4.0 - vite: 5.2.10 + vite: 5.2.10(@types/node@20.12.10) vue: 3.4.26(typescript@5.4.5) + optionalDependencies: + postcss: 8.4.38 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -6221,81 +8492,114 @@ packages: - terser - typescript - universal-cookie - dev: true - /vue-demi@0.14.7(vue@3.4.26): - resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true + vitest@1.6.0(@types/node@18.19.31): + dependencies: + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.10(@types/node@18.19.31) + vite-node: 1.6.0(@types/node@18.19.31) + why-is-node-running: 2.2.2 + optionalDependencies: + '@types/node': 18.19.31 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vitest@1.6.0(@types/node@20.12.8): + dependencies: + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.10(@types/node@20.12.8) + vite-node: 1.6.0(@types/node@20.12.8) + why-is-node-running: 2.2.2 + optionalDependencies: + '@types/node': 20.12.8 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vue-demi@0.14.7(vue@3.4.26(typescript@5.4.5)): dependencies: vue: 3.4.26(typescript@5.4.5) - dev: true - /vue@3.4.26(typescript@5.4.5): - resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + vue@3.4.26(typescript@5.4.5): dependencies: '@vue/compiler-dom': 3.4.26 '@vue/compiler-sfc': 3.4.26 '@vue/runtime-dom': 3.4.26 - '@vue/server-renderer': 3.4.26(vue@3.4.26) + '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.4.5)) '@vue/shared': 3.4.26 + optionalDependencies: typescript: 5.4.5 - dev: true - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - dev: true - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: true + webidl-conversions@3.0.1: {} - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: true - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - dev: true + which-module@2.0.1: {} - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + which-pm@2.0.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - dev: true - /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -6303,119 +8607,76 @@ packages: gopd: 1.0.1 has-tostringtag: 1.0.2 - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + which@4.0.0: dependencies: - string-width: 4.2.3 - dev: true + isexe: 3.1.1 - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + why-is-node-running@2.2.2: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + word-wrap@1.2.5: {} + + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - /ws@8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + wrap-ansi@8.1.0: dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + optionalDependencies: bufferutil: 4.0.7 utf-8-validate: 6.0.3 - dev: false - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false + xtend@4.0.2: {} - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true + y18n@4.0.3: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + y18n@5.0.8: {} - /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: true + yallist@2.1.2: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@3.1.1: {} - /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + yallist@4.0.0: {} + + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: true - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + yargs-parser@20.2.4: {} - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - dev: true + yargs-parser@21.1.1: {} - /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} + yargs@15.4.1: dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -6428,11 +8689,8 @@ packages: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -6442,9 +8700,7 @@ packages: y18n: 5.0.8 yargs-parser: 20.2.4 - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -6454,22 +8710,19 @@ packages: y18n: 5.0.8 yargs-parser: 21.1.1 - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + yn@3.1.1: {} - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /zod-to-json-schema@3.20.1(zod@3.23.5): - resolution: {integrity: sha512-U+zmNJUKqzv92E+LdEYv0g2LxBLks4HAwfC6cue8jXby5PAeSEPGO4xV9Sl4zmLYyFvJkm0FOfOs6orUO+AI1w==} - peerDependencies: - zod: ^3.20.0 + yocto-queue@1.0.0: {} + + zod-to-json-schema@3.20.1(zod@3.23.5): dependencies: zod: 3.23.5 - dev: false - /zod@3.23.5: - resolution: {integrity: sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA==} - dev: false + zod@3.23.5: {} + + zx@8.0.2: + optionalDependencies: + '@types/fs-extra': 11.0.4 + '@types/node': 20.12.10 diff --git a/tsconfig.node.json b/tsconfig.node.json index ecddb6e..84202b4 100644 --- a/tsconfig.node.json +++ b/tsconfig.node.json @@ -11,7 +11,7 @@ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "ES2017", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ "lib": ["ES2017"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ @@ -25,9 +25,9 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "CommonJS", /* Specify what module code is generated. */ + "module": "ESNext", /* Specify what module code is generated. */ // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + "moduleResolution": "Bundler", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ @@ -47,11 +47,11 @@ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ + "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ @@ -69,10 +69,10 @@ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ diff --git a/turbo.json b/turbo.json index ef7bc75..d35f360 100644 --- a/turbo.json +++ b/turbo.json @@ -1,30 +1,18 @@ { "$schema": "https://turborepo.org/schema.json", + "globalDependencies": ["tsconfig.node.json", "turbo.json", "package.json"], "pipeline": { "build": { "dependsOn": ["^build"], - "outputs": ["lib/**"] + "outputs": ["dist/**"] + }, + "typecheck": { + "dependsOn": ["^build"] }, "test": { - "dependsOn": ["build"], - "outputs": [""], + "dependsOn": ["^build"], "inputs": ["src/**/*.ts", "test/**/*.ts"] }, - "setup": { - "cache": false, - "outputs": [] - }, - "lint": { - "outputs": [] - }, - "lint!": { - "outputs": [] - }, - "watch": { - "cache": false - }, - "clean": { - "cache": false - } + "lint": {} } -} +} \ No newline at end of file