diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 797aa093..76590a07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,81 +24,64 @@ jobs: - name: Set up Node uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 20 cache: pnpm - name: Install Dependencies run: pnpm install --frozen-lockfile - - uses: supabase/setup-cli@v1 - with: - version: 1.77.4 - - name: Start Supabase uses: nick-fields/retry@v3 with: max_attempts: 3 timeout_minutes: 5 retry_on: error - command: supabase start -x edge-runtime,logflare,vector,studio,imgproxy,pgadmin-schema-diff,migra,postgres-meta --ignore-health-check + command: pnpm supabase start -x edge-runtime,logflare,vector,studio,imgproxy,pgadmin-schema-diff,migra,postgres-meta - name: 🦺 Check Format and Lint id: static run: pnpm run check - continue-on-error: true - name: 📦 Build Packages id: build run: pnpm run build:packages - continue-on-error: true - name: 🚧 Test id: test - run: pnpm run test - continue-on-error: true + run: pnpm turbo run test --concurrency=1 - name: Upload postgrest-core coverage uses: codecov/codecov-action@v4 with: files: ./packages/postgrest-core/coverage/coverage-final.json flags: postgrest-core - fail_ci_if_error: false - name: Upload postgrest-react-query coverage uses: codecov/codecov-action@v4 with: files: ./packages/postgrest-react-query/coverage/coverage-final.json flags: postgrest-react-query - fail_ci_if_error: false - name: Upload postgrest-swr coverage uses: codecov/codecov-action@v4 with: files: ./packages/postgrest-swr/coverage/coverage-final.json flags: postgrest-swr - fail_ci_if_error: false - name: Upload storage-core coverage uses: codecov/codecov-action@v4 with: files: ./packages/storage-core/coverage/coverage-final.json flags: storage-core - fail_ci_if_error: false - name: Upload storage-swr coverage uses: codecov/codecov-action@v4 with: files: ./packages/storage-swr/coverage/coverage-final.json flags: storage-swr - fail_ci_if_error: false - name: Upload storage-react-query coverage uses: codecov/codecov-action@v4 with: files: ./packages/storage-react-query/coverage/coverage-final.json flags: storage-react-query - fail_ci_if_error: false - - - name: Check for error - if: steps.static.outcome != 'success' || steps.build.outcome != 'success' || steps.test.outcome != 'success' - run: exit 1 diff --git a/.github/workflows/release-next.yml b/.github/workflows/release-next.yml index eb4bf7ce..20ff7fb2 100644 --- a/.github/workflows/release-next.yml +++ b/.github/workflows/release-next.yml @@ -23,7 +23,7 @@ jobs: - name: Set up Node uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 20 cache: pnpm - name: Install Dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2989b96e..797c41d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: - name: Set up Node uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 20 cache: pnpm - name: Install Dependencies diff --git a/docs/package.json b/docs/package.json index de41db45..4f5e487f 100644 --- a/docs/package.json +++ b/docs/package.json @@ -20,9 +20,9 @@ "devDependencies": { "autoprefixer": "^10.4.13", "typescript": "5.4.2", - "@types/node": "^20.0.0", - "@types/react": "18.2.0", - "@types/react-dom": "^18.0.7", + "@types/node": "20.11.19", + "@types/react": "18.3.3", + "@types/react-dom": "18.3.0", "postcss": "^8.4.14", "tailwindcss": "3.4.0" } diff --git a/examples/react-query/package.json b/examples/react-query/package.json index 7b318b26..358bd4e3 100644 --- a/examples/react-query/package.json +++ b/examples/react-query/package.json @@ -45,7 +45,7 @@ "@supabase/auth-helpers-nextjs": "0.8.7", "@supabase/auth-helpers-react": "0.4.2", "@tanstack/react-query": "^5.0.0", - "@supabase/supabase-js": "2.38.5", + "@supabase/supabase-js": "2.44.3", "@vercel/analytics": "^0.1.11", "class-variance-authority": "0.7.0", "clsx": "^1.2.1", @@ -63,9 +63,9 @@ "zod": "^3.21.4" }, "devDependencies": { - "@types/node": "^17.0.12", - "@types/react": "^18.0.22", - "@types/react-dom": "^18.0.7", + "@types/node": "20.11.19", + "@types/react": "18.3.3", + "@types/react-dom": "18.3.0", "@types/uuid": "^9.0.2", "autoprefixer": "^10.4.13", "dotenv": "16.0.1", diff --git a/examples/swr/package.json b/examples/swr/package.json index c1194608..8930b8e3 100644 --- a/examples/swr/package.json +++ b/examples/swr/package.json @@ -44,7 +44,7 @@ "@supabase-cache-helpers/storage-swr": "workspace:*", "@supabase/auth-helpers-nextjs": "0.8.7", "@supabase/auth-helpers-react": "0.4.2", - "@supabase/supabase-js": "2.38.5", + "@supabase/supabase-js": "2.44.3", "@vercel/analytics": "^0.1.11", "class-variance-authority": "0.7.0", "clsx": "^1.2.1", @@ -63,9 +63,9 @@ "zod": "^3.21.4" }, "devDependencies": { - "@types/node": "^17.0.12", - "@types/react": "^18.0.22", - "@types/react-dom": "^18.0.7", + "@types/node": "20.11.19", + "@types/react": "18.3.3", + "@types/react-dom": "18.3.0", "@types/uuid": "^9.0.2", "autoprefixer": "^10.4.13", "dotenv": "16.0.1", diff --git a/package.json b/package.json index d9c4afe6..ec7104c4 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "check": "biome check", "fix": "biome check --write", "clean": "turbo run clean && rm -rf node_modules", - "test": "turbo run test --concurrency=1", + "test": "turbo run test --concurrency=1", "typegen": "supabase gen types typescript --local > packages/postgrest-swr/__tests__/database.types.ts && supabase gen types typescript --local > packages/postgrest-react-query/__tests__/database.types.ts && supabase gen types typescript --local > packages/postgrest-core/__tests__/database.types.ts && supabase gen types typescript --local > examples/swr/types/database.ts && supabase gen types typescript --local > examples/react-query/types/database.ts", "clear-branches": "git branch --merged | egrep -v \"(^\\*|main)\" | xargs git branch -d", "merge-main": "git fetch origin main:main && git merge main", @@ -25,11 +25,11 @@ "@biomejs/biome": "1.8.3", "@changesets/cli": "2.27.0", "supabase": "latest", - "turbo": "1.10.16" + "turbo": "2.0.6" }, "engines": { "pnpm": "8", - "node": ">=14.0.0" + "node": ">=20.0.0" }, - "packageManager": "pnpm@8" + "packageManager": "pnpm@8.12.1" } diff --git a/packages/jest-presets/jest/node/jest-preset.js b/packages/jest-presets/jest/node/jest-preset.js deleted file mode 100644 index 689b09ef..00000000 --- a/packages/jest-presets/jest/node/jest-preset.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - roots: [''], - transform: { - '^.+\\.tsx?$': 'ts-jest', - }, - testMatch: ['**/?(*.)+(spec).ts*'], - moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], - modulePathIgnorePatterns: [ - '/__tests__/__fixtures__', - '/node_modules', - '/dist', - ], - collectCoverageFrom: ['src/**/*.{js,jsx,ts}'], - preset: 'ts-jest', - testEnvironment: 'jsdom', - verbose: true, - testURL: 'http://localhost/', - testTimeout: 60000, -}; diff --git a/packages/jest-presets/package.json b/packages/jest-presets/package.json deleted file mode 100644 index f4f227fb..00000000 --- a/packages/jest-presets/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "@supabase-cache-helpers/jest-presets", - "version": "0.0.0", - "private": true, - "license": "MIT", - "dependencies": { - "ts-jest": "29.1.0" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/psteinroe/supabase-cache-helpers.git", - "directory": "packages/jest-presets" - } -} diff --git a/packages/postgrest-core/package.json b/packages/postgrest-core/package.json index be0d5a5f..d1478a2f 100644 --- a/packages/postgrest-core/package.json +++ b/packages/postgrest-core/package.json @@ -1,13 +1,14 @@ { "name": "@supabase-cache-helpers/postgrest-core", "version": "0.5.2", + "type": "module", "main": "./dist/index.js", "source": "./src/index.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./package.json": "./package.json" }, @@ -25,35 +26,30 @@ "license": "MIT", "scripts": { "build": "tsup", - "clean": "rm -rf .turbo && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", - "test": "jest --coverage", + "clean": "rm -rf .turbo && rm -rf coverage && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", + "test": "vitest --coverage", "typecheck": "tsc --pretty --noEmit" }, - "jest": { - "preset": "@supabase-cache-helpers/jest-presets/jest/node" - }, "peerDependencies": { "@supabase/postgrest-js": "^1.9.0", "@supabase/supabase-js": "^2.0.0" }, "dependencies": { "fast-equals": "5.0.1", - "merge-anything": "5.1.7", "flat": "5.0.2", + "merge-anything": "5.1.7", "xregexp": "5.1.1" }, "devDependencies": { - "@supabase-cache-helpers/jest-presets": "workspace:*", "@supabase-cache-helpers/tsconfig": "workspace:*", - "@supabase/postgrest-js": "1.9.0", - "@supabase/supabase-js": "2.38.5", - "@types/jest": "29.5.0", - "@types/lodash": "4.17.0", + "@supabase/postgrest-js": "1.15.8", + "@supabase/supabase-js": "2.44.3", "@types/flat": "5.0.2", + "@types/lodash": "4.17.0", + "@vitest/coverage-istanbul": "^2.0.2", "dotenv": "16.4.0", - "jest": "29.7.0", - "ts-jest": "29.1.0", "tsup": "8.0.0", - "typescript": "5.4.2" + "typescript": "5.4.2", + "vitest": "^2.0.2" } } diff --git a/packages/postgrest-core/src/cursor-pagination-fetcher.ts b/packages/postgrest-core/src/cursor-pagination-fetcher.ts index b901172b..fd756f36 100644 --- a/packages/postgrest-core/src/cursor-pagination-fetcher.ts +++ b/packages/postgrest-core/src/cursor-pagination-fetcher.ts @@ -1,5 +1,5 @@ import type { PostgrestTransformBuilder } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/supabase-js/dist/module/lib/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; import type { OrderDefinition } from './lib/query-types'; import type { PostgrestPaginationResponse } from './lib/response-types'; diff --git a/packages/postgrest-core/src/delete-fetcher.ts b/packages/postgrest-core/src/delete-fetcher.ts index 39c0e845..204ac6f2 100644 --- a/packages/postgrest-core/src/delete-fetcher.ts +++ b/packages/postgrest-core/src/delete-fetcher.ts @@ -1,9 +1,9 @@ import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { type MutationFetcherResponse, diff --git a/packages/postgrest-core/src/insert-fetcher.ts b/packages/postgrest-core/src/insert-fetcher.ts index 9938a69c..7ce86cc0 100644 --- a/packages/postgrest-core/src/insert-fetcher.ts +++ b/packages/postgrest-core/src/insert-fetcher.ts @@ -1,7 +1,9 @@ import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { GenericTable } from '@supabase/postgrest-js/dist/module/types'; -import type { GenericSchema } from '@supabase/supabase-js/dist/module/lib/types'; +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { + GenericSchema, + GenericTable, +} from '@supabase/postgrest-js/dist/cjs/types'; import { type MutationFetcherResponse, diff --git a/packages/postgrest-core/src/lib/get-table.ts b/packages/postgrest-core/src/lib/get-table.ts index 702f2c76..40ed967f 100644 --- a/packages/postgrest-core/src/lib/get-table.ts +++ b/packages/postgrest-core/src/lib/get-table.ts @@ -2,10 +2,10 @@ import type { PostgrestBuilder, PostgrestQueryBuilder, } from '@supabase/postgrest-js'; -import type { +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; export const getTable = ( query: diff --git a/packages/postgrest-core/src/lib/is-postgrest-transform-builder.ts b/packages/postgrest-core/src/lib/is-postgrest-transform-builder.ts index 69c2acf7..ff51861b 100644 --- a/packages/postgrest-core/src/lib/is-postgrest-transform-builder.ts +++ b/packages/postgrest-core/src/lib/is-postgrest-transform-builder.ts @@ -1,5 +1,5 @@ import type { PostgrestTransformBuilder } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/postgrest-js/dist/module/types'; +import type { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; export const isPostgrestTransformBuilder = < Schema extends GenericSchema, diff --git a/packages/postgrest-core/src/offset-pagination-fetcher.ts b/packages/postgrest-core/src/offset-pagination-fetcher.ts index 9f6d29e4..5d4f86de 100644 --- a/packages/postgrest-core/src/offset-pagination-fetcher.ts +++ b/packages/postgrest-core/src/offset-pagination-fetcher.ts @@ -1,5 +1,5 @@ import type { PostgrestTransformBuilder } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/supabase-js/dist/module/lib/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; import type { PostgrestHasMorePaginationResponse, diff --git a/packages/postgrest-core/src/update-fetcher.ts b/packages/postgrest-core/src/update-fetcher.ts index 7d192e79..6fba2ba0 100644 --- a/packages/postgrest-core/src/update-fetcher.ts +++ b/packages/postgrest-core/src/update-fetcher.ts @@ -1,9 +1,9 @@ import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { type MutationFetcherResponse, diff --git a/packages/postgrest-core/src/upsert-fetcher.ts b/packages/postgrest-core/src/upsert-fetcher.ts index f72b906c..4de10cd5 100644 --- a/packages/postgrest-core/src/upsert-fetcher.ts +++ b/packages/postgrest-core/src/upsert-fetcher.ts @@ -1,7 +1,9 @@ import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { GenericTable } from '@supabase/postgrest-js/dist/module/types'; -import type { GenericSchema } from '@supabase/supabase-js/dist/module/lib/types'; +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { + GenericSchema, + GenericTable, +} from '@supabase/postgrest-js/dist/cjs/types'; import { type MutationFetcherResponse, diff --git a/packages/postgrest-core/tests/__snapshots__/fetcher.spec.ts.snap b/packages/postgrest-core/tests/__snapshots__/fetcher.spec.ts.snap new file mode 100644 index 00000000..2c49569a --- /dev/null +++ b/packages/postgrest-core/tests/__snapshots__/fetcher.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`fetcher > should throw on error > column contact.unknown does not exist 1`] = `[PostgrestError: column contact.unknown does not exist]`; diff --git a/packages/postgrest-core/__tests__/cursor-pagination-fetcher.spec.ts b/packages/postgrest-core/tests/cursor-pagination-fetcher.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/cursor-pagination-fetcher.spec.ts rename to packages/postgrest-core/tests/cursor-pagination-fetcher.spec.ts index 6cf7caa7..b0cde944 100644 --- a/packages/postgrest-core/__tests__/cursor-pagination-fetcher.spec.ts +++ b/packages/postgrest-core/tests/cursor-pagination-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { createCursorPaginationFetcher } from '../src/cursor-pagination-fetcher'; import type { Database } from './database.types'; diff --git a/packages/postgrest-core/__tests__/database.types.ts b/packages/postgrest-core/tests/database.types.ts similarity index 100% rename from packages/postgrest-core/__tests__/database.types.ts rename to packages/postgrest-core/tests/database.types.ts diff --git a/packages/postgrest-core/__tests__/delete-fetcher.spec.ts b/packages/postgrest-core/tests/delete-fetcher.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/delete-fetcher.spec.ts rename to packages/postgrest-core/tests/delete-fetcher.spec.ts index acc70799..f137c6ca 100644 --- a/packages/postgrest-core/__tests__/delete-fetcher.spec.ts +++ b/packages/postgrest-core/tests/delete-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { buildDeleteFetcher } from '../src/delete-fetcher'; import type { Database } from './database.types'; diff --git a/packages/postgrest-core/__tests__/delete-item.spec.ts b/packages/postgrest-core/tests/delete-item.spec.ts similarity index 97% rename from packages/postgrest-core/__tests__/delete-item.spec.ts rename to packages/postgrest-core/tests/delete-item.spec.ts index e2d0cfb0..530acca0 100644 --- a/packages/postgrest-core/__tests__/delete-item.spec.ts +++ b/packages/postgrest-core/tests/delete-item.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from 'vitest'; import type { DecodedKey } from '../dist'; import { type DeleteItemOperation, deleteItem } from '../src/delete-item'; import type { @@ -20,8 +21,8 @@ const mutateFnMock = async ( 'revalidateTables' | 'revalidateRelations' >, ) => { - const mutate = jest.fn(); - const revalidate = jest.fn(); + const mutate = vi.fn(); + const revalidate = vi.fn(); await deleteItem( { input, @@ -77,8 +78,8 @@ const mutateRelationMock = async ( 'revalidateTables' | 'revalidateRelations' >, ) => { - const mutate = jest.fn(); - const revalidate = jest.fn(); + const mutate = vi.fn(); + const revalidate = vi.fn(); await deleteItem( { input: { id: '1', fkey: '1' }, @@ -163,8 +164,8 @@ const mutateFnResult = async ( }, }; }, - revalidate: jest.fn(), - mutate: jest.fn((_, fn) => { + revalidate: vi.fn(), + mutate: vi.fn((_, fn) => { expect(fn).toBeDefined(); expect(fn).toBeInstanceOf(Function); res(fn!(currentData)); diff --git a/packages/postgrest-core/__tests__/fetch/build-mutation-fetcher-response.spec.ts b/packages/postgrest-core/tests/fetch/build-mutation-fetcher-response.spec.ts similarity index 99% rename from packages/postgrest-core/__tests__/fetch/build-mutation-fetcher-response.spec.ts rename to packages/postgrest-core/tests/fetch/build-mutation-fetcher-response.spec.ts index c22fcdfb..f00eb65f 100644 --- a/packages/postgrest-core/__tests__/fetch/build-mutation-fetcher-response.spec.ts +++ b/packages/postgrest-core/tests/fetch/build-mutation-fetcher-response.spec.ts @@ -1,4 +1,5 @@ import { createClient } from '@supabase/supabase-js'; +import { describe, expect, it } from 'vitest'; import { buildMutationFetcherResponse } from '../../src/fetch/build-mutation-fetcher-response'; import { buildNormalizedQuery } from '../../src/fetch/build-normalized-query'; diff --git a/packages/postgrest-core/__tests__/fetch/build-normalized-query.spec.ts b/packages/postgrest-core/tests/fetch/build-normalized-query.spec.ts similarity index 99% rename from packages/postgrest-core/__tests__/fetch/build-normalized-query.spec.ts rename to packages/postgrest-core/tests/fetch/build-normalized-query.spec.ts index 6c66b333..616c76d8 100644 --- a/packages/postgrest-core/__tests__/fetch/build-normalized-query.spec.ts +++ b/packages/postgrest-core/tests/fetch/build-normalized-query.spec.ts @@ -1,4 +1,5 @@ import { createClient } from '@supabase/supabase-js'; +import { describe, expect, it } from 'vitest'; import { buildNormalizedQuery } from '../../src/fetch/build-normalized-query'; import { PostgrestParser } from '../../src/postgrest-parser'; diff --git a/packages/postgrest-core/__tests__/fetch/build-select-statement.spec.ts b/packages/postgrest-core/tests/fetch/build-select-statement.spec.ts similarity index 97% rename from packages/postgrest-core/__tests__/fetch/build-select-statement.spec.ts rename to packages/postgrest-core/tests/fetch/build-select-statement.spec.ts index 6f0f36e1..46391cee 100644 --- a/packages/postgrest-core/__tests__/fetch/build-select-statement.spec.ts +++ b/packages/postgrest-core/tests/fetch/build-select-statement.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { buildSelectStatement } from '../../src/fetch/build-select-statement'; describe('buildSelectStatement', () => { diff --git a/packages/postgrest-core/__tests__/fetcher.spec.ts b/packages/postgrest-core/tests/fetcher.spec.ts similarity index 91% rename from packages/postgrest-core/__tests__/fetcher.spec.ts rename to packages/postgrest-core/tests/fetcher.spec.ts index ffca17f1..f7114495 100644 --- a/packages/postgrest-core/__tests__/fetcher.spec.ts +++ b/packages/postgrest-core/tests/fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { fetcher } from '../src/fetcher'; import type { Database } from './database.types'; @@ -56,11 +57,8 @@ describe('fetcher', () => { .select('username', { count: 'exact' }) .eq('unknown', `${testRunPrefix}-username-1`), ), - ).rejects.toEqual({ - code: '42703', - details: null, - hint: null, - message: 'column contact.unknown does not exist', - }); + ).rejects.toThrowErrorMatchingSnapshot( + 'column contact.unknown does not exist', + ); }); }); diff --git a/packages/postgrest-core/__tests__/filter/denormalize.spec.ts b/packages/postgrest-core/tests/filter/denormalize.spec.ts similarity index 99% rename from packages/postgrest-core/__tests__/filter/denormalize.spec.ts rename to packages/postgrest-core/tests/filter/denormalize.spec.ts index 2041190f..aaa3e927 100644 --- a/packages/postgrest-core/__tests__/filter/denormalize.spec.ts +++ b/packages/postgrest-core/tests/filter/denormalize.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { denormalize } from '../../src/filter/denormalize'; import { parseSelectParam } from '../../src/lib/parse-select-param'; diff --git a/packages/postgrest-core/__tests__/index.spec.ts b/packages/postgrest-core/tests/index.spec.ts similarity index 77% rename from packages/postgrest-core/__tests__/index.spec.ts rename to packages/postgrest-core/tests/index.spec.ts index cb036be2..a2cac670 100644 --- a/packages/postgrest-core/__tests__/index.spec.ts +++ b/packages/postgrest-core/tests/index.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import * as Import from '../src'; describe('index exports', () => { diff --git a/packages/postgrest-core/__tests__/insert-fetcher.spec.ts b/packages/postgrest-core/tests/insert-fetcher.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/insert-fetcher.spec.ts rename to packages/postgrest-core/tests/insert-fetcher.spec.ts index 20ff9541..c6c7025d 100644 --- a/packages/postgrest-core/__tests__/insert-fetcher.spec.ts +++ b/packages/postgrest-core/tests/insert-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { buildInsertFetcher } from '../src/insert-fetcher'; import type { Database } from './database.types'; diff --git a/packages/postgrest-core/__tests__/lib/extract-paths-from-filters.spec.ts b/packages/postgrest-core/tests/lib/extract-paths-from-filters.spec.ts similarity index 93% rename from packages/postgrest-core/__tests__/lib/extract-paths-from-filters.spec.ts rename to packages/postgrest-core/tests/lib/extract-paths-from-filters.spec.ts index 40431a0f..7b6307c0 100644 --- a/packages/postgrest-core/__tests__/lib/extract-paths-from-filters.spec.ts +++ b/packages/postgrest-core/tests/lib/extract-paths-from-filters.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { extractPathsFromFilters } from '../../src/lib/extract-paths-from-filter'; import { PostgrestParser } from '../../src/postgrest-parser'; diff --git a/packages/postgrest-core/__tests__/lib/find-filters.spec.ts b/packages/postgrest-core/tests/lib/find-filters.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/lib/find-filters.spec.ts rename to packages/postgrest-core/tests/lib/find-filters.spec.ts index 71b9050d..599cda00 100644 --- a/packages/postgrest-core/__tests__/lib/find-filters.spec.ts +++ b/packages/postgrest-core/tests/lib/find-filters.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { findFilters } from '../../src/lib/find-filters'; import { PostgrestParser } from '../../src/postgrest-parser'; diff --git a/packages/postgrest-core/__tests__/lib/find-index-ordered.spec.ts b/packages/postgrest-core/tests/lib/find-index-ordered.spec.ts similarity index 97% rename from packages/postgrest-core/__tests__/lib/find-index-ordered.spec.ts rename to packages/postgrest-core/tests/lib/find-index-ordered.spec.ts index 94b41d83..a4d5c268 100644 --- a/packages/postgrest-core/__tests__/lib/find-index-ordered.spec.ts +++ b/packages/postgrest-core/tests/lib/find-index-ordered.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { findIndexOrdered } from '../../src/lib/find-index-ordered'; type ItemType = { diff --git a/packages/postgrest-core/__tests__/lib/get-table.spec.ts b/packages/postgrest-core/tests/lib/get-table.spec.ts similarity index 87% rename from packages/postgrest-core/__tests__/lib/get-table.spec.ts rename to packages/postgrest-core/tests/lib/get-table.spec.ts index a48c203e..75b5ab3e 100644 --- a/packages/postgrest-core/__tests__/lib/get-table.spec.ts +++ b/packages/postgrest-core/tests/lib/get-table.spec.ts @@ -1,4 +1,5 @@ import { createClient } from '@supabase/supabase-js'; +import { describe, expect, it } from 'vitest'; import { getTable } from '../../src/lib/get-table'; diff --git a/packages/postgrest-core/__tests__/lib/get.spec.ts b/packages/postgrest-core/tests/lib/get.spec.ts similarity index 96% rename from packages/postgrest-core/__tests__/lib/get.spec.ts rename to packages/postgrest-core/tests/lib/get.spec.ts index 026e0ce4..c8fc8bf2 100644 --- a/packages/postgrest-core/__tests__/lib/get.spec.ts +++ b/packages/postgrest-core/tests/lib/get.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { get } from '../../src/lib/get'; describe('get', () => { diff --git a/packages/postgrest-core/__tests__/lib/group-paths-recursive.spec.ts b/packages/postgrest-core/tests/lib/group-paths-recursive.spec.ts similarity index 97% rename from packages/postgrest-core/__tests__/lib/group-paths-recursive.spec.ts rename to packages/postgrest-core/tests/lib/group-paths-recursive.spec.ts index 0546d62c..44d0a26d 100644 --- a/packages/postgrest-core/__tests__/lib/group-paths-recursive.spec.ts +++ b/packages/postgrest-core/tests/lib/group-paths-recursive.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { groupPathsRecursive } from '../../src/lib/group-paths-recursive'; describe('groupPathsRecursive', () => { diff --git a/packages/postgrest-core/__tests__/lib/if-date-get-time.spec.ts b/packages/postgrest-core/tests/lib/if-date-get-time.spec.ts similarity index 93% rename from packages/postgrest-core/__tests__/lib/if-date-get-time.spec.ts rename to packages/postgrest-core/tests/lib/if-date-get-time.spec.ts index 0a7dafa3..4b6d868a 100644 --- a/packages/postgrest-core/__tests__/lib/if-date-get-time.spec.ts +++ b/packages/postgrest-core/tests/lib/if-date-get-time.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { ifDateGetTime } from '../../src/lib/if-date-get-time'; describe('ifDateGetTime', () => { diff --git a/packages/postgrest-core/__tests__/lib/operators.spec.ts b/packages/postgrest-core/tests/lib/operators.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/lib/operators.spec.ts rename to packages/postgrest-core/tests/lib/operators.spec.ts index 7c508e94..4f181783 100644 --- a/packages/postgrest-core/__tests__/lib/operators.spec.ts +++ b/packages/postgrest-core/tests/lib/operators.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { OPERATOR_MAP } from '../../src/lib/operators'; import type { FilterOperator, OperatorFn } from '../../src/lib/query-types'; diff --git a/packages/postgrest-core/__tests__/lib/parse-order-by-key.spec.ts b/packages/postgrest-core/tests/lib/parse-order-by-key.spec.ts similarity index 93% rename from packages/postgrest-core/__tests__/lib/parse-order-by-key.spec.ts rename to packages/postgrest-core/tests/lib/parse-order-by-key.spec.ts index a6703196..dea1a7f2 100644 --- a/packages/postgrest-core/__tests__/lib/parse-order-by-key.spec.ts +++ b/packages/postgrest-core/tests/lib/parse-order-by-key.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { parseOrderByKey } from '../../src/lib/parse-order-by-key'; import { PostgrestParser } from '../../src/postgrest-parser'; diff --git a/packages/postgrest-core/__tests__/lib/parse-select-param.spec.ts b/packages/postgrest-core/tests/lib/parse-select-param.spec.ts similarity index 97% rename from packages/postgrest-core/__tests__/lib/parse-select-param.spec.ts rename to packages/postgrest-core/tests/lib/parse-select-param.spec.ts index 20a9061c..789de7b4 100644 --- a/packages/postgrest-core/__tests__/lib/parse-select-param.spec.ts +++ b/packages/postgrest-core/tests/lib/parse-select-param.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { parseSelectParam } from '../../src/lib/parse-select-param'; describe('parseSelectParam', () => { diff --git a/packages/postgrest-core/__tests__/lib/sorted-comparator.spec.ts b/packages/postgrest-core/tests/lib/sorted-comparator.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/lib/sorted-comparator.spec.ts rename to packages/postgrest-core/tests/lib/sorted-comparator.spec.ts index b3c73073..7973a2c3 100644 --- a/packages/postgrest-core/__tests__/lib/sorted-comparator.spec.ts +++ b/packages/postgrest-core/tests/lib/sorted-comparator.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { buildSortedComparator } from '../../src/lib/sorted-comparator'; type ItemType = { diff --git a/packages/postgrest-core/__tests__/mutate-item.spec.ts b/packages/postgrest-core/tests/mutate-item.spec.ts similarity index 99% rename from packages/postgrest-core/__tests__/mutate-item.spec.ts rename to packages/postgrest-core/tests/mutate-item.spec.ts index b3b47642..edc4b340 100644 --- a/packages/postgrest-core/__tests__/mutate-item.spec.ts +++ b/packages/postgrest-core/tests/mutate-item.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from 'vitest'; import type { DecodedKey, PostgrestFilter } from '../src'; import type { AnyPostgrestResponse, @@ -22,8 +23,8 @@ const mutateFnMock = async ( decodedKey: null | Partial, postgrestFilter: Partial, boolean>>, ) => { - const mutate = jest.fn(); - const revalidate = jest.fn(); + const mutate = vi.fn(); + const revalidate = vi.fn(); await mutateItem( { input: input as ItemType, @@ -101,8 +102,8 @@ const mutateRelationMock = async ( 'revalidateTables' | 'revalidateRelations' >, ) => { - const mutate = jest.fn(); - const revalidate = jest.fn(); + const mutate = vi.fn(); + const revalidate = vi.fn(); await mutateItem( { input: { id: '1', fkey: '1' }, @@ -226,8 +227,8 @@ const mutateFnResult = async ( }, }; }, - revalidate: jest.fn(), - mutate: jest.fn((_, fn) => { + revalidate: vi.fn(), + mutate: vi.fn((_, fn) => { expect(fn).toBeDefined(); expect(fn).toBeInstanceOf(Function); res(fn!(currentData)); diff --git a/packages/postgrest-core/__tests__/mutate/should-revalidate-relation.spec.ts b/packages/postgrest-core/tests/mutate/should-revalidate-relation.spec.ts similarity index 96% rename from packages/postgrest-core/__tests__/mutate/should-revalidate-relation.spec.ts rename to packages/postgrest-core/tests/mutate/should-revalidate-relation.spec.ts index 39b610cf..5f859daa 100644 --- a/packages/postgrest-core/__tests__/mutate/should-revalidate-relation.spec.ts +++ b/packages/postgrest-core/tests/mutate/should-revalidate-relation.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { shouldRevalidateRelation } from '../../src/mutate/should-revalidate-relation'; describe('should-revalidate-relation', () => { diff --git a/packages/postgrest-core/__tests__/mutate/should-revalidate-table.spec.ts b/packages/postgrest-core/tests/mutate/should-revalidate-table.spec.ts similarity index 93% rename from packages/postgrest-core/__tests__/mutate/should-revalidate-table.spec.ts rename to packages/postgrest-core/tests/mutate/should-revalidate-table.spec.ts index 01de9e21..92ad3c95 100644 --- a/packages/postgrest-core/__tests__/mutate/should-revalidate-table.spec.ts +++ b/packages/postgrest-core/tests/mutate/should-revalidate-table.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { shouldRevalidateTable } from '../../src/mutate/should-revalidate-table'; describe('should-revalidate-table', () => { diff --git a/packages/postgrest-core/__tests__/mutate/transformers.spec.ts b/packages/postgrest-core/tests/mutate/transformers.spec.ts similarity index 90% rename from packages/postgrest-core/__tests__/mutate/transformers.spec.ts rename to packages/postgrest-core/tests/mutate/transformers.spec.ts index 48abe1dc..590cfe25 100644 --- a/packages/postgrest-core/__tests__/mutate/transformers.spec.ts +++ b/packages/postgrest-core/tests/mutate/transformers.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { toHasMorePaginationCacheData } from '../../src/mutate/transformers'; describe('toHasMorePaginationCacheData', () => { diff --git a/packages/postgrest-core/__tests__/offset-pagination-fetcher.spec.ts b/packages/postgrest-core/tests/offset-pagination-fetcher.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/offset-pagination-fetcher.spec.ts rename to packages/postgrest-core/tests/offset-pagination-fetcher.spec.ts index 4e2493b3..d4501157 100644 --- a/packages/postgrest-core/__tests__/offset-pagination-fetcher.spec.ts +++ b/packages/postgrest-core/tests/offset-pagination-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { createOffsetPaginationFetcher, diff --git a/packages/postgrest-core/__tests__/postgrest-filter.integration.spec.ts b/packages/postgrest-core/tests/postgrest-filter.integration.spec.ts similarity index 99% rename from packages/postgrest-core/__tests__/postgrest-filter.integration.spec.ts rename to packages/postgrest-core/tests/postgrest-filter.integration.spec.ts index 648cc4bc..559d80ed 100644 --- a/packages/postgrest-core/__tests__/postgrest-filter.integration.spec.ts +++ b/packages/postgrest-core/tests/postgrest-filter.integration.spec.ts @@ -1,5 +1,6 @@ import type { PostgrestFilterBuilder } from '@supabase/postgrest-js'; import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { PostgrestFilter } from '../src/postgrest-filter'; import type { Database } from './database.types'; diff --git a/packages/postgrest-core/__tests__/postgrest-filter.spec.ts b/packages/postgrest-core/tests/postgrest-filter.spec.ts similarity index 99% rename from packages/postgrest-core/__tests__/postgrest-filter.spec.ts rename to packages/postgrest-core/tests/postgrest-filter.spec.ts index 39b4a6df..beededff 100644 --- a/packages/postgrest-core/__tests__/postgrest-filter.spec.ts +++ b/packages/postgrest-core/tests/postgrest-filter.spec.ts @@ -1,4 +1,5 @@ import { createClient } from '@supabase/supabase-js'; +import { describe, expect, it } from 'vitest'; import { PostgrestFilter } from '../src/postgrest-filter'; import { PostgrestParser } from '../src/postgrest-parser'; diff --git a/packages/postgrest-core/__tests__/postgrest-parser.spec.ts b/packages/postgrest-core/tests/postgrest-parser.spec.ts similarity index 99% rename from packages/postgrest-core/__tests__/postgrest-parser.spec.ts rename to packages/postgrest-core/tests/postgrest-parser.spec.ts index 067a080b..001c38a6 100644 --- a/packages/postgrest-core/__tests__/postgrest-parser.spec.ts +++ b/packages/postgrest-core/tests/postgrest-parser.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { PostgrestParser } from '../src/postgrest-parser'; diff --git a/packages/postgrest-core/__tests__/postgrest-query-parser.spec.ts b/packages/postgrest-core/tests/postgrest-query-parser.spec.ts similarity index 94% rename from packages/postgrest-core/__tests__/postgrest-query-parser.spec.ts rename to packages/postgrest-core/tests/postgrest-query-parser.spec.ts index fcd81d4c..0356e1df 100644 --- a/packages/postgrest-core/__tests__/postgrest-query-parser.spec.ts +++ b/packages/postgrest-core/tests/postgrest-query-parser.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { PostgrestQueryParser } from '../src/postgrest-query-parser'; describe('PostgrestQueryParser', () => { diff --git a/packages/postgrest-core/__tests__/update-fetcher.spec.ts b/packages/postgrest-core/tests/update-fetcher.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/update-fetcher.spec.ts rename to packages/postgrest-core/tests/update-fetcher.spec.ts index 4e236bd2..3fef225e 100644 --- a/packages/postgrest-core/__tests__/update-fetcher.spec.ts +++ b/packages/postgrest-core/tests/update-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import type { Database } from './database.types'; import './utils'; diff --git a/packages/postgrest-core/__tests__/upsert-fetcher.spec.ts b/packages/postgrest-core/tests/upsert-fetcher.spec.ts similarity index 96% rename from packages/postgrest-core/__tests__/upsert-fetcher.spec.ts rename to packages/postgrest-core/tests/upsert-fetcher.spec.ts index db651f44..c029036c 100644 --- a/packages/postgrest-core/__tests__/upsert-fetcher.spec.ts +++ b/packages/postgrest-core/tests/upsert-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { buildUpsertFetcher } from '../src/upsert-fetcher'; import type { Database } from './database.types'; diff --git a/packages/postgrest-core/__tests__/upsert-item.spec.ts b/packages/postgrest-core/tests/upsert-item.spec.ts similarity index 98% rename from packages/postgrest-core/__tests__/upsert-item.spec.ts rename to packages/postgrest-core/tests/upsert-item.spec.ts index fc28f27e..dc611a62 100644 --- a/packages/postgrest-core/__tests__/upsert-item.spec.ts +++ b/packages/postgrest-core/tests/upsert-item.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from 'vitest'; import type { DecodedKey, PostgrestFilter } from '../src'; import type { AnyPostgrestResponse, @@ -21,8 +22,8 @@ const mutateFnMock = async ( decodedKey: null | Partial, postgrestFilter: Partial, boolean>>, ) => { - const mutate = jest.fn(); - const revalidate = jest.fn(); + const mutate = vi.fn(); + const revalidate = vi.fn(); await upsertItem( { input, @@ -99,8 +100,8 @@ const mutateRelationMock = async ( 'revalidateTables' | 'revalidateRelations' >, ) => { - const mutate = jest.fn(); - const revalidate = jest.fn(); + const mutate = vi.fn(); + const revalidate = vi.fn(); await upsertItem( { input: { id: '1', fkey: '1' }, @@ -223,8 +224,8 @@ const mutateFnResult = async ( }, }; }, - revalidate: jest.fn(), - mutate: jest.fn((_, fn) => { + revalidate: vi.fn(), + mutate: vi.fn((_, fn) => { expect(fn).toBeDefined(); expect(fn).toBeInstanceOf(Function); res(fn!(currentData)); @@ -573,7 +574,7 @@ describe('upsertItem', () => { }); it('should use custom merge fn', async () => { - const mergeFn = jest + const mergeFn = vi .fn() .mockImplementation((_, input) => ({ ...input, value: 'merged' })); expect( @@ -956,7 +957,7 @@ describe('upsertItem', () => { }); it('custom merge', () => { - const mergeMock = jest.fn().mockImplementation((_, __) => ({ + const mergeMock = vi.fn().mockImplementation((_, __) => ({ id_1: 2, id_2: 2, value_1: -1, diff --git a/packages/postgrest-core/__tests__/utils.ts b/packages/postgrest-core/tests/utils.ts similarity index 100% rename from packages/postgrest-core/__tests__/utils.ts rename to packages/postgrest-core/tests/utils.ts diff --git a/packages/postgrest-core/vitest.config.ts b/packages/postgrest-core/vitest.config.ts new file mode 100644 index 00000000..1c60dfe2 --- /dev/null +++ b/packages/postgrest-core/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + typecheck: { enabled: true }, + coverage: { + provider: 'istanbul', + }, + }, +}); diff --git a/packages/postgrest-react-query/__tests__/subscribe/use-subscription-query.integration.spec.tsx b/packages/postgrest-react-query/__tests__/subscribe/use-subscription-query.integration.spec.tsx deleted file mode 100644 index 42b38dd0..00000000 --- a/packages/postgrest-react-query/__tests__/subscribe/use-subscription-query.integration.spec.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { QueryClient } from '@tanstack/react-query'; -import { act, screen } from '@testing-library/react'; -import React, { useState } from 'react'; - -import { useQuery, useSubscriptionQuery } from '../../src'; -import type { Database } from '../database.types'; -import { renderWithConfig } from '../utils'; - -const TEST_PREFIX = 'postgrest-react-query-subscription-query'; - -describe('useSubscriptionQuery', () => { - let client: SupabaseClient; - let testRunPrefix: string; - - beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; - client = createClient( - process.env.SUPABASE_URL as string, - process.env.SUPABASE_ANON_KEY as string, - ); - await client.from('contact').delete().ilike('username', `${TEST_PREFIX}%`); - }); - - afterEach(async () => { - if (client) await client.removeAllChannels(); - }); - - it('should properly update cache', async () => { - const queryClient = new QueryClient(); - const USERNAME_1 = `${testRunPrefix}-1`; - function Page() { - const { data, count } = useQuery( - client - .from('contact') - .select('id,username,has_low_ticket_number,ticket_number', { - count: 'exact', - }) - .eq('username', USERNAME_1), - ); - - const [cbCalled, setCbCalled] = useState(false); - - const { status } = useSubscriptionQuery( - client, - `public:contact:username=eq.${USERNAME_1}`, - { - event: '*', - table: 'contact', - schema: 'public', - filter: `username=eq.${USERNAME_1}`, - }, - ['id'], - 'id,username,has_low_ticket_number,ticket_number', - { - callback: (evt) => { - if (evt.data.ticket_number === 1000) { - setCbCalled(true); - } - }, - }, - ); - - return ( -
- {(data ?? []).map((d) => ( - {`ticket_number: ${d.ticket_number} | has_low_ticket_number: ${d.has_low_ticket_number}`} - ))} - {`count: ${count}`} - {status} - {`cbCalled: ${cbCalled}`} -
- ); - } - - const { unmount } = renderWithConfig(, queryClient); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); - await new Promise((resolve) => setTimeout(resolve, 2000)); - await act(async () => { - await client - .from('contact') - .insert({ username: USERNAME_1, ticket_number: 1 }) - .select('*') - .throwOnError() - .single(); - }); - await screen.findByText( - 'ticket_number: 1 | has_low_ticket_number: true', - {}, - { timeout: 10000 }, - ); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await act(async () => { - await client - .from('contact') - .update({ ticket_number: 1000 }) - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText( - 'ticket_number: 1000 | has_low_ticket_number: false', - {}, - { timeout: 10000 }, - ); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); - await act(async () => { - await client - .from('contact') - .delete() - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 0'); - unmount(); - }); -}); diff --git a/packages/postgrest-react-query/package.json b/packages/postgrest-react-query/package.json index 9c493798..98f4718b 100644 --- a/packages/postgrest-react-query/package.json +++ b/packages/postgrest-react-query/package.json @@ -6,6 +6,7 @@ "bugs": { "url": "https://github.com/psteinroe/supabase-cache-helpers/issues" }, + "type": "module", "main": "./dist/index.js", "source": "./src/index.ts", "types": "./dist/index.d.ts", @@ -16,15 +17,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./package.json": "./package.json" }, "license": "MIT", "scripts": { "build": "tsup", - "test": "jest --coverage --runInBand", + "test": "vitest --coverage --no-file-parallelism --dangerouslyIgnoreUnhandledErrors", "clean": "rm -rf .turbo && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", "typecheck": "tsc --pretty --noEmit" }, @@ -41,31 +42,24 @@ "directory": "packages/postgrest-react-query" }, "peerDependencies": { + "@supabase/postgrest-js": "^1.9.0", "@tanstack/react-query": "^4.0.0 || ^5.0.0", - "react": "^16.11.0 || ^17.0.0 || ^18.0.0", - "@supabase/postgrest-js": "^1.9.0" - }, - "jest": { - "preset": "@supabase-cache-helpers/jest-presets/jest/node" + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" }, "devDependencies": { - "@supabase/supabase-js": "2.38.5", - "@supabase/postgrest-js": "1.9.0", - "@testing-library/react": "14.3.0", - "@testing-library/jest-dom": "6.4.0", - "jest-environment-jsdom": "29.7.0", - "@types/jest": "29.5.0", - "dotenv": "16.4.0", - "jest": "29.7.0", - "@supabase-cache-helpers/jest-presets": "workspace:*", - "ts-jest": "29.1.0", "@supabase-cache-helpers/tsconfig": "workspace:*", + "@supabase/postgrest-js": "1.15.8", + "@supabase/supabase-js": "2.44.3", + "@testing-library/react": "14.3.0", "@types/flat": "5.0.2", - "tsup": "8.0.0", + "@types/react": "18.3.3", + "@vitest/coverage-istanbul": "^2.0.2", + "dotenv": "16.4.0", "react": "18.2.0", - "@types/react": "18.2.0", "react-dom": "18.2.0", - "typescript": "5.4.2" + "tsup": "8.0.0", + "typescript": "5.4.2", + "vitest": "^2.0.2" }, "dependencies": { "@supabase-cache-helpers/postgrest-core": "workspace:*", diff --git a/packages/postgrest-react-query/src/mutate/types.ts b/packages/postgrest-react-query/src/mutate/types.ts index ee644b7b..c66a1b8e 100644 --- a/packages/postgrest-react-query/src/mutate/types.ts +++ b/packages/postgrest-react-query/src/mutate/types.ts @@ -5,12 +5,12 @@ import type { UpdateFetcherOptions, UpsertFetcherOptions, } from '@supabase-cache-helpers/postgrest-core'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; -import type { PostgrestError } from '@supabase/supabase-js'; + PostgrestError, +} from '@supabase/postgrest-js/dist/cjs/types'; import type { UseMutationOptions } from '@tanstack/react-query'; export type Operation = diff --git a/packages/postgrest-react-query/src/mutate/use-delete-many-mutation.ts b/packages/postgrest-react-query/src/mutate/use-delete-many-mutation.ts index 601253c4..e1b8c53e 100644 --- a/packages/postgrest-react-query/src/mutate/use-delete-many-mutation.ts +++ b/packages/postgrest-react-query/src/mutate/use-delete-many-mutation.ts @@ -3,11 +3,11 @@ import { getTable, } from '@supabase-cache-helpers/postgrest-core'; import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { useMutation } from '@tanstack/react-query'; import { useDeleteItem } from '../cache'; diff --git a/packages/postgrest-react-query/src/mutate/use-delete-mutation.ts b/packages/postgrest-react-query/src/mutate/use-delete-mutation.ts index b06fa699..150b08ad 100644 --- a/packages/postgrest-react-query/src/mutate/use-delete-mutation.ts +++ b/packages/postgrest-react-query/src/mutate/use-delete-mutation.ts @@ -3,11 +3,11 @@ import { getTable, } from '@supabase-cache-helpers/postgrest-core'; import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { useMutation } from '@tanstack/react-query'; import { useDeleteItem } from '../cache'; diff --git a/packages/postgrest-react-query/src/mutate/use-insert-mutation.ts b/packages/postgrest-react-query/src/mutate/use-insert-mutation.ts index 70c31ffb..4de12f06 100644 --- a/packages/postgrest-react-query/src/mutate/use-insert-mutation.ts +++ b/packages/postgrest-react-query/src/mutate/use-insert-mutation.ts @@ -3,11 +3,11 @@ import { getTable, } from '@supabase-cache-helpers/postgrest-core'; import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { useMutation } from '@tanstack/react-query'; import { useUpsertItem } from '../cache'; diff --git a/packages/postgrest-react-query/src/mutate/use-update-mutation.ts b/packages/postgrest-react-query/src/mutate/use-update-mutation.ts index a504f8b1..419743c1 100644 --- a/packages/postgrest-react-query/src/mutate/use-update-mutation.ts +++ b/packages/postgrest-react-query/src/mutate/use-update-mutation.ts @@ -2,12 +2,12 @@ import { buildUpdateFetcher, getTable, } from '@supabase-cache-helpers/postgrest-core'; -import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { PostgrestQueryBuilder } from '@supabase/postgrest-js'; +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { useMutation } from '@tanstack/react-query'; import { useUpsertItem } from '../cache'; diff --git a/packages/postgrest-react-query/src/mutate/use-upsert-mutation.ts b/packages/postgrest-react-query/src/mutate/use-upsert-mutation.ts index 31e32ce4..8501e2fa 100644 --- a/packages/postgrest-react-query/src/mutate/use-upsert-mutation.ts +++ b/packages/postgrest-react-query/src/mutate/use-upsert-mutation.ts @@ -3,11 +3,11 @@ import { getTable, } from '@supabase-cache-helpers/postgrest-core'; import type { PostgrestQueryBuilder } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { useMutation } from '@tanstack/react-query'; import { useUpsertItem } from '../cache'; diff --git a/packages/postgrest-react-query/src/subscribe/use-subscription-query.ts b/packages/postgrest-react-query/src/subscribe/use-subscription-query.ts index 821cd363..e4cff9b4 100644 --- a/packages/postgrest-react-query/src/subscribe/use-subscription-query.ts +++ b/packages/postgrest-react-query/src/subscribe/use-subscription-query.ts @@ -3,11 +3,11 @@ import { buildNormalizedQuery, normalizeResponse, } from '@supabase-cache-helpers/postgrest-core'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { REALTIME_LISTEN_TYPES, REALTIME_POSTGRES_CHANGES_LISTEN_EVENT, diff --git a/packages/postgrest-react-query/src/subscribe/use-subscription.ts b/packages/postgrest-react-query/src/subscribe/use-subscription.ts index 338b56c4..c2fdf686 100644 --- a/packages/postgrest-react-query/src/subscribe/use-subscription.ts +++ b/packages/postgrest-react-query/src/subscribe/use-subscription.ts @@ -1,5 +1,5 @@ import type { RevalidateOpts } from '@supabase-cache-helpers/postgrest-core'; -import type { GenericTable } from '@supabase/postgrest-js/dist/module/types'; +import type { GenericTable } from '@supabase/postgrest-js/dist/cjs/types'; import { REALTIME_LISTEN_TYPES, REALTIME_POSTGRES_CHANGES_LISTEN_EVENT, diff --git a/packages/postgrest-react-query/__tests__/cache/use-mutate-item.spec.tsx b/packages/postgrest-react-query/tests/cache/use-mutate-item.spec.tsx similarity index 93% rename from packages/postgrest-react-query/__tests__/cache/use-mutate-item.spec.tsx rename to packages/postgrest-react-query/tests/cache/use-mutate-item.spec.tsx index c1dcd6a0..5c54f1bd 100644 --- a/packages/postgrest-react-query/__tests__/cache/use-mutate-item.spec.tsx +++ b/packages/postgrest-react-query/tests/cache/use-mutate-item.spec.tsx @@ -1,7 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { fireEvent, screen } from '@testing-library/react'; -import React from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { afterEach, beforeAll, beforeEach, describe, it } from 'vitest'; import { useMutateItem, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -37,6 +37,8 @@ describe('useMutateItem', () => { contacts = data as Database['public']['Tables']['contact']['Row'][]; }); + afterEach(cleanup); + it('should mutate existing item in cache', async () => { const queryClient = new QueryClient(); function Page() { diff --git a/packages/postgrest-react-query/__tests__/database.types.ts b/packages/postgrest-react-query/tests/database.types.ts similarity index 100% rename from packages/postgrest-react-query/__tests__/database.types.ts rename to packages/postgrest-react-query/tests/database.types.ts diff --git a/packages/postgrest-react-query/__tests__/mutate/use-delete-many-mutation.integration.spec.tsx b/packages/postgrest-react-query/tests/mutate/use-delete-many-mutation.integration.spec.tsx similarity index 95% rename from packages/postgrest-react-query/__tests__/mutate/use-delete-many-mutation.integration.spec.tsx rename to packages/postgrest-react-query/tests/mutate/use-delete-many-mutation.integration.spec.tsx index 3b49c87b..2150298d 100644 --- a/packages/postgrest-react-query/__tests__/mutate/use-delete-many-mutation.integration.spec.tsx +++ b/packages/postgrest-react-query/tests/mutate/use-delete-many-mutation.integration.spec.tsx @@ -1,7 +1,8 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, it } from 'vitest'; import { useDeleteManyMutation, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -37,6 +38,8 @@ describe('useDeleteManyMutation', () => { contacts = data as Database['public']['Tables']['contact']['Row'][]; }); + afterEach(cleanup); + it('should delete existing cache item and reduce count', async () => { const queryClient = new QueryClient(); function Page() { diff --git a/packages/postgrest-react-query/__tests__/mutate/use-delete-mutation.integration.spec.tsx b/packages/postgrest-react-query/tests/mutate/use-delete-mutation.integration.spec.tsx similarity index 96% rename from packages/postgrest-react-query/__tests__/mutate/use-delete-mutation.integration.spec.tsx rename to packages/postgrest-react-query/tests/mutate/use-delete-mutation.integration.spec.tsx index 4040ea89..0e2fafaf 100644 --- a/packages/postgrest-react-query/__tests__/mutate/use-delete-mutation.integration.spec.tsx +++ b/packages/postgrest-react-query/tests/mutate/use-delete-mutation.integration.spec.tsx @@ -1,7 +1,8 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, it } from 'vitest'; import { useDeleteMutation, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -37,6 +38,8 @@ describe('useDeleteMutation', () => { contacts = data as Database['public']['Tables']['contact']['Row'][]; }); + afterEach(cleanup); + it('should invalidate address_book cache after delete', async () => { const { data: addressBooks } = await client .from('address_book') diff --git a/packages/postgrest-react-query/__tests__/mutate/use-insert-mutation.integration.spec.tsx b/packages/postgrest-react-query/tests/mutate/use-insert-mutation.integration.spec.tsx similarity index 92% rename from packages/postgrest-react-query/__tests__/mutate/use-insert-mutation.integration.spec.tsx rename to packages/postgrest-react-query/tests/mutate/use-insert-mutation.integration.spec.tsx index 4e7a565f..a7ca2798 100644 --- a/packages/postgrest-react-query/__tests__/mutate/use-insert-mutation.integration.spec.tsx +++ b/packages/postgrest-react-query/tests/mutate/use-insert-mutation.integration.spec.tsx @@ -1,7 +1,8 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; import { useInsertMutation, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -22,6 +23,8 @@ describe('useInsertMutation', () => { await client.from('contact').delete().ilike('username', `${TEST_PREFIX}%`); }); + afterEach(cleanup); + it('should insert into existing cache item with alias', async () => { const queryClient = new QueryClient(); const USERNAME_1 = `${testRunPrefix}-1`; diff --git a/packages/postgrest-react-query/__tests__/mutate/use-update-mutation.integration.spec.tsx b/packages/postgrest-react-query/tests/mutate/use-update-mutation.integration.spec.tsx similarity index 93% rename from packages/postgrest-react-query/__tests__/mutate/use-update-mutation.integration.spec.tsx rename to packages/postgrest-react-query/tests/mutate/use-update-mutation.integration.spec.tsx index b67b5174..12de84b1 100644 --- a/packages/postgrest-react-query/__tests__/mutate/use-update-mutation.integration.spec.tsx +++ b/packages/postgrest-react-query/tests/mutate/use-update-mutation.integration.spec.tsx @@ -1,7 +1,8 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; import { useInsertMutation, useQuery, useUpdateMutation } from '../../src'; import type { Database } from '../database.types'; @@ -22,6 +23,8 @@ describe('useUpdateMutation', () => { await client.from('contact').delete().ilike('username', `${TEST_PREFIX}%`); }); + afterEach(cleanup); + it('should update existing cache item', async () => { const queryClient = new QueryClient(); const USERNAME_1 = `${testRunPrefix}-2`; diff --git a/packages/postgrest-react-query/__tests__/mutate/use-upsert-mutation.integration.spec.tsx b/packages/postgrest-react-query/tests/mutate/use-upsert-mutation.integration.spec.tsx similarity index 93% rename from packages/postgrest-react-query/__tests__/mutate/use-upsert-mutation.integration.spec.tsx rename to packages/postgrest-react-query/tests/mutate/use-upsert-mutation.integration.spec.tsx index 77a5f72a..cd40fbf6 100644 --- a/packages/postgrest-react-query/__tests__/mutate/use-upsert-mutation.integration.spec.tsx +++ b/packages/postgrest-react-query/tests/mutate/use-upsert-mutation.integration.spec.tsx @@ -1,7 +1,8 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; import { useQuery, useUpsertMutation } from '../../src'; import type { Database } from '../database.types'; @@ -22,6 +23,8 @@ describe('useUpsertMutation', () => { await client.from('contact').delete().ilike('username', `${TEST_PREFIX}%`); }); + afterEach(cleanup); + it('should upsert into existing cache item', async () => { const queryClient = new QueryClient(); const USERNAME_1 = `${testRunPrefix}-2`; diff --git a/packages/postgrest-react-query/__tests__/query/fetch.spec.ts b/packages/postgrest-react-query/tests/query/fetch.spec.ts similarity index 96% rename from packages/postgrest-react-query/__tests__/query/fetch.spec.ts rename to packages/postgrest-react-query/tests/query/fetch.spec.ts index dc775a92..99269222 100644 --- a/packages/postgrest-react-query/__tests__/query/fetch.spec.ts +++ b/packages/postgrest-react-query/tests/query/fetch.spec.ts @@ -1,5 +1,6 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; +import { beforeAll, describe, expect, it } from 'vitest'; import { fetchQuery } from '../../src'; import type { Database } from '../database.types'; diff --git a/packages/postgrest-react-query/__tests__/query/prefetch.integration.spec.ts b/packages/postgrest-react-query/tests/query/prefetch.integration.spec.ts similarity index 96% rename from packages/postgrest-react-query/__tests__/query/prefetch.integration.spec.ts rename to packages/postgrest-react-query/tests/query/prefetch.integration.spec.ts index 9b3db97c..7af4349c 100644 --- a/packages/postgrest-react-query/__tests__/query/prefetch.integration.spec.ts +++ b/packages/postgrest-react-query/tests/query/prefetch.integration.spec.ts @@ -1,5 +1,6 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; +import { beforeAll, describe, expect, it } from 'vitest'; import { fetchQueryInitialData, prefetchQuery } from '../../src'; import type { Database } from '../database.types'; diff --git a/packages/postgrest-react-query/__tests__/query/use-query.integration.spec.tsx b/packages/postgrest-react-query/tests/query/use-query.integration.spec.tsx similarity index 97% rename from packages/postgrest-react-query/__tests__/query/use-query.integration.spec.tsx rename to packages/postgrest-react-query/tests/query/use-query.integration.spec.tsx index f80a5aad..e63fd0e7 100644 --- a/packages/postgrest-react-query/__tests__/query/use-query.integration.spec.tsx +++ b/packages/postgrest-react-query/tests/query/use-query.integration.spec.tsx @@ -1,7 +1,8 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; import { fetchQueryInitialData, prefetchQuery, useQuery } from '../../src'; import { encode } from '../../src/lib/key'; @@ -37,6 +38,8 @@ describe('useQuery', () => { expect(contacts).toHaveLength(4); }); + afterEach(cleanup); + it('should work for single', async () => { const queryClient = new QueryClient(); const query = client diff --git a/packages/postgrest-react-query/tests/subscribe/use-subscription-query.integration.spec.tsx b/packages/postgrest-react-query/tests/subscribe/use-subscription-query.integration.spec.tsx new file mode 100644 index 00000000..c2bb6b38 --- /dev/null +++ b/packages/postgrest-react-query/tests/subscribe/use-subscription-query.integration.spec.tsx @@ -0,0 +1,134 @@ +import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { QueryClient } from '@tanstack/react-query'; +import { act, cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; + +import { useQuery, useSubscriptionQuery } from '../../src'; +import type { Database } from '../database.types'; +import { renderWithConfig } from '../utils'; + +const TEST_PREFIX = 'postgrest-react-query-subscription-query'; + +describe('useSubscriptionQuery', { timeout: 20000 }, () => { + let client: SupabaseClient; + let testRunPrefix: string; + + beforeAll(async () => { + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; + client = createClient( + process.env.SUPABASE_URL as string, + process.env.SUPABASE_ANON_KEY as string, + ); + await client.from('contact').delete().ilike('username', `${TEST_PREFIX}%`); + }); + + afterEach(async () => { + if (client) await client.removeAllChannels(); + cleanup(); + }); + + it('should properly update cache', async () => { + const queryClient = new QueryClient(); + const USERNAME_1 = `${testRunPrefix}-1`; + + await client + .from('contact') + .insert({ username: USERNAME_1, ticket_number: 1 }) + .select('*') + .throwOnError() + .single(); + + function Page() { + const { data, count, error } = useQuery( + client + .from('contact') + .select('id,username,has_low_ticket_number,ticket_number', { + count: 'exact', + }) + .eq('username', USERNAME_1), + ); + + const [cbCalled, setCbCalled] = useState(false); + + const { status } = useSubscriptionQuery( + client, + `public:contact:username=eq.${USERNAME_1}`, + { + event: '*', + table: 'contact', + schema: 'public', + filter: `username=eq.${USERNAME_1}`, + }, + ['id'], + 'id,username,has_low_ticket_number,ticket_number', + { + callback: (evt) => { + if (evt.data.ticket_number === 1000) { + setCbCalled(true); + } + }, + }, + ); + + const ticketNumber = Array.isArray(data) ? data[0]?.ticket_number : null; + const hasLowTicketNumber = Array.isArray(data) + ? data[0]?.has_low_ticket_number + : null; + + return ( +
+ {`ticket_number: ${ticketNumber} | has_low_ticket_number: ${hasLowTicketNumber}`} + {`count: ${count}`} + {status} + {`cbCalled: ${cbCalled}`} +
+ await client + .from('contact') + .update({ ticket_number: 1000 }) + .eq('username', USERNAME_1) + .throwOnError() + } + /> +
+ await client + .from('contact') + .delete() + .eq('username', USERNAME_1) + .throwOnError() + } + /> +
+ ); + } + + renderWithConfig(, queryClient); + if (!process.env.CI) { + await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); + await screen.findByText( + 'ticket_number: 1 | has_low_ticket_number: true', + {}, + { timeout: 10000 }, + ); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + + fireEvent.click(screen.getByTestId('update')); + await screen.findByText( + 'ticket_number: 1000 | has_low_ticket_number: false', + {}, + { timeout: 10000 }, + ); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); + fireEvent.click(screen.getByTestId('delete')); + await screen.findByText('count: 0', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 0'); + } + }); +}); diff --git a/packages/postgrest-react-query/__tests__/subscribe/use-subscription.integration.spec.tsx b/packages/postgrest-react-query/tests/subscribe/use-subscription.integration.spec.tsx similarity index 57% rename from packages/postgrest-react-query/__tests__/subscribe/use-subscription.integration.spec.tsx rename to packages/postgrest-react-query/tests/subscribe/use-subscription.integration.spec.tsx index 0bc14760..59523868 100644 --- a/packages/postgrest-react-query/__tests__/subscribe/use-subscription.integration.spec.tsx +++ b/packages/postgrest-react-query/tests/subscribe/use-subscription.integration.spec.tsx @@ -1,7 +1,8 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { QueryClient } from '@tanstack/react-query'; -import { act, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { act, cleanup, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; import { useQuery, useSubscription } from '../../src'; import type { Database } from '../database.types'; @@ -9,12 +10,12 @@ import { renderWithConfig } from '../utils'; const TEST_PREFIX = 'postgrest-react-query-subscription-plain'; -describe('useSubscription', () => { +describe('useSubscription', { timeout: 20000 }, () => { let client: SupabaseClient; let testRunPrefix: string; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, @@ -24,11 +25,20 @@ describe('useSubscription', () => { afterEach(async () => { if (client) await client.removeAllChannels(); + cleanup(); }); it('should properly update cache', async () => { const queryClient = new QueryClient(); const USERNAME_1 = `${testRunPrefix}-1`; + + await client + .from('contact') + .insert({ username: USERNAME_1, ticket_number: 1 }) + .select('id') + .throwOnError() + .single(); + function Page() { const { data, count } = useQuery( client @@ -64,38 +74,30 @@ describe('useSubscription', () => { ); } - const { unmount } = renderWithConfig(, queryClient); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); - await act(async () => { - await client - .from('contact') - .insert({ username: USERNAME_1, ticket_number: 1 }) - .select('id') - .throwOnError() - .single(); - }); - await screen.findByText('ticket_number: 1', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await act(async () => { - await client - .from('contact') - .update({ ticket_number: 5 }) - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText('ticket_number: 5', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); - await act(async () => { - await client - .from('contact') - .delete() - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 0'); - unmount(); + renderWithConfig(, queryClient); + if (!process.env.CI) { + await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); + await screen.findByText('ticket_number: 1', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + await act(async () => { + await client + .from('contact') + .update({ ticket_number: 5 }) + .eq('username', USERNAME_1) + .throwOnError(); + }); + await screen.findByText('ticket_number: 5', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); + await act(async () => { + await client + .from('contact') + .delete() + .eq('username', USERNAME_1) + .throwOnError(); + }); + await screen.findByText('count: 0', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 0'); + } }); }); diff --git a/packages/postgrest-react-query/__tests__/utils.tsx b/packages/postgrest-react-query/tests/utils.tsx similarity index 100% rename from packages/postgrest-react-query/__tests__/utils.tsx rename to packages/postgrest-react-query/tests/utils.tsx diff --git a/packages/postgrest-react-query/tsconfig.json b/packages/postgrest-react-query/tsconfig.json index 49b41196..f3456f26 100644 --- a/packages/postgrest-react-query/tsconfig.json +++ b/packages/postgrest-react-query/tsconfig.json @@ -1,5 +1,5 @@ { "extends": "@supabase-cache-helpers/tsconfig/react-library.json", - "include": ["**/*.ts"], + "include": ["**/*.ts", "**/*.tsx"], "exclude": ["node_modules"] } diff --git a/packages/postgrest-react-query/vitest.config.ts b/packages/postgrest-react-query/vitest.config.ts new file mode 100644 index 00000000..3c17bf67 --- /dev/null +++ b/packages/postgrest-react-query/vitest.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + typecheck: { enabled: true }, + environment: 'happy-dom', + coverage: { + provider: 'istanbul', + }, + }, +}); diff --git a/packages/postgrest-swr/package.json b/packages/postgrest-swr/package.json index 737d4382..7c0f968c 100644 --- a/packages/postgrest-swr/package.json +++ b/packages/postgrest-swr/package.json @@ -6,18 +6,19 @@ "bugs": { "url": "https://github.com/psteinroe/supabase-cache-helpers/issues" }, + "type": "module", "main": "./dist/index.js", "source": "./src/index.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./react-server": { "types": "./dist/index.react-server.d.ts", - "import": "./dist/index.react-server.mjs", - "require": "./dist/index.react-server.js" + "import": "./dist/index.react-server.js", + "require": "./dist/index.react-server.cjs" }, "./package.json": "./package.json" }, @@ -29,7 +30,7 @@ "license": "MIT", "scripts": { "build": "tsup", - "test": "jest --coverage --runInBand", + "test": "vitest --coverage --no-file-parallelism --dangerouslyIgnoreUnhandledErrors", "clean": "rm -rf .turbo && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", "typecheck": "tsc --pretty --noEmit" }, @@ -44,27 +45,20 @@ "react": "^16.11.0 || ^17.0.0 || ^18.0.0", "swr": "^2.2.0" }, - "jest": { - "preset": "@supabase-cache-helpers/jest-presets/jest/node" - }, "devDependencies": { - "@supabase-cache-helpers/jest-presets": "workspace:*", "@supabase-cache-helpers/tsconfig": "workspace:*", - "@supabase/postgrest-js": "1.9.0", - "@supabase/supabase-js": "2.38.5", - "@testing-library/jest-dom": "6.4.0", + "@supabase/postgrest-js": "1.15.8", + "@supabase/supabase-js": "2.44.3", "@testing-library/react": "14.3.0", - "@types/jest": "29.5.0", - "@types/react": "18.2.0", + "@types/flat": "5.0.2", + "@types/react": "18.3.3", + "@vitest/coverage-istanbul": "^2.0.2", "dotenv": "16.4.0", - "jest": "29.7.0", - "jest-environment-jsdom": "29.7.0", "react": "18.2.0", "react-dom": "18.2.0", - "ts-jest": "29.1.0", "tsup": "8.0.0", - "@types/flat": "5.0.2", - "typescript": "5.4.2" + "typescript": "5.4.2", + "vitest": "^2.0.2" }, "dependencies": { "@supabase-cache-helpers/postgrest-core": "workspace:*", diff --git a/packages/postgrest-swr/src/lib/create-key-getter.ts b/packages/postgrest-swr/src/lib/create-key-getter.ts index 779efb2f..f4af5a1f 100644 --- a/packages/postgrest-swr/src/lib/create-key-getter.ts +++ b/packages/postgrest-swr/src/lib/create-key-getter.ts @@ -7,7 +7,7 @@ import { setFilterValue, } from '@supabase-cache-helpers/postgrest-core'; import type { PostgrestTransformBuilder } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/postgrest-js/dist/module/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; export const createOffsetKeyGetter = < Schema extends GenericSchema, diff --git a/packages/postgrest-swr/src/mutate/types.ts b/packages/postgrest-swr/src/mutate/types.ts index 7277dd99..bd660725 100644 --- a/packages/postgrest-swr/src/mutate/types.ts +++ b/packages/postgrest-swr/src/mutate/types.ts @@ -5,11 +5,11 @@ import type { UpdateFetcherOptions, UpsertFetcherOptions, } from '@supabase-cache-helpers/postgrest-core'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import type { PostgrestError } from '@supabase/supabase-js'; import type { MutatorOptions as SWRMutatorOptions } from 'swr'; import type { SWRMutationConfiguration } from 'swr/mutation'; diff --git a/packages/postgrest-swr/src/mutate/use-delete-many-mutation.ts b/packages/postgrest-swr/src/mutate/use-delete-many-mutation.ts index 90c4b62d..2bcdf05c 100644 --- a/packages/postgrest-swr/src/mutate/use-delete-many-mutation.ts +++ b/packages/postgrest-swr/src/mutate/use-delete-many-mutation.ts @@ -6,11 +6,11 @@ import type { PostgrestError, PostgrestQueryBuilder, } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import useMutation, { type SWRMutationResponse } from 'swr/mutation'; import { useDeleteItem } from '../cache'; diff --git a/packages/postgrest-swr/src/mutate/use-delete-mutation.ts b/packages/postgrest-swr/src/mutate/use-delete-mutation.ts index 49ae7ccf..3eb74bae 100644 --- a/packages/postgrest-swr/src/mutate/use-delete-mutation.ts +++ b/packages/postgrest-swr/src/mutate/use-delete-mutation.ts @@ -6,11 +6,11 @@ import type { PostgrestError, PostgrestQueryBuilder, } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import useMutation, { type SWRMutationResponse } from 'swr/mutation'; import { useDeleteItem } from '../cache'; diff --git a/packages/postgrest-swr/src/mutate/use-insert-mutation.ts b/packages/postgrest-swr/src/mutate/use-insert-mutation.ts index 7b1d3997..fe265b67 100644 --- a/packages/postgrest-swr/src/mutate/use-insert-mutation.ts +++ b/packages/postgrest-swr/src/mutate/use-insert-mutation.ts @@ -6,11 +6,11 @@ import type { PostgrestError, PostgrestQueryBuilder, } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import useMutation, { type SWRMutationResponse } from 'swr/mutation'; import { useUpsertItem } from '../cache'; diff --git a/packages/postgrest-swr/src/mutate/use-update-mutation.ts b/packages/postgrest-swr/src/mutate/use-update-mutation.ts index 99059976..d714e574 100644 --- a/packages/postgrest-swr/src/mutate/use-update-mutation.ts +++ b/packages/postgrest-swr/src/mutate/use-update-mutation.ts @@ -6,11 +6,11 @@ import type { PostgrestError, PostgrestQueryBuilder, } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import useSWRMutation, { type SWRMutationResponse } from 'swr/mutation'; import { useUpsertItem } from '../cache'; diff --git a/packages/postgrest-swr/src/mutate/use-upsert-mutation.ts b/packages/postgrest-swr/src/mutate/use-upsert-mutation.ts index 2e91b42b..1a29af8a 100644 --- a/packages/postgrest-swr/src/mutate/use-upsert-mutation.ts +++ b/packages/postgrest-swr/src/mutate/use-upsert-mutation.ts @@ -6,11 +6,11 @@ import type { PostgrestError, PostgrestQueryBuilder, } from '@supabase/postgrest-js'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import useMutation, { type SWRMutationResponse } from 'swr/mutation'; import { useUpsertItem } from '../cache'; diff --git a/packages/postgrest-swr/src/query/prefetch.ts b/packages/postgrest-swr/src/query/prefetch.ts index 9cf5f8b4..f873c205 100644 --- a/packages/postgrest-swr/src/query/prefetch.ts +++ b/packages/postgrest-swr/src/query/prefetch.ts @@ -11,7 +11,7 @@ import type { PostgrestSingleResponse, PostgrestTransformBuilder, } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/postgrest-js/dist/module/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; import { encode } from '../lib'; diff --git a/packages/postgrest-swr/src/query/use-cursor-infinite-scroll-query.ts b/packages/postgrest-swr/src/query/use-cursor-infinite-scroll-query.ts index d6dd6e0d..94004da3 100644 --- a/packages/postgrest-swr/src/query/use-cursor-infinite-scroll-query.ts +++ b/packages/postgrest-swr/src/query/use-cursor-infinite-scroll-query.ts @@ -9,7 +9,7 @@ import type { PostgrestError, PostgrestTransformBuilder, } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/postgrest-js/dist/module/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; import { useCallback, useMemo } from 'react'; import type { Middleware } from 'swr'; import useSWRInfinite, { diff --git a/packages/postgrest-swr/src/query/use-infinite-offset-pagination-query.ts b/packages/postgrest-swr/src/query/use-infinite-offset-pagination-query.ts index 21c76b62..a377e732 100644 --- a/packages/postgrest-swr/src/query/use-infinite-offset-pagination-query.ts +++ b/packages/postgrest-swr/src/query/use-infinite-offset-pagination-query.ts @@ -6,7 +6,7 @@ import type { PostgrestError, PostgrestTransformBuilder, } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/postgrest-js/dist/module/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; import { useCallback, useState } from 'react'; import type { Middleware } from 'swr'; import useSWRInfinite, { diff --git a/packages/postgrest-swr/src/query/use-offset-infinite-query.ts b/packages/postgrest-swr/src/query/use-offset-infinite-query.ts index d6944986..4402d44c 100644 --- a/packages/postgrest-swr/src/query/use-offset-infinite-query.ts +++ b/packages/postgrest-swr/src/query/use-offset-infinite-query.ts @@ -4,7 +4,7 @@ import type { PostgrestResponse, PostgrestTransformBuilder, } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/postgrest-js/dist/module/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; import type { Middleware } from 'swr'; import useSWRInfinite, { type SWRInfiniteConfiguration, diff --git a/packages/postgrest-swr/src/query/use-offset-infinite-scroll-query.ts b/packages/postgrest-swr/src/query/use-offset-infinite-scroll-query.ts index ed008a42..f4394413 100644 --- a/packages/postgrest-swr/src/query/use-offset-infinite-scroll-query.ts +++ b/packages/postgrest-swr/src/query/use-offset-infinite-scroll-query.ts @@ -7,7 +7,7 @@ import type { PostgrestError, PostgrestTransformBuilder, } from '@supabase/postgrest-js'; -import type { GenericSchema } from '@supabase/postgrest-js/dist/module/types'; +import { GenericSchema } from '@supabase/postgrest-js/dist/cjs/types'; import { useCallback } from 'react'; import type { Middleware } from 'swr'; import useSWRInfinite, { diff --git a/packages/postgrest-swr/src/subscribe/use-subscription-query.ts b/packages/postgrest-swr/src/subscribe/use-subscription-query.ts index 7cc5d0cb..6759fd3e 100644 --- a/packages/postgrest-swr/src/subscribe/use-subscription-query.ts +++ b/packages/postgrest-swr/src/subscribe/use-subscription-query.ts @@ -3,11 +3,11 @@ import { buildNormalizedQuery, normalizeResponse, } from '@supabase-cache-helpers/postgrest-core'; -import type { GetResult } from '@supabase/postgrest-js/dist/module/select-query-parser'; -import type { +import { GetResult } from '@supabase/postgrest-js/dist/cjs/select-query-parser'; +import { GenericSchema, GenericTable, -} from '@supabase/postgrest-js/dist/module/types'; +} from '@supabase/postgrest-js/dist/cjs/types'; import { REALTIME_LISTEN_TYPES, REALTIME_POSTGRES_CHANGES_LISTEN_EVENT, diff --git a/packages/postgrest-swr/src/subscribe/use-subscription.ts b/packages/postgrest-swr/src/subscribe/use-subscription.ts index 77e29a5f..65d22302 100644 --- a/packages/postgrest-swr/src/subscribe/use-subscription.ts +++ b/packages/postgrest-swr/src/subscribe/use-subscription.ts @@ -1,5 +1,5 @@ import type { RevalidateOpts } from '@supabase-cache-helpers/postgrest-core'; -import type { GenericTable } from '@supabase/postgrest-js/dist/module/types'; +import { GenericTable } from '@supabase/postgrest-js/dist/cjs/types'; import { REALTIME_LISTEN_TYPES, REALTIME_POSTGRES_CHANGES_LISTEN_EVENT, diff --git a/packages/postgrest-swr/__tests__/cache/use-mutate-item.spec.tsx b/packages/postgrest-swr/tests/cache/use-mutate-item.spec.tsx similarity index 97% rename from packages/postgrest-swr/__tests__/cache/use-mutate-item.spec.tsx rename to packages/postgrest-swr/tests/cache/use-mutate-item.spec.tsx index 5f3ff591..38653315 100644 --- a/packages/postgrest-swr/__tests__/cache/use-mutate-item.spec.tsx +++ b/packages/postgrest-swr/tests/cache/use-mutate-item.spec.tsx @@ -1,6 +1,6 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; -import React from 'react'; +import { beforeAll, beforeEach, describe, it } from 'vitest'; import { useMutateItem, useQuery } from '../../src'; import type { Database } from '../database.types'; diff --git a/packages/postgrest-swr/__tests__/database.types.ts b/packages/postgrest-swr/tests/database.types.ts similarity index 100% rename from packages/postgrest-swr/__tests__/database.types.ts rename to packages/postgrest-swr/tests/database.types.ts diff --git a/packages/postgrest-swr/__tests__/lib/get-mutable-keys.spec.ts b/packages/postgrest-swr/tests/lib/get-mutable-keys.spec.ts similarity index 96% rename from packages/postgrest-swr/__tests__/lib/get-mutable-keys.spec.ts rename to packages/postgrest-swr/tests/lib/get-mutable-keys.spec.ts index 820d66bf..d077cdb3 100644 --- a/packages/postgrest-swr/__tests__/lib/get-mutable-keys.spec.ts +++ b/packages/postgrest-swr/tests/lib/get-mutable-keys.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { getMutableKeys } from '../../src/lib/mutable-keys'; describe('getMutableKeys', () => { diff --git a/packages/postgrest-swr/__tests__/mutate/use-delete-many-mutation.spec.tsx b/packages/postgrest-swr/tests/mutate/use-delete-many-mutation.spec.tsx similarity index 97% rename from packages/postgrest-swr/__tests__/mutate/use-delete-many-mutation.spec.tsx rename to packages/postgrest-swr/tests/mutate/use-delete-many-mutation.spec.tsx index 35358a88..99f2a661 100644 --- a/packages/postgrest-swr/__tests__/mutate/use-delete-many-mutation.spec.tsx +++ b/packages/postgrest-swr/tests/mutate/use-delete-many-mutation.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, it } from 'vitest'; import { useDeleteManyMutation, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -59,6 +60,8 @@ describe('useDeleteManyMutation', () => { multiPksResult as Database['public']['Tables']['multi_pk']['Row'][]; }); + afterEach(cleanup); + it('should delete existing cache item and reduce count', async () => { function Page() { const [success, setSuccess] = useState(false); diff --git a/packages/postgrest-swr/__tests__/mutate/use-delete-mutation.integration.spec.tsx b/packages/postgrest-swr/tests/mutate/use-delete-mutation.integration.spec.tsx similarity index 97% rename from packages/postgrest-swr/__tests__/mutate/use-delete-mutation.integration.spec.tsx rename to packages/postgrest-swr/tests/mutate/use-delete-mutation.integration.spec.tsx index abbc8eda..bf56a217 100644 --- a/packages/postgrest-swr/__tests__/mutate/use-delete-mutation.integration.spec.tsx +++ b/packages/postgrest-swr/tests/mutate/use-delete-mutation.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, it } from 'vitest'; import { useDeleteMutation, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -59,6 +60,8 @@ describe('useDeleteMutation', () => { multiPksResult as Database['public']['Tables']['multi_pk']['Row'][]; }); + afterEach(cleanup); + it('should delete existing cache item and reduce count', async () => { function Page() { const [success, setSuccess] = useState(false); diff --git a/packages/postgrest-swr/__tests__/mutate/use-insert-mutation.integration.spec.tsx b/packages/postgrest-swr/tests/mutate/use-insert-mutation.integration.spec.tsx similarity index 92% rename from packages/postgrest-swr/__tests__/mutate/use-insert-mutation.integration.spec.tsx rename to packages/postgrest-swr/tests/mutate/use-insert-mutation.integration.spec.tsx index f215023a..f73d9bc1 100644 --- a/packages/postgrest-swr/__tests__/mutate/use-insert-mutation.integration.spec.tsx +++ b/packages/postgrest-swr/tests/mutate/use-insert-mutation.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useInsertMutation, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -26,6 +27,8 @@ describe('useInsertMutation', () => { provider = new Map(); }); + afterEach(cleanup); + it('should insert into existing cache item with alias', async () => { const USERNAME_1 = `${testRunPrefix}-1`; const USERNAME_2 = `${testRunPrefix}-2`; diff --git a/packages/postgrest-swr/__tests__/mutate/use-update-mutation.integration.spec.tsx b/packages/postgrest-swr/tests/mutate/use-update-mutation.integration.spec.tsx similarity index 98% rename from packages/postgrest-swr/__tests__/mutate/use-update-mutation.integration.spec.tsx rename to packages/postgrest-swr/tests/mutate/use-update-mutation.integration.spec.tsx index 04885716..d3881d7a 100644 --- a/packages/postgrest-swr/__tests__/mutate/use-update-mutation.integration.spec.tsx +++ b/packages/postgrest-swr/tests/mutate/use-update-mutation.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useEffect, useRef, useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useEffect, useRef, useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useInsertMutation, useQuery, useUpdateMutation } from '../../src'; import type { Database } from '../database.types'; @@ -30,6 +31,8 @@ describe('useUpdateMutation', () => { provider = new Map(); }); + afterEach(cleanup); + it('should update existing cache item with serial primary key', async () => { const VALUE_1 = `${testRunPrefix}-1`; const VALUE_2 = `${testRunPrefix}-2`; diff --git a/packages/postgrest-swr/__tests__/mutate/use-upsert-mutation.integration.spec.tsx b/packages/postgrest-swr/tests/mutate/use-upsert-mutation.integration.spec.tsx similarity index 95% rename from packages/postgrest-swr/__tests__/mutate/use-upsert-mutation.integration.spec.tsx rename to packages/postgrest-swr/tests/mutate/use-upsert-mutation.integration.spec.tsx index 449eb0b4..5b9911fb 100644 --- a/packages/postgrest-swr/__tests__/mutate/use-upsert-mutation.integration.spec.tsx +++ b/packages/postgrest-swr/tests/mutate/use-upsert-mutation.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useQuery, useUpsertMutation } from '../../src'; import type { Database } from '../database.types'; @@ -15,7 +16,7 @@ describe('useUpsertMutation', () => { let testRunPrefix: string; beforeAll(async () => { - testRunId = Math.floor(Math.random() * 100); + testRunId = Math.floor(Math.random() * 10000); testRunPrefix = `${TEST_PREFIX}-${testRunId}`; client = createClient( process.env.SUPABASE_URL as string, @@ -36,6 +37,8 @@ describe('useUpsertMutation', () => { provider = new Map(); }); + afterEach(cleanup); + it('should upsert into existing cache item', async () => { const USERNAME_1 = `${testRunPrefix}-2`; const USERNAME_2 = `${testRunPrefix}-3`; diff --git a/packages/postgrest-swr/__tests__/query/prefetch.integration.spec.ts b/packages/postgrest-swr/tests/query/prefetch.integration.spec.ts similarity index 95% rename from packages/postgrest-swr/__tests__/query/prefetch.integration.spec.ts rename to packages/postgrest-swr/tests/query/prefetch.integration.spec.ts index 094aca85..ff1a73a2 100644 --- a/packages/postgrest-swr/__tests__/query/prefetch.integration.spec.ts +++ b/packages/postgrest-swr/tests/query/prefetch.integration.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { beforeAll, describe, expect, it } from 'vitest'; import { fetchQueryFallbackData } from '../../src'; import type { Database } from '../database.types'; @@ -12,7 +13,7 @@ describe('prefetch', () => { let contacts: Database['public']['Tables']['contact']['Row'][]; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, diff --git a/packages/postgrest-swr/__tests__/query/use-cursor-infinite-scroll-query.spec.tsx b/packages/postgrest-swr/tests/query/use-cursor-infinite-scroll-query.spec.tsx similarity index 86% rename from packages/postgrest-swr/__tests__/query/use-cursor-infinite-scroll-query.spec.tsx rename to packages/postgrest-swr/tests/query/use-cursor-infinite-scroll-query.spec.tsx index c2741424..4f130112 100644 --- a/packages/postgrest-swr/__tests__/query/use-cursor-infinite-scroll-query.spec.tsx +++ b/packages/postgrest-swr/tests/query/use-cursor-infinite-scroll-query.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useCursorInfiniteScrollQuery } from '../../src'; import type { Database } from '../database.types'; @@ -8,7 +9,7 @@ import { renderWithConfig } from '../utils'; const TEST_PREFIX = 'postgrest-swr-infinite-scroll'; -describe('useCursorInfiniteScrollQuery', () => { +describe('useCursorInfiniteScrollQuery', { timeout: 20000 }, () => { let client: SupabaseClient; let provider: Map; let testRunPrefix: string; @@ -69,6 +70,8 @@ describe('useCursorInfiniteScrollQuery', () => { provider = new Map(); }); + afterEach(() => cleanup()); + it('should load correctly ascending', async () => { function Page() { const { data, loadMore, isValidating, error } = @@ -90,7 +93,7 @@ describe('useCursorInfiniteScrollQuery', () => { )}
{(data ?? []).map((p) => ( -
{p.username}
+
{`username: ${p.username}`}
))}
@@ -99,7 +102,7 @@ describe('useCursorInfiniteScrollQuery', () => { renderWithConfig(, { provider: () => provider }); await screen.findByText( - `${testRunPrefix}-username-1`, + `username: ${testRunPrefix}-username-1`, {}, { timeout: 10000 }, ); @@ -110,7 +113,7 @@ describe('useCursorInfiniteScrollQuery', () => { await screen.findByTestId('loadMore', {}, { timeout: 10000 }), ); await screen.findByText( - `${testRunPrefix}-username-2`, + `username: ${testRunPrefix}-username-2`, {}, { timeout: 10000 }, ); @@ -119,7 +122,7 @@ describe('useCursorInfiniteScrollQuery', () => { fireEvent.click(screen.getByTestId('loadMore')); await screen.findByText( - `${testRunPrefix}-username-3`, + `username: ${testRunPrefix}-username-3`, {}, { timeout: 10000 }, ); @@ -148,16 +151,17 @@ describe('useCursorInfiniteScrollQuery', () => { )}
{(data ?? []).map((p) => ( -
{p.username}
+
{`username: ${p.username}`}
))}
); } - renderWithConfig(, { provider: () => provider }); + const screen = renderWithConfig(, { provider: () => provider }); + await screen.findByText( - `${testRunPrefix}-username-4`, + `username: ${testRunPrefix}-username-4`, {}, { timeout: 10000 }, ); @@ -168,7 +172,7 @@ describe('useCursorInfiniteScrollQuery', () => { await screen.findByTestId('loadMore', {}, { timeout: 10000 }), ); await screen.findByText( - `${testRunPrefix}-username-3`, + `username: ${testRunPrefix}-username-3`, {}, { timeout: 10000 }, ); @@ -177,12 +181,14 @@ describe('useCursorInfiniteScrollQuery', () => { fireEvent.click(screen.getByTestId('loadMore')); await screen.findByText( - `${testRunPrefix}-username-2`, + `username: ${testRunPrefix}-username-2`, {}, { timeout: 10000 }, ); expect(list.childElementCount).toEqual(3); + + screen.unmount(); }); it('should stop at lastCursor', async () => { @@ -208,7 +214,7 @@ describe('useCursorInfiniteScrollQuery', () => { )}
{(data ?? []).map((p) => ( -
{p.username}
+
{`username: ${p.username}`}
))}
@@ -217,7 +223,7 @@ describe('useCursorInfiniteScrollQuery', () => { renderWithConfig(, { provider: () => provider }); await screen.findByText( - `${testRunPrefix}-username-1`, + `username: ${testRunPrefix}-username-1`, {}, { timeout: 10000 }, ); @@ -226,7 +232,7 @@ describe('useCursorInfiniteScrollQuery', () => { fireEvent.click(screen.getByTestId('loadMore')); await screen.findByText( - `${testRunPrefix}-username-2`, + `username: ${testRunPrefix}-username-2`, {}, { timeout: 10000 }, ); @@ -255,7 +261,7 @@ describe('useCursorInfiniteScrollQuery', () => {
setCondition(true)} />
- {(data ?? [])[0]?.username ?? 'undefined'} + {`username: ${(data ?? [])[0]?.username ?? 'undefined'}`}
{`isLoading: ${isLoading}`}
@@ -264,10 +270,10 @@ describe('useCursorInfiniteScrollQuery', () => { renderWithConfig(, { provider: () => provider }); await screen.findByText('isLoading: false', {}, { timeout: 10000 }); - await screen.findByText('undefined', {}, { timeout: 10000 }); + await screen.findByText('username: undefined', {}, { timeout: 10000 }); fireEvent.click(screen.getByTestId('setCondition')); await screen.findByText( - `${testRunPrefix}-username-1`, + `username: ${testRunPrefix}-username-1`, {}, { timeout: 10000 }, ); @@ -296,7 +302,7 @@ describe('useCursorInfiniteScrollQuery', () => {
{`isValidating: ${isValidating}`}
{(data ?? []).map((p) => ( -
{p.username}
+
{`username: ${p.username}`}
))}
@@ -307,12 +313,12 @@ describe('useCursorInfiniteScrollQuery', () => { const list = screen.getByTestId('list'); await screen.findByText( - `${testRunPrefix}-username-1`, + `username: ${testRunPrefix}-username-1`, {}, { timeout: 10000 }, ); await screen.findByText( - `${testRunPrefix}-username-2`, + `username: ${testRunPrefix}-username-2`, {}, { timeout: 10000 }, ); @@ -320,12 +326,12 @@ describe('useCursorInfiniteScrollQuery', () => { fireEvent.click(screen.getByTestId('loadMore')); await screen.findByText( - `${testRunPrefix}-username-3`, + `username: ${testRunPrefix}-username-3`, {}, { timeout: 10000 }, ); await screen.findByText( - `${testRunPrefix}-username-4`, + `username: ${testRunPrefix}-username-4`, {}, { timeout: 10000 }, ); @@ -365,7 +371,7 @@ describe('useCursorInfiniteScrollQuery', () => {
{`isValidating: ${isValidating}`}
{(data ?? []).map((p) => ( -
{p.username}
+
{`username: ${p.username}`}
))}
@@ -376,12 +382,12 @@ describe('useCursorInfiniteScrollQuery', () => { const list = screen.getByTestId('list'); await screen.findByText( - `${testRunPrefix}-username-4`, + `username: ${testRunPrefix}-username-4`, {}, { timeout: 10000 }, ); await screen.findByText( - `${testRunPrefix}-username-3`, + `username: ${testRunPrefix}-username-3`, {}, { timeout: 10000 }, ); @@ -389,12 +395,12 @@ describe('useCursorInfiniteScrollQuery', () => { fireEvent.click(screen.getByTestId('loadMore')); await screen.findByText( - `${testRunPrefix}-username-2`, + `username: ${testRunPrefix}-username-2`, {}, { timeout: 10000 }, ); await screen.findByText( - `${testRunPrefix}-username-1`, + `username: ${testRunPrefix}-username-1`, {}, { timeout: 10000 }, ); @@ -434,7 +440,7 @@ describe('useCursorInfiniteScrollQuery', () => { )}
{(data ?? []).map((p) => ( -
{p.username}
+
{`username: ${p.username}`}
))}
@@ -443,7 +449,7 @@ describe('useCursorInfiniteScrollQuery', () => { renderWithConfig(, { provider: () => provider }); await screen.findByText( - `${testRunPrefix}-username-1`, + `username: ${testRunPrefix}-username-1`, {}, { timeout: 10000 }, ); @@ -452,7 +458,7 @@ describe('useCursorInfiniteScrollQuery', () => { fireEvent.click(screen.getByTestId('loadMore')); await screen.findByText( - `${testRunPrefix}-username-2`, + `username: ${testRunPrefix}-username-2`, {}, { timeout: 10000 }, ); diff --git a/packages/postgrest-swr/__tests__/query/use-offset-infinite-query.integration.spec.tsx b/packages/postgrest-swr/tests/query/use-offset-infinite-query.integration.spec.tsx similarity index 89% rename from packages/postgrest-swr/__tests__/query/use-offset-infinite-query.integration.spec.tsx rename to packages/postgrest-swr/tests/query/use-offset-infinite-query.integration.spec.tsx index 0b82c61b..602668f8 100644 --- a/packages/postgrest-swr/__tests__/query/use-offset-infinite-query.integration.spec.tsx +++ b/packages/postgrest-swr/tests/query/use-offset-infinite-query.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { useState } from 'react'; +import { beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { fetchOffsetPaginationFallbackData, @@ -11,14 +12,14 @@ import { renderWithConfig } from '../utils'; const TEST_PREFIX = 'postgrest-swr-infinite'; -describe('useOffsetInfiniteQuery', () => { +describe('useOffsetInfiniteQuery', { timeout: 20000 }, () => { let client: SupabaseClient; let provider: Map; let testRunPrefix: string; let contacts: Database['public']['Tables']['contact']['Row'][]; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, @@ -116,7 +117,7 @@ describe('useOffsetInfiniteQuery', () => {
{(data ?? []).flat().map((p) => ( -
{p.username}
+
{`username: ${p.username}`}
))}
{size}
@@ -124,8 +125,12 @@ describe('useOffsetInfiniteQuery', () => { ); } - renderWithConfig(, { provider: () => provider }); + const screen = renderWithConfig(, { provider: () => provider }); - await screen.findByText(contacts[0].username!, {}, { timeout: 10000 }); + await screen.findByText( + `username: ${contacts[0].username!}`, + {}, + { timeout: 10000 }, + ); }); }); diff --git a/packages/postgrest-swr/__tests__/query/use-offset-infinite-scroll-query.integration.spec.tsx b/packages/postgrest-swr/tests/query/use-offset-infinite-scroll-query.integration.spec.tsx similarity index 94% rename from packages/postgrest-swr/__tests__/query/use-offset-infinite-scroll-query.integration.spec.tsx rename to packages/postgrest-swr/tests/query/use-offset-infinite-scroll-query.integration.spec.tsx index 63b5e528..7b530caf 100644 --- a/packages/postgrest-swr/__tests__/query/use-offset-infinite-scroll-query.integration.spec.tsx +++ b/packages/postgrest-swr/tests/query/use-offset-infinite-scroll-query.integration.spec.tsx @@ -1,7 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useEffect, useState } from 'react'; -import { useSWRConfig } from 'swr'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { fetchOffsetPaginationHasMoreFallbackData, @@ -12,14 +12,14 @@ import { renderWithConfig } from '../utils'; const TEST_PREFIX = 'postgrest-swr-infinite-scroll'; -describe('useOffsetInfiniteScrollQuery', () => { +describe('useOffsetInfiniteScrollQuery', { timeout: 20000 }, () => { let client: SupabaseClient; let provider: Map; let testRunPrefix: string; let contacts: Database['public']['Tables']['contact']['Row'][]; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, @@ -44,6 +44,8 @@ describe('useOffsetInfiniteScrollQuery', () => { provider = new Map(); }); + afterEach(cleanup); + it('should load correctly', async () => { function Page() { const { data, loadMore, isValidating, error } = diff --git a/packages/postgrest-swr/__tests__/query/use-pagination-query.integration.spec.tsx b/packages/postgrest-swr/tests/query/use-pagination-query.integration.spec.tsx similarity index 96% rename from packages/postgrest-swr/__tests__/query/use-pagination-query.integration.spec.tsx rename to packages/postgrest-swr/tests/query/use-pagination-query.integration.spec.tsx index 82523c6b..df33bc8f 100644 --- a/packages/postgrest-swr/__tests__/query/use-pagination-query.integration.spec.tsx +++ b/packages/postgrest-swr/tests/query/use-pagination-query.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { fetchOffsetPaginationHasMoreFallbackData, @@ -12,14 +13,14 @@ import { renderWithConfig } from '../utils'; const TEST_PREFIX = 'postgrest-swr-pagination'; -describe('useInfiniteOffsetPaginationQuery', () => { +describe('useInfiniteOffsetPaginationQuery', { timeout: 20000 }, () => { let client: SupabaseClient; let provider: Map; let testRunPrefix: string; let contacts: Database['public']['Tables']['contact']['Row'][]; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, @@ -44,6 +45,8 @@ describe('useInfiniteOffsetPaginationQuery', () => { provider = new Map(); }); + afterEach(cleanup); + it('should paginate correctly', async () => { function Page() { const { currentPage, nextPage, previousPage, setPage, pages, pageIndex } = diff --git a/packages/postgrest-swr/__tests__/query/use-query.integration.spec.tsx b/packages/postgrest-swr/tests/query/use-query.integration.spec.tsx similarity index 85% rename from packages/postgrest-swr/__tests__/query/use-query.integration.spec.tsx rename to packages/postgrest-swr/tests/query/use-query.integration.spec.tsx index 4ae12941..498de298 100755 --- a/packages/postgrest-swr/__tests__/query/use-query.integration.spec.tsx +++ b/packages/postgrest-swr/tests/query/use-query.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { fireEvent, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import { cleanup, fireEvent, screen } from '@testing-library/react'; +import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { fetchQueryFallbackData, useQuery } from '../../src'; import type { Database } from '../database.types'; @@ -15,7 +16,7 @@ describe('useQuery', () => { let contacts: Database['public']['Tables']['contact']['Row'][]; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, @@ -39,6 +40,8 @@ describe('useQuery', () => { provider = new Map(); }); + afterEach(cleanup); + it('should work for single', async () => { function Page() { const { data } = useQuery( @@ -104,7 +107,7 @@ describe('useQuery', () => { ?.username }
-
{count}
+
{`count: ${count}`}
); } @@ -115,13 +118,13 @@ describe('useQuery', () => { {}, { timeout: 10000 }, ); - expect(screen.getByTestId('count').textContent).toEqual('4'); + await screen.findByText(`count: 4`, {}, { timeout: 10000 }); expect( Array.from(provider.keys()).find((k) => k.startsWith('postgrest')), ).toBeDefined(); }); - it('should work for with conditional query', async () => { + it('should work for with conditional query', { timeout: 20000 }, async () => { function Page() { const [condition, setCondition] = useState(false); const { data, isLoading } = useQuery( @@ -138,18 +141,18 @@ describe('useQuery', () => { return (
setCondition(true)} /> -
{data?.username ?? 'undefined'}
+
{`conditional: ${data?.username ?? 'undefined'}`}
{`isLoading: ${isLoading}`}
); } - renderWithConfig(, { provider: () => provider }); - await screen.findByText('isLoading: false', {}, { timeout: 10000 }); - await screen.findByText('undefined', {}, { timeout: 10000 }); + const screen = renderWithConfig(, { provider: () => provider }); + await screen.findByText('isLoading: false', {}, { timeout: 5000 }); + await screen.findByText('conditional: undefined', {}, { timeout: 5000 }); fireEvent.click(screen.getByTestId('setCondition')); await screen.findByText( - contacts[0].username as string, + `conditional: ${contacts[0].username}`, {}, { timeout: 10000 }, ); @@ -203,11 +206,15 @@ describe('useQuery', () => { fallbackData, }); - return
{data?.username}
; + return
{`fallbackData: ${data?.username}`}
; } - renderWithConfig(, { provider: () => provider }); - await screen.findByText(contacts[0].username!, {}, { timeout: 10000 }); + const screen = renderWithConfig(, { provider: () => provider }); + await screen.findByText( + `fallbackData: ${contacts[0].username!}`, + {}, + { timeout: 10000 }, + ); }); it('should work with global fallbackData', async () => { diff --git a/packages/postgrest-swr/__tests__/subscribe/use-subscription-query.integration.spec.tsx b/packages/postgrest-swr/tests/subscribe/use-subscription-query.integration.spec.tsx similarity index 50% rename from packages/postgrest-swr/__tests__/subscribe/use-subscription-query.integration.spec.tsx rename to packages/postgrest-swr/tests/subscribe/use-subscription-query.integration.spec.tsx index 8cec17fa..b369fbdd 100644 --- a/packages/postgrest-swr/__tests__/subscribe/use-subscription-query.integration.spec.tsx +++ b/packages/postgrest-swr/tests/subscribe/use-subscription-query.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { act, screen } from '@testing-library/react'; +import { act, cleanup, fireEvent, screen } from '@testing-library/react'; import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useQuery, useSubscriptionQuery } from '../../src'; import type { Database } from '../database.types'; @@ -8,13 +9,13 @@ import { renderWithConfig } from '../utils'; const TEST_PREFIX = 'postgrest-swr-subscription-query'; -describe('useSubscriptionQuery', () => { +describe('useSubscriptionQuery', { timeout: 10000 }, () => { let client: SupabaseClient; let provider: Map; let testRunPrefix: string; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, @@ -28,10 +29,19 @@ describe('useSubscriptionQuery', () => { afterEach(async () => { if (client) await client.removeAllChannels(); + cleanup(); }); it('should properly update cache', async () => { const USERNAME_1 = `${testRunPrefix}-1`; + + await client + .from('contact') + .insert({ username: USERNAME_1, ticket_number: 1 }) + .select('*') + .throwOnError() + .single(); + function Page() { const { data, count } = useQuery( client @@ -68,63 +78,65 @@ describe('useSubscriptionQuery', () => { }, ); + const ticketNumber = Array.isArray(data) ? data[0]?.ticket_number : null; + const hasLowTicketNumber = Array.isArray(data) + ? data[0]?.has_low_ticket_number + : null; + return (
- {(data ?? []).map((d) => ( - {`ticket_number: ${d.ticket_number} | has_low_ticket_number: ${d.has_low_ticket_number}`} - ))} + {`ticket_number: ${ticketNumber} | has_low_ticket_number: ${hasLowTicketNumber}`} {`count: ${count}`} {status} {`cbCalled: ${cbCalled}`} +
+ await client + .from('contact') + .update({ ticket_number: 1000 }) + .eq('username', USERNAME_1) + .throwOnError() + } + /> +
+ await client + .from('contact') + .delete() + .eq('username', USERNAME_1) + .throwOnError() + } + />
); } - const { unmount } = renderWithConfig(, { + renderWithConfig(, { provider: () => provider, }); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); - await new Promise((resolve) => setTimeout(resolve, 2000)); - await act(async () => { - await client - .from('contact') - .insert({ username: USERNAME_1, ticket_number: 1 }) - .select('*') - .throwOnError() - .single(); - }); - await screen.findByText( - 'ticket_number: 1 | has_low_ticket_number: true', - {}, - { timeout: 10000 }, - ); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await act(async () => { - await client - .from('contact') - .update({ ticket_number: 1000 }) - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText( - 'ticket_number: 1000 | has_low_ticket_number: false', - {}, - { timeout: 10000 }, - ); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); - await act(async () => { - await client - .from('contact') - .delete() - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 0'); - unmount(); + if (!process.env.CI) { + await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); + await screen.findByText( + 'ticket_number: 1 | has_low_ticket_number: true', + {}, + { timeout: 10000 }, + ); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + fireEvent.click(screen.getByTestId('update')); + await screen.findByText( + 'ticket_number: 1000 | has_low_ticket_number: false', + {}, + { timeout: 10000 }, + ); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + fireEvent.click(screen.getByTestId('delete')); + await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); + await screen.findByText('count: 0', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 0'); + } }); }); diff --git a/packages/postgrest-swr/__tests__/subscribe/use-subscription.integration.spec.tsx b/packages/postgrest-swr/tests/subscribe/use-subscription.integration.spec.tsx similarity index 59% rename from packages/postgrest-swr/__tests__/subscribe/use-subscription.integration.spec.tsx rename to packages/postgrest-swr/tests/subscribe/use-subscription.integration.spec.tsx index 724ea5d3..91e5461d 100644 --- a/packages/postgrest-swr/__tests__/subscribe/use-subscription.integration.spec.tsx +++ b/packages/postgrest-swr/tests/subscribe/use-subscription.integration.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; -import { act, screen } from '@testing-library/react'; +import { act, cleanup, screen } from '@testing-library/react'; import { useState } from 'react'; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useQuery, useSubscription } from '../../src'; import type { Database } from '../database.types'; @@ -8,13 +9,13 @@ import { renderWithConfig } from '../utils'; const TEST_PREFIX = 'postgrest-swr-subscription-plain'; -describe('useSubscription', () => { +describe('useSubscription', { timeout: 20000 }, () => { let client: SupabaseClient; let provider: Map; let testRunPrefix: string; beforeAll(async () => { - testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 100)}`; + testRunPrefix = `${TEST_PREFIX}-${Math.floor(Math.random() * 1000)}`; client = createClient( process.env.SUPABASE_URL as string, process.env.SUPABASE_ANON_KEY as string, @@ -28,10 +29,19 @@ describe('useSubscription', () => { afterEach(async () => { if (client) await client.removeAllChannels(); + cleanup(); }); it('should properly update cache', async () => { const USERNAME_1 = `${testRunPrefix}-1`; + + await client + .from('contact') + .insert({ username: USERNAME_1, ticket_number: 1 }) + .select('id') + .throwOnError() + .single(); + function Page() { const { data, count } = useQuery( client @@ -67,40 +77,32 @@ describe('useSubscription', () => { ); } - const { unmount } = renderWithConfig(, { + renderWithConfig(, { provider: () => provider, }); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); - await act(async () => { - await client - .from('contact') - .insert({ username: USERNAME_1, ticket_number: 1 }) - .select('id') - .throwOnError() - .single(); - }); - await screen.findByText('ticket_number: 1', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await act(async () => { - await client - .from('contact') - .update({ ticket_number: 5 }) - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText('ticket_number: 5', {}, { timeout: 20000 }); - await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 1'); - await act(async () => { - await client - .from('contact') - .delete() - .eq('username', USERNAME_1) - .throwOnError(); - }); - await screen.findByText('count: 0', {}, { timeout: 10000 }); - expect(screen.getByTestId('count').textContent).toEqual('count: 0'); - unmount(); + if (!process.env.CI) { + await screen.findByText('SUBSCRIBED', {}, { timeout: 10000 }); + await screen.findByText('ticket_number: 1', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + await act(async () => { + await client + .from('contact') + .update({ ticket_number: 5 }) + .eq('username', USERNAME_1) + .throwOnError(); + }); + await screen.findByText('ticket_number: 5', {}, { timeout: 20000 }); + await screen.findByText('cbCalled: true', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 1'); + await act(async () => { + await client + .from('contact') + .delete() + .eq('username', USERNAME_1) + .throwOnError(); + }); + await screen.findByText('count: 0', {}, { timeout: 10000 }); + expect(screen.getByTestId('count').textContent).toEqual('count: 0'); + } }); }); diff --git a/packages/postgrest-swr/__tests__/utils.tsx b/packages/postgrest-swr/tests/utils.tsx similarity index 100% rename from packages/postgrest-swr/__tests__/utils.tsx rename to packages/postgrest-swr/tests/utils.tsx diff --git a/packages/postgrest-swr/tsconfig.json b/packages/postgrest-swr/tsconfig.json index 49b41196..f3456f26 100644 --- a/packages/postgrest-swr/tsconfig.json +++ b/packages/postgrest-swr/tsconfig.json @@ -1,5 +1,5 @@ { "extends": "@supabase-cache-helpers/tsconfig/react-library.json", - "include": ["**/*.ts"], + "include": ["**/*.ts", "**/*.tsx"], "exclude": ["node_modules"] } diff --git a/packages/postgrest-swr/vitest.config.ts b/packages/postgrest-swr/vitest.config.ts new file mode 100644 index 00000000..3c17bf67 --- /dev/null +++ b/packages/postgrest-swr/vitest.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + typecheck: { enabled: true }, + environment: 'happy-dom', + coverage: { + provider: 'istanbul', + }, + }, +}); diff --git a/packages/storage-core/package.json b/packages/storage-core/package.json index 934c09f7..08261550 100644 --- a/packages/storage-core/package.json +++ b/packages/storage-core/package.json @@ -1,13 +1,14 @@ { "name": "@supabase-cache-helpers/storage-core", "version": "0.0.4", + "type": "module", "main": "./dist/index.js", "source": "./src/index.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./package.json": "./package.json" }, @@ -25,23 +26,19 @@ "license": "MIT", "scripts": { "build": "tsup", - "test": "jest --coverage", - "clean": "rm -rf .turbo && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", + "test": "vitest --coverage", + "clean": "rm -rf .turbo && rm -rf coverage && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", "typecheck": "tsc --pretty --noEmit" }, - "jest": { - "preset": "@supabase-cache-helpers/jest-presets/jest/node" - }, "devDependencies": { - "@supabase/storage-js": "2.5.5", - "@supabase/supabase-js": "2.38.5", - "@types/jest": "29.5.0", - "dotenv": "16.4.0", - "jest": "29.7.0", - "@supabase-cache-helpers/jest-presets": "workspace:*", - "ts-jest": "29.1.0", "@supabase-cache-helpers/tsconfig": "workspace:*", + "@supabase/storage-js": "2.6.0", + "happy-dom": "14.12.3", + "@supabase/supabase-js": "2.44.3", + "@vitest/coverage-istanbul": "^2.0.2", + "dotenv": "16.4.0", "tsup": "8.0.0", - "typescript": "5.4.2" + "typescript": "5.4.2", + "vitest": "^2.0.2" } } diff --git a/packages/storage-core/__tests__/__fixtures__/1.jpg b/packages/storage-core/tests/__fixtures__/1.jpg similarity index 100% rename from packages/storage-core/__tests__/__fixtures__/1.jpg rename to packages/storage-core/tests/__fixtures__/1.jpg diff --git a/packages/storage-core/__tests__/__fixtures__/2.jpg b/packages/storage-core/tests/__fixtures__/2.jpg similarity index 100% rename from packages/storage-core/__tests__/__fixtures__/2.jpg rename to packages/storage-core/tests/__fixtures__/2.jpg diff --git a/packages/storage-core/__tests__/__fixtures__/3.jpg b/packages/storage-core/tests/__fixtures__/3.jpg similarity index 100% rename from packages/storage-core/__tests__/__fixtures__/3.jpg rename to packages/storage-core/tests/__fixtures__/3.jpg diff --git a/packages/storage-core/__tests__/__fixtures__/4.jpg b/packages/storage-core/tests/__fixtures__/4.jpg similarity index 100% rename from packages/storage-core/__tests__/__fixtures__/4.jpg rename to packages/storage-core/tests/__fixtures__/4.jpg diff --git a/packages/storage-core/__tests__/directory-fetcher.spec.ts b/packages/storage-core/tests/directory-fetcher.spec.ts similarity index 90% rename from packages/storage-core/__tests__/directory-fetcher.spec.ts rename to packages/storage-core/tests/directory-fetcher.spec.ts index 6edd2077..8d8422a6 100644 --- a/packages/storage-core/__tests__/directory-fetcher.spec.ts +++ b/packages/storage-core/tests/directory-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { fetchDirectory } from '../src/directory-fetcher'; import { cleanup, upload } from './utils'; @@ -28,7 +29,7 @@ describe('fetchDirectory', () => { it('should bubble up error', async () => { expect.assertions(1); const mock = { - list: jest.fn().mockImplementationOnce(() => { + list: vi.fn().mockImplementationOnce(() => { return { error: { name: 'StorageError', message: 'Unknown Error' } }; }), }; @@ -41,7 +42,7 @@ describe('fetchDirectory', () => { it('should return empty array if null is returned', async () => { const mock = { - list: jest.fn().mockImplementationOnce(() => { + list: vi.fn().mockImplementationOnce(() => { return { data: null }; }), }; diff --git a/packages/storage-core/__tests__/directory-urls-fetcher.spec.ts b/packages/storage-core/tests/directory-urls-fetcher.spec.ts similarity index 97% rename from packages/storage-core/__tests__/directory-urls-fetcher.spec.ts rename to packages/storage-core/tests/directory-urls-fetcher.spec.ts index fbdaa8ae..9db939a7 100644 --- a/packages/storage-core/__tests__/directory-urls-fetcher.spec.ts +++ b/packages/storage-core/tests/directory-urls-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { afterAll, beforeAll, describe, expect, it } from 'vitest'; import { createDirectoryUrlsFetcher } from '../src/directory-urls-fetcher'; import { cleanup, upload } from './utils'; diff --git a/packages/storage-core/__tests__/index.spec.ts b/packages/storage-core/tests/index.spec.ts similarity index 77% rename from packages/storage-core/__tests__/index.spec.ts rename to packages/storage-core/tests/index.spec.ts index 423b78a8..819126fc 100644 --- a/packages/storage-core/__tests__/index.spec.ts +++ b/packages/storage-core/tests/index.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import * as Import from '../src'; describe('index exports', () => { diff --git a/packages/storage-core/__tests__/mutate-paths.spec.ts b/packages/storage-core/tests/mutate-paths.spec.ts similarity index 90% rename from packages/storage-core/__tests__/mutate-paths.spec.ts rename to packages/storage-core/tests/mutate-paths.spec.ts index 025cebac..21bfdabf 100644 --- a/packages/storage-core/__tests__/mutate-paths.spec.ts +++ b/packages/storage-core/tests/mutate-paths.spec.ts @@ -1,8 +1,9 @@ +import { describe, expect, it, vi } from 'vitest'; import { mutatePaths } from '../src/mutate-paths'; describe('mutatePaths', () => { it('should call mutate for correct keys', async () => { - const mutateMock = jest.fn(); + const mutateMock = vi.fn(); await mutatePaths('bucket', ['one/two', 'two/three', 'one'], { cacheKeys: ['one/two/three', 'one/three/two', 'two/one', 'four'], decode: (k) => ({ bucketId: 'bucket', path: k }), @@ -14,7 +15,7 @@ describe('mutatePaths', () => { }); it('should call mutate for correct keys 2', async () => { - const mutateMock = jest.fn(); + const mutateMock = vi.fn(); await mutatePaths('bucket', ['one/two/three'], { cacheKeys: ['one/two/three', 'one/three/two', 'two/one', 'one/two'], decode: (k) => ({ bucketId: 'bucket', path: k }), @@ -26,7 +27,7 @@ describe('mutatePaths', () => { }); it('should exit early if paths is empty', async () => { - const mutateMock = jest.fn(); + const mutateMock = vi.fn(); await mutatePaths('bucket', [], { cacheKeys: ['one/two/three', 'one/three/two', 'two/one', 'four'], decode: (k) => ({ bucketId: 'bucket', path: k }), @@ -35,7 +36,7 @@ describe('mutatePaths', () => { expect(mutateMock).toHaveBeenCalledTimes(0); }); it('should not mutate items from another bucket', async () => { - const mutateMock = jest.fn(); + const mutateMock = vi.fn(); await mutatePaths('bucket', ['one/two', 'two/three', 'one'], { cacheKeys: ['one/two/three', 'one/three/two', 'two/one', 'four'], decode: (k) => ({ bucketId: 'another-bucket', path: k }), @@ -44,7 +45,7 @@ describe('mutatePaths', () => { expect(mutateMock).toHaveBeenCalledTimes(0); }); it('should not mutate non-storage items', async () => { - const mutateMock = jest.fn(); + const mutateMock = vi.fn(); await mutatePaths('bucket', ['one/two', 'two/three', 'one'], { cacheKeys: ['one/two/three', 'one/three/two', 'two/one', 'four'], decode: (k) => null, diff --git a/packages/storage-core/__tests__/remove-directory.spec.ts b/packages/storage-core/tests/remove-directory.spec.ts similarity index 91% rename from packages/storage-core/__tests__/remove-directory.spec.ts rename to packages/storage-core/tests/remove-directory.spec.ts index 1f08b939..0f403ac7 100644 --- a/packages/storage-core/__tests__/remove-directory.spec.ts +++ b/packages/storage-core/tests/remove-directory.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { fetchDirectory } from '../src/directory-fetcher'; import { createRemoveDirectoryFetcher } from '../src/remove-directory'; @@ -29,10 +30,10 @@ describe('createRemoveDirectoryFetcher', () => { it('should bubble up error', async () => { expect.assertions(1); const mock = { - remove: jest.fn().mockImplementationOnce(() => { + remove: vi.fn().mockImplementationOnce(() => { return { error: { name: 'StorageError', message: 'Unknown Error' } }; }), - list: jest.fn().mockImplementationOnce(() => { + list: vi.fn().mockImplementationOnce(() => { return { error: { name: 'StorageError', message: 'Unknown Error' } }; }), }; diff --git a/packages/storage-core/__tests__/remove-files.spec.ts b/packages/storage-core/tests/remove-files.spec.ts similarity index 93% rename from packages/storage-core/__tests__/remove-files.spec.ts rename to packages/storage-core/tests/remove-files.spec.ts index 825bc096..37ed6b53 100644 --- a/packages/storage-core/__tests__/remove-files.spec.ts +++ b/packages/storage-core/tests/remove-files.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { fetchDirectory } from '../src/directory-fetcher'; import { createRemoveFilesFetcher } from '../src/remove-files'; @@ -29,7 +30,7 @@ describe('createRemoveFilesFetcher', () => { it('should bubble up error', async () => { expect.assertions(1); const mock = { - remove: jest.fn().mockImplementationOnce(() => { + remove: vi.fn().mockImplementationOnce(() => { return { error: { name: 'StorageError', message: 'Unknown Error' } }; }), }; diff --git a/packages/storage-core/__tests__/upload.spec.ts b/packages/storage-core/tests/upload.spec.ts similarity index 97% rename from packages/storage-core/__tests__/upload.spec.ts rename to packages/storage-core/tests/upload.spec.ts index 2a67cf17..93aab239 100644 --- a/packages/storage-core/__tests__/upload.spec.ts +++ b/packages/storage-core/tests/upload.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { fetchDirectory } from '../src/directory-fetcher'; import { createUploadFetcher } from '../src/upload'; @@ -35,7 +36,7 @@ describe('createUploadFetcher', () => { it('should bubble up error', async () => { expect.assertions(1); const mock = { - upload: jest.fn().mockImplementationOnce(() => { + upload: vi.fn().mockImplementationOnce(() => { return { error: { name: 'StorageError', message: 'Unknown Error' } }; }), }; diff --git a/packages/storage-core/__tests__/url-fetcher.spec.ts b/packages/storage-core/tests/url-fetcher.spec.ts similarity index 96% rename from packages/storage-core/__tests__/url-fetcher.spec.ts rename to packages/storage-core/tests/url-fetcher.spec.ts index 5531b81f..86fd195b 100644 --- a/packages/storage-core/__tests__/url-fetcher.spec.ts +++ b/packages/storage-core/tests/url-fetcher.spec.ts @@ -1,4 +1,5 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { createUrlFetcher } from '../src/url-fetcher'; import { cleanup, upload } from './utils'; @@ -98,7 +99,7 @@ describe('urlFetcher', () => { it('should bubble up error', async () => { expect.assertions(1); const mock = { - createSignedUrl: jest.fn().mockImplementationOnce(() => { + createSignedUrl: vi.fn().mockImplementationOnce(() => { return { error: { name: 'StorageError', message: 'Unknown Error' } }; }), }; diff --git a/packages/storage-core/__tests__/utils.ts b/packages/storage-core/tests/utils.ts similarity index 100% rename from packages/storage-core/__tests__/utils.ts rename to packages/storage-core/tests/utils.ts diff --git a/packages/storage-core/vitest.config.ts b/packages/storage-core/vitest.config.ts new file mode 100644 index 00000000..3c17bf67 --- /dev/null +++ b/packages/storage-core/vitest.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + typecheck: { enabled: true }, + environment: 'happy-dom', + coverage: { + provider: 'istanbul', + }, + }, +}); diff --git a/packages/storage-react-query/package.json b/packages/storage-react-query/package.json index 4c32f7d5..3b9d8b36 100644 --- a/packages/storage-react-query/package.json +++ b/packages/storage-react-query/package.json @@ -6,13 +6,14 @@ "bugs": { "url": "https://github.com/psteinroe/supabase-cache-helpers/issues" }, + "type": "module", "main": "./dist/index.js", "source": "./src/index.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./package.json": "./package.json" }, @@ -24,7 +25,7 @@ "license": "MIT", "scripts": { "build": "tsup", - "test": "jest --coverage", + "test": "vitest --coverage", "clean": "rm -rf .turbo && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", "typecheck": "tsc --pretty --noEmit" }, @@ -35,30 +36,24 @@ "directory": "packages/storage-react-query" }, "peerDependencies": { + "@supabase/storage-js": "^2.4.0", "@tanstack/react-query": "^4.0.0 || ^5.0.0", - "react": "^16.11.0 || ^17.0.0 || ^18.0.0", - "@supabase/storage-js": "^2.4.0" - }, - "jest": { - "preset": "@supabase-cache-helpers/jest-presets/jest/node" + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" }, "devDependencies": { - "@supabase/supabase-js": "2.38.5", - "@supabase/storage-js": "2.5.5", + "@supabase-cache-helpers/tsconfig": "workspace:*", + "@supabase/storage-js": "2.6.0", + "@supabase/supabase-js": "2.44.3", "@testing-library/react": "14.3.0", - "@testing-library/jest-dom": "6.4.0", - "jest-environment-jsdom": "29.7.0", - "@types/jest": "29.5.0", + "@types/react": "18.3.3", "dotenv": "16.4.0", - "jest": "29.7.0", - "@supabase-cache-helpers/jest-presets": "workspace:*", - "ts-jest": "29.1.0", - "@supabase-cache-helpers/tsconfig": "workspace:*", - "tsup": "8.0.0", "react": "18.2.0", - "@types/react": "18.2.0", + "@vitest/coverage-istanbul": "^2.0.2", + "happy-dom": "14.12.3", "react-dom": "18.2.0", - "typescript": "5.4.2" + "tsup": "8.0.0", + "typescript": "5.4.2", + "vitest": "^2.0.2" }, "dependencies": { "@supabase-cache-helpers/storage-core": "workspace:*" diff --git a/packages/storage-react-query/__tests__/__fixtures__/1.jpg b/packages/storage-react-query/tests/__fixtures__/1.jpg similarity index 100% rename from packages/storage-react-query/__tests__/__fixtures__/1.jpg rename to packages/storage-react-query/tests/__fixtures__/1.jpg diff --git a/packages/storage-react-query/__tests__/__fixtures__/2.jpg b/packages/storage-react-query/tests/__fixtures__/2.jpg similarity index 100% rename from packages/storage-react-query/__tests__/__fixtures__/2.jpg rename to packages/storage-react-query/tests/__fixtures__/2.jpg diff --git a/packages/storage-react-query/__tests__/__fixtures__/3.jpg b/packages/storage-react-query/tests/__fixtures__/3.jpg similarity index 100% rename from packages/storage-react-query/__tests__/__fixtures__/3.jpg rename to packages/storage-react-query/tests/__fixtures__/3.jpg diff --git a/packages/storage-react-query/__tests__/__fixtures__/4.jpg b/packages/storage-react-query/tests/__fixtures__/4.jpg similarity index 100% rename from packages/storage-react-query/__tests__/__fixtures__/4.jpg rename to packages/storage-react-query/tests/__fixtures__/4.jpg diff --git a/packages/storage-react-query/__tests__/lib/decode.spec.ts b/packages/storage-react-query/tests/lib/decode.spec.ts similarity index 80% rename from packages/storage-react-query/__tests__/lib/decode.spec.ts rename to packages/storage-react-query/tests/lib/decode.spec.ts index 9f18c385..c6f53f1e 100644 --- a/packages/storage-react-query/__tests__/lib/decode.spec.ts +++ b/packages/storage-react-query/tests/lib/decode.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { decode } from '../../src'; describe('decode', () => { diff --git a/packages/storage-react-query/__tests__/lib/key.spec.ts b/packages/storage-react-query/tests/lib/key.spec.ts similarity index 86% rename from packages/storage-react-query/__tests__/lib/key.spec.ts rename to packages/storage-react-query/tests/lib/key.spec.ts index 898d28d2..789d658d 100644 --- a/packages/storage-react-query/__tests__/lib/key.spec.ts +++ b/packages/storage-react-query/tests/lib/key.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { assertStorageKeyInput } from '../../src/lib'; describe('key', () => { diff --git a/packages/storage-react-query/__tests__/mutate/use-remove-directory.spec.tsx b/packages/storage-react-query/tests/mutate/use-remove-directory.spec.tsx similarity index 96% rename from packages/storage-react-query/__tests__/mutate/use-remove-directory.spec.tsx rename to packages/storage-react-query/tests/mutate/use-remove-directory.spec.tsx index 94c58bfd..2125c047 100644 --- a/packages/storage-react-query/__tests__/mutate/use-remove-directory.spec.tsx +++ b/packages/storage-react-query/tests/mutate/use-remove-directory.spec.tsx @@ -1,6 +1,7 @@ import { fetchDirectory } from '@supabase-cache-helpers/storage-core'; import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; +import { beforeAll, describe, expect, it } from 'vitest'; import { useDirectory, useRemoveDirectory } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; diff --git a/packages/storage-react-query/__tests__/mutate/use-remove-files.spec.tsx b/packages/storage-react-query/tests/mutate/use-remove-files.spec.tsx similarity index 96% rename from packages/storage-react-query/__tests__/mutate/use-remove-files.spec.tsx rename to packages/storage-react-query/tests/mutate/use-remove-files.spec.tsx index eeacaa1e..e6b6872a 100644 --- a/packages/storage-react-query/__tests__/mutate/use-remove-files.spec.tsx +++ b/packages/storage-react-query/tests/mutate/use-remove-files.spec.tsx @@ -1,6 +1,7 @@ import { fetchDirectory } from '@supabase-cache-helpers/storage-core'; import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; +import { beforeAll, describe, expect, it } from 'vitest'; import { useDirectory, useRemoveFiles } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; diff --git a/packages/storage-react-query/__tests__/mutate/use-upload.spec.tsx b/packages/storage-react-query/tests/mutate/use-upload.spec.tsx similarity index 97% rename from packages/storage-react-query/__tests__/mutate/use-upload.spec.tsx rename to packages/storage-react-query/tests/mutate/use-upload.spec.tsx index 26316edf..a62973ae 100644 --- a/packages/storage-react-query/__tests__/mutate/use-upload.spec.tsx +++ b/packages/storage-react-query/tests/mutate/use-upload.spec.tsx @@ -1,6 +1,7 @@ import { fetchDirectory } from '@supabase-cache-helpers/storage-core'; import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; +import { beforeAll, describe, expect, it } from 'vitest'; import { useDirectory, useUpload } from '../../src'; import { cleanup, loadFixtures, renderWithConfig } from '../utils'; diff --git a/packages/storage-react-query/__tests__/query/use-directory-urls.spec.tsx b/packages/storage-react-query/tests/query/use-directory-urls.spec.tsx similarity index 97% rename from packages/storage-react-query/__tests__/query/use-directory-urls.spec.tsx rename to packages/storage-react-query/tests/query/use-directory-urls.spec.tsx index b8e51f77..636ec8eb 100644 --- a/packages/storage-react-query/__tests__/query/use-directory-urls.spec.tsx +++ b/packages/storage-react-query/tests/query/use-directory-urls.spec.tsx @@ -1,5 +1,6 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { screen } from '@testing-library/react'; +import { beforeAll, describe, it } from 'vitest'; import { useDirectoryFileUrls } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; diff --git a/packages/storage-react-query/__tests__/query/use-directory.spec.tsx b/packages/storage-react-query/tests/query/use-directory.spec.tsx similarity index 96% rename from packages/storage-react-query/__tests__/query/use-directory.spec.tsx rename to packages/storage-react-query/tests/query/use-directory.spec.tsx index 3d2209cb..4fda5794 100644 --- a/packages/storage-react-query/__tests__/query/use-directory.spec.tsx +++ b/packages/storage-react-query/tests/query/use-directory.spec.tsx @@ -1,5 +1,6 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { screen } from '@testing-library/react'; +import { beforeAll, describe, it } from 'vitest'; import { useDirectory } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; diff --git a/packages/storage-react-query/__tests__/query/use-file-url.spec.tsx b/packages/storage-react-query/tests/query/use-file-url.spec.tsx similarity index 96% rename from packages/storage-react-query/__tests__/query/use-file-url.spec.tsx rename to packages/storage-react-query/tests/query/use-file-url.spec.tsx index d8e54645..2a959019 100644 --- a/packages/storage-react-query/__tests__/query/use-file-url.spec.tsx +++ b/packages/storage-react-query/tests/query/use-file-url.spec.tsx @@ -1,5 +1,6 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { screen } from '@testing-library/react'; +import { beforeAll, describe, it } from 'vitest'; import { useFileUrl } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; diff --git a/packages/storage-react-query/__tests__/utils.tsx b/packages/storage-react-query/tests/utils.tsx similarity index 100% rename from packages/storage-react-query/__tests__/utils.tsx rename to packages/storage-react-query/tests/utils.tsx diff --git a/packages/storage-react-query/tsconfig.json b/packages/storage-react-query/tsconfig.json index 49b41196..f3456f26 100644 --- a/packages/storage-react-query/tsconfig.json +++ b/packages/storage-react-query/tsconfig.json @@ -1,5 +1,5 @@ { "extends": "@supabase-cache-helpers/tsconfig/react-library.json", - "include": ["**/*.ts"], + "include": ["**/*.ts", "**/*.tsx"], "exclude": ["node_modules"] } diff --git a/packages/storage-react-query/vitest.config.ts b/packages/storage-react-query/vitest.config.ts new file mode 100644 index 00000000..3c17bf67 --- /dev/null +++ b/packages/storage-react-query/vitest.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + typecheck: { enabled: true }, + environment: 'happy-dom', + coverage: { + provider: 'istanbul', + }, + }, +}); diff --git a/packages/storage-swr/package.json b/packages/storage-swr/package.json index 6339c725..dc1397b0 100644 --- a/packages/storage-swr/package.json +++ b/packages/storage-swr/package.json @@ -6,13 +6,14 @@ "bugs": { "url": "https://github.com/psteinroe/supabase-cache-helpers/issues" }, + "type": "module", "main": "./dist/index.js", "source": "./src/index.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./package.json": "./package.json" }, @@ -24,8 +25,8 @@ "license": "MIT", "scripts": { "build": "tsup", - "test": "jest --coverage", - "clean": "rm -rf .turbo && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", + "test": "vitest --coverage", + "clean": "rm -rf .turbo && rm -rf coverage && rm -rf .nyc_output && rm -rf node_modules && rm -rf dist", "typecheck": "tsc --pretty --noEmit" }, "keywords": ["Supabase", "Storage", "Cache", "SWR"], @@ -35,30 +36,24 @@ "directory": "packages/storage-swr" }, "peerDependencies": { - "swr": "^2.2.0", + "@supabase/storage-js": "^2.4.0", "react": "^16.11.0 || ^17.0.0 || ^18.0.0", - "@supabase/storage-js": "^2.4.0" - }, - "jest": { - "preset": "@supabase-cache-helpers/jest-presets/jest/node" + "swr": "^2.2.0" }, "devDependencies": { - "@supabase/supabase-js": "2.38.5", - "@supabase/storage-js": "2.5.5", + "@supabase-cache-helpers/tsconfig": "workspace:*", + "@supabase/storage-js": "2.6.0", + "@supabase/supabase-js": "2.44.3", "@testing-library/react": "14.3.0", - "@testing-library/jest-dom": "6.4.0", - "jest-environment-jsdom": "29.7.0", - "@types/jest": "29.5.0", + "@types/react": "18.3.3", + "@vitest/coverage-istanbul": "^2.0.2", "dotenv": "16.4.0", - "jest": "29.7.0", - "@supabase-cache-helpers/jest-presets": "workspace:*", - "ts-jest": "29.1.0", - "@supabase-cache-helpers/tsconfig": "workspace:*", - "tsup": "8.0.0", + "happy-dom": "14.12.3", "react": "18.2.0", - "@types/react": "18.2.0", "react-dom": "18.2.0", - "typescript": "5.4.2" + "tsup": "8.0.0", + "typescript": "5.4.2", + "vitest": "^2.0.2" }, "dependencies": { "@supabase-cache-helpers/storage-core": "workspace:*" diff --git a/packages/storage-swr/__tests__/__fixtures__/1.jpg b/packages/storage-swr/tests/__fixtures__/1.jpg similarity index 100% rename from packages/storage-swr/__tests__/__fixtures__/1.jpg rename to packages/storage-swr/tests/__fixtures__/1.jpg diff --git a/packages/storage-swr/__tests__/__fixtures__/2.jpg b/packages/storage-swr/tests/__fixtures__/2.jpg similarity index 100% rename from packages/storage-swr/__tests__/__fixtures__/2.jpg rename to packages/storage-swr/tests/__fixtures__/2.jpg diff --git a/packages/storage-swr/__tests__/__fixtures__/3.jpg b/packages/storage-swr/tests/__fixtures__/3.jpg similarity index 100% rename from packages/storage-swr/__tests__/__fixtures__/3.jpg rename to packages/storage-swr/tests/__fixtures__/3.jpg diff --git a/packages/storage-swr/__tests__/__fixtures__/4.jpg b/packages/storage-swr/tests/__fixtures__/4.jpg similarity index 100% rename from packages/storage-swr/__tests__/__fixtures__/4.jpg rename to packages/storage-swr/tests/__fixtures__/4.jpg diff --git a/packages/storage-swr/__tests__/lib/decode.spec.ts b/packages/storage-swr/tests/lib/decode.spec.ts similarity index 79% rename from packages/storage-swr/__tests__/lib/decode.spec.ts rename to packages/storage-swr/tests/lib/decode.spec.ts index 25713c1f..5735da3a 100644 --- a/packages/storage-swr/__tests__/lib/decode.spec.ts +++ b/packages/storage-swr/tests/lib/decode.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { decode } from '../../src'; describe('decode', () => { diff --git a/packages/storage-swr/__tests__/lib/key.spec.ts b/packages/storage-swr/tests/lib/key.spec.ts similarity index 86% rename from packages/storage-swr/__tests__/lib/key.spec.ts rename to packages/storage-swr/tests/lib/key.spec.ts index a0c2e6ae..0c002336 100644 --- a/packages/storage-swr/__tests__/lib/key.spec.ts +++ b/packages/storage-swr/tests/lib/key.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { assertStorageKeyInput } from '../../src/lib'; describe('key', () => { diff --git a/packages/storage-swr/__tests__/mutate/use-remove-directory.spec.tsx b/packages/storage-swr/tests/mutate/use-remove-directory.spec.tsx similarity index 96% rename from packages/storage-swr/__tests__/mutate/use-remove-directory.spec.tsx rename to packages/storage-swr/tests/mutate/use-remove-directory.spec.tsx index 180b4783..6c08b81b 100644 --- a/packages/storage-swr/__tests__/mutate/use-remove-directory.spec.tsx +++ b/packages/storage-swr/tests/mutate/use-remove-directory.spec.tsx @@ -1,6 +1,7 @@ import { fetchDirectory } from '@supabase-cache-helpers/storage-core'; import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; +import { beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useDirectory, useRemoveDirectory } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; diff --git a/packages/storage-swr/__tests__/mutate/use-remove-files.spec.tsx b/packages/storage-swr/tests/mutate/use-remove-files.spec.tsx similarity index 96% rename from packages/storage-swr/__tests__/mutate/use-remove-files.spec.tsx rename to packages/storage-swr/tests/mutate/use-remove-files.spec.tsx index 9dfde81a..94405a3c 100644 --- a/packages/storage-swr/__tests__/mutate/use-remove-files.spec.tsx +++ b/packages/storage-swr/tests/mutate/use-remove-files.spec.tsx @@ -1,6 +1,7 @@ import { fetchDirectory } from '@supabase-cache-helpers/storage-core'; import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; +import { beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useDirectory, useRemoveFiles } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; diff --git a/packages/storage-swr/__tests__/mutate/use-upload.spec.tsx b/packages/storage-swr/tests/mutate/use-upload.spec.tsx similarity index 96% rename from packages/storage-swr/__tests__/mutate/use-upload.spec.tsx rename to packages/storage-swr/tests/mutate/use-upload.spec.tsx index 79713ce8..3b0ec692 100644 --- a/packages/storage-swr/__tests__/mutate/use-upload.spec.tsx +++ b/packages/storage-swr/tests/mutate/use-upload.spec.tsx @@ -1,6 +1,7 @@ import { fetchDirectory } from '@supabase-cache-helpers/storage-core'; import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { fireEvent, screen } from '@testing-library/react'; +import { beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { useDirectory, useUpload } from '../../src'; import { cleanup, loadFixtures, renderWithConfig } from '../utils'; diff --git a/packages/storage-swr/__tests__/query/use-directory-urls.spec.tsx b/packages/storage-swr/tests/query/use-directory-urls.spec.tsx similarity index 96% rename from packages/storage-swr/__tests__/query/use-directory-urls.spec.tsx rename to packages/storage-swr/tests/query/use-directory-urls.spec.tsx index a7cff3c3..77a120c3 100644 --- a/packages/storage-swr/__tests__/query/use-directory-urls.spec.tsx +++ b/packages/storage-swr/tests/query/use-directory-urls.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { screen } from '@testing-library/react'; import type { Middleware } from 'swr'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { useDirectoryFileUrls } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; @@ -56,7 +57,7 @@ describe('useDirectoryFileUrls', () => { }); it('should return files', async () => { - const mwMock = jest.fn(); + const mwMock = vi.fn(); const mw: Middleware = (useSWRNext) => { return (key, fetcher, config) => { mwMock(); diff --git a/packages/storage-swr/__tests__/query/use-directory.spec.tsx b/packages/storage-swr/tests/query/use-directory.spec.tsx similarity index 96% rename from packages/storage-swr/__tests__/query/use-directory.spec.tsx rename to packages/storage-swr/tests/query/use-directory.spec.tsx index 9c179aa0..28250d8f 100644 --- a/packages/storage-swr/__tests__/query/use-directory.spec.tsx +++ b/packages/storage-swr/tests/query/use-directory.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { screen } from '@testing-library/react'; import type { Middleware } from 'swr'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { useDirectory } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; @@ -55,7 +56,7 @@ describe('useDirectory', () => { }); it('should return files', async () => { - const mwMock = jest.fn(); + const mwMock = vi.fn(); const mw: Middleware = (useSWRNext) => { return (key, fetcher, config) => { mwMock(); diff --git a/packages/storage-swr/__tests__/query/use-file-url.spec.tsx b/packages/storage-swr/tests/query/use-file-url.spec.tsx similarity index 96% rename from packages/storage-swr/__tests__/query/use-file-url.spec.tsx rename to packages/storage-swr/tests/query/use-file-url.spec.tsx index e4741323..aa310cf5 100644 --- a/packages/storage-swr/__tests__/query/use-file-url.spec.tsx +++ b/packages/storage-swr/tests/query/use-file-url.spec.tsx @@ -1,6 +1,7 @@ import { type SupabaseClient, createClient } from '@supabase/supabase-js'; import { screen } from '@testing-library/react'; import type { Middleware } from 'swr'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { useFileUrl } from '../../src'; import { cleanup, renderWithConfig, upload } from '../utils'; @@ -57,7 +58,7 @@ describe('useFileUrl', () => { }); it('should return file url', async () => { - const mwMock = jest.fn(); + const mwMock = vi.fn(); const mw: Middleware = (useSWRNext) => { return (key, fetcher, config) => { mwMock(); diff --git a/packages/storage-swr/__tests__/utils.tsx b/packages/storage-swr/tests/utils.tsx similarity index 100% rename from packages/storage-swr/__tests__/utils.tsx rename to packages/storage-swr/tests/utils.tsx diff --git a/packages/storage-swr/tsconfig.json b/packages/storage-swr/tsconfig.json index 49b41196..f3456f26 100644 --- a/packages/storage-swr/tsconfig.json +++ b/packages/storage-swr/tsconfig.json @@ -1,5 +1,5 @@ { "extends": "@supabase-cache-helpers/tsconfig/react-library.json", - "include": ["**/*.ts"], + "include": ["**/*.ts", "**/*.tsx"], "exclude": ["node_modules"] } diff --git a/packages/storage-swr/vitest.config.ts b/packages/storage-swr/vitest.config.ts new file mode 100644 index 00000000..3c17bf67 --- /dev/null +++ b/packages/storage-swr/vitest.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + typecheck: { enabled: true }, + environment: 'happy-dom', + coverage: { + provider: 'istanbul', + }, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 403c9be6..818938e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,10 +16,10 @@ importers: version: 2.27.0 supabase: specifier: latest - version: 1.172.2 + version: 1.183.5 turbo: - specifier: 1.10.16 - version: 1.10.16 + specifier: 2.0.6 + version: 2.0.6 docs: dependencies: @@ -43,13 +43,13 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: '@types/node': - specifier: ^20.0.0 - version: 20.9.2 + specifier: 20.11.19 + version: 20.11.19 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.0.7 + specifier: 18.3.0 version: 18.3.0 autoprefixer: specifier: ^10.4.13 @@ -80,7 +80,7 @@ importers: version: 1.1.1(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-alert-dialog': specifier: ^1.0.2 - version: 1.0.3(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-aspect-ratio': specifier: ^1.0.1 version: 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -95,28 +95,28 @@ importers: version: 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-context-menu': specifier: ^2.1.1 - version: 2.1.3(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 2.1.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: ^1.0.2 - version: 1.0.3(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': specifier: ^2.0.1 - version: 2.0.4(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.4(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-hover-card': specifier: ^1.0.3 - version: 1.0.5(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-label': specifier: ^2.0.0 version: 2.0.1(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-menubar': specifier: ^1.0.0 - version: 1.0.2(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.2(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-navigation-menu': specifier: ^1.1.1 version: 1.1.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': specifier: ^1.0.2 - version: 1.0.5(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-progress': specifier: ^1.0.1 version: 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -128,7 +128,7 @@ importers: version: 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-select': specifier: ^1.2.0 - version: 1.2.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 1.2.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-separator': specifier: ^1.0.1 version: 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -155,7 +155,7 @@ importers: version: 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': specifier: ^1.0.3 - version: 1.0.5(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@supabase-cache-helpers/postgrest-react-query': specifier: workspace:* version: link:../../packages/postgrest-react-query @@ -164,13 +164,13 @@ importers: version: link:../../packages/storage-react-query '@supabase/auth-helpers-nextjs': specifier: 0.8.7 - version: 0.8.7(@supabase/supabase-js@2.38.5) + version: 0.8.7(@supabase/supabase-js@2.44.3) '@supabase/auth-helpers-react': specifier: 0.4.2 - version: 0.4.2(@supabase/supabase-js@2.38.5) + version: 0.4.2(@supabase/supabase-js@2.44.3) '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 + specifier: 2.44.3 + version: 2.44.3 '@tanstack/react-query': specifier: ^5.0.0 version: 5.0.0(react-dom@18.2.0)(react@18.2.0) @@ -185,7 +185,7 @@ importers: version: 1.2.1 cmdk: specifier: ^0.1.21 - version: 0.1.22(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + version: 0.1.22(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) lucide-react: specifier: 0.105.0-alpha.4 version: 0.105.0-alpha.4(react@18.2.0) @@ -221,13 +221,13 @@ importers: version: 3.21.4 devDependencies: '@types/node': - specifier: ^17.0.12 - version: 17.0.45 + specifier: 20.11.19 + version: 20.11.19 '@types/react': - specifier: ^18.0.22 - version: 18.2.0 + specifier: 18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.0.7 + specifier: 18.3.0 version: 18.3.0 '@types/uuid': specifier: ^9.0.2 @@ -264,7 +264,7 @@ importers: version: 1.1.1(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-alert-dialog': specifier: ^1.0.2 - version: 1.0.3(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-aspect-ratio': specifier: ^1.0.1 version: 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -279,28 +279,28 @@ importers: version: 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-context-menu': specifier: ^2.1.1 - version: 2.1.3(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 2.1.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: ^1.0.2 - version: 1.0.3(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': specifier: ^2.0.1 - version: 2.0.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.4(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-hover-card': specifier: ^1.0.3 - version: 1.0.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-label': specifier: ^2.0.0 version: 2.0.1(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-menubar': specifier: ^1.0.0 - version: 1.0.2(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.2(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-navigation-menu': specifier: ^1.1.1 version: 1.1.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': specifier: ^1.0.2 - version: 1.0.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-progress': specifier: ^1.0.1 version: 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -312,7 +312,7 @@ importers: version: 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-select': specifier: ^1.2.0 - version: 1.2.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 1.2.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-separator': specifier: ^1.0.1 version: 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -339,7 +339,7 @@ importers: version: 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': specifier: ^1.0.3 - version: 1.0.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@supabase-cache-helpers/postgrest-swr': specifier: workspace:* version: link:../../packages/postgrest-swr @@ -348,13 +348,13 @@ importers: version: link:../../packages/storage-swr '@supabase/auth-helpers-nextjs': specifier: 0.8.7 - version: 0.8.7(@supabase/supabase-js@2.38.5) + version: 0.8.7(@supabase/supabase-js@2.44.3) '@supabase/auth-helpers-react': specifier: 0.4.2 - version: 0.4.2(@supabase/supabase-js@2.38.5) + version: 0.4.2(@supabase/supabase-js@2.44.3) '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 + specifier: 2.44.3 + version: 2.44.3 '@vercel/analytics': specifier: ^0.1.11 version: 0.1.11(react@18.2.0) @@ -366,7 +366,7 @@ importers: version: 1.2.1 cmdk: specifier: ^0.1.21 - version: 0.1.22(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 0.1.22(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) lucide-react: specifier: 0.105.0-alpha.4 version: 0.105.0-alpha.4(react@18.2.0) @@ -405,13 +405,13 @@ importers: version: 3.21.4 devDependencies: '@types/node': - specifier: ^17.0.12 - version: 17.0.45 + specifier: 20.11.19 + version: 20.11.19 '@types/react': - specifier: ^18.0.22 - version: 18.0.28 + specifier: 18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.0.7 + specifier: 18.3.0 version: 18.3.0 '@types/uuid': specifier: ^9.0.2 @@ -432,12 +432,6 @@ importers: specifier: 5.4.2 version: 5.4.2 - packages/jest-presets: - dependencies: - ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.24.6)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2) - packages/postgrest-core: dependencies: fast-equals: @@ -453,42 +447,36 @@ importers: specifier: 5.1.1 version: 5.1.1 devDependencies: - '@supabase-cache-helpers/jest-presets': - specifier: workspace:* - version: link:../jest-presets '@supabase-cache-helpers/tsconfig': specifier: workspace:* version: link:../tsconfig '@supabase/postgrest-js': - specifier: 1.9.0 - version: 1.9.0 + specifier: 1.15.8 + version: 1.15.8 '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 + specifier: 2.44.3 + version: 2.44.3 '@types/flat': specifier: 5.0.2 version: 5.0.2 - '@types/jest': - specifier: 29.5.0 - version: 29.5.0 '@types/lodash': specifier: 4.17.0 version: 4.17.0 + '@vitest/coverage-istanbul': + specifier: ^2.0.2 + version: 2.0.2(vitest@2.0.2) dotenv: specifier: 16.4.0 version: 16.4.0 - jest: - specifier: 29.7.0 - version: 29.7.0 - ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.23.5)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2) tsup: specifier: 8.0.0 version: 8.0.0(typescript@5.4.2) typescript: specifier: 5.4.2 version: 5.4.2 + vitest: + specifier: ^2.0.2 + version: 2.0.2(happy-dom@14.12.3) packages/postgrest-react-query: dependencies: @@ -502,57 +490,45 @@ importers: specifier: 5.0.2 version: 5.0.2 devDependencies: - '@supabase-cache-helpers/jest-presets': - specifier: workspace:* - version: link:../jest-presets '@supabase-cache-helpers/tsconfig': specifier: workspace:* version: link:../tsconfig '@supabase/postgrest-js': - specifier: 1.9.0 - version: 1.9.0 + specifier: 1.15.8 + version: 1.15.8 '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 - '@testing-library/jest-dom': - specifier: 6.4.0 - version: 6.4.0(@types/jest@29.5.0)(jest@29.7.0) + specifier: 2.44.3 + version: 2.44.3 '@testing-library/react': specifier: 14.3.0 version: 14.3.0(react-dom@18.2.0)(react@18.2.0) '@types/flat': specifier: 5.0.2 version: 5.0.2 - '@types/jest': - specifier: 29.5.0 - version: 29.5.0 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.3 + version: 18.3.3 + '@vitest/coverage-istanbul': + specifier: ^2.0.2 + version: 2.0.2(vitest@2.0.2) dotenv: specifier: 16.4.0 version: 16.4.0 - jest: - specifier: 29.7.0 - version: 29.7.0 - jest-environment-jsdom: - specifier: 29.7.0 - version: 29.7.0 react: specifier: 18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) - ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.24.6)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2) tsup: specifier: 8.0.0 version: 8.0.0(typescript@5.4.2) typescript: specifier: 5.4.2 version: 5.4.2 + vitest: + specifier: ^2.0.2 + version: 2.0.2(happy-dom@14.12.3) packages/postgrest-swr: dependencies: @@ -569,90 +545,75 @@ importers: specifier: ^2.2.0 version: 2.2.0(react@18.2.0) devDependencies: - '@supabase-cache-helpers/jest-presets': - specifier: workspace:* - version: link:../jest-presets '@supabase-cache-helpers/tsconfig': specifier: workspace:* version: link:../tsconfig '@supabase/postgrest-js': - specifier: 1.9.0 - version: 1.9.0 + specifier: 1.15.8 + version: 1.15.8 '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 - '@testing-library/jest-dom': - specifier: 6.4.0 - version: 6.4.0(@types/jest@29.5.0)(jest@29.7.0) + specifier: 2.44.3 + version: 2.44.3 '@testing-library/react': specifier: 14.3.0 version: 14.3.0(react-dom@18.2.0)(react@18.2.0) '@types/flat': specifier: 5.0.2 version: 5.0.2 - '@types/jest': - specifier: 29.5.0 - version: 29.5.0 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.3 + version: 18.3.3 + '@vitest/coverage-istanbul': + specifier: ^2.0.2 + version: 2.0.2(vitest@2.0.2) dotenv: specifier: 16.4.0 version: 16.4.0 - jest: - specifier: 29.7.0 - version: 29.7.0 - jest-environment-jsdom: - specifier: 29.7.0 - version: 29.7.0 react: specifier: 18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) - ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.24.6)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2) tsup: specifier: 8.0.0 version: 8.0.0(typescript@5.4.2) typescript: specifier: 5.4.2 version: 5.4.2 + vitest: + specifier: ^2.0.2 + version: 2.0.2(happy-dom@14.12.3) packages/storage-core: devDependencies: - '@supabase-cache-helpers/jest-presets': - specifier: workspace:* - version: link:../jest-presets '@supabase-cache-helpers/tsconfig': specifier: workspace:* version: link:../tsconfig '@supabase/storage-js': - specifier: 2.5.5 - version: 2.5.5 + specifier: 2.6.0 + version: 2.6.0 '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 - '@types/jest': - specifier: 29.5.0 - version: 29.5.0 + specifier: 2.44.3 + version: 2.44.3 + '@vitest/coverage-istanbul': + specifier: ^2.0.2 + version: 2.0.2(vitest@2.0.2) dotenv: specifier: 16.4.0 version: 16.4.0 - jest: - specifier: 29.7.0 - version: 29.7.0 - ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.24.6)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2) + happy-dom: + specifier: 14.12.3 + version: 14.12.3 tsup: specifier: 8.0.0 version: 8.0.0(typescript@5.4.2) typescript: specifier: 5.4.2 version: 5.4.2 + vitest: + specifier: ^2.0.2 + version: 2.0.2(happy-dom@14.12.3) packages/storage-react-query: dependencies: @@ -663,54 +624,45 @@ importers: specifier: ^4.0.0 || ^5.0.0 version: 5.0.0(react-dom@18.2.0)(react@18.2.0) devDependencies: - '@supabase-cache-helpers/jest-presets': - specifier: workspace:* - version: link:../jest-presets '@supabase-cache-helpers/tsconfig': specifier: workspace:* version: link:../tsconfig '@supabase/storage-js': - specifier: 2.5.5 - version: 2.5.5 + specifier: 2.6.0 + version: 2.6.0 '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 - '@testing-library/jest-dom': - specifier: 6.4.0 - version: 6.4.0(@types/jest@29.5.0)(jest@29.7.0) + specifier: 2.44.3 + version: 2.44.3 '@testing-library/react': specifier: 14.3.0 version: 14.3.0(react-dom@18.2.0)(react@18.2.0) - '@types/jest': - specifier: 29.5.0 - version: 29.5.0 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.3 + version: 18.3.3 + '@vitest/coverage-istanbul': + specifier: ^2.0.2 + version: 2.0.2(vitest@2.0.2) dotenv: specifier: 16.4.0 version: 16.4.0 - jest: - specifier: 29.7.0 - version: 29.7.0 - jest-environment-jsdom: - specifier: 29.7.0 - version: 29.7.0 + happy-dom: + specifier: 14.12.3 + version: 14.12.3 react: specifier: 18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) - ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.24.6)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2) tsup: specifier: 8.0.0 version: 8.0.0(typescript@5.4.2) typescript: specifier: 5.4.2 version: 5.4.2 + vitest: + specifier: ^2.0.2 + version: 2.0.2(happy-dom@14.12.3) packages/storage-swr: dependencies: @@ -721,87 +673,61 @@ importers: specifier: ^2.2.0 version: 2.2.4(react@18.2.0) devDependencies: - '@supabase-cache-helpers/jest-presets': - specifier: workspace:* - version: link:../jest-presets '@supabase-cache-helpers/tsconfig': specifier: workspace:* version: link:../tsconfig '@supabase/storage-js': - specifier: 2.5.5 - version: 2.5.5 + specifier: 2.6.0 + version: 2.6.0 '@supabase/supabase-js': - specifier: 2.38.5 - version: 2.38.5 - '@testing-library/jest-dom': - specifier: 6.4.0 - version: 6.4.0(@types/jest@29.5.0)(jest@29.7.0) + specifier: 2.44.3 + version: 2.44.3 '@testing-library/react': specifier: 14.3.0 version: 14.3.0(react-dom@18.2.0)(react@18.2.0) - '@types/jest': - specifier: 29.5.0 - version: 29.5.0 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.3.3 + version: 18.3.3 + '@vitest/coverage-istanbul': + specifier: ^2.0.2 + version: 2.0.2(vitest@2.0.2) dotenv: specifier: 16.4.0 version: 16.4.0 - jest: - specifier: 29.7.0 - version: 29.7.0 - jest-environment-jsdom: - specifier: 29.7.0 - version: 29.7.0 + happy-dom: + specifier: 14.12.3 + version: 14.12.3 react: specifier: 18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) - ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.24.6)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2) tsup: specifier: 8.0.0 version: 8.0.0(typescript@5.4.2) typescript: specifier: 5.4.2 version: 5.4.2 + vitest: + specifier: ^2.0.2 + version: 2.0.2(happy-dom@14.12.3) packages/tsconfig: {} packages: - /@adobe/css-tools@4.3.2: - resolution: {integrity: sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==} - dev: true - /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - /@ampproject/remapping@2.2.0: - resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.20 - - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + dev: true /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} @@ -809,80 +735,35 @@ packages: dependencies: '@babel/highlight': 7.23.4 chalk: 2.4.2 + dev: true - /@babel/code-frame@7.24.6: - resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.6 + '@babel/highlight': 7.24.7 picocolors: 1.0.1 + dev: true - /@babel/compat-data@7.23.2: - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} - engines: {node: '>=6.9.0'} - - /@babel/compat-data@7.24.6: - resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} - engines: {node: '>=6.9.0'} - - /@babel/core@7.23.2: - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.0 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.0 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 - 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/core@7.23.5: - resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + /@babel/compat-data@7.24.8: + resolution: {integrity: sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) - '@babel/helpers': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.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 + dev: true - /@babel/core@7.24.6: - resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} + /@babel/core@7.24.8: + resolution: {integrity: sha512-6AWcmZC/MZCO0yKys4uhg5NlxL0ESF3K6IAaoQ+xSXvPyPyxNWRafP+GDbI88Oh68O7QkJgmEtedWPM9U0pZNg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helpers': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.8 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 convert-source-map: 2.0.0 debug: 4.3.5 gensync: 1.0.0-beta.2 @@ -890,225 +771,121 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - /@babel/generator@7.23.0: - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 - - /@babel/generator@7.23.5: - resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.5 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - jsesc: 2.5.2 - - /@babel/generator@7.24.6: - resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} + /@babel/generator@7.24.8: + resolution: {integrity: sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.8 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + dev: true - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.2 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - /@babel/helper-compilation-targets@7.24.6: - resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} + /@babel/helper-compilation-targets@7.24.8: + resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - browserslist: 4.23.0 + '@babel/compat-data': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 + dev: true - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-environment-visitor@7.24.6: - resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} - engines: {node: '>=6.9.0'} - - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - - /@babel/helper-function-name@7.24.6: - resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 - - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 - - /@babel/helper-hoist-variables@7.24.6: - resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + /@babel/helper-environment-visitor@7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.8 + dev: true - /@babel/helper-module-imports@7.24.6: - resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} + /@babel/helper-function-name@7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/template': 7.24.7 + '@babel/types': 7.24.8 + dev: true - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + /@babel/helper-hoist-variables@7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/types': 7.24.8 + dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} + /@babel/helper-module-transforms@7.24.8(@babel/core@7.24.8): + resolution: {integrity: sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - - /@babel/helper-plugin-utils@7.18.9: - resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==} - engines: {node: '>=6.9.0'} - - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 - - /@babel/helper-simple-access@7.24.6: - resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 + '@babel/core': 7.24.8 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + /@babel/helper-simple-access@7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/helper-split-export-declaration@7.24.6: - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} + /@babel/helper-split-export-declaration@7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 - - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} + '@babel/types': 7.24.8 + dev: true - /@babel/helper-string-parser@7.24.6: - resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} + /@babel/helper-string-parser@7.24.8: + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + dev: true - /@babel/helper-validator-identifier@7.24.6: - resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option@7.24.6: - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} - engines: {node: '>=6.9.0'} - - /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 - transitivePeerDependencies: - - supports-color + dev: true - /@babel/helpers@7.23.5: - resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} + /@babel/helper-validator-option@7.24.8: + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 - transitivePeerDependencies: - - supports-color + dev: true - /@babel/helpers@7.24.6: - resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} + /@babel/helpers@7.24.8: + resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/template': 7.24.7 + '@babel/types': 7.24.8 + dev: true /@babel/highlight@7.23.4: resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} @@ -1117,151 +894,25 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true - /@babel/highlight@7.24.6: - resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.1 + dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.0 - - /@babel/parser@7.23.5: - resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.5 - - /@babel/parser@7.24.6: - resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} + /@babel/parser@7.24.8: + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.6 - - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.5): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.5): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.18.9 - - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5): - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.5 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.24.8 + dev: true /@babel/runtime-corejs3@7.18.9: resolution: {integrity: sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==} @@ -1291,99 +942,41 @@ packages: dependencies: regenerator-runtime: 0.14.0 - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - - /@babel/template@7.24.6: - resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - - /@babel/traverse@7.23.2: - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + /@babel/template@7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/traverse@7.23.5: - resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.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.22.6 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.8 + dev: true - /@babel/traverse@7.24.6: - resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} + /@babel/traverse@7.24.8: + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.8 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.8 debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - /@babel/types@7.23.5: - resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - /@babel/types@7.24.6: - resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} + /@babel/types@7.24.8: + resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true /@biomejs/biome@1.8.3: resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} @@ -1660,12 +1253,31 @@ packages: prettier: 2.8.8 dev: true + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.19.8: resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true /@esbuild/android-arm@0.19.8: @@ -1674,22 +1286,52 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-x64@0.19.8: - resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/darwin-arm64@0.19.8: + /@esbuild/android-x64@0.19.8: + resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.8: resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true /@esbuild/darwin-x64@0.19.8: @@ -1698,6 +1340,16 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true /@esbuild/freebsd-arm64@0.19.8: @@ -1706,6 +1358,16 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true /@esbuild/freebsd-x64@0.19.8: @@ -1714,6 +1376,16 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true /@esbuild/linux-arm64@0.19.8: @@ -1722,6 +1394,16 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-arm@0.19.8: @@ -1730,6 +1412,16 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-ia32@0.19.8: @@ -1738,6 +1430,16 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-loong64@0.19.8: @@ -1746,6 +1448,16 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-mips64el@0.19.8: @@ -1754,6 +1466,16 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-ppc64@0.19.8: @@ -1762,6 +1484,16 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-riscv64@0.19.8: @@ -1770,6 +1502,16 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-s390x@0.19.8: @@ -1778,6 +1520,16 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/linux-x64@0.19.8: @@ -1786,6 +1538,16 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true /@esbuild/netbsd-x64@0.19.8: @@ -1794,6 +1556,16 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true /@esbuild/openbsd-x64@0.19.8: @@ -1802,6 +1574,16 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true /@esbuild/sunos-x64@0.19.8: @@ -1810,6 +1592,16 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true /@esbuild/win32-arm64@0.19.8: @@ -1818,6 +1610,16 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true /@esbuild/win32-ia32@0.19.8: @@ -1826,6 +1628,16 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true /@esbuild/win32-x64@0.19.8: @@ -1834,6 +1646,16 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true /@floating-ui/core@0.7.3: @@ -1846,7 +1668,7 @@ packages: '@floating-ui/core': 0.7.3 dev: false - /@floating-ui/react-dom@0.7.2(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): + /@floating-ui/react-dom@0.7.2(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} peerDependencies: react: '>=16.8.0' @@ -1855,21 +1677,7 @@ packages: '@floating-ui/dom': 0.5.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.28)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@floating-ui/react-dom@0.7.2(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 0.5.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.0)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.3)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -1913,226 +1721,10 @@ packages: minipass: 7.1.2 dev: true - /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - - /@jest/console@29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 17.0.45 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - - /@jest/core@29.7.0: - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.10.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.10.1) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - - /@jest/environment@29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.10.1 - jest-mock: 29.7.0 - - /@jest/expect-utils@29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - - /@jest/expect@29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - /@jest/fake-timers@29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.10.1 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - /@jest/globals@29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - /@jest/reporters@29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 17.0.45 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 6.0.0 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.0.1 - transitivePeerDependencies: - - supports-color - - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - - /@jest/source-map@29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jridgewell/trace-mapping': 0.3.20 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - /@jest/test-result@29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - - /@jest/test-sequencer@29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - - /@jest/transform@29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.23.2 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - /@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.1 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - - /@jridgewell/gen-mapping@0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} @@ -2142,14 +1734,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/trace-mapping': 0.3.18 - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -2157,18 +1741,16 @@ packages: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 + dev: true /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - /@jridgewell/resolve-uri@3.1.2: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} @@ -2177,12 +1759,14 @@ packages: /@jridgewell/set-array@1.2.1: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true /@jridgewell/trace-mapping@0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} @@ -2190,17 +1774,12 @@ packages: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -2252,7 +1831,7 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.3 - '@types/react': 18.2.0 + '@types/react': 18.3.3 react: 18.2.0 dev: false @@ -2619,7 +2198,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-alert-dialog@1.0.3(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-alert-dialog@1.0.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-QXFy7+bhGi0u+paF2QbJeSCHZs4gLMJIPm6sajUamyW0fro6g1CaSGc5zmc4QmK2NlSGUrq8m+UsUqJYtzvXow==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -2629,26 +2208,7 @@ packages: '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dialog': 1.0.3(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-alert-dialog@1.0.3(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QXFy7+bhGi0u+paF2QbJeSCHZs4gLMJIPm6sajUamyW0fro6g1CaSGc5zmc4QmK2NlSGUrq8m+UsUqJYtzvXow==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dialog': 1.0.3(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.1(react@18.2.0) react: 18.2.0 @@ -2758,26 +2318,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-context-menu@2.1.3(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-T+Jpbl/L9eJmlNGdgrl39NUqYTrtHJz4FmjdSc2WDUiZXWMmokK+1K8t/xEcx9q2PvVYfL5UDy9dkzU9UouyGw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-context-menu@2.1.3(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-context-menu@2.1.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-T+Jpbl/L9eJmlNGdgrl39NUqYTrtHJz4FmjdSc2WDUiZXWMmokK+1K8t/xEcx9q2PvVYfL5UDy9dkzU9UouyGw==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -2786,7 +2327,7 @@ packages: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.4(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.0.4(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) @@ -2805,34 +2346,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-dialog@1.0.0(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.0(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.4(@types/react@18.0.28)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-dialog@1.0.0(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.0(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -2854,12 +2368,12 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.4(@types/react@18.2.0)(react@18.2.0) + react-remove-scroll: 2.5.4(@types/react@18.3.3)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-dialog@1.0.3(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.3(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-owNhq36kNPqC2/a+zJRioPg6HHnTn5B/sh/NjTY8r4W9g1L5VJlrzZIVcBr7R9Mg8iLjVmh6MGgMlfoVf/WO/A==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -2881,34 +2395,7 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.0.28)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-dialog@1.0.3(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-owNhq36kNPqC2/a+zJRioPg6HHnTn5B/sh/NjTY8r4W9g1L5VJlrzZIVcBr7R9Mg8iLjVmh6MGgMlfoVf/WO/A==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.0)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -2954,7 +2441,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-dropdown-menu@2.0.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dropdown-menu@2.0.4(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-y6AT9+MydyXcByivdK1+QpjWoKaC7MLjkS/cH1Q3keEyMvDkiY85m8o2Bi6+Z1PPUlCsMULopxagQOSfN0wahg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -2965,27 +2452,7 @@ packages: '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-dropdown-menu@2.0.4(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-y6AT9+MydyXcByivdK1+QpjWoKaC7MLjkS/cH1Q3keEyMvDkiY85m8o2Bi6+Z1PPUlCsMULopxagQOSfN0wahg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.4(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.0.4(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) react: 18.2.0 @@ -3028,32 +2495,10 @@ packages: '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-hover-card@1.0.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-jXRuZEkxSWdHZbVyL0J46cm7pQjmOMpwJEFKY+VqAJnV+FxS+zIZExI1OCeIiDwCBzUy6If1FfouOsfqBxr86g==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' + react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-hover-card@1.0.5(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-hover-card@1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-jXRuZEkxSWdHZbVyL0J46cm7pQjmOMpwJEFKY+VqAJnV+FxS+zIZExI1OCeIiDwCBzUy6If1FfouOsfqBxr86g==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -3064,7 +2509,7 @@ packages: '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -3097,38 +2542,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-menu@2.0.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-mzKR47tZ1t193trEqlQoJvzY4u9vYfVH16ryBrVrCAGZzkgyWnMQYEZdUkM7y8ak9mrkKtJiqB47TlEnubeOFQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-direction': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.0.28)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-menu@2.0.4(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-menu@2.0.4(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mzKR47tZ1t193trEqlQoJvzY4u9vYfVH16ryBrVrCAGZzkgyWnMQYEZdUkM7y8ak9mrkKtJiqB47TlEnubeOFQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -3144,7 +2558,7 @@ packages: '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -3154,35 +2568,12 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.0)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-menubar@1.0.2(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-woEg2ZODGoJHonr6ZwC01ZCpDifS6BapI5ythRfvWPBeL/80CX3u4sQKaF/58bbAZQsDnVwO5M9b0XVBN3jLhA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-direction': 1.0.0(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-menubar@1.0.2(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-menubar@1.0.2(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-woEg2ZODGoJHonr6ZwC01ZCpDifS6BapI5ythRfvWPBeL/80CX3u4sQKaF/58bbAZQsDnVwO5M9b0XVBN3jLhA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -3195,7 +2586,7 @@ packages: '@radix-ui/react-context': 1.0.0(react@18.2.0) '@radix-ui/react-direction': 1.0.0(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.4(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.0.4(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-roving-focus': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) @@ -3230,35 +2621,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-popover@1.0.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-GRHZ8yD12MrN2NLobHPE8Rb5uHTxd9x372DE9PPNnBjpczAQHcZ5ne0KXG4xpf+RDdXSzdLv9ym6mYJCDTaUZg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.0.28)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-popover@1.0.5(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popover@1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GRHZ8yD12MrN2NLobHPE8Rb5uHTxd9x372DE9PPNnBjpczAQHcZ5ne0KXG4xpf+RDdXSzdLv9ym6mYJCDTaUZg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -3272,7 +2635,7 @@ packages: '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -3281,42 +2644,19 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.0)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-popper@1.1.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-keYDcdMPNMjSC8zTsZ8wezUMiWM9Yj14wtF3s0PTIs9srnEPC9Kt2Gny1T3T81mmSeyDjZxsD9N5WCwNNb712w==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.5 - '@floating-ui/react-dom': 0.7.2(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) - '@radix-ui/react-use-size': 1.0.0(react@18.2.0) - '@radix-ui/rect': 1.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-popper@1.1.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-keYDcdMPNMjSC8zTsZ8wezUMiWM9Yj14wtF3s0PTIs9srnEPC9Kt2Gny1T3T81mmSeyDjZxsD9N5WCwNNb712w==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.23.5 - '@floating-ui/react-dom': 0.7.2(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/react-dom': 0.7.2(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-arrow': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) @@ -3467,7 +2807,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-select@1.2.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@1.2.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GULRMITaOHNj79BZvQs3iZO0+f2IgI8g5HDhMi7Bnc13t7IlG86NFtOCfTLme4PNZdEtU+no+oGgcl6IFiphpQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -3484,7 +2824,7 @@ packages: '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.1(react@18.2.0) @@ -3496,41 +2836,7 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.0.28)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-select@1.2.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-GULRMITaOHNj79BZvQs3iZO0+f2IgI8g5HDhMi7Bnc13t7IlG86NFtOCfTLme4PNZdEtU+no+oGgcl6IFiphpQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/number': 1.0.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-direction': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.0(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.2(react-dom@18.2.0)(react@18.2.0) - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.0)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -3681,32 +2987,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-tooltip@1.0.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-cDKVcfzyO6PpckZekODJZDe5ZxZ2fCZlzKzTmPhe4mX9qTHRfLcKgqb0OKf22xLwDequ2tVleim+ZYx3rabD5w==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.2(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-tooltip@1.0.5(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-tooltip@1.0.5(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cDKVcfzyO6PpckZekODJZDe5ZxZ2fCZlzKzTmPhe4mX9qTHRfLcKgqb0OKf22xLwDequ2tVleim+ZYx3rabD5w==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -3718,7 +2999,7 @@ packages: '@radix-ui/react-context': 1.0.0(react@18.2.0) '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.1(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) @@ -3826,6 +3107,14 @@ packages: '@babel/runtime': 7.23.5 dev: false + /@rollup/rollup-android-arm-eabi@4.18.1: + resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-android-arm-eabi@4.6.1: resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==} cpu: [arm] @@ -3834,6 +3123,14 @@ packages: dev: true optional: true + /@rollup/rollup-android-arm64@4.18.1: + resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-android-arm64@4.6.1: resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} cpu: [arm64] @@ -3842,6 +3139,14 @@ packages: dev: true optional: true + /@rollup/rollup-darwin-arm64@4.18.1: + resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-darwin-arm64@4.6.1: resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} cpu: [arm64] @@ -3850,6 +3155,14 @@ packages: dev: true optional: true + /@rollup/rollup-darwin-x64@4.18.1: + resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-darwin-x64@4.6.1: resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} cpu: [x64] @@ -3858,6 +3171,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.18.1: + resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.6.1: resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} cpu: [arm] @@ -3866,6 +3187,22 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm-musleabihf@4.18.1: + resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.18.1: + resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm64-gnu@4.6.1: resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} cpu: [arm64] @@ -3874,6 +3211,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm64-musl@4.18.1: + resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm64-musl@4.6.1: resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} cpu: [arm64] @@ -3882,6 +3227,38 @@ packages: dev: true optional: true + /@rollup/rollup-linux-powerpc64le-gnu@4.18.1: + resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.18.1: + resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.18.1: + resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.18.1: + resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-x64-gnu@4.6.1: resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} cpu: [x64] @@ -3890,6 +3267,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-x64-musl@4.18.1: + resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-x64-musl@4.6.1: resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} cpu: [x64] @@ -3898,6 +3283,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-arm64-msvc@4.18.1: + resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-arm64-msvc@4.6.1: resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} cpu: [arm64] @@ -3906,6 +3299,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-ia32-msvc@4.18.1: + resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-ia32-msvc@4.6.1: resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} cpu: [ia32] @@ -3914,6 +3315,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-x64-msvc@4.18.1: + resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-x64-msvc@4.6.1: resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} cpu: [x64] @@ -3922,61 +3331,42 @@ packages: dev: true optional: true - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - /@sinonjs/commons@3.0.0: - resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} - dependencies: - type-detect: 4.0.8 - - /@sinonjs/fake-timers@10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - dependencies: - '@sinonjs/commons': 3.0.0 - - /@supabase/auth-helpers-nextjs@0.8.7(@supabase/supabase-js@2.38.5): + /@supabase/auth-helpers-nextjs@0.8.7(@supabase/supabase-js@2.44.3): resolution: {integrity: sha512-iYdOjFo0GkRvha340l8JdCiBiyXQuG9v8jnq7qMJ/2fakrskRgHTCOt7ryWbip1T6BExcWKC8SoJrhCzPOxhhg==} peerDependencies: '@supabase/supabase-js': ^2.19.0 dependencies: - '@supabase/auth-helpers-shared': 0.6.3(@supabase/supabase-js@2.38.5) - '@supabase/supabase-js': 2.38.5 + '@supabase/auth-helpers-shared': 0.6.3(@supabase/supabase-js@2.44.3) + '@supabase/supabase-js': 2.44.3 set-cookie-parser: 2.6.0 dev: false - /@supabase/auth-helpers-react@0.4.2(@supabase/supabase-js@2.38.5): + /@supabase/auth-helpers-react@0.4.2(@supabase/supabase-js@2.44.3): resolution: {integrity: sha512-zRj1leYMKJVYQeHFvZiUzlmHM+ATWFR/V7Q9F0yXSWEnMcNHL0CKnIBqhkjtSQ2trE+YaoCvFEHjxISppxIZXQ==} peerDependencies: '@supabase/supabase-js': ^2.19.0 dependencies: - '@supabase/supabase-js': 2.38.5 + '@supabase/supabase-js': 2.44.3 dev: false - /@supabase/auth-helpers-shared@0.6.3(@supabase/supabase-js@2.38.5): + /@supabase/auth-helpers-shared@0.6.3(@supabase/supabase-js@2.44.3): resolution: {integrity: sha512-xYQRLFeFkL4ZfwC7p9VKcarshj3FB2QJMgJPydvOY7J5czJe6xSG5/wM1z63RmAzGbCkKg+dzpq61oeSyWiGBQ==} peerDependencies: '@supabase/supabase-js': ^2.19.0 dependencies: - '@supabase/supabase-js': 2.38.5 + '@supabase/supabase-js': 2.44.3 jose: 4.15.4 dev: false - /@supabase/functions-js@2.1.5: - resolution: {integrity: sha512-BNzC5XhCzzCaggJ8s53DP+WeHHGT/NfTsx2wUSSGKR2/ikLFQTBCDzMvGz/PxYMqRko/LwncQtKXGOYp1PkPaw==} - dependencies: - '@supabase/node-fetch': 2.6.15 - - /@supabase/gotrue-js@2.62.2: - resolution: {integrity: sha512-AP6e6W9rQXFTEJ7sTTNYQrNf0LCcnt1hUW+RIgUK+Uh3jbWvcIST7wAlYyNZiMlS9+PYyymWQ+Ykz/rOYSO0+A==} + /@supabase/auth-js@2.64.2: + resolution: {integrity: sha512-s+lkHEdGiczDrzXJ1YWt2y3bxRi+qIUnXcgkpLSrId7yjBeaXBFygNjTaoZLG02KNcYwbuZ9qkEIqmj2hF7svw==} dependencies: '@supabase/node-fetch': 2.6.15 - /@supabase/node-fetch@2.6.14: - resolution: {integrity: sha512-w/Tsd22e/5fAeoxqQ4P2MX6EyF+iM6rc9kmlMVFkHuG0rAltt2TLhFbDJfemnHbtvnazWaRfy5KnFU/SYT37dQ==} - engines: {node: 4.x || >=6.0.0} + /@supabase/functions-js@2.4.1: + resolution: {integrity: sha512-8sZ2ibwHlf+WkHDUZJUXqqmPvWQ3UHN0W30behOJngVh/qHHekhJLCFbh0AjkE9/FqqXtf9eoVvmYgfCLk5tNA==} dependencies: - whatwg-url: 5.0.0 + '@supabase/node-fetch': 2.6.15 /@supabase/node-fetch@2.6.15: resolution: {integrity: sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==} @@ -3984,13 +3374,13 @@ packages: dependencies: whatwg-url: 5.0.0 - /@supabase/postgrest-js@1.9.0: - resolution: {integrity: sha512-axP6cU69jDrLbfihJKQ6vU27tklD0gzb9idkMN363MtTXeJVt5DQNT3JnJ58JVNBdL74hgm26rAsFNvHk+tnSw==} + /@supabase/postgrest-js@1.15.8: + resolution: {integrity: sha512-YunjXpoQjQ0a0/7vGAvGZA2dlMABXFdVI/8TuVKtlePxyT71sl6ERl6ay1fmIeZcqxiuFQuZw/LXUuStUG9bbg==} dependencies: - '@supabase/node-fetch': 2.6.14 + '@supabase/node-fetch': 2.6.15 - /@supabase/realtime-js@2.9.3: - resolution: {integrity: sha512-lAp50s2n3FhGJFq+wTSXLNIDPw5Y0Wxrgt44eM5nLSA3jZNUUP3Oq2Ccd1CbZdVntPCWLZvJaU//pAd2NE+QnQ==} + /@supabase/realtime-js@2.10.2: + resolution: {integrity: sha512-qyCQaNg90HmJstsvr2aJNxK2zgoKh9ZZA8oqb7UT2LCh3mj9zpa3Iwu167AuyNxsxrUE8eEJ2yH6wLCij4EApA==} dependencies: '@supabase/node-fetch': 2.6.15 '@types/phoenix': 1.6.4 @@ -4000,20 +3390,20 @@ packages: - bufferutil - utf-8-validate - /@supabase/storage-js@2.5.5: - resolution: {integrity: sha512-OpLoDRjFwClwc2cjTJZG8XviTiQH4Ik8sCiMK5v7et0MDu2QlXjCAW3ljxJB5+z/KazdMOTnySi+hysxWUPu3w==} + /@supabase/storage-js@2.6.0: + resolution: {integrity: sha512-REAxr7myf+3utMkI2oOmZ6sdplMZZ71/2NEIEMBZHL9Fkmm3/JnaOZVSRqvG4LStYj2v5WhCruCzuMn6oD/Drw==} dependencies: '@supabase/node-fetch': 2.6.15 - /@supabase/supabase-js@2.38.5: - resolution: {integrity: sha512-QTXld3AfwAJgeOGyOKsCcT7AjC3jJxN02iHy299Fw+qKX0lJ1tVVhMGlga101C1stUCvgzjcypmMSGiZ2oeKsw==} + /@supabase/supabase-js@2.44.3: + resolution: {integrity: sha512-3tYf5ojKSL0RJIpnkwYSdLPdRcza8KMTdRx2SyF9YA6PWnuUfqzmqjZohAHJuGql2CaPMWd9BLPOHupPuGq0lQ==} dependencies: - '@supabase/functions-js': 2.1.5 - '@supabase/gotrue-js': 2.62.2 + '@supabase/auth-js': 2.64.2 + '@supabase/functions-js': 2.4.1 '@supabase/node-fetch': 2.6.15 - '@supabase/postgrest-js': 1.9.0 - '@supabase/realtime-js': 2.9.3 - '@supabase/storage-js': 2.5.5 + '@supabase/postgrest-js': 1.15.8 + '@supabase/realtime-js': 2.10.2 + '@supabase/storage-js': 2.6.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -4070,39 +3460,6 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.4.0(@types/jest@29.5.0)(jest@29.7.0): - resolution: {integrity: sha512-GgGT3OR8qhIjk2SBMy51AYDWoMnAyR/cwjZO4SttuBmIQ9wWy9QmVOeaSbgT5Bm0J6qLBaf4+dsJWfisvafoaA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - peerDependencies: - '@jest/globals': '>= 28' - '@types/bun': latest - '@types/jest': '>= 28' - jest: '>= 28' - vitest: '>= 0.32' - peerDependenciesMeta: - '@jest/globals': - optional: true - '@types/bun': - optional: true - '@types/jest': - optional: true - jest: - optional: true - vitest: - optional: true - dependencies: - '@adobe/css-tools': 4.3.2 - '@babel/runtime': 7.23.5 - '@types/jest': 29.5.0 - aria-query: 5.3.0 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - jest: 29.7.0 - lodash: 4.17.21 - redent: 3.0.0 - dev: true - /@testing-library/react@14.3.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-AYJGvNFMbCa5vt1UtDCa/dcaABrXq8gph6VN+cffIx0UeA0qiGqS+sT60+sb+Gjc8tGXdECWYQgaF0khf8b+Lg==} engines: {node: '>=14'} @@ -4136,11 +3493,6 @@ packages: unist-util-visit: 5.0.0 dev: false - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true - /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: @@ -4151,31 +3503,6 @@ packages: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} dev: true - /@types/babel__core@7.1.19: - resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} - dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.18.0 - - /@types/babel__generator@7.6.4: - resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} - dependencies: - '@babel/types': 7.23.0 - - /@types/babel__template@7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - - /@types/babel__traverse@7.18.0: - resolution: {integrity: sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==} - dependencies: - '@babel/types': 7.23.0 - /@types/d3-scale-chromatic@3.0.1: resolution: {integrity: sha512-Ob7OrwiTeQXY/WBBbRHGZBOn6rH1h7y3jjpTSKYqDEeqFjktql6k2XSgNwLrLDmAsXhEn8P9NHDY4VTuo0ZY1w==} dev: false @@ -4204,17 +3531,15 @@ packages: /@types/estree@1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - dev: false + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true /@types/flat@5.0.2: resolution: {integrity: sha512-3zsplnP2djeps5P9OyarTxwRpMLoe5Ash8aL9iprw0JxB+FAHjY+ifn4yZUuW4/9hqtnmor6uvjSRzJhiVbrEQ==} dev: true - /@types/graceful-fs@4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - dependencies: - '@types/node': 20.10.1 - /@types/hast@2.3.4: resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} dependencies: @@ -4227,41 +3552,10 @@ packages: '@types/unist': 2.0.6 dev: false - /@types/istanbul-lib-coverage@2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - - /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - /@types/istanbul-lib-report@3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - /@types/istanbul-reports@3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - /@types/jest@29.5.0: - resolution: {integrity: sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg==} - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - dev: true - /@types/js-yaml@4.0.5: resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: false - /@types/jsdom@20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - dependencies: - '@types/node': 20.10.1 - '@types/tough-cookie': 4.0.5 - parse5: 7.1.2 - dev: true - /@types/katex@0.11.1: resolution: {integrity: sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg==} dev: false @@ -4302,19 +3596,10 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - /@types/node@20.10.1: - resolution: {integrity: sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==} - dependencies: - undici-types: 5.26.5 - - /@types/node@20.9.2: - resolution: {integrity: sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==} + /@types/node@20.11.19: + resolution: {integrity: sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==} dependencies: undici-types: 5.26.5 - dev: true /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4326,46 +3611,22 @@ packages: /@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom@18.3.0: resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.3 dev: true - /@types/react@18.0.28: - resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.0 - - /@types/react@18.2.0: - resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==} + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} dependencies: '@types/prop-types': 15.7.11 - '@types/scheduler': 0.16.8 csstype: 3.1.2 - /@types/scheduler@0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - - /@types/scheduler@0.16.8: - resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - /@types/semver@7.5.4: resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} dev: true - /@types/stack-utils@2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - - /@types/tough-cookie@4.0.5: - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - dev: true - /@types/unist@2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: false @@ -4381,15 +3642,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.10.1 - - /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - dependencies: - '@types/yargs-parser': 21.0.3 + '@types/node': 20.11.19 /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -4419,15 +3672,69 @@ packages: server-only: 0.0.1 dev: false - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + /@vitest/coverage-istanbul@2.0.2(vitest@2.0.2): + resolution: {integrity: sha512-9TZC/4CT9j7GZYwh1fYtxNtRoSi7T4evF5M/rxOOAvgejJFxM/ysXSvdyV/HXWkEbH/Be8uKnd+v/TyYyrglGA==} + peerDependencies: + vitest: 2.0.2 + dependencies: + '@istanbuljs/schema': 0.1.3 + debug: 4.3.5 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magicast: 0.3.4 + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.0.2(happy-dom@14.12.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/expect@2.0.2: + resolution: {integrity: sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==} + dependencies: + '@vitest/spy': 2.0.2 + '@vitest/utils': 2.0.2 + chai: 5.1.1 + tinyrainbow: 1.2.0 + dev: true + + /@vitest/pretty-format@2.0.2: + resolution: {integrity: sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==} + dependencies: + tinyrainbow: 1.2.0 + dev: true + + /@vitest/runner@2.0.2: + resolution: {integrity: sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==} + dependencies: + '@vitest/utils': 2.0.2 + pathe: 1.1.2 + dev: true + + /@vitest/snapshot@2.0.2: + resolution: {integrity: sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==} + dependencies: + '@vitest/pretty-format': 2.0.2 + magic-string: 0.30.10 + pathe: 1.1.2 + dev: true + + /@vitest/spy@2.0.2: + resolution: {integrity: sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==} + dependencies: + tinyspy: 3.0.0 dev: true - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + /@vitest/utils@2.0.2: + resolution: {integrity: sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==} dependencies: - acorn: 8.8.1 - acorn-walk: 8.2.0 + '@vitest/pretty-format': 2.0.2 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 dev: true /acorn-jsx@5.3.2(acorn@8.10.0): @@ -4438,43 +3745,17 @@ packages: acorn: 8.10.0 dev: false - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: true - /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: false - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /acorn@8.8.1: - resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: true @@ -4484,15 +3765,10 @@ packages: engines: {node: '>=6'} dev: true - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + dev: true /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} @@ -4514,10 +3790,12 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + dev: true /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} @@ -4567,12 +3845,6 @@ packages: deep-equal: 2.2.0 dev: true - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - dependencies: - dequal: 2.0.3 - dev: true - /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: @@ -4613,15 +3885,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + dev: true + /astring@1.8.4: resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==} hasBin: true dev: false - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true - /autoprefixer@10.4.13(postcss@8.4.21): resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} engines: {node: ^10 || ^12 || >=14} @@ -4643,73 +3916,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /babel-jest@29.7.0(@babel/core@7.23.5): - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.23.5 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.1.19 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.5) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.18.9 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.0 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.18.0 - - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.5): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) - - /babel-preset-jest@29.6.3(@babel/core@7.23.5): - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.5 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) - /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: false @@ -4785,39 +3991,16 @@ packages: update-browserslist-db: 1.0.10(browserslist@4.21.5) dev: true - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001599 - electron-to-chromium: 1.4.563 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) - - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001628 - electron-to-chromium: 1.4.790 + caniuse-lite: 1.0.30001641 + electron-to-chromium: 1.4.827 node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) - - /bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - dependencies: - fast-json-stable-stringify: 2.1.0 - - /bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + update-browserslist-db: 1.1.0(browserslist@4.23.2) + dev: true /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -4855,10 +4038,6 @@ packages: get-intrinsic: 1.2.1 dev: true - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - /camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} @@ -4875,10 +4054,7 @@ packages: /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + dev: true /caniuse-lite@1.0.30001464: resolution: {integrity: sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==} @@ -4889,14 +4065,27 @@ packages: /caniuse-lite@1.0.30001599: resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} + dev: false - /caniuse-lite@1.0.30001628: - resolution: {integrity: sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==} + /caniuse-lite@1.0.30001641: + resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} + dev: true /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: false + /chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + dev: true + /chalk@2.3.0: resolution: {integrity: sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==} engines: {node: '>=4'} @@ -4913,13 +4102,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - - /chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 dev: true /chalk@4.1.2: @@ -4928,10 +4110,7 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + dev: true /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -4953,6 +4132,11 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true + /check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + dev: true + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -4979,9 +4163,7 @@ packages: /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - - /cjs-module-lexer@1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} + dev: true /class-variance-authority@0.7.0: resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} @@ -5016,6 +4198,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} @@ -5037,13 +4220,13 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /cmdk@0.1.22(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): + /cmdk@0.1.22(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-F0ffliBO/U6SXKGRud9AjsNuINvfF+d9BVUgi/y2+v3TSBHVOmIXl43CWLEyEEIOwc2DTnlXvIQenhGAEpwW0Q==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@radix-ui/react-dialog': 1.0.0(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.0(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0) command-score: 0.1.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5051,27 +4234,6 @@ packages: - '@types/react' dev: false - /cmdk@0.1.22(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-F0ffliBO/U6SXKGRud9AjsNuINvfF+d9BVUgi/y2+v3TSBHVOmIXl43CWLEyEEIOwc2DTnlXvIQenhGAEpwW0Q==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@radix-ui/react-dialog': 1.0.0(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) - command-score: 0.1.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - /collect-v8-coverage@1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -5104,13 +4266,6 @@ packages: color-string: 1.9.1 dev: false - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: true - /comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: false @@ -5140,13 +4295,9 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /convert-source-map@1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 - /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true /core-js-pure@3.24.1: resolution: {integrity: sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==} @@ -5165,24 +4316,6 @@ packages: layout-base: 2.0.1 dev: false - /create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.1) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -5197,9 +4330,6 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - - /css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true /cssesc@3.0.0: @@ -5207,24 +4337,6 @@ packages: engines: {node: '>=4'} hasBin: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - dev: true - - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - - /csstype@3.1.0: - resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} - /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} @@ -5559,15 +4671,6 @@ packages: engines: {node: '>= 12'} dev: true - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - dev: true - /dayjs@1.11.10: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false @@ -5582,6 +4685,7 @@ packages: optional: true dependencies: ms: 2.1.2 + dev: true /debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} @@ -5607,10 +4711,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true - /decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: @@ -5624,13 +4724,10 @@ packages: mimic-response: 3.1.0 dev: false - /dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true + /deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + dev: true /deep-equal@2.2.0: resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} @@ -5659,10 +4756,6 @@ packages: engines: {node: '>=4.0.0'} dev: false - /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==} dependencies: @@ -5693,14 +4786,10 @@ packages: robust-predicates: 3.0.2 dev: false - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: true - /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + dev: false /detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} @@ -5712,10 +4801,6 @@ packages: engines: {node: '>=8'} dev: false - /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - /detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: false @@ -5729,10 +4814,6 @@ packages: /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - /diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} @@ -5752,17 +4833,6 @@ packages: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dev: true - /dom-accessibility-api@0.6.3: - resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dev: true - - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - dependencies: - webidl-conversions: 7.0.0 - dev: true - /dompurify@3.0.6: resolution: {integrity: sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==} dev: false @@ -5785,22 +4855,17 @@ packages: resolution: {integrity: sha512-K1C03NT4I7BuzsRdCU5RWkgZxtswnKDYM6/eMhkEXqKu4e5T+ck610x3FPzu1y7HVFSiQKZqP16gnJzPpji1TQ==} dev: true - /electron-to-chromium@1.4.563: - resolution: {integrity: sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==} - - /electron-to-chromium@1.4.790: - resolution: {integrity: sha512-eVGeQxpaBYbomDBa/Mehrs28MdvCXfJmEFzaMFsv8jH/MJDLIylJN81eTJ5kvx7B7p18OiPK0BkC06lydEy63A==} + /electron-to-chromium@1.4.827: + resolution: {integrity: sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==} + dev: true /elkjs@0.8.2: resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==} dev: false - /emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -5820,14 +4885,15 @@ packages: strip-ansi: 6.0.1 dev: true - /entities@4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true /es-abstract@1.22.2: resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} @@ -5940,50 +5006,63 @@ packages: '@esbuild/win32-arm64': 0.19.8 '@esbuild/win32-ia32': 0.19.8 '@esbuild/win32-x64': 0.19.8 + dev: true + + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + dev: true /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + dev: true /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + dev: true /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - /escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} dev: false - /escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - /estree-util-attach-comments@2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: @@ -6028,12 +5107,6 @@ packages: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.0 - dev: false - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true /execa@0.8.0: resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} @@ -6061,26 +5134,28 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true - /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + 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 + dev: true /expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} dev: false - /expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -6120,19 +5195,11 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 - /fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - dependencies: - bser: 2.1.1 - /fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -6153,6 +5220,7 @@ packages: 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==} @@ -6196,15 +5264,6 @@ packages: signal-exit: 4.1.0 dev: true - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -6269,10 +5328,16 @@ packages: /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + dev: true /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} @@ -6288,10 +5353,6 @@ packages: engines: {node: '>=6'} dev: false - /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - /get-stream@3.0.0: resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} engines: {node: '>=4'} @@ -6300,6 +5361,12 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} @@ -6346,16 +5413,16 @@ packages: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: false - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + /glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 dev: true /glob@7.1.6: @@ -6368,19 +5435,10 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + dev: true /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} @@ -6424,6 +5482,15 @@ packages: strip-bom-string: 1.0.0 dev: false + /happy-dom@14.12.3: + resolution: {integrity: sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==} + engines: {node: '>=16.0.0'} + dependencies: + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 + dev: true + /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -6441,10 +5508,12 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + dev: true /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} @@ -6618,47 +5687,20 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - dependencies: - whatwg-encoding: 2.0.0 - dev: true - /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true /html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} dev: false - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - 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'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /https-proxy-agent@7.0.4: resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: true @@ -6670,6 +5712,12 @@ packages: /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -6683,6 +5731,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: false /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6693,17 +5742,10 @@ packages: engines: {node: '>= 4'} dev: true - /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + dev: true /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} @@ -6784,6 +5826,7 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -6847,10 +5890,7 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - - /is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} + dev: true /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -6902,10 +5942,6 @@ packages: engines: {node: '>=12'} dev: false - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true - /is-reference@3.0.1: resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} dependencies: @@ -6944,6 +5980,12 @@ packages: /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -6981,500 +6023,85 @@ packages: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 - dev: true - - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - dev: true - - /is-what@4.1.12: - resolution: {integrity: sha512-w7JwFt3gIzbzpp+I//2Ov2UeTGgKM10PxJRD6yf7yGruT3415CdT8TDR6F9/mBAakZKsIaysQVVvxryctQUbnw==} - engines: {node: '>=12.13'} - dev: false - - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - - /istanbul-lib-instrument@5.2.0: - resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.23.2 - '@babel/parser': 7.23.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /istanbul-lib-instrument@6.0.0: - resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==} - engines: {node: '>=10'} - dependencies: - '@babel/core': 7.23.2 - '@babel/parser': 7.23.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - /istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} - dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - - /istanbul-reports@3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - - /jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - - /jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 17.0.45 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.1 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.0.1 - slash: 3.0.0 - stack-utils: 2.0.5 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - /jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0 - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.1) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - /jest-config@29.7.0(@types/node@20.10.1): - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.23.5 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.10.1 - babel-jest: 29.7.0(@babel/core@7.23.5) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - /jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - detect-newline: 3.1.0 - - /jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - - /jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/jsdom': 20.0.1 - '@types/node': 20.10.1 - jest-mock: 29.7.0 - jest-util: 29.7.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 17.0.45 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - /jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.1 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - /jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - /jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - /jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.23.5 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.5 - - /jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.10.1 - jest-util: 29.7.0 - - /jest-pnp-resolver@1.2.2(jest-resolve@29.7.0): - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: - jest-resolve: 29.7.0 + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true - /jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /is-what@4.1.12: + resolution: {integrity: sha512-w7JwFt3gIzbzpp+I//2Ov2UeTGgKM10PxJRD6yf7yGruT3415CdT8TDR6F9/mBAakZKsIaysQVVvxryctQUbnw==} + engines: {node: '>=12.13'} + dev: false - /jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true - /jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.2(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - slash: 3.0.0 + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true - /jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.10.1 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 17.0.45 - chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - /jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) - '@babel/types': 7.23.5 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 + /istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.24.8 + '@babel/parser': 7.24.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 semver: 7.5.4 transitivePeerDependencies: - supports-color + dev: true - /jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.10.1 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true - /jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - /jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 17.0.45 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.5 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + dev: true - /jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: - '@types/node': 17.0.45 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true - /jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + /jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true /jiti@1.20.0: resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} @@ -7506,59 +6133,21 @@ packages: argparse: 2.0.1 dev: false - /jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.11.2 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.4.3 - domexception: 4.0.0 - escodegen: 2.1.0 - form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 - parse5: 7.1.2 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.3 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.14.2 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + dev: true /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + dev: true /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -7592,10 +6181,6 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -7608,10 +6193,6 @@ packages: resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} dev: false - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -7644,6 +6225,7 @@ packages: engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: true /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -7660,9 +6242,6 @@ packages: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: false - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - /lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true @@ -7673,6 +6252,7 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -7684,9 +6264,14 @@ packages: dependencies: js-tokens: 4.0.0 - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} + /loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} dev: true /lru-cache@4.1.5: @@ -7699,6 +6284,7 @@ packages: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 + dev: true /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -7719,19 +6305,26 @@ packages: hasBin: true dev: true - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: - semver: 6.3.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + /magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + dependencies: + '@babel/parser': 7.24.8 + '@babel/types': 7.24.8 + source-map-js: 1.2.0 + dev: true - /makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - tmpl: 1.0.5 + semver: 7.5.4 + dev: true /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} @@ -7992,6 +6585,7 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -8375,7 +6969,7 @@ packages: resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} dependencies: '@types/debug': 4.1.7 - debug: 4.3.4 + debug: 4.3.5 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.0.6 micromark-factory-space: 1.0.0 @@ -8402,21 +6996,15 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: true - - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: true - /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} @@ -8433,8 +7021,8 @@ packages: dependencies: brace-expansion: 1.1.11 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -8453,11 +7041,6 @@ packages: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: false - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true - /minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -8512,13 +7095,16 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} dev: false - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /next-mdx-remote@4.4.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ==} engines: {node: '>=14', npm: '>=7'} @@ -8746,18 +7332,13 @@ packages: formdata-polyfill: 4.0.10 dev: true - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - /node-releases@2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true /non-layered-tidy-tree-layout@2.0.2: resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} @@ -8798,16 +7379,20 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true + + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true /npm-to-yarn@2.1.0: resolution: {integrity: sha512-2C1IgJLdJngq1bSER7K7CGFszRr9s2rijEwvENPEgI0eK9xlD3tNwDc0UJnRj7FIT2aydWm72jB88uVswAhXHA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - dev: true - /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -8853,6 +7438,14 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} @@ -8880,6 +7473,7 @@ packages: engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: true /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} @@ -8892,6 +7486,7 @@ packages: engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} @@ -8908,6 +7503,11 @@ packages: /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + dev: true + + /package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + dev: true /parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} @@ -8930,6 +7530,7 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true /parse-numeric-range@1.3.0: resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} @@ -8950,11 +7551,13 @@ packages: /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: - entities: 4.4.0 + entities: 4.5.0 + dev: false /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + dev: true /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} @@ -8968,16 +7571,22 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.1.0 - minipass: 7.0.4 + lru-cache: 10.4.3 + minipass: 7.1.2 dev: true /path-type@4.0.0: @@ -8985,6 +7594,15 @@ packages: engines: {node: '>=8'} dev: true + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true + + /pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + dev: true + /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: @@ -8998,6 +7616,7 @@ packages: /picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -9021,6 +7640,7 @@ packages: engines: {node: '>=8'} dependencies: find-up: 4.1.0 + dev: true /postcss-import@15.1.0(postcss@8.4.31): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} @@ -9111,6 +7731,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: true + /prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} engines: {node: '>=10'} @@ -9155,21 +7784,6 @@ packages: react-is: 17.0.2 dev: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - /property-information@6.2.0: resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} dev: false @@ -9181,10 +7795,6 @@ packages: /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true - /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -9197,13 +7807,6 @@ packages: engines: {node: '>=6'} dev: true - /pure-rand@6.0.1: - resolution: {integrity: sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==} - - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -9244,26 +7847,7 @@ packages: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - /react-remove-scroll-bar@2.3.4(@types/react@18.0.28)(react@18.2.0): - resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.28 - react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.2.0) - tslib: 2.5.0 - dev: false - - /react-remove-scroll-bar@2.3.4(@types/react@18.2.0)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.3.3)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -9273,32 +7857,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 - react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.0)(react@18.2.0) - tslib: 2.5.0 - dev: false - - /react-remove-scroll@2.5.4(@types/react@18.0.28)(react@18.2.0): - resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.3 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.0.28)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.2.0) tslib: 2.5.0 - use-callback-ref: 1.3.0(@types/react@18.0.28)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.0.28)(react@18.2.0) dev: false - /react-remove-scroll@2.5.4(@types/react@18.2.0)(react@18.2.0): + /react-remove-scroll@2.5.4(@types/react@18.3.3)(react@18.2.0): resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} engines: {node: '>=10'} peerDependencies: @@ -9308,35 +7873,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 - react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.0)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.0)(react@18.2.0) - tslib: 2.5.0 - use-callback-ref: 1.3.0(@types/react@18.2.0)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.0)(react@18.2.0) - dev: false - - /react-remove-scroll@2.5.5(@types/react@18.0.28)(react@18.2.0): - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.3 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.0.28)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.3.3)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.2.0) tslib: 2.5.0 - use-callback-ref: 1.3.0(@types/react@18.0.28)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.0.28)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.3.3)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.2.0) dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.0)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.3.3)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -9346,33 +7892,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 - react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.0)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.0)(react@18.2.0) - tslib: 2.5.0 - use-callback-ref: 1.3.0(@types/react@18.2.0)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.0)(react@18.2.0) - dev: false - - /react-style-singleton@2.2.1(@types/react@18.0.28)(react@18.2.0): - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.28 - get-nonce: 1.0.1 - invariant: 2.2.4 + '@types/react': 18.3.3 react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.3.3)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.2.0) tslib: 2.5.0 + use-callback-ref: 1.3.0(@types/react@18.3.3)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.2.0) dev: false - /react-style-singleton@2.2.1(@types/react@18.2.0)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -9382,7 +7911,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.3 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -9573,28 +8102,16 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + dev: true /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: true - - /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - - /resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} + dev: true /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} @@ -9613,13 +8130,39 @@ packages: engines: {node: '>=14.18'} hasBin: true dependencies: - glob: 10.3.10 + glob: 10.4.5 dev: true /robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} dev: false + /rollup@4.18.1: + resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.18.1 + '@rollup/rollup-android-arm64': 4.18.1 + '@rollup/rollup-darwin-arm64': 4.18.1 + '@rollup/rollup-darwin-x64': 4.18.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 + '@rollup/rollup-linux-arm-musleabihf': 4.18.1 + '@rollup/rollup-linux-arm64-gnu': 4.18.1 + '@rollup/rollup-linux-arm64-musl': 4.18.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 + '@rollup/rollup-linux-riscv64-gnu': 4.18.1 + '@rollup/rollup-linux-s390x-gnu': 4.18.1 + '@rollup/rollup-linux-x64-gnu': 4.18.1 + '@rollup/rollup-linux-x64-musl': 4.18.1 + '@rollup/rollup-win32-arm64-msvc': 4.18.1 + '@rollup/rollup-win32-ia32-msvc': 4.18.1 + '@rollup/rollup-win32-x64-msvc': 4.18.1 + fsevents: 2.3.3 + dev: true + /rollup@4.6.1: resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -9666,9 +8209,6 @@ packages: isarray: 2.0.5 dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: false @@ -9684,13 +8224,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - dependencies: - xmlchars: 2.2.0 - dev: true - /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -9718,6 +8251,7 @@ packages: /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + dev: true /semver@7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} @@ -9781,6 +8315,7 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} @@ -9789,6 +8324,7 @@ packages: /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + dev: true /shiki@0.14.5: resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==} @@ -9807,6 +8343,10 @@ packages: object-inspect: 1.13.0 dev: true + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -9833,9 +8373,6 @@ packages: is-arrayish: 0.3.2 dev: false - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -9864,15 +8401,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + dev: true /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -9922,11 +8454,13 @@ packages: /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - /stack-utils@2.0.5: - resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} @@ -9946,13 +8480,6 @@ packages: engines: {node: '>=10.0.0'} dev: false - /string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -9960,6 +8487,7 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -10013,6 +8541,7 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} @@ -10031,10 +8560,6 @@ packages: engines: {node: '>=4'} dev: true - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - /strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -10043,6 +8568,12 @@ packages: /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -10056,10 +8587,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - /style-to-object@0.4.1: resolution: {integrity: sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==} dependencies: @@ -10100,8 +8627,8 @@ packages: pirates: 4.0.5 ts-interface-checker: 0.1.13 - /supabase@1.172.2: - resolution: {integrity: sha512-h2J6kKEikXnZyurUcCYg215qkQpINOhdWkiclHcWAuVeqXsNrfrYaf1s0qbbcdRyMtrVW48I+VdVTw71Cnn20Q==} + /supabase@1.183.5: + resolution: {integrity: sha512-PYhxHHoSaEJSoDDQ+SN8iumfSmVQ8cHmBFB/GKhKZV2rDcVAPqe7HiEje37IuXCenOSamdvN8jQ8548tcsq4xw==} engines: {npm: '>=8'} hasBin: true requiresBuild: true @@ -10109,7 +8636,7 @@ packages: bin-links: 4.0.3 https-proxy-agent: 7.0.4 node-fetch: 3.3.2 - tar: 7.2.0 + tar: 7.4.0 transitivePeerDependencies: - supports-color dev: true @@ -10126,18 +8653,14 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 + dev: true /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -10171,10 +8694,6 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true - /tailwind-merge@1.10.0: resolution: {integrity: sha512-WFnDXSS4kFTZwjKg5/oZSGzBRU/l+qcbv5NVTzLUQvJ9yovDAP05h0F2+ZFW0Lw9EcgRoc2AfURUdZvnEFrXKg==} dev: false @@ -10268,8 +8787,8 @@ packages: readable-stream: 3.6.1 dev: false - /tar@7.2.0: - resolution: {integrity: sha512-hctwP0Nb4AB60bj8WQgRYaMOuJYRAPMGiQUAotms5igN8ppfQM+IvjQ5HcKu1MaZh2Wy2KWVTe563Yj8dfc14w==} + /tar@7.4.0: + resolution: {integrity: sha512-XQs0S8fuAkQWuqhDeCdMlJXDX80D7EOVLDPVFkna9yQfzS+PHKgfxcei0jf6/+QAWcjqrnC8uM3fSAnrQl+XYg==} engines: {node: '>=18'} dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -10285,13 +8804,14 @@ packages: engines: {node: '>=8'} dev: true - /test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + /test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 + glob: 10.4.5 + minimatch: 9.0.5 + dev: true /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -10304,6 +8824,25 @@ packages: dependencies: any-promise: 1.3.0 + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + dev: true + + /tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + dev: true + + /tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + engines: {node: '>=14.0.0'} + dev: true + /title@3.5.3: resolution: {integrity: sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q==} hasBin: true @@ -10326,12 +8865,10 @@ packages: os-tmpdir: 1.0.2 dev: true - /tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + dev: true /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -10339,16 +8876,6 @@ packages: dependencies: is-number: 7.0.0 - /tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} - dependencies: - psl: 1.9.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: true - /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -10358,13 +8885,6 @@ packages: punycode: 2.3.1 dev: true - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - dependencies: - punycode: 2.3.1 - dev: true - /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -10391,75 +8911,6 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - /ts-jest@29.1.0(@babel/core@7.23.5)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2): - resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': 7.23.5 - bs-logger: 0.2.6 - esbuild: 0.19.8 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0 - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.5.4 - typescript: 5.4.2 - yargs-parser: 21.1.1 - dev: true - - /ts-jest@29.1.0(@babel/core@7.24.6)(esbuild@0.19.8)(jest@29.7.0)(typescript@5.4.2): - resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': 7.24.6 - bs-logger: 0.2.6 - esbuild: 0.19.8 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0 - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.5.4 - typescript: 5.4.2 - yargs-parser: 21.1.1 - /tslib@2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: false @@ -10523,79 +8974,71 @@ packages: safe-buffer: 5.2.1 dev: false - /turbo-darwin-64@1.10.16: - resolution: {integrity: sha512-+Jk91FNcp9e9NCLYlvDDlp2HwEDp14F9N42IoW3dmHI5ZkGSXzalbhVcrx3DOox3QfiNUHxzWg4d7CnVNCuuMg==} + /turbo-darwin-64@2.0.6: + resolution: {integrity: sha512-XpgBwWj3Ggmz/gQVqXdMKXHC1iFPMDiuwugLwSzE7Ih0O13JuNtYZKhQnopvbDQnFQCeRq2Vsm5OTWabg/oB/g==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.10.16: - resolution: {integrity: sha512-jqGpFZipIivkRp/i+jnL8npX0VssE6IAVNKtu573LXtssZdV/S+fRGYA16tI46xJGxSAivrZ/IcgZrV6Jk80bw==} + /turbo-darwin-arm64@2.0.6: + resolution: {integrity: sha512-RfeZYXIAkiA21E8lsvfptGTqz/256YD+eI1x37fedfvnHFWuIMFZGAOwJxtZc6QasQunDZ9TRRREbJNI68tkIw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.10.16: - resolution: {integrity: sha512-PpqEZHwLoizQ6sTUvmImcRmACyRk9EWLXGlqceogPZsJ1jTRK3sfcF9fC2W56zkSIzuLEP07k5kl+ZxJd8JMcg==} + /turbo-linux-64@2.0.6: + resolution: {integrity: sha512-92UDa0xNQQbx0HdSp9ag3YSS3xPdavhc7q9q9mxIAcqyjjD6VElA4Y85m4F/DDGE5SolCrvBz2sQhVmkOd6Caw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.10.16: - resolution: {integrity: sha512-TMjFYz8to1QE0fKVXCIvG/4giyfnmqcQIwjdNfJvKjBxn22PpbjeuFuQ5kNXshUTRaTJihFbuuCcb5OYFNx4uw==} + /turbo-linux-arm64@2.0.6: + resolution: {integrity: sha512-eQKu6utCVUkIH2kqOzD8OS6E0ba6COjWm6PRDTNCHQRljZW503ycaTUIdMOiJrVg1MkEjDyOReUg8s8D18aJ4Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.10.16: - resolution: {integrity: sha512-+jsf68krs0N66FfC4/zZvioUap/Tq3sPFumnMV+EBo8jFdqs4yehd6+MxIwYTjSQLIcpH8KoNMB0gQYhJRLZzw==} + /turbo-windows-64@2.0.6: + resolution: {integrity: sha512-+9u4EPrpoeHYCQ46dRcou9kbkSoelhOelHNcbs2d86D6ruYD/oIAHK9qgYK8LeARRz0jxhZIA/dWYdYsxJJWkw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.10.16: - resolution: {integrity: sha512-sKm3hcMM1bl0B3PLG4ifidicOGfoJmOEacM5JtgBkYM48ncMHjkHfFY7HrJHZHUnXM4l05RQTpLFoOl/uIo2HQ==} + /turbo-windows-arm64@2.0.6: + resolution: {integrity: sha512-rdrKL+p+EjtdDVg0wQ/7yTbzkIYrnb0Pw4IKcjsy3M0RqUM9UcEi67b94XOAyTa5a0GqJL1+tUj2ebsFGPgZbg==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.10.16: - resolution: {integrity: sha512-2CEaK4FIuSZiP83iFa9GqMTQhroW2QryckVqUydmg4tx78baftTOS0O+oDAhvo9r9Nit4xUEtC1RAHoqs6ZEtg==} + /turbo@2.0.6: + resolution: {integrity: sha512-/Ftmxd5Mq//a9yMonvmwENNUN65jOVTwhhBPQjEtNZutYT9YKyzydFGLyVM1nzhpLWahQSMamRc/RDBv5EapzA==} hasBin: true optionalDependencies: - turbo-darwin-64: 1.10.16 - turbo-darwin-arm64: 1.10.16 - turbo-linux-64: 1.10.16 - turbo-linux-arm64: 1.10.16 - turbo-windows-64: 1.10.16 - turbo-windows-arm64: 1.10.16 + turbo-darwin-64: 2.0.6 + turbo-darwin-arm64: 2.0.6 + turbo-linux-64: 2.0.6 + turbo-linux-arm64: 2.0.6 + turbo-windows-64: 2.0.6 + turbo-windows-arm64: 2.0.6 dev: true - /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'} dev: true - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -10653,6 +9096,7 @@ packages: resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true + dev: true /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -10803,11 +9247,6 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: true - /update-browserslist-db@1.0.10(browserslist@4.21.5): resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true @@ -10819,49 +9258,18 @@ packages: picocolors: 1.0.0 dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.1 - escalade: 3.1.1 - picocolors: 1.0.0 - - /update-browserslist-db@1.0.16(browserslist@4.23.0): - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + /update-browserslist-db@1.1.0(browserslist@4.23.2): + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 + browserslist: 4.23.2 escalade: 3.1.2 picocolors: 1.0.1 - - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 dev: true - /use-callback-ref@1.3.0(@types/react@18.0.28)(react@18.2.0): - resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.28 - react: 18.2.0 - tslib: 2.5.0 - dev: false - - /use-callback-ref@1.3.0(@types/react@18.2.0)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@18.3.3)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -10871,25 +9279,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.3 react: 18.2.0 tslib: 2.5.0 dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.0.28)(react@18.2.0): - resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.28 - react: 18.2.0 - dev: false - - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.0)(react@18.2.0): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.3.3)(react@18.2.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -10898,27 +9293,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 - react: 18.2.0 - dev: false - - /use-sidecar@1.1.2(@types/react@18.0.28)(react@18.2.0): - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.28 - detect-node-es: 1.1.0 + '@types/react': 18.3.3 react: 18.2.0 - tslib: 2.5.0 dev: false - /use-sidecar@1.1.2(@types/react@18.2.0)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.3.3)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -10928,7 +9307,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.3.3 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.5.0 @@ -10961,14 +9340,6 @@ packages: sade: 1.8.1 dev: false - /v8-to-istanbul@9.0.1: - resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.20 - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 - /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -11029,6 +9400,117 @@ packages: vfile-message: 4.0.2 dev: false + /vite-node@2.0.2: + resolution: {integrity: sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.5 + pathe: 1.1.2 + tinyrainbow: 1.2.0 + vite: 5.3.3 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite@5.3.3: + resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} + 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 + dependencies: + esbuild: 0.21.5 + postcss: 8.4.39 + rollup: 4.18.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@2.0.2(happy-dom@14.12.3): + resolution: {integrity: sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.0.2 + '@vitest/ui': 2.0.2 + 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 + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.2 + '@vitest/pretty-format': 2.0.2 + '@vitest/runner': 2.0.2 + '@vitest/snapshot': 2.0.2 + '@vitest/spy': 2.0.2 + '@vitest/utils': 2.0.2 + chai: 5.1.1 + debug: 4.3.5 + execa: 8.0.1 + happy-dom: 14.12.3 + magic-string: 0.30.10 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.3.3 + vite-node: 2.0.2 + why-is-node-running: 2.3.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: false @@ -11037,18 +9519,6 @@ packages: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: false - /w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - dependencies: - xml-name-validator: 4.0.0 - dev: true - - /walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} @@ -11088,26 +9558,11 @@ packages: engines: {node: '>=12'} dev: true - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - dependencies: - iconv-lite: 0.6.3 - dev: true - /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} dev: true - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - dev: true - /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -11176,6 +9631,16 @@ packages: hasBin: true dependencies: isexe: 2.0.0 + dev: true + + /why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -11193,6 +9658,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} @@ -11206,13 +9672,6 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - /write-file-atomic@5.0.1: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -11221,19 +9680,6 @@ packages: signal-exit: 4.1.0 dev: true - /ws@8.14.2: - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - /ws@8.16.0: resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} @@ -11246,15 +9692,6 @@ packages: utf-8-validate: optional: true - /xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - dev: true - - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true - /xregexp@5.1.1: resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} dependencies: @@ -11268,12 +9705,14 @@ packages: /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + dev: true /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -11298,6 +9737,7 @@ packages: /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + dev: true /yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} @@ -11316,18 +9756,6 @@ packages: yargs-parser: 18.1.3 dev: true - /yargs@17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} diff --git a/turbo.json b/turbo.json index d310dac3..c6705be3 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,7 @@ { "$schema": "https://turborepo.org/schema.json", - "pipeline": { + "globalEnv": ["SUPABASE_URL", "SUPABASE_ANON_KEY"], + "tasks": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"] @@ -19,6 +20,5 @@ "dev": { "cache": false } - }, - "globalEnv": ["SUPABASE_URL", "SUPABASE_ANON_KEY"] + } }