From cf5bc890e841796a57d44e787181806e2680314a Mon Sep 17 00:00:00 2001 From: Douglas Hong Date: Sun, 12 May 2024 17:45:01 -0700 Subject: [PATCH 01/90] Scan dynamo for all ids --- apps/backend/.env.sample | 14 -------------- apps/backend/scripts/migrate.js | 20 ++++++++++++++++++++ apps/backend/src/db/ddb.ts | 26 +++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 15 deletions(-) delete mode 100644 apps/backend/.env.sample create mode 100644 apps/backend/scripts/migrate.js diff --git a/apps/backend/.env.sample b/apps/backend/.env.sample deleted file mode 100644 index c935e3941..000000000 --- a/apps/backend/.env.sample +++ /dev/null @@ -1,14 +0,0 @@ -# Only used to read legacy users. -AA_MONGODB_URI=uri - -# prod | dev | local -STAGE=dev - -# Provided by CDK code when running on AWS. -USERDATA_TABLE_NAME=tablename - -# Provided by Lambda when running on AWS. -AWS_REGION=us-east-1 - -# For Mapbox API -MAPBOX_ACCESS_TOKEN=pk.abc123 \ No newline at end of file diff --git a/apps/backend/scripts/migrate.js b/apps/backend/scripts/migrate.js new file mode 100644 index 000000000..5ea6e9951 --- /dev/null +++ b/apps/backend/scripts/migrate.js @@ -0,0 +1,20 @@ +import { DynamoDBClient, DescribeTableCommand } from '@aws-sdk/client-dynamodb'; // ES Modules import +import env from '../src/env'; + +async function main() { + const client = new DynamoDBClient({ + region: env.AWS_REGION, + }); + + const input = { + // DescribeTableInput + TableName: env.USERDATA_TABLE_NAME, // required + }; + + const command = new DescribeTableCommand(input); + const response = await client.send(command); + + console.log(response); +} + +main(); diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index b26f6e72a..b6f7a2ee4 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -1,6 +1,6 @@ import type { Type } from 'arktype'; import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb'; -import { DynamoDB } from '@aws-sdk/client-dynamodb'; +import { DynamoDB, DescribeTableCommand } from '@aws-sdk/client-dynamodb'; import { UserSchema, @@ -137,6 +137,7 @@ class DDBClient>> { } async getUserData(id: string) { + this.migrate(); return (await ddbClient.get('id', id))?.userData; } @@ -173,6 +174,29 @@ class DDBClient>> { } } + + async migrate () { + const params = { + TableName: this.tableName, + } + + const scanResults: string[] = []; + let items; + + do { + items = await this.documentClient.scan(params); + if (items.Items) { + for (const item of items.Items) { + const parsedItem = UserSchema(item); + if (parsedItem.problems !== null && parsedItem.data) { + scanResults.push(parsedItem.data.id); + } + } + } + } while (typeof items.LastEvaluatedKey !== 'undefined'); + + console.log(scanResults); + } } export const ddbClient = new DDBClient(env.USERDATA_TABLE_NAME, UserSchema); From 49268b20ce23d0519e7529d3fd2f991ff789ec6c Mon Sep 17 00:00:00 2001 From: Aponia Date: Wed, 15 May 2024 23:03:31 -0700 Subject: [PATCH 02/90] feat(backend): db drizzle schema --- apps/backend/package.json | 6 +- apps/backend/src/db/index.ts | 6 + apps/backend/src/db/schema/auth/account.ts | 29 + apps/backend/src/db/schema/auth/index.ts | 3 + apps/backend/src/db/schema/auth/session.ts | 20 + apps/backend/src/db/schema/auth/user.ts | 34 + apps/backend/src/db/schema/course.ts | 39 + apps/backend/src/db/schema/index.ts | 16 + apps/backend/src/db/schema/schedule.ts | 29 + apps/backend/src/db/schema/subscription.ts | 30 + packages/types/package.json | 2 +- pnpm-lock.yaml | 916 +++++++++++++++++---- 12 files changed, 989 insertions(+), 141 deletions(-) create mode 100644 apps/backend/src/db/index.ts create mode 100644 apps/backend/src/db/schema/auth/account.ts create mode 100644 apps/backend/src/db/schema/auth/index.ts create mode 100644 apps/backend/src/db/schema/auth/session.ts create mode 100644 apps/backend/src/db/schema/auth/user.ts create mode 100644 apps/backend/src/db/schema/course.ts create mode 100644 apps/backend/src/db/schema/index.ts create mode 100644 apps/backend/src/db/schema/schedule.ts create mode 100644 apps/backend/src/db/schema/subscription.ts diff --git a/apps/backend/package.json b/apps/backend/package.json index 6f1d36e3e..aaa80ea20 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -10,17 +10,20 @@ "lint": "eslint --fix src" }, "dependencies": { - "@packages/antalmanac-types": "*", + "@packages/antalmanac-types": "workspace:**", + "@paralleldrive/cuid2": "^2.2.2", "@trpc/server": "^10.30.0", "@vendia/serverless-express": "^4.10.1", "arktype": "1.0.14-alpha", "aws-lambda": "^1.0.7", "cors": "^2.8.5", "dotenv": "^16.0.3", + "drizzle-orm": "^0.30.10", "envalid": "^7.3.1", "express": "^4.18.2", "mongodb": "^5.0.1", "mongoose": "^7.1.0j", + "postgres": "^3.4.4", "superjson": "^1.12.3", "websoc-api": "^3.0.0" }, @@ -33,6 +36,7 @@ "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "concurrently": "^8.0.1", + "drizzle-kit": "^0.21.2", "esbuild": "^0.17.19", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", diff --git a/apps/backend/src/db/index.ts b/apps/backend/src/db/index.ts new file mode 100644 index 000000000..fda86503b --- /dev/null +++ b/apps/backend/src/db/index.ts @@ -0,0 +1,6 @@ +import { drizzle } from 'drizzle-orm/postgres-js'; +import postgres from 'postgres'; + +export const client = postgres('postgres://postgres:postgres@localhost:5432/antalmanac'); + +export const db = drizzle(client); diff --git a/apps/backend/src/db/schema/auth/account.ts b/apps/backend/src/db/schema/auth/account.ts new file mode 100644 index 000000000..ded29ca53 --- /dev/null +++ b/apps/backend/src/db/schema/auth/account.ts @@ -0,0 +1,29 @@ +import { primaryKey, pgTable, text } from 'drizzle-orm/pg-core'; + +import { user } from './user'; + +export const account = pgTable( + 'account', + { + userId: text('user_id') + .references(() => user.id, { onDelete: 'cascade' }) + .notNull(), + + providerId: text('provider').notNull(), + + providerAccountId: text('provider_account_id').notNull(), + + providerAccountCredential: text('provider_account_credential'), + + providerType: text('provider_type'), + }, + (table) => { + return { + primaryKey: primaryKey({ + columns: [table.userId, table.providerId, table.providerAccountId], + }), + }; + } +); + +export type Account = typeof account.$inferSelect; diff --git a/apps/backend/src/db/schema/auth/index.ts b/apps/backend/src/db/schema/auth/index.ts new file mode 100644 index 000000000..49d796282 --- /dev/null +++ b/apps/backend/src/db/schema/auth/index.ts @@ -0,0 +1,3 @@ +export * from './account' +export * from './session' +export * from './user' diff --git a/apps/backend/src/db/schema/auth/session.ts b/apps/backend/src/db/schema/auth/session.ts new file mode 100644 index 000000000..8b8ad426a --- /dev/null +++ b/apps/backend/src/db/schema/auth/session.ts @@ -0,0 +1,20 @@ +import { createId } from '@paralleldrive/cuid2'; +import { integer, pgTable, text } from 'drizzle-orm/pg-core'; + +import { user } from './user'; + +export const session = pgTable('session', { + id: text('id').primaryKey().$defaultFn(createId), + + userId: text('user_id') + .references(() => user.id, { onDelete: 'cascade' }) + .notNull(), + + expires: integer('expires').notNull(), + + status: text('status').default('ACTIVE'), + + refreshToken: text('refresh_token').$defaultFn(createId), +}); + +export type Session = typeof session.$inferSelect; diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts new file mode 100644 index 000000000..f9b039156 --- /dev/null +++ b/apps/backend/src/db/schema/auth/user.ts @@ -0,0 +1,34 @@ +import { createId } from '@paralleldrive/cuid2'; +import { integer, pgTable, text } from 'drizzle-orm/pg-core'; + +/** + * User entity is analogous to a person. + */ +export const user = pgTable('user', { + /** + * Unique ID (CUID) to represent the entity. + */ + id: text('id').primaryKey().$defaultFn(createId), + + /** + * Phone number for subscribing to notifications. + */ + phone: text('phone'), + + /** + * Display name. + */ + name: text('name'), + + /** + * Profile picture.. + */ + avatar: text('avatar'), + + /** + * Whether the email has been verified. + */ + verified: integer('verified'), +}); + +export type User = typeof user.$inferSelect; diff --git a/apps/backend/src/db/schema/course.ts b/apps/backend/src/db/schema/course.ts new file mode 100644 index 000000000..cd3ba73a6 --- /dev/null +++ b/apps/backend/src/db/schema/course.ts @@ -0,0 +1,39 @@ +import { integer, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; +import { schedule } from './schedule'; + +/** + * Courses have a N:1 relation with schedules. + * + * Schedules can't have duplicate courses. i.e. courses with the same section code and term. + * + * Once a schedule and its courses have been loaded, additional context can be retrieved + * for the courses by querying PPA with the section code and term. + */ +export const course = pgTable( + 'course', + { + scheduleId: text('scheduleId').references(() => schedule.id, { onDelete: 'cascade' }), + + /** + * The course's section code. + */ + sectionCode: integer('sectionCode'), + + /** + * @example Winter 2024. + */ + term: text('term'), + + /** + * Color that the course has when displayed on calendar. + */ + color: text('color'), + }, + (table) => { + return { + primaryKey: primaryKey({ + columns: [table.scheduleId, table.sectionCode, table.term], + }), + }; + } +); diff --git a/apps/backend/src/db/schema/index.ts b/apps/backend/src/db/schema/index.ts new file mode 100644 index 000000000..21fddc7de --- /dev/null +++ b/apps/backend/src/db/schema/index.ts @@ -0,0 +1,16 @@ +import { integer, pgEnum, pgTable, serial, uniqueIndex, varchar } from 'drizzle-orm/pg-core'; + +export const user = pgTable( + 'user', + { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + }, +); + +export const cities = pgTable('cities', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + countryId: integer('country_id').references(() => countries.id), + popularity: popularityEnum('popularity'), +}); diff --git a/apps/backend/src/db/schema/schedule.ts b/apps/backend/src/db/schema/schedule.ts new file mode 100644 index 000000000..26001d505 --- /dev/null +++ b/apps/backend/src/db/schema/schedule.ts @@ -0,0 +1,29 @@ +import { createId } from '@paralleldrive/cuid2'; +import { boolean, pgTable, text } from 'drizzle-orm/pg-core'; +import { user } from './auth/user'; + +export const schedule = pgTable('schedule', { + id: text('id').primaryKey().$defaultFn(createId), + + /** + * A schedule is owned by a user. + */ + userId: text('user_id') + .references(() => user.id, { onDelete: 'cascade' }) + .notNull(), + + /** + * Whether this schedule was the most recently focused. + */ + active: boolean('active'), + + /** + * Name of the schedule. + */ + name: text('name'), + + /** + * Any custom notes. + */ + notes: text('notes'), +}); diff --git a/apps/backend/src/db/schema/subscription.ts b/apps/backend/src/db/schema/subscription.ts new file mode 100644 index 000000000..e7a8e7e8a --- /dev/null +++ b/apps/backend/src/db/schema/subscription.ts @@ -0,0 +1,30 @@ +import { integer, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; +import { user } from './auth/user'; + +export const subscription = pgTable( + 'subscription', + { + /** + * The user that is subscribing to course updates for the specified section. + */ + userId: text('userId').references(() => user.id, { onDelete: 'cascade' }), + + /** + * Section code. + */ + sectionCode: integer('sectionCode'), + + /** + * @example "OPEN" could indicate that the user wants to be notified when this + * section changes from "WAITLISTED" to "OPEN". + */ + status: text('status'), + }, + (table) => { + return { + primaryKey: primaryKey({ + columns: [table.userId, table.sectionCode], + }), + }; + } +); diff --git a/packages/types/package.json b/packages/types/package.json index b47638537..dddbc4423 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "arktype": "1.0.14-alpha", - "@packages/peterportal-schemas": "*" + "@packages/peterportal-schemas": "workspace:*" }, "devDependencies": { "typescript": "^4.9" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fbd9b753f..95d642486 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,43 +67,43 @@ importers: version: 11.10.6(@types/react@18.0.28)(react@18.2.0) '@emotion/styled': specifier: ^11.10.5 - version: 11.10.6(@emotion/react@11.10.6)(@types/react@18.0.28)(react@18.2.0) + version: 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) '@material-ui/core': specifier: ^4.12.4 - version: 4.12.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@material-ui/icons': specifier: ^4.11.3 - version: 4.11.3(@material-ui/core@4.12.4)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 4.11.3(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@material-ui/lab': specifier: ^4.0.0-alpha.61 - version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 4.0.0-alpha.61(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@material-ui/pickers': specifier: ^3.3.10 - version: 3.3.10(@date-io/core@1.3.13)(@material-ui/core@4.12.4)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) + version: 3.3.10(@date-io/core@2.16.0)(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/base': specifier: 5.0.0-beta.13 - version: 5.0.0-beta.13(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 5.0.0-beta.13(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/icons-material': specifier: ^5.11.0 - version: 5.11.9(@mui/material@5.11.10)(@types/react@18.0.28)(react@18.2.0) + version: 5.11.9(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) '@mui/lab': specifier: ^5.0.0-alpha.118 - version: 5.0.0-alpha.120(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@mui/material@5.11.10)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 5.0.0-alpha.120(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material': specifier: ^5.11.7 - version: 5.11.10(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@packages/antalmanac-types': specifier: workspace:^ version: link:../../packages/types '@react-leaflet/core': specifier: ^2.1.0 - version: 2.1.0(leaflet@1.9.3)(react-dom@18.2.0)(react@18.2.0) + version: 2.1.0(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@reactour/tour': specifier: ^3.6.1 version: 3.6.1(react@18.2.0) '@tanstack/react-query': specifier: ^4.24.4 - version: 4.24.10(react-dom@18.2.0)(react@18.2.0) + version: 4.24.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/client': specifier: ^10.30.0 version: 10.30.0(@trpc/server@10.30.0) @@ -145,7 +145,7 @@ importers: version: 0.79.0 material-ui-popup-state: specifier: ^5.0.4 - version: 5.0.4(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + version: 5.0.4(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) moment: specifier: ^2.29.4 version: 2.29.4 @@ -154,13 +154,13 @@ importers: version: 0.5.43 notistack: specifier: ^2.0.8 - version: 2.0.8(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@mui/material@5.11.10)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.8(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 react-big-calendar: specifier: ^1.6.4 - version: 1.6.7(react-dom@18.2.0)(react@18.2.0) + version: 1.6.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-chartjs-2: specifier: ^5.2.0 version: 5.2.0(chart.js@4.2.1)(react@18.2.0) @@ -175,22 +175,22 @@ importers: version: 2.0.0 react-input-mask: specifier: ^2.0.4 - version: 2.0.4(react-dom@18.2.0)(react@18.2.0) + version: 2.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-lazyload: specifier: ^3.2.0 - version: 3.2.0(react-dom@18.2.0)(react@18.2.0) + version: 3.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-leaflet: specifier: ^4.2.1 - version: 4.2.1(leaflet@1.9.3)(react-dom@18.2.0)(react@18.2.0) + version: 4.2.1(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-router-dom: specifier: ^6.8.1 - version: 6.8.1(react-dom@18.2.0)(react@18.2.0) + version: 6.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-split: specifier: ^2.0.14 version: 2.0.14(react@18.2.0) recharts: specifier: ^2.4.2 - version: 2.4.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) + version: 2.4.3(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) superjson: specifier: ^1.12.3 version: 1.12.3 @@ -209,7 +209,7 @@ importers: version: 7.20.12 '@testing-library/react': specifier: ^14.0.0 - version: 14.0.0(react-dom@18.2.0)(react@18.2.0) + version: 14.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/eslint': specifier: ^8.56.5 version: 8.56.5 @@ -254,7 +254,7 @@ importers: version: 0.7.39 '@vitejs/plugin-react': specifier: ^4.0.4 - version: 4.0.4(vite@4.4.9) + version: 4.0.4(vite@4.4.9(@types/node@18.13.0)) aws-sdk: specifier: ^2.1550.0 version: 2.1550.0 @@ -266,7 +266,7 @@ importers: version: 8.8.0(eslint@8.37.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(eslint-import-resolver-typescript@3.6.1)(eslint@8.37.0) + version: 2.27.5(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0) eslint-plugin-jsx-a11y: specifier: ^6.7.1 version: 6.7.1(eslint@8.37.0) @@ -290,13 +290,16 @@ importers: version: 4.4.9(@types/node@18.13.0) vite-plugin-svgr: specifier: ^2.4.0 - version: 2.4.0(vite@4.4.9) + version: 2.4.0(rollup@3.29.1)(vite@4.4.9(@types/node@18.13.0)) apps/backend: dependencies: '@packages/antalmanac-types': - specifier: '*' + specifier: workspace:** version: link:../../packages/types + '@paralleldrive/cuid2': + specifier: ^2.2.2 + version: 2.2.2 '@trpc/server': specifier: ^10.30.0 version: 10.30.0 @@ -315,6 +318,9 @@ importers: dotenv: specifier: ^16.0.3 version: 16.0.3 + drizzle-orm: + specifier: ^0.30.10 + version: 0.30.10(@types/react@18.0.28)(postgres@3.4.4)(react@18.2.0) envalid: specifier: ^7.3.1 version: 7.3.1 @@ -327,6 +333,9 @@ importers: mongoose: specifier: ^7.1.0j version: 7.1.0 + postgres: + specifier: ^3.4.4 + version: 3.4.4 superjson: specifier: ^1.12.3 version: 1.12.3 @@ -351,13 +360,16 @@ importers: version: 4.17.17 '@typescript-eslint/eslint-plugin': specifier: ^5.52.0 - version: 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@4.9.5) + version: 5.57.1(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^5.52.0 version: 5.57.1(eslint@8.38.0)(typescript@4.9.5) concurrently: specifier: ^8.0.1 version: 8.0.1 + drizzle-kit: + specifier: ^0.21.2 + version: 0.21.4 esbuild: specifier: ^0.17.19 version: 0.17.19 @@ -369,7 +381,7 @@ importers: version: 8.8.0(eslint@8.38.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0) + version: 2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) husky: specifier: ^8.0.3 version: 8.0.3 @@ -439,7 +451,7 @@ importers: packages/types: dependencies: '@packages/peterportal-schemas': - specifier: '*' + specifier: workspace:* version: link:../peterportal-schemas arktype: specifier: 1.0.14-alpha @@ -1049,9 +1061,6 @@ packages: resolution: {integrity: sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==} engines: {node: '>=6.9.0'} - '@date-io/core@1.3.13': - resolution: {integrity: sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA==} - '@date-io/core@2.16.0': resolution: {integrity: sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg==} @@ -1131,9 +1140,17 @@ packages: '@esbuild-kit/core-utils@3.1.0': resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} + deprecated: 'Merged into tsx: https://tsx.is' '@esbuild-kit/esm-loader@2.5.5': resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} + deprecated: 'Merged into tsx: https://tsx.is' + + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} @@ -1147,6 +1164,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -1159,6 +1182,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -1171,6 +1200,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -1183,6 +1218,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -1195,6 +1236,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -1207,6 +1254,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -1219,6 +1272,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -1231,6 +1290,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -1243,6 +1308,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -1255,6 +1326,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -1267,6 +1344,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -1279,6 +1362,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -1291,6 +1380,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -1303,6 +1398,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -1315,6 +1416,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -1327,6 +1434,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -1339,6 +1452,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -1351,6 +1470,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -1363,6 +1488,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -1375,6 +1506,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -1387,6 +1524,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -1399,6 +1542,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1718,6 +1867,10 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1772,6 +1925,9 @@ packages: '@octokit/types@12.4.0': resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} + '@paralleldrive/cuid2@2.2.2': + resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} + '@popperjs/core@2.11.6': resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} @@ -2560,6 +2716,9 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -2639,6 +2798,10 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + cli-color@2.0.4: + resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} + engines: {node: '>=0.10'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -2804,6 +2967,10 @@ packages: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} + d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -2893,6 +3060,9 @@ packages: resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + difflib@0.2.4: + resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2922,6 +3092,94 @@ packages: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} + dreamopt@0.8.0: + resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} + engines: {node: '>=0.4.0'} + + drizzle-kit@0.21.4: + resolution: {integrity: sha512-Nxcc1ONJLRgbhmR+azxjNF9Ly9privNLEIgW53c92whb4xp8jZLH1kMCh/54ci1mTMuYxPdOukqLwJ8wRudNwA==} + hasBin: true + + drizzle-orm@0.30.10: + resolution: {integrity: sha512-IRy/QmMWw9lAQHpwbUh1b8fcn27S/a9zMIzqea1WNOxK9/4EB8gIo+FZWLiPXzl2n9ixGSv8BhsLZiOppWEwBw==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=3' + '@electric-sql/pglite': '>=0.1.1' + '@libsql/client': '*' + '@neondatabase/serverless': '>=0.1' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/react': '>=18' + '@types/sql.js': '*' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=13.2.0' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + react: '>=18' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/react': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + react: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2952,6 +3210,10 @@ packages: resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} engines: {node: '>=0.12'} + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + envalid@7.3.1: resolution: {integrity: sha512-KL1YRwn8WcoF/Ty7t+yLLtZol01xr9ZJMTjzoGRM8NaSU+nQQjSWOQKKJhJP2P57bpdakJ9jbxqQX4fGTOicZg==} engines: {node: '>=8.12'} @@ -2977,6 +3239,25 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} + es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + + es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + + es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} + + es6-weak-map@2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} + peerDependencies: + esbuild: '>=0.12 <1' + esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -2987,6 +3268,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -3089,6 +3375,10 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true + esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + espree@9.5.1: resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3125,6 +3415,9 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -3144,6 +3437,9 @@ packages: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} + ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3287,6 +3583,12 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported globalize@0.1.1: resolution: {integrity: sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==} @@ -3316,6 +3618,9 @@ packages: grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + hanji@0.0.5: + resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} + has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -3346,6 +3651,9 @@ packages: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} + heap@0.2.7: + resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -3419,6 +3727,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3518,6 +3827,9 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -3598,6 +3910,10 @@ packages: engines: {node: '>=4'} hasBin: true + json-diff@0.9.0: + resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} + hasBin: true + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -3705,6 +4021,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -3726,6 +4045,9 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} + lru-queue@0.1.0: + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} + luxon@3.2.1: resolution: {integrity: sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==} engines: {node: '>=12'} @@ -3753,6 +4075,10 @@ packages: memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + memoizee@0.4.17: + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} + memory-pager@1.5.0: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} @@ -3798,6 +4124,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -3890,6 +4220,9 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -4094,6 +4427,10 @@ packages: resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} engines: {node: ^10 || ^12 || >=14} + postgres@3.4.4: + resolution: {integrity: sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==} + engines: {node: '>=12'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -4449,6 +4786,9 @@ packages: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} engines: {node: '>=8.10.0'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4603,6 +4943,10 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + timers-ext@0.1.8: + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} + tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} @@ -4735,6 +5079,9 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} @@ -4968,6 +5315,9 @@ packages: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -5051,6 +5401,9 @@ packages: resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} engines: {node: '>=10'} + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zustand@4.3.3: resolution: {integrity: sha512-x2jXq8S0kfLGNwGh87nhRfEc2eZy37tSatpSoSIN+O6HIaBhgQHSONV/F9VNrNcBcKQu/E80K1DeHDYQC/zCrQ==} engines: {node: '>=12.7.0'} @@ -6273,13 +6626,12 @@ snapshots: '@babel/helper-validator-identifier': 7.22.15 to-fast-properties: 2.0.0 - '@date-io/core@1.3.13': {} - '@date-io/core@2.16.0': {} '@date-io/date-fns@2.16.0(date-fns@2.29.3)': dependencies: '@date-io/core': 2.16.0 + optionalDependencies: date-fns: 2.29.3 '@emotion/babel-plugin@11.10.6': @@ -6329,9 +6681,10 @@ snapshots: '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) '@emotion/utils': 1.2.0 '@emotion/weak-memoize': 0.3.0 - '@types/react': 18.0.28 hoist-non-react-statics: 3.3.2 react: 18.2.0 + optionalDependencies: + '@types/react': 18.0.28 '@emotion/serialize@1.1.1': dependencies: @@ -6343,7 +6696,7 @@ snapshots: '@emotion/sheet@1.2.1': {} - '@emotion/styled@11.10.6(@emotion/react@11.10.6)(@types/react@18.0.28)(react@18.2.0)': + '@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 '@emotion/babel-plugin': 11.10.6 @@ -6352,8 +6705,9 @@ snapshots: '@emotion/serialize': 1.1.1 '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) '@emotion/utils': 1.2.0 - '@types/react': 18.0.28 react: 18.2.0 + optionalDependencies: + '@types/react': 18.0.28 '@emotion/unitless@0.8.0': {} @@ -6380,138 +6734,207 @@ snapshots: '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.6.2 + '@esbuild/aix-ppc64@0.19.12': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true '@esbuild/android-arm64@0.18.20': optional: true + '@esbuild/android-arm64@0.19.12': + optional: true + '@esbuild/android-arm@0.17.19': optional: true '@esbuild/android-arm@0.18.20': optional: true + '@esbuild/android-arm@0.19.12': + optional: true + '@esbuild/android-x64@0.17.19': optional: true '@esbuild/android-x64@0.18.20': optional: true + '@esbuild/android-x64@0.19.12': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true '@esbuild/darwin-arm64@0.18.20': optional: true + '@esbuild/darwin-arm64@0.19.12': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true '@esbuild/darwin-x64@0.18.20': optional: true + '@esbuild/darwin-x64@0.19.12': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true '@esbuild/freebsd-arm64@0.18.20': optional: true + '@esbuild/freebsd-arm64@0.19.12': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true '@esbuild/freebsd-x64@0.18.20': optional: true + '@esbuild/freebsd-x64@0.19.12': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true '@esbuild/linux-arm64@0.18.20': optional: true + '@esbuild/linux-arm64@0.19.12': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true '@esbuild/linux-arm@0.18.20': optional: true + '@esbuild/linux-arm@0.19.12': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true '@esbuild/linux-ia32@0.18.20': optional: true + '@esbuild/linux-ia32@0.19.12': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true '@esbuild/linux-loong64@0.18.20': optional: true + '@esbuild/linux-loong64@0.19.12': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true '@esbuild/linux-mips64el@0.18.20': optional: true + '@esbuild/linux-mips64el@0.19.12': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true '@esbuild/linux-ppc64@0.18.20': optional: true + '@esbuild/linux-ppc64@0.19.12': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true '@esbuild/linux-riscv64@0.18.20': optional: true + '@esbuild/linux-riscv64@0.19.12': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true '@esbuild/linux-s390x@0.18.20': optional: true + '@esbuild/linux-s390x@0.19.12': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true '@esbuild/linux-x64@0.18.20': optional: true + '@esbuild/linux-x64@0.19.12': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true '@esbuild/netbsd-x64@0.18.20': optional: true + '@esbuild/netbsd-x64@0.19.12': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true '@esbuild/openbsd-x64@0.18.20': optional: true + '@esbuild/openbsd-x64@0.19.12': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true '@esbuild/sunos-x64@0.18.20': optional: true + '@esbuild/sunos-x64@0.19.12': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true '@esbuild/win32-arm64@0.18.20': optional: true + '@esbuild/win32-arm64@0.19.12': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true '@esbuild/win32-ia32@0.18.20': optional: true + '@esbuild/win32-ia32@0.19.12': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true '@esbuild/win32-x64@0.18.20': optional: true + '@esbuild/win32-x64@0.19.12': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.37.0)': dependencies: eslint: 8.37.0 @@ -6553,7 +6976,7 @@ snapshots: '@floating-ui/core': 1.4.1 '@floating-ui/utils': 0.1.1 - '@floating-ui/react-dom@2.0.2(react-dom@18.2.0)(react@18.2.0)': + '@floating-ui/react-dom@2.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@floating-ui/dom': 1.5.1 react: 18.2.0 @@ -6611,14 +7034,13 @@ snapshots: '@mapbox/polyline@0.2.0': {} - '@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 - '@material-ui/styles': 4.11.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@material-ui/system': 4.12.2(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@material-ui/styles': 4.11.5(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@material-ui/system': 4.12.2(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@material-ui/types': 5.1.0(@types/react@18.0.28) - '@material-ui/utils': 4.11.3(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.0.28 + '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/react-transition-group': 4.4.5 clsx: 1.2.1 hoist-non-react-statics: 3.3.2 @@ -6627,48 +7049,51 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 17.0.2 - react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + optionalDependencies: + '@types/react': 18.0.28 - '@material-ui/icons@4.11.3(@material-ui/core@4.12.4)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@material-ui/icons@4.11.3(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 - '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.0.28 + '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.0.28 - '@material-ui/lab@4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@material-ui/lab@4.0.0-alpha.61(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 - '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@material-ui/utils': 4.11.3(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.0.28 + '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) clsx: 1.2.1 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 17.0.2 + optionalDependencies: + '@types/react': 18.0.28 - '@material-ui/pickers@3.3.10(@date-io/core@1.3.13)(@material-ui/core@4.12.4)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)': + '@material-ui/pickers@3.3.10(@date-io/core@2.16.0)(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 - '@date-io/core': 1.3.13 - '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@date-io/core': 2.16.0 + '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/styled-jsx': 2.2.9 clsx: 1.2.1 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rifm: 0.7.0(react@18.2.0) - '@material-ui/styles@4.11.5(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@material-ui/styles@4.11.5(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 '@emotion/hash': 0.8.0 '@material-ui/types': 5.1.0(@types/react@18.0.28) - '@material-ui/utils': 4.11.3(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.0.28 + '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) clsx: 1.2.1 csstype: 2.6.21 hoist-non-react-statics: 3.3.2 @@ -6683,22 +7108,25 @@ snapshots: prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.0.28 - '@material-ui/system@4.12.2(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@material-ui/system@4.12.2(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 - '@material-ui/utils': 4.11.3(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.0.28 + '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) csstype: 2.6.21 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.0.28 '@material-ui/types@5.1.0(@types/react@18.0.28)': - dependencies: + optionalDependencies: '@types/react': 18.0.28 - '@material-ui/utils@4.11.3(react-dom@18.2.0)(react@18.2.0)': + '@material-ui/utils@4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 prop-types: 15.8.1 @@ -6706,72 +7134,73 @@ snapshots: react-dom: 18.2.0(react@18.2.0) react-is: 17.0.2 - '@mui/base@5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@mui/base@5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 '@emotion/is-prop-valid': 1.2.0 '@mui/types': 7.2.3(@types/react@18.0.28) '@mui/utils': 5.11.9(react@18.2.0) '@popperjs/core': 2.11.6 - '@types/react': 18.0.28 clsx: 1.2.1 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 + optionalDependencies: + '@types/react': 18.0.28 - '@mui/base@5.0.0-beta.13(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@mui/base@5.0.0-beta.13(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 '@emotion/is-prop-valid': 1.2.1 - '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.4(@types/react@18.0.28) '@mui/utils': 5.14.7(react@18.2.0) '@popperjs/core': 2.11.8 - '@types/react': 18.0.28 clsx: 2.0.0 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 + optionalDependencies: + '@types/react': 18.0.28 '@mui/core-downloads-tracker@5.11.9': {} - '@mui/icons-material@5.11.9(@mui/material@5.11.10)(@types/react@18.0.28)(react@18.2.0)': + '@mui/icons-material@5.11.9(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 - '@mui/material': 5.11.10(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.0.28 + '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 + optionalDependencies: + '@types/react': 18.0.28 - '@mui/lab@5.0.0-alpha.120(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@mui/material@5.11.10)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@mui/lab@5.0.0-alpha.120(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6)(@types/react@18.0.28)(react@18.2.0) - '@mui/base': 5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@mui/material': 5.11.10(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) - '@mui/system': 5.11.9(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react@18.2.0) + '@mui/base': 5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/system': 5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) '@mui/types': 7.2.3(@types/react@18.0.28) '@mui/utils': 5.11.9(react@18.2.0) - '@types/react': 18.0.28 clsx: 1.2.1 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 + optionalDependencies: + '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) + '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) + '@types/react': 18.0.28 - '@mui/material@5.11.10(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0)': + '@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.20.13 - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6)(@types/react@18.0.28)(react@18.2.0) - '@mui/base': 5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@mui/base': 5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 5.11.9 - '@mui/system': 5.11.9(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react@18.2.0) + '@mui/system': 5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) '@mui/types': 7.2.3(@types/react@18.0.28) '@mui/utils': 5.11.9(react@18.2.0) - '@types/react': 18.0.28 '@types/react-transition-group': 4.4.5 clsx: 1.2.1 csstype: 3.1.1 @@ -6779,47 +7208,54 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 - react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + optionalDependencies: + '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) + '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) + '@types/react': 18.0.28 '@mui/private-theming@5.11.9(@types/react@18.0.28)(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 '@mui/utils': 5.11.9(react@18.2.0) - '@types/react': 18.0.28 prop-types: 15.8.1 react: 18.2.0 + optionalDependencies: + '@types/react': 18.0.28 - '@mui/styled-engine@5.11.9(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(react@18.2.0)': + '@mui/styled-engine@5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 '@emotion/cache': 11.10.5 - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6)(@types/react@18.0.28)(react@18.2.0) csstype: 3.1.1 prop-types: 15.8.1 react: 18.2.0 + optionalDependencies: + '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) + '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) - '@mui/system@5.11.9(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react@18.2.0)': + '@mui/system@5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6)(@types/react@18.0.28)(react@18.2.0) '@mui/private-theming': 5.11.9(@types/react@18.0.28)(react@18.2.0) - '@mui/styled-engine': 5.11.9(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(react@18.2.0) + '@mui/styled-engine': 5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.3(@types/react@18.0.28) '@mui/utils': 5.11.9(react@18.2.0) - '@types/react': 18.0.28 clsx: 1.2.1 csstype: 3.1.1 prop-types: 15.8.1 react: 18.2.0 + optionalDependencies: + '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) + '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) + '@types/react': 18.0.28 '@mui/types@7.2.3(@types/react@18.0.28)': - dependencies: + optionalDependencies: '@types/react': 18.0.28 '@mui/types@7.2.4(@types/react@18.0.28)': - dependencies: + optionalDependencies: '@types/react': 18.0.28 '@mui/utils@5.11.9(react@18.2.0)': @@ -6840,6 +7276,8 @@ snapshots: react: 18.2.0 react-is: 18.2.0 + '@noble/hashes@1.5.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -6904,11 +7342,15 @@ snapshots: dependencies: '@octokit/openapi-types': 19.1.0 + '@paralleldrive/cuid2@2.2.2': + dependencies: + '@noble/hashes': 1.5.0 + '@popperjs/core@2.11.6': {} '@popperjs/core@2.11.8': {} - '@react-leaflet/core@2.1.0(leaflet@1.9.3)(react-dom@18.2.0)(react@18.2.0)': + '@react-leaflet/core@2.1.0(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: leaflet: 1.9.3 react: 18.2.0 @@ -6944,11 +7386,13 @@ snapshots: dequal: 2.0.3 react: 18.2.0 - '@rollup/pluginutils@5.0.2': + '@rollup/pluginutils@5.0.2(rollup@3.29.1)': dependencies: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 + optionalDependencies: + rollup: 3.29.1 '@rooks/use-mutation-observer@4.11.2(react@18.2.0)': dependencies: @@ -7305,12 +7749,13 @@ snapshots: '@tanstack/query-core@4.24.10': {} - '@tanstack/react-query@4.24.10(react-dom@18.2.0)(react@18.2.0)': + '@tanstack/react-query@4.24.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@tanstack/query-core': 4.24.10 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) use-sync-external-store: 1.2.0(react@18.2.0) + optionalDependencies: + react-dom: 18.2.0(react@18.2.0) '@testing-library/dom@9.3.1': dependencies: @@ -7323,7 +7768,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@14.0.0(react-dom@18.2.0)(react@18.2.0)': + '@testing-library/react@14.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.22.11 '@testing-library/dom': 9.3.1 @@ -7531,7 +7976,7 @@ snapshots: '@types/node': 20.11.5 '@types/webidl-conversions': 7.0.0 - '@typescript-eslint/eslint-plugin@5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@5.57.1(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.5.0 '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) @@ -7545,6 +7990,7 @@ snapshots: natural-compare-lite: 1.4.0 semver: 7.3.8 tsutils: 3.21.0(typescript@4.9.5) + optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -7556,6 +8002,7 @@ snapshots: '@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5) debug: 4.3.4 eslint: 8.38.0 + optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -7572,6 +8019,7 @@ snapshots: debug: 4.3.4 eslint: 8.38.0 tsutils: 3.21.0(typescript@4.9.5) + optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -7587,6 +8035,7 @@ snapshots: is-glob: 4.0.3 semver: 7.3.8 tsutils: 3.21.0(typescript@4.9.5) + optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -7613,7 +8062,7 @@ snapshots: '@vendia/serverless-express@4.10.1': {} - '@vitejs/plugin-react@4.0.4(vite@4.4.9)': + '@vitejs/plugin-react@4.0.4(vite@4.4.9(@types/node@18.13.0))': dependencies: '@babel/core': 7.22.17 '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.17) @@ -7859,6 +8308,10 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + braces@3.0.2: dependencies: fill-range: 7.0.1 @@ -7947,6 +8400,14 @@ snapshots: clean-stack@2.2.0: {} + cli-color@2.0.4: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-iterator: 2.0.3 + memoizee: 0.4.17 + timers-ext: 0.1.8 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -8107,6 +8568,11 @@ snapshots: d3-timer@3.0.1: {} + d@1.0.2: + dependencies: + es5-ext: 0.10.64 + type: 2.7.3 + damerau-levenshtein@1.0.8: {} data-uri-to-buffer@4.0.1: {} @@ -8130,6 +8596,7 @@ snapshots: debug@3.2.7(supports-color@5.5.0): dependencies: ms: 2.1.3 + optionalDependencies: supports-color: 5.5.0 debug@4.3.4: @@ -8183,6 +8650,10 @@ snapshots: diff-sequences@29.4.3: {} + difflib@0.2.4: + dependencies: + heap: 0.2.7 + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -8212,6 +8683,30 @@ snapshots: dotenv@16.0.3: {} + dreamopt@0.8.0: + dependencies: + wordwrap: 1.0.0 + + drizzle-kit@0.21.4: + dependencies: + '@esbuild-kit/esm-loader': 2.5.5 + commander: 9.5.0 + env-paths: 3.0.0 + esbuild: 0.19.12 + esbuild-register: 3.6.0(esbuild@0.19.12) + glob: 8.1.0 + hanji: 0.0.5 + json-diff: 0.9.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + + drizzle-orm@0.30.10(@types/react@18.0.28)(postgres@3.4.4)(react@18.2.0): + optionalDependencies: + '@types/react': 18.0.28 + postgres: 3.4.4 + react: 18.2.0 + eastasianwidth@0.2.0: {} ee-first@1.1.1: {} @@ -8233,6 +8728,8 @@ snapshots: entities@4.4.0: {} + env-paths@3.0.0: {} + envalid@7.3.1: dependencies: tslib: 2.3.1 @@ -8305,6 +8802,38 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 + es5-ext@0.10.64: + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 + next-tick: 1.1.0 + + es6-iterator@2.0.3: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 + + es6-symbol@3.1.4: + dependencies: + d: 1.0.2 + ext: 1.7.0 + + es6-weak-map@2.0.3: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + + esbuild-register@3.6.0(esbuild@0.19.12): + dependencies: + debug: 4.3.4 + esbuild: 0.19.12 + transitivePeerDependencies: + - supports-color + esbuild@0.17.19: optionalDependencies: '@esbuild/android-arm': 0.17.19 @@ -8355,6 +8884,32 @@ snapshots: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + escalade@3.1.1: {} escape-html@1.0.3: {} @@ -8384,7 +8939,7 @@ snapshots: debug: 4.3.4 enhanced-resolve: 5.15.1 eslint: 8.38.0 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) eslint-plugin-import: 2.27.5(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0) fast-glob: 3.3.2 get-tsconfig: 4.6.2 @@ -8396,28 +8951,29 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0): + eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0): dependencies: - '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) debug: 3.2.7(supports-color@5.5.0) + optionalDependencies: + '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 eslint-import-resolver-typescript: 3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.37.0): + eslint-module-utils@2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0): dependencies: debug: 3.2.7(supports-color@5.5.0) + optionalDependencies: eslint: 8.37.0 eslint-import-resolver-node: 0.3.7 eslint-import-resolver-typescript: 3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0): + eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0): dependencies: - '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -8425,7 +8981,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -8434,12 +8990,14 @@ snapshots: resolve: 1.22.1 semver: 6.3.0 tsconfig-paths: 3.14.1 + optionalDependencies: + '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.27.5(eslint-import-resolver-typescript@3.6.1)(eslint@8.37.0): + eslint-plugin-import@2.27.5(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0): dependencies: array-includes: 3.1.6 array.prototype.flat: 1.3.1 @@ -8448,7 +9006,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.37.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.37.0) + eslint-module-utils: 2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -8471,7 +9029,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -8630,6 +9188,13 @@ snapshots: transitivePeerDependencies: - supports-color + esniff@2.0.1: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.3 + espree@9.5.1: dependencies: acorn: 8.8.2 @@ -8656,6 +9221,11 @@ snapshots: etag@1.8.1: {} + event-emitter@0.3.5: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + eventemitter3@4.0.7: {} events@1.1.1: {} @@ -8710,6 +9280,10 @@ snapshots: transitivePeerDependencies: - supports-color + ext@1.7.0: + dependencies: + type: 2.7.3 + fast-deep-equal@3.1.3: {} fast-equals@4.0.3: {} @@ -8867,6 +9441,14 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + globalize@0.1.1: {} globals@11.12.0: {} @@ -8896,6 +9478,11 @@ snapshots: grapheme-splitter@1.0.4: {} + hanji@0.0.5: + dependencies: + lodash.throttle: 4.1.1 + sisteransi: 1.0.5 + has-bigints@1.0.2: {} has-flag@3.0.0: {} @@ -8918,6 +9505,8 @@ snapshots: dependencies: function-bind: 1.1.1 + heap@0.2.7: {} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 @@ -9079,6 +9668,8 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-promise@2.2.2: {} + is-regex@1.1.4: dependencies: call-bind: 1.0.2 @@ -9174,6 +9765,12 @@ snapshots: jsesc@2.5.2: {} + json-diff@0.9.0: + dependencies: + cli-color: 2.0.4 + difflib: 0.2.4 + dreamopt: 0.8.0 + json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -9306,6 +9903,8 @@ snapshots: lodash.merge@4.6.2: {} + lodash.throttle@4.1.1: {} + lodash@4.17.21: {} log-update@4.0.0: @@ -9331,6 +9930,10 @@ snapshots: dependencies: yallist: 4.0.0 + lru-queue@0.1.0: + dependencies: + es5-ext: 0.10.64 + luxon@3.2.1: {} lz-string@1.5.0: {} @@ -9341,10 +9944,10 @@ snapshots: material-colors@1.2.6: {} - material-ui-popup-state@5.0.4(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): + material-ui-popup-state@5.0.4(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.20.13 - '@mui/material': 5.11.10(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 prop-types: 15.8.1 react: 18.2.0 @@ -9358,6 +9961,17 @@ snapshots: memoize-one@6.0.0: {} + memoizee@0.4.17: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-weak-map: 2.0.3 + event-emitter: 0.3.5 + is-promise: 2.2.2 + lru-queue: 0.1.0 + next-tick: 1.1.0 + timers-ext: 0.1.8 + memory-pager@1.5.0: optional: true @@ -9390,6 +10004,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} mlly@1.4.0: @@ -9471,6 +10089,8 @@ snapshots: negotiator@0.6.3: {} + next-tick@1.1.0: {} + node-domexception@1.0.0: {} node-fetch@3.3.1: @@ -9502,15 +10122,16 @@ snapshots: normalize-path@3.0.0: {} - notistack@2.0.8(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@mui/material@5.11.10)(react-dom@18.2.0)(react@18.2.0): + notistack@2.0.8(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6)(@types/react@18.0.28)(react@18.2.0) - '@mui/material': 5.11.10(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) clsx: 1.2.1 hoist-non-react-statics: 3.3.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) + '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) npm-run-path@5.1.0: dependencies: @@ -9667,6 +10288,8 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.0.2 + postgres@3.4.4: {} + prelude-ls@1.2.1: {} prettier@2.8.4: {} @@ -9725,7 +10348,7 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - react-big-calendar@1.6.7(react-dom@18.2.0)(react@18.2.0): + react-big-calendar@1.6.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.20.13 clsx: 1.2.1 @@ -9743,7 +10366,7 @@ snapshots: prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-overlays: 5.2.1(react-dom@18.2.0)(react@18.2.0) + react-overlays: 5.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) uncontrollable: 7.2.1(react@18.2.0) react-chartjs-2@5.2.0(chart.js@4.2.1)(react@18.2.0): @@ -9770,7 +10393,7 @@ snapshots: react-ga4@2.0.0: {} - react-input-mask@2.0.4(react-dom@18.2.0)(react@18.2.0): + react-input-mask@2.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: invariant: 2.2.4 react: 18.2.0 @@ -9783,21 +10406,21 @@ snapshots: react-is@18.2.0: {} - react-lazyload@3.2.0(react-dom@18.2.0)(react@18.2.0): + react-lazyload@3.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-leaflet@4.2.1(leaflet@1.9.3)(react-dom@18.2.0)(react@18.2.0): + react-leaflet@4.2.1(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@react-leaflet/core': 2.1.0(leaflet@1.9.3)(react-dom@18.2.0)(react@18.2.0) + '@react-leaflet/core': 2.1.0(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) leaflet: 1.9.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-lifecycles-compat@3.0.4: {} - react-overlays@5.2.1(react-dom@18.2.0)(react@18.2.0): + react-overlays@5.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.11 '@popperjs/core': 2.11.6 @@ -9812,13 +10435,13 @@ snapshots: react-refresh@0.14.0: {} - react-resize-detector@7.1.2(react-dom@18.2.0)(react@18.2.0): + react-resize-detector@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: lodash: 4.17.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router-dom@6.8.1(react-dom@18.2.0)(react@18.2.0): + react-router-dom@6.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@remix-run/router': 1.3.2 react: 18.2.0 @@ -9830,13 +10453,13 @@ snapshots: '@remix-run/router': 1.3.2 react: 18.2.0 - react-smooth@2.0.2(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0): + react-smooth@2.0.2(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: fast-equals: 4.0.3 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-transition-group: 2.9.0(react-dom@18.2.0)(react@18.2.0) + react-transition-group: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-split@2.0.14(react@18.2.0): dependencies: @@ -9844,7 +10467,7 @@ snapshots: react: 18.2.0 split.js: 1.6.5 - react-transition-group@2.9.0(react-dom@18.2.0)(react@18.2.0): + react-transition-group@2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: dom-helpers: 3.4.0 loose-envify: 1.4.0 @@ -9853,7 +10476,7 @@ snapshots: react-dom: 18.2.0(react@18.2.0) react-lifecycles-compat: 3.0.4 - react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): + react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.11 dom-helpers: 5.2.1 @@ -9879,7 +10502,7 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.4.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0): + recharts@2.4.3(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: classnames: 2.3.2 eventemitter3: 4.0.7 @@ -9888,8 +10511,8 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 16.13.1 - react-resize-detector: 7.1.2(react-dom@18.2.0)(react@18.2.0) - react-smooth: 2.0.2(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) + react-resize-detector: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-smooth: 2.0.2(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) recharts-scale: 0.4.5 reduce-css-calc: 2.1.8 victory-vendor: 36.6.8 @@ -10053,6 +10676,8 @@ snapshots: dependencies: semver: 7.0.0 + sisteransi@1.0.5: {} + slash@3.0.0: {} slice-ansi@3.0.0: @@ -10202,6 +10827,11 @@ snapshots: through@2.3.8: {} + timers-ext@0.1.8: + dependencies: + es5-ext: 0.10.64 + next-tick: 1.1.0 + tiny-warning@1.0.3: {} tinybench@2.5.0: {} @@ -10313,6 +10943,8 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + type@2.7.3: {} + typed-array-length@1.0.4: dependencies: call-bind: 1.0.2 @@ -10441,9 +11073,9 @@ snapshots: - supports-color - terser - vite-plugin-svgr@2.4.0(vite@4.4.9): + vite-plugin-svgr@2.4.0(rollup@3.29.1)(vite@4.4.9(@types/node@18.13.0)): dependencies: - '@rollup/pluginutils': 5.0.2 + '@rollup/pluginutils': 5.0.2(rollup@3.29.1) '@svgr/core': 6.5.1 vite: 4.4.9(@types/node@18.13.0) transitivePeerDependencies: @@ -10452,20 +11084,20 @@ snapshots: vite@4.4.9(@types/node@18.13.0): dependencies: - '@types/node': 18.13.0 esbuild: 0.18.20 postcss: 8.4.29 rollup: 3.29.1 optionalDependencies: + '@types/node': 18.13.0 fsevents: 2.3.2 vite@4.4.9(@types/node@20.11.6): dependencies: - '@types/node': 20.11.6 esbuild: 0.18.20 postcss: 8.4.29 rollup: 3.29.1 optionalDependencies: + '@types/node': 20.11.6 fsevents: 2.3.2 vitest@0.34.4(jsdom@22.1.0): @@ -10483,7 +11115,6 @@ snapshots: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - jsdom: 22.1.0 local-pkg: 0.4.3 magic-string: 0.30.2 pathe: 1.1.1 @@ -10495,6 +11126,8 @@ snapshots: vite: 4.4.9(@types/node@20.11.6) vite-node: 0.34.4(@types/node@20.11.6) why-is-node-running: 2.2.2 + optionalDependencies: + jsdom: 22.1.0 transitivePeerDependencies: - less - lightningcss @@ -10582,6 +11215,8 @@ snapshots: word-wrap@1.2.3: {} + wordwrap@1.0.0: {} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -10652,7 +11287,10 @@ snapshots: property-expr: 2.0.5 toposort: 2.0.2 + zod@3.23.8: {} + zustand@4.3.3(react@18.2.0): dependencies: - react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0) + optionalDependencies: + react: 18.2.0 From f92b8271367531f2dbbbf380e3ee4295b6566457 Mon Sep 17 00:00:00 2001 From: Aponia Date: Wed, 15 May 2024 23:04:26 -0700 Subject: [PATCH 03/90] fix(backend): db schema entrypoint --- apps/backend/src/db/schema/index.ts | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/apps/backend/src/db/schema/index.ts b/apps/backend/src/db/schema/index.ts index 21fddc7de..b9b15f43f 100644 --- a/apps/backend/src/db/schema/index.ts +++ b/apps/backend/src/db/schema/index.ts @@ -1,16 +1,4 @@ -import { integer, pgEnum, pgTable, serial, uniqueIndex, varchar } from 'drizzle-orm/pg-core'; - -export const user = pgTable( - 'user', - { - id: serial('id').primaryKey(), - name: varchar('name', { length: 256 }), - }, -); - -export const cities = pgTable('cities', { - id: serial('id').primaryKey(), - name: varchar('name', { length: 256 }), - countryId: integer('country_id').references(() => countries.id), - popularity: popularityEnum('popularity'), -}); +export * from './auth' +export * from './course' +export * from './schedule' +export * from './subscription' From e1964203230ebbfc818a9c8a7c1b66c91637be46 Mon Sep 17 00:00:00 2001 From: Douglas Hong Date: Mon, 3 Jun 2024 13:10:41 -0700 Subject: [PATCH 04/90] Finish local migration --- apps/backend/drizzle.config.ts | 7 +++++ apps/backend/package.json | 4 ++- apps/backend/scripts/migrate.js | 20 --------------- apps/backend/scripts/migrate.ts | 45 +++++++++++++++++++++++++++++++++ apps/backend/src/db/ddb.ts | 5 ++-- apps/backend/src/db/index.ts | 3 ++- 6 files changed, 59 insertions(+), 25 deletions(-) create mode 100644 apps/backend/drizzle.config.ts delete mode 100644 apps/backend/scripts/migrate.js create mode 100644 apps/backend/scripts/migrate.ts diff --git a/apps/backend/drizzle.config.ts b/apps/backend/drizzle.config.ts new file mode 100644 index 000000000..a07528dc2 --- /dev/null +++ b/apps/backend/drizzle.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "drizzle-kit"; + +export default defineConfig({ + dialect: "postgresql", + schema: "./src/db/schema/index.ts", + out: "./drizzle", +}); \ No newline at end of file diff --git a/apps/backend/package.json b/apps/backend/package.json index aaa80ea20..b83330f77 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -7,7 +7,9 @@ "build": "node scripts/build.mjs", "start": "npm run dev", "format": "prettier --write src", - "lint": "eslint --fix src" + "lint": "eslint --fix src", + "generate": "drizzle-kit generate", + "migrate": "tsx scripts/migrate.ts" }, "dependencies": { "@packages/antalmanac-types": "workspace:**", diff --git a/apps/backend/scripts/migrate.js b/apps/backend/scripts/migrate.js deleted file mode 100644 index 5ea6e9951..000000000 --- a/apps/backend/scripts/migrate.js +++ /dev/null @@ -1,20 +0,0 @@ -import { DynamoDBClient, DescribeTableCommand } from '@aws-sdk/client-dynamodb'; // ES Modules import -import env from '../src/env'; - -async function main() { - const client = new DynamoDBClient({ - region: env.AWS_REGION, - }); - - const input = { - // DescribeTableInput - TableName: env.USERDATA_TABLE_NAME, // required - }; - - const command = new DescribeTableCommand(input); - const response = await client.send(command); - - console.log(response); -} - -main(); diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts new file mode 100644 index 000000000..6b372244d --- /dev/null +++ b/apps/backend/scripts/migrate.ts @@ -0,0 +1,45 @@ +/** + * To run this script, run "pnpm run migrate". + */ + +import { drizzle } from 'drizzle-orm/postgres-js'; +import { migrate } from 'drizzle-orm/postgres-js/migrator'; + +import { ddbClient } from '../src/db/ddb.ts'; +import { db, client } from '../src/db/index.ts'; +import { user } from '../src/db/schema/index.ts'; + +/** + * Migrates the current drizzle schema to the PostgreSQL database associated + * with the drizzle client. Before migrating, run "pnpm run generate" to generate + * the migration files, and make sure the PostgreSQL database exists beforehand. + */ +async function migrateToPostgres() { + await migrate(drizzle(client), { + migrationsFolder: './drizzle' + }); +} + +/** + * Migrates user data from DynamoDB to the PostgreSQL database associated + * with the drizzle client. + */ +async function insertUsersToPostgres() { + const userIds = await ddbClient.getUserIds(); + const usersToInsert = userIds.map((userId) => ({ id: userId })); + await db.insert(user).values(usersToInsert); + console.log(await db.query.user.findMany()); +} + +async function main() { + try { + await migrateToPostgres(); + await insertUsersToPostgres(); + } catch (error) { + console.log(error); + } finally { + await client.end(); + } +} + +main(); diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index b6f7a2ee4..03bb9e271 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -137,7 +137,6 @@ class DDBClient>> { } async getUserData(id: string) { - this.migrate(); return (await ddbClient.get('id', id))?.userData; } @@ -175,7 +174,7 @@ class DDBClient>> { } - async migrate () { + async getUserIds () { const params = { TableName: this.tableName, } @@ -195,7 +194,7 @@ class DDBClient>> { } } while (typeof items.LastEvaluatedKey !== 'undefined'); - console.log(scanResults); + return scanResults; } } diff --git a/apps/backend/src/db/index.ts b/apps/backend/src/db/index.ts index fda86503b..65a724625 100644 --- a/apps/backend/src/db/index.ts +++ b/apps/backend/src/db/index.ts @@ -1,6 +1,7 @@ import { drizzle } from 'drizzle-orm/postgres-js'; import postgres from 'postgres'; +import * as schema from './schema/index.js'; export const client = postgres('postgres://postgres:postgres@localhost:5432/antalmanac'); -export const db = drizzle(client); +export const db = drizzle(client, { schema }); From 49d723d16d15633e66d2f65d4f246d8db48e7f90 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:03:43 -0700 Subject: [PATCH 05/90] chore(ddb.ts): remove unused import --- apps/backend/src/db/ddb.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index 03bb9e271..43f8d7ceb 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -1,6 +1,6 @@ import type { Type } from 'arktype'; import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb'; -import { DynamoDB, DescribeTableCommand } from '@aws-sdk/client-dynamodb'; +import { DynamoDB } from '@aws-sdk/client-dynamodb'; import { UserSchema, From 60ac1d5d033af4eab464b668a8cd4633abeb06e7 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:38:13 -0700 Subject: [PATCH 06/90] fix(auth): table --- apps/backend/src/db/schema/auth/account.ts | 18 +++++++++++------- apps/backend/src/db/schema/auth/session.ts | 6 ++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/apps/backend/src/db/schema/auth/account.ts b/apps/backend/src/db/schema/auth/account.ts index ded29ca53..b40a109db 100644 --- a/apps/backend/src/db/schema/auth/account.ts +++ b/apps/backend/src/db/schema/auth/account.ts @@ -1,7 +1,15 @@ -import { primaryKey, pgTable, text } from 'drizzle-orm/pg-core'; +import { primaryKey, pgTable, text, pgEnum } from 'drizzle-orm/pg-core'; import { user } from './user'; + +export const oAuthProvider = pgEnum( + 'account_provider', + ['GOOGLE'] +); + +// Each user can have multiple accounts, each account is associated with a provider. +// A user without an account is a username-only user. export const account = pgTable( 'account', { @@ -9,18 +17,14 @@ export const account = pgTable( .references(() => user.id, { onDelete: 'cascade' }) .notNull(), - providerId: text('provider').notNull(), + provider: oAuthProvider('provider').notNull(), providerAccountId: text('provider_account_id').notNull(), - - providerAccountCredential: text('provider_account_credential'), - - providerType: text('provider_type'), }, (table) => { return { primaryKey: primaryKey({ - columns: [table.userId, table.providerId, table.providerAccountId], + columns: [table.userId, table.provider, table.providerAccountId], }), }; } diff --git a/apps/backend/src/db/schema/auth/session.ts b/apps/backend/src/db/schema/auth/session.ts index 8b8ad426a..ca5c5e90a 100644 --- a/apps/backend/src/db/schema/auth/session.ts +++ b/apps/backend/src/db/schema/auth/session.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2'; -import { integer, pgTable, text } from 'drizzle-orm/pg-core'; +import { timestamp, pgTable, text } from 'drizzle-orm/pg-core'; import { user } from './user'; @@ -10,9 +10,7 @@ export const session = pgTable('session', { .references(() => user.id, { onDelete: 'cascade' }) .notNull(), - expires: integer('expires').notNull(), - - status: text('status').default('ACTIVE'), + expires: timestamp('expires').notNull(), refreshToken: text('refresh_token').$defaultFn(createId), }); From a572caa5dcf04c612fc8e56e5f8a5e1e23d052c3 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:38:50 -0700 Subject: [PATCH 07/90] feat(subscription): target status enum --- apps/backend/src/db/schema/subscription.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/db/schema/subscription.ts b/apps/backend/src/db/schema/subscription.ts index e7a8e7e8a..76ec1569f 100644 --- a/apps/backend/src/db/schema/subscription.ts +++ b/apps/backend/src/db/schema/subscription.ts @@ -1,6 +1,12 @@ -import { integer, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; +import { integer, pgEnum, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; import { user } from './auth/user'; + +export const subscriptionTargetStatus = pgEnum( + 'subscription_target_status', + ['OPEN', 'WAITLISTED'] +) + export const subscription = pgTable( 'subscription', { @@ -18,7 +24,7 @@ export const subscription = pgTable( * @example "OPEN" could indicate that the user wants to be notified when this * section changes from "WAITLISTED" to "OPEN". */ - status: text('status'), + status: subscriptionTargetStatus('status'), }, (table) => { return { From da1facb8c7769a67ae3a2ccc633294bd874ed7b0 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:49:34 -0700 Subject: [PATCH 08/90] chore(schema): rename tables to plural nouns --- apps/backend/scripts/migrate.ts | 6 +++--- apps/backend/src/db/schema/auth/account.ts | 10 +++++----- apps/backend/src/db/schema/auth/session.ts | 8 ++++---- apps/backend/src/db/schema/auth/user.ts | 4 ++-- apps/backend/src/db/schema/course.ts | 8 ++++---- apps/backend/src/db/schema/schedule.ts | 6 +++--- apps/backend/src/db/schema/subscription.ts | 8 ++++---- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 6b372244d..48b6e9a03 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -7,7 +7,7 @@ import { migrate } from 'drizzle-orm/postgres-js/migrator'; import { ddbClient } from '../src/db/ddb.ts'; import { db, client } from '../src/db/index.ts'; -import { user } from '../src/db/schema/index.ts'; +import { users } from '../src/db/schema/index.ts'; /** * Migrates the current drizzle schema to the PostgreSQL database associated @@ -27,8 +27,8 @@ async function migrateToPostgres() { async function insertUsersToPostgres() { const userIds = await ddbClient.getUserIds(); const usersToInsert = userIds.map((userId) => ({ id: userId })); - await db.insert(user).values(usersToInsert); - console.log(await db.query.user.findMany()); + await db.insert(users).values(usersToInsert); + console.log(await db.query.users.findMany()); } async function main() { diff --git a/apps/backend/src/db/schema/auth/account.ts b/apps/backend/src/db/schema/auth/account.ts index b40a109db..08168131f 100644 --- a/apps/backend/src/db/schema/auth/account.ts +++ b/apps/backend/src/db/schema/auth/account.ts @@ -1,6 +1,6 @@ import { primaryKey, pgTable, text, pgEnum } from 'drizzle-orm/pg-core'; -import { user } from './user'; +import { users } from './user'; export const oAuthProvider = pgEnum( @@ -10,11 +10,11 @@ export const oAuthProvider = pgEnum( // Each user can have multiple accounts, each account is associated with a provider. // A user without an account is a username-only user. -export const account = pgTable( - 'account', +export const accounts = pgTable( + 'accounts', { userId: text('user_id') - .references(() => user.id, { onDelete: 'cascade' }) + .references(() => users.id, { onDelete: 'cascade' }) .notNull(), provider: oAuthProvider('provider').notNull(), @@ -30,4 +30,4 @@ export const account = pgTable( } ); -export type Account = typeof account.$inferSelect; +export type Account = typeof accounts.$inferSelect; diff --git a/apps/backend/src/db/schema/auth/session.ts b/apps/backend/src/db/schema/auth/session.ts index ca5c5e90a..4a950c29b 100644 --- a/apps/backend/src/db/schema/auth/session.ts +++ b/apps/backend/src/db/schema/auth/session.ts @@ -1,13 +1,13 @@ import { createId } from '@paralleldrive/cuid2'; import { timestamp, pgTable, text } from 'drizzle-orm/pg-core'; -import { user } from './user'; +import { users } from './user'; -export const session = pgTable('session', { +export const sessions = pgTable('sessions', { id: text('id').primaryKey().$defaultFn(createId), userId: text('user_id') - .references(() => user.id, { onDelete: 'cascade' }) + .references(() => users.id, { onDelete: 'cascade' }) .notNull(), expires: timestamp('expires').notNull(), @@ -15,4 +15,4 @@ export const session = pgTable('session', { refreshToken: text('refresh_token').$defaultFn(createId), }); -export type Session = typeof session.$inferSelect; +export type Session = typeof sessions.$inferSelect; diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index f9b039156..e521dc5e8 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -4,7 +4,7 @@ import { integer, pgTable, text } from 'drizzle-orm/pg-core'; /** * User entity is analogous to a person. */ -export const user = pgTable('user', { +export const users = pgTable('users', { /** * Unique ID (CUID) to represent the entity. */ @@ -31,4 +31,4 @@ export const user = pgTable('user', { verified: integer('verified'), }); -export type User = typeof user.$inferSelect; +export type User = typeof users.$inferSelect; diff --git a/apps/backend/src/db/schema/course.ts b/apps/backend/src/db/schema/course.ts index cd3ba73a6..4de16949f 100644 --- a/apps/backend/src/db/schema/course.ts +++ b/apps/backend/src/db/schema/course.ts @@ -1,5 +1,5 @@ import { integer, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; -import { schedule } from './schedule'; +import { schedules } from './schedule'; /** * Courses have a N:1 relation with schedules. @@ -9,10 +9,10 @@ import { schedule } from './schedule'; * Once a schedule and its courses have been loaded, additional context can be retrieved * for the courses by querying PPA with the section code and term. */ -export const course = pgTable( - 'course', +export const courses = pgTable( + 'courses', { - scheduleId: text('scheduleId').references(() => schedule.id, { onDelete: 'cascade' }), + scheduleId: text('scheduleId').references(() => schedules.id, { onDelete: 'cascade' }), /** * The course's section code. diff --git a/apps/backend/src/db/schema/schedule.ts b/apps/backend/src/db/schema/schedule.ts index 26001d505..31006aab7 100644 --- a/apps/backend/src/db/schema/schedule.ts +++ b/apps/backend/src/db/schema/schedule.ts @@ -1,15 +1,15 @@ import { createId } from '@paralleldrive/cuid2'; import { boolean, pgTable, text } from 'drizzle-orm/pg-core'; -import { user } from './auth/user'; +import { users } from './auth/user'; -export const schedule = pgTable('schedule', { +export const schedules = pgTable('schedules', { id: text('id').primaryKey().$defaultFn(createId), /** * A schedule is owned by a user. */ userId: text('user_id') - .references(() => user.id, { onDelete: 'cascade' }) + .references(() => users.id, { onDelete: 'cascade' }) .notNull(), /** diff --git a/apps/backend/src/db/schema/subscription.ts b/apps/backend/src/db/schema/subscription.ts index 76ec1569f..e9fc2624d 100644 --- a/apps/backend/src/db/schema/subscription.ts +++ b/apps/backend/src/db/schema/subscription.ts @@ -1,5 +1,5 @@ import { integer, pgEnum, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; -import { user } from './auth/user'; +import { users } from './auth/user'; export const subscriptionTargetStatus = pgEnum( @@ -7,13 +7,13 @@ export const subscriptionTargetStatus = pgEnum( ['OPEN', 'WAITLISTED'] ) -export const subscription = pgTable( - 'subscription', +export const subscriptions = pgTable( + 'subscriptions', { /** * The user that is subscribing to course updates for the specified section. */ - userId: text('userId').references(() => user.id, { onDelete: 'cascade' }), + userId: text('userId').references(() => users.id, { onDelete: 'cascade' }), /** * Section code. From dafd70b1d2400b1a7960328a1441074f4626bd9a Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:30:22 -0700 Subject: [PATCH 09/90] feat(schema): move active schedule into users table --- apps/backend/src/db/schema/auth/user.ts | 12 +++++++++--- apps/backend/src/db/schema/schedule.ts | 5 ----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index e521dc5e8..d0c508b03 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -1,5 +1,7 @@ import { createId } from '@paralleldrive/cuid2'; -import { integer, pgTable, text } from 'drizzle-orm/pg-core'; +import { AnyPgColumn, foreignKey, integer, pgTable, text } from 'drizzle-orm/pg-core'; + +import { schedules } from '../schedule'; /** * User entity is analogous to a person. @@ -26,9 +28,13 @@ export const users = pgTable('users', { avatar: text('avatar'), /** - * Whether the email has been verified. + * Most recently viewed schedule. */ - verified: integer('verified'), + currentScheduleId: text('current_schedule_id') + .references( + // Necessary because this is a circular dependency. + (): AnyPgColumn => schedules.id + ), }); export type User = typeof users.$inferSelect; diff --git a/apps/backend/src/db/schema/schedule.ts b/apps/backend/src/db/schema/schedule.ts index 31006aab7..76c051f5c 100644 --- a/apps/backend/src/db/schema/schedule.ts +++ b/apps/backend/src/db/schema/schedule.ts @@ -12,11 +12,6 @@ export const schedules = pgTable('schedules', { .references(() => users.id, { onDelete: 'cascade' }) .notNull(), - /** - * Whether this schedule was the most recently focused. - */ - active: boolean('active'), - /** * Name of the schedule. */ From 1117b0c684fa0af98dec09160a946646f7770e08 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 5 Nov 2024 22:14:09 -0800 Subject: [PATCH 10/90] refactor(schema): schedule dir --- apps/backend/src/db/schema/auth/user.ts | 2 +- apps/backend/src/db/schema/index.ts | 4 ++-- apps/backend/src/db/schema/{ => schedule}/course.ts | 2 +- apps/backend/src/db/schema/schedule/index.ts | 2 ++ apps/backend/src/db/schema/{ => schedule}/schedule.ts | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) rename apps/backend/src/db/schema/{ => schedule}/course.ts (96%) create mode 100644 apps/backend/src/db/schema/schedule/index.ts rename apps/backend/src/db/schema/{ => schedule}/schedule.ts (93%) diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index d0c508b03..bea3d4c0b 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -1,7 +1,7 @@ import { createId } from '@paralleldrive/cuid2'; import { AnyPgColumn, foreignKey, integer, pgTable, text } from 'drizzle-orm/pg-core'; -import { schedules } from '../schedule'; +import { schedules } from '../schedule/schedule'; /** * User entity is analogous to a person. diff --git a/apps/backend/src/db/schema/index.ts b/apps/backend/src/db/schema/index.ts index b9b15f43f..cfd518eb8 100644 --- a/apps/backend/src/db/schema/index.ts +++ b/apps/backend/src/db/schema/index.ts @@ -1,4 +1,4 @@ export * from './auth' -export * from './course' -export * from './schedule' +export * from './schedule/course' +export * from './schedule/schedule' export * from './subscription' diff --git a/apps/backend/src/db/schema/course.ts b/apps/backend/src/db/schema/schedule/course.ts similarity index 96% rename from apps/backend/src/db/schema/course.ts rename to apps/backend/src/db/schema/schedule/course.ts index 4de16949f..a38b2cb64 100644 --- a/apps/backend/src/db/schema/course.ts +++ b/apps/backend/src/db/schema/schedule/course.ts @@ -1,5 +1,5 @@ import { integer, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; -import { schedules } from './schedule'; +import { schedules } from '.'; /** * Courses have a N:1 relation with schedules. diff --git a/apps/backend/src/db/schema/schedule/index.ts b/apps/backend/src/db/schema/schedule/index.ts new file mode 100644 index 000000000..ec6a07b83 --- /dev/null +++ b/apps/backend/src/db/schema/schedule/index.ts @@ -0,0 +1,2 @@ +export * from './schedule'; +export * from './course'; diff --git a/apps/backend/src/db/schema/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts similarity index 93% rename from apps/backend/src/db/schema/schedule.ts rename to apps/backend/src/db/schema/schedule/schedule.ts index 76c051f5c..d87968495 100644 --- a/apps/backend/src/db/schema/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -1,6 +1,6 @@ import { createId } from '@paralleldrive/cuid2'; import { boolean, pgTable, text } from 'drizzle-orm/pg-core'; -import { users } from './auth/user'; +import { users } from '../auth/user'; export const schedules = pgTable('schedules', { id: text('id').primaryKey().$defaultFn(createId), From 5464871987bfea295b54a13e8a1d8dfe4c8d816b Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 5 Nov 2024 22:16:16 -0800 Subject: [PATCH 11/90] feat(schema): export some types --- apps/backend/src/db/schema/schedule/course.ts | 6 ++++-- apps/backend/src/db/schema/schedule/schedule.ts | 4 +++- apps/backend/src/db/schema/subscription.ts | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/db/schema/schedule/course.ts b/apps/backend/src/db/schema/schedule/course.ts index a38b2cb64..6c69d741e 100644 --- a/apps/backend/src/db/schema/schedule/course.ts +++ b/apps/backend/src/db/schema/schedule/course.ts @@ -9,8 +9,8 @@ import { schedules } from '.'; * Once a schedule and its courses have been loaded, additional context can be retrieved * for the courses by querying PPA with the section code and term. */ -export const courses = pgTable( - 'courses', +export const coursesInSchedule = pgTable( + 'coursesInSchedule', { scheduleId: text('scheduleId').references(() => schedules.id, { onDelete: 'cascade' }), @@ -37,3 +37,5 @@ export const courses = pgTable( }; } ); + +export type CourseInSchedule = typeof coursesInSchedule.$inferSelect; diff --git a/apps/backend/src/db/schema/schedule/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts index d87968495..dae83f80e 100644 --- a/apps/backend/src/db/schema/schedule/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2'; -import { boolean, pgTable, text } from 'drizzle-orm/pg-core'; +import { pgTable, text } from 'drizzle-orm/pg-core'; import { users } from '../auth/user'; export const schedules = pgTable('schedules', { @@ -22,3 +22,5 @@ export const schedules = pgTable('schedules', { */ notes: text('notes'), }); + +export type Schedule = typeof schedules.$inferSelect; diff --git a/apps/backend/src/db/schema/subscription.ts b/apps/backend/src/db/schema/subscription.ts index e9fc2624d..da3e95dae 100644 --- a/apps/backend/src/db/schema/subscription.ts +++ b/apps/backend/src/db/schema/subscription.ts @@ -34,3 +34,5 @@ export const subscriptions = pgTable( }; } ); + +export type Subscription = typeof subscriptions.$inferSelect; From 46c359c13990a3495c797717a79e95fcea46885d Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 5 Nov 2024 23:48:20 -0800 Subject: [PATCH 12/90] feat(schema): remove name from user --- apps/backend/src/db/schema/auth/user.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index bea3d4c0b..8f90d7133 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2'; -import { AnyPgColumn, foreignKey, integer, pgTable, text } from 'drizzle-orm/pg-core'; +import { AnyPgColumn, pgTable, text } from 'drizzle-orm/pg-core'; import { schedules } from '../schedule/schedule'; @@ -17,11 +17,6 @@ export const users = pgTable('users', { */ phone: text('phone'), - /** - * Display name. - */ - name: text('name'), - /** * Profile picture.. */ From 2a013dfb3e8f6033c98cdef76336d610c2a8782e Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 5 Nov 2024 23:48:53 -0800 Subject: [PATCH 13/90] feat(migration): proper batching and filtering in getting all data --- apps/backend/src/db/ddb.ts | 43 ++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index 43f8d7ceb..ef77fd7bb 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -1,6 +1,6 @@ import type { Type } from 'arktype'; import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb'; -import { DynamoDB } from '@aws-sdk/client-dynamodb'; +import { DynamoDB, ScanCommandInput } from '@aws-sdk/client-dynamodb'; import { UserSchema, @@ -174,27 +174,34 @@ class DDBClient>> { } - async getUserIds () { - const params = { + async* getAllUserDataBatches(){ + const params: ScanCommandInput = { TableName: this.tableName, } - - const scanResults: string[] = []; - let items; - - do { - items = await this.documentClient.scan(params); - if (items.Items) { - for (const item of items.Items) { - const parsedItem = UserSchema(item); - if (parsedItem.problems !== null && parsedItem.data) { - scanResults.push(parsedItem.data.id); - } - } + + while(true) { + const result = await this.documentClient.scan(params); + + if (result.Items) { + const users = result.Items + .map((item) => this.schema(item)) + .filter( + (result) => ( + result.problems == null + && result.data != null + ) + ) + .map((result) => result.data) as unknown[] as T[]; + + yield users.filter( + (user) => user.name !== undefined + ); } - } while (typeof items.LastEvaluatedKey !== 'undefined'); - return scanResults; + if (typeof result.LastEvaluatedKey === 'undefined') return; + + params.ExclusiveStartKey = result.LastEvaluatedKey; + } } } From a68b906905bc1e53ae99941e7a4c871f21d03a9e Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 5 Nov 2024 23:49:49 -0800 Subject: [PATCH 14/90] feat(schema): clearer account types --- apps/backend/src/db/schema/auth/account.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/backend/src/db/schema/auth/account.ts b/apps/backend/src/db/schema/auth/account.ts index 08168131f..3a5992c31 100644 --- a/apps/backend/src/db/schema/auth/account.ts +++ b/apps/backend/src/db/schema/auth/account.ts @@ -3,9 +3,11 @@ import { primaryKey, pgTable, text, pgEnum } from 'drizzle-orm/pg-core'; import { users } from './user'; -export const oAuthProvider = pgEnum( - 'account_provider', - ['GOOGLE'] +const accountTypes = ['GOOGLE', 'GUEST'] as const; + +export const accountTypeEnum = pgEnum( + 'account_type', + accountTypes ); // Each user can have multiple accounts, each account is associated with a provider. @@ -17,14 +19,16 @@ export const accounts = pgTable( .references(() => users.id, { onDelete: 'cascade' }) .notNull(), - provider: oAuthProvider('provider').notNull(), + accountType: accountTypeEnum('account_type') + .notNull() + .$default(() => 'GUEST'), providerAccountId: text('provider_account_id').notNull(), }, (table) => { return { primaryKey: primaryKey({ - columns: [table.userId, table.provider, table.providerAccountId], + columns: [table.userId, table.accountType], }), }; } From f3caa71924546f6a9dcf9aebb9e8d548143be7f0 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 5 Nov 2024 23:55:30 -0800 Subject: [PATCH 15/90] feat(migration): properly copy users --- apps/backend/scripts/migrate.ts | 41 +++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 48b6e9a03..271f32f93 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -7,14 +7,14 @@ import { migrate } from 'drizzle-orm/postgres-js/migrator'; import { ddbClient } from '../src/db/ddb.ts'; import { db, client } from '../src/db/index.ts'; -import { users } from '../src/db/schema/index.ts'; +import { accounts, users } from '../src/db/schema/index.ts'; /** * Migrates the current drizzle schema to the PostgreSQL database associated * with the drizzle client. Before migrating, run "pnpm run generate" to generate * the migration files, and make sure the PostgreSQL database exists beforehand. */ -async function migrateToPostgres() { +async function migratePostgresDb() { await migrate(drizzle(client), { migrationsFolder: './drizzle' }); @@ -24,17 +24,40 @@ async function migrateToPostgres() { * Migrates user data from DynamoDB to the PostgreSQL database associated * with the drizzle client. */ -async function insertUsersToPostgres() { - const userIds = await ddbClient.getUserIds(); - const usersToInsert = userIds.map((userId) => ({ id: userId })); - await db.insert(users).values(usersToInsert); - console.log(await db.query.users.findMany()); +async function copyUsersToPostgres() { + for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { + // To insert + const numUsers = ddbBatch.length; + const emptyArray = new Array(numUsers).fill({}); + + const newUsersIds = ( + await db + .insert(users) + .values(emptyArray) + .returning({ userId: users.id}) + ).map((user) => user.userId); + + // Make guest accounts for every user + db + .insert(accounts) + .values(newUsersIds.map( + (userId, index) => ( + { userId, providerAccountId: ddbBatch[index].name } + ) + )) + // If someone changed their account information during the migration, + // don't overwrite it. + .onConflictDoNothing({ target: accounts.providerAccountId}); + + return newUsersIds; + } } async function main() { try { - await migrateToPostgres(); - await insertUsersToPostgres(); + await migratePostgresDb(); + await copyUsersToPostgres(); + // TODO: copy other tables } catch (error) { console.log(error); } finally { From 897e647fc69b81d11458c0ab0420943bf7231cb5 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:16:51 -0800 Subject: [PATCH 16/90] feat(coursesInSchedule): not null columns --- apps/backend/src/db/schema/schedule/course.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/backend/src/db/schema/schedule/course.ts b/apps/backend/src/db/schema/schedule/course.ts index 6c69d741e..7be7ced2c 100644 --- a/apps/backend/src/db/schema/schedule/course.ts +++ b/apps/backend/src/db/schema/schedule/course.ts @@ -12,22 +12,24 @@ import { schedules } from '.'; export const coursesInSchedule = pgTable( 'coursesInSchedule', { - scheduleId: text('scheduleId').references(() => schedules.id, { onDelete: 'cascade' }), + scheduleId: text('scheduleId') + .references(() => schedules.id, { onDelete: 'cascade' }) + .notNull(), /** * The course's section code. */ - sectionCode: integer('sectionCode'), + sectionCode: integer('sectionCode').notNull(), /** * @example Winter 2024. */ - term: text('term'), + term: text('term').notNull(), /** * Color that the course has when displayed on calendar. */ - color: text('color'), + color: text('color').notNull(), }, (table) => { return { From a1616c74490912a8ef0edb339217ff3c9ab480ee Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:19:04 -0800 Subject: [PATCH 17/90] fix(ddb): typing for getAddUserDataBatches --- apps/backend/src/db/ddb.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index ef77fd7bb..0e88b2f67 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -174,6 +174,10 @@ class DDBClient>> { } + /** + * Reference: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.Pagination.html + * @returns An async generator that yields batches of user data from DynamoDB pages. + */ async* getAllUserDataBatches(){ const params: ScanCommandInput = { TableName: this.tableName, @@ -184,14 +188,14 @@ class DDBClient>> { if (result.Items) { const users = result.Items - .map((item) => this.schema(item)) + .map((item) => UserSchema(item)) .filter( (result) => ( result.problems == null && result.data != null ) ) - .map((result) => result.data) as unknown[] as T[]; + .map((result) => result.data); yield users.filter( (user) => user.name !== undefined From db8abd050574660e4caf31c9d4dbc28be24638f8 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:19:25 -0800 Subject: [PATCH 18/90] feat(user): re-add name --- apps/backend/src/db/schema/auth/user.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index 8f90d7133..f5073bf65 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -22,6 +22,11 @@ export const users = pgTable('users', { */ avatar: text('avatar'), + /** + * User's name. + */ + name: text('name'), + /** * Most recently viewed schedule. */ From a5f17d47eac50922061a85b998af5a76674e877c Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:20:12 -0800 Subject: [PATCH 19/90] feat(migrate): migration script --- apps/backend/scripts/migrate.ts | 120 +++++++++++++++++++++++++------- 1 file changed, 96 insertions(+), 24 deletions(-) diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 271f32f93..72549bf45 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -2,12 +2,15 @@ * To run this script, run "pnpm run migrate". */ +import { eq } from 'drizzle-orm'; import { drizzle } from 'drizzle-orm/postgres-js'; import { migrate } from 'drizzle-orm/postgres-js/migrator'; +import { ShortCourseSchedule } from '@packages/antalmanac-types'; + import { ddbClient } from '../src/db/ddb.ts'; import { db, client } from '../src/db/index.ts'; -import { accounts, users } from '../src/db/schema/index.ts'; +import { accounts, users, schedules, coursesInSchedule } from '../src/db/schema/index.ts'; /** * Migrates the current drizzle schema to the PostgreSQL database associated @@ -20,36 +23,105 @@ async function migratePostgresDb() { }); } +function ddbToPostgresSchedules( + userId: string, + ddbSchedules: ShortCourseSchedule[] +): typeof schedules.$inferInsert[] { + return ddbSchedules.map( + (ddbSchedule) => ({ + userId, + name: ddbSchedule.scheduleName, + notes: ddbSchedule.scheduleNote, + }) + ); +} + +function ddbToPostgresCourse( + ddbSchedules: ShortCourseSchedule[], + scheduleIds: string[], +): typeof coursesInSchedule.$inferInsert[] { + return ddbSchedules.map( + (ddbSchedule, index) => ( + ddbSchedule.courses.map( + (ddbCourse) => ({ + scheduleId: scheduleIds[index], + term: ddbCourse.term, + sectionCode: parseInt(ddbCourse.sectionCode), + color: ddbCourse.color, + }) + ) + ) + ).flat(); +} + /** * Migrates user data from DynamoDB to the PostgreSQL database associated * with the drizzle client. */ async function copyUsersToPostgres() { for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { - // To insert - const numUsers = ddbBatch.length; - const emptyArray = new Array(numUsers).fill({}); + const transactions = ddbBatch.map( // One transaction per user + (ddbUser) => db.transaction( + async (tx) => { + // Create user with name. + // This overwrites the user, but that doesn't matter because + // the only thing that's changed is the current schedule index. + const userId = (await ( + tx + .insert(users) + .values({ name: ddbUser.name, }) + .returning({ id: users.id }) + )).map((user) => user.id)[0]; + + // Add as guest account + await ( + tx + .insert(accounts) + .values({ userId, providerAccountId: ddbUser.id }) + ); - const newUsersIds = ( - await db - .insert(users) - .values(emptyArray) - .returning({ userId: users.id}) - ).map((user) => user.userId); - - // Make guest accounts for every user - db - .insert(accounts) - .values(newUsersIds.map( - (userId, index) => ( - { userId, providerAccountId: ddbBatch[index].name } - ) - )) - // If someone changed their account information during the migration, - // don't overwrite it. - .onConflictDoNothing({ target: accounts.providerAccountId}); + // Add schedules/courses + + // Add schedules + const scheduleIds = ( + await ( + tx + .insert(schedules) + .values( + ddbToPostgresSchedules( + ddbUser.id, + ddbUser.userData.schedules + ) + ) + .returning({ id: schedules.id }) + ) + ).map((schedule) => schedule.id); + + // Update user's current schedule + const currentScheduleId = scheduleIds[ddbUser.userData.scheduleIndex]; + await ( + tx + .update(users) + .set({ currentScheduleId: currentScheduleId }) + .where(eq(users.id, userId)) + ) - return newUsersIds; + // Add courses + await ( + tx + .insert(coursesInSchedule) + .values( + ddbToPostgresCourse( + ddbUser.userData.schedules, + scheduleIds + ) + ) + ) + } + ) + ); + + return Promise.all(transactions); } } @@ -57,7 +129,7 @@ async function main() { try { await migratePostgresDb(); await copyUsersToPostgres(); - // TODO: copy other tables + } catch (error) { console.log(error); } finally { From 859673488e59f294de40cc81937917c0a3dd6248 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:28:44 -0800 Subject: [PATCH 20/90] fix(migrate): return statement positioning --- apps/backend/scripts/migrate.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 72549bf45..aa002602b 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -59,6 +59,8 @@ function ddbToPostgresCourse( * with the drizzle client. */ async function copyUsersToPostgres() { + const transactionBatches: Promise[] = []; + for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { const transactions = ddbBatch.map( // One transaction per user (ddbUser) => db.transaction( @@ -121,8 +123,10 @@ async function copyUsersToPostgres() { ) ); - return Promise.all(transactions); + transactionBatches.push(Promise.all(transactions)); } + + return Promise.all(transactionBatches); } async function main() { From c02b374ce4772d84e6dda4940608d3f2cf667ec2 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:48:24 -0800 Subject: [PATCH 21/90] feat(migrate) error handling --- apps/backend/scripts/migrate.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index aa002602b..c4fe49371 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -60,6 +60,7 @@ function ddbToPostgresCourse( */ async function copyUsersToPostgres() { const transactionBatches: Promise[] = []; + const failedUsers: string[] = []; for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { const transactions = ddbBatch.map( // One transaction per user @@ -120,7 +121,10 @@ async function copyUsersToPostgres() { ) ) } - ) + ).catch((error) => { + failedUsers.push(ddbUser.id); + console.log(error); + }) ); transactionBatches.push(Promise.all(transactions)); From d41e2b00729d31e9ce0b6393523cbe53f4997aae Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 10 Nov 2024 16:38:23 -0800 Subject: [PATCH 22/90] chore(trpc): remove unused endpoint --- apps/backend/src/routers/index.ts | 2 -- apps/backend/src/routers/news.ts | 13 ------------- 2 files changed, 15 deletions(-) delete mode 100644 apps/backend/src/routers/news.ts diff --git a/apps/backend/src/routers/index.ts b/apps/backend/src/routers/index.ts index 2611cca4a..418c50c91 100644 --- a/apps/backend/src/routers/index.ts +++ b/apps/backend/src/routers/index.ts @@ -1,10 +1,8 @@ import { router } from '../trpc'; -import newsRouter from './news'; import usersRouter from './users'; import zotcourseRouter from "./zotcours"; const appRouter = router({ - news: newsRouter, users: usersRouter, zotcourse: zotcourseRouter }); diff --git a/apps/backend/src/routers/news.ts b/apps/backend/src/routers/news.ts deleted file mode 100644 index dfc338425..000000000 --- a/apps/backend/src/routers/news.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { router, procedure } from '../trpc'; -import NewsModel, { News } from '../models/News'; - -const newsRouter = router({ - /** - * return all news - */ - findAll: procedure.query(async () => { - return (await NewsModel.find({})) as News[]; - }), -}); - -export default newsRouter; From d94c614d7562a015c0fe6faf0b8e60e7620d64f7 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:29:30 -0800 Subject: [PATCH 23/90] feat(schema): add lastUpdated to tables --- apps/backend/src/db/schema/auth/user.ts | 4 +++- apps/backend/src/db/schema/schedule/course.ts | 4 +++- apps/backend/src/db/schema/schedule/schedule.ts | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index f5073bf65..f3d0eb212 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2'; -import { AnyPgColumn, pgTable, text } from 'drizzle-orm/pg-core'; +import { AnyPgColumn, pgTable, text, timestamp } from 'drizzle-orm/pg-core'; import { schedules } from '../schedule/schedule'; @@ -35,6 +35,8 @@ export const users = pgTable('users', { // Necessary because this is a circular dependency. (): AnyPgColumn => schedules.id ), + + lastUpdated: timestamp('last_updated').defaultNow(), }); export type User = typeof users.$inferSelect; diff --git a/apps/backend/src/db/schema/schedule/course.ts b/apps/backend/src/db/schema/schedule/course.ts index 7be7ced2c..613853d61 100644 --- a/apps/backend/src/db/schema/schedule/course.ts +++ b/apps/backend/src/db/schema/schedule/course.ts @@ -1,4 +1,4 @@ -import { integer, pgTable, primaryKey, text } from 'drizzle-orm/pg-core'; +import { integer, pgTable, primaryKey, text, timestamp } from 'drizzle-orm/pg-core'; import { schedules } from '.'; /** @@ -30,6 +30,8 @@ export const coursesInSchedule = pgTable( * Color that the course has when displayed on calendar. */ color: text('color').notNull(), + + lastUpdated: timestamp('last_updated').defaultNow(), }, (table) => { return { diff --git a/apps/backend/src/db/schema/schedule/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts index dae83f80e..a028cafe7 100644 --- a/apps/backend/src/db/schema/schedule/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2'; -import { pgTable, text } from 'drizzle-orm/pg-core'; +import { pgTable, text, timestamp } from 'drizzle-orm/pg-core'; import { users } from '../auth/user'; export const schedules = pgTable('schedules', { @@ -21,6 +21,8 @@ export const schedules = pgTable('schedules', { * Any custom notes. */ notes: text('notes'), + + lastUpdated: timestamp('last_updated').defaultNow(), }); export type Schedule = typeof schedules.$inferSelect; From 47562f39922f33ad170016ab19fd5c0eb7785909 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:29:53 -0800 Subject: [PATCH 24/90] feat(schema): add lastUpdated to tables --- apps/backend/src/db/schema/auth/user.ts | 2 +- apps/backend/src/db/schema/schedule/course.ts | 4 ++-- apps/backend/src/db/schema/schedule/schedule.ts | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index f3d0eb212..295c997e8 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -36,7 +36,7 @@ export const users = pgTable('users', { (): AnyPgColumn => schedules.id ), - lastUpdated: timestamp('last_updated').defaultNow(), + lastUpdated: timestamp('last_updated', { withTimezone: true }).defaultNow(), }); export type User = typeof users.$inferSelect; diff --git a/apps/backend/src/db/schema/schedule/course.ts b/apps/backend/src/db/schema/schedule/course.ts index 613853d61..50e5f3588 100644 --- a/apps/backend/src/db/schema/schedule/course.ts +++ b/apps/backend/src/db/schema/schedule/course.ts @@ -2,7 +2,7 @@ import { integer, pgTable, primaryKey, text, timestamp } from 'drizzle-orm/pg-co import { schedules } from '.'; /** - * Courses have a N:1 relation with schedules. + * coursesInSchedule have a N:1 relation with schedules. * * Schedules can't have duplicate courses. i.e. courses with the same section code and term. * @@ -31,7 +31,7 @@ export const coursesInSchedule = pgTable( */ color: text('color').notNull(), - lastUpdated: timestamp('last_updated').defaultNow(), + lastUpdated: timestamp('last_updated', { withTimezone: true }).defaultNow(), }, (table) => { return { diff --git a/apps/backend/src/db/schema/schedule/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts index a028cafe7..b81a5bb33 100644 --- a/apps/backend/src/db/schema/schedule/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -22,7 +22,8 @@ export const schedules = pgTable('schedules', { */ notes: text('notes'), - lastUpdated: timestamp('last_updated').defaultNow(), + lastUpdated: timestamp('last_updated', { withTimezone: true }).notNull(), + }); export type Schedule = typeof schedules.$inferSelect; From 50f454f34299509cf907f32ffa9301d6cac8790a Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:30:26 -0800 Subject: [PATCH 25/90] feat(schema): user's schedules must be unique --- apps/backend/src/db/schema/schedule/schedule.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/db/schema/schedule/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts index b81a5bb33..347e7b0ea 100644 --- a/apps/backend/src/db/schema/schedule/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2'; -import { pgTable, text, timestamp } from 'drizzle-orm/pg-core'; +import { pgTable, unique, text, timestamp } from 'drizzle-orm/pg-core'; import { users } from '../auth/user'; export const schedules = pgTable('schedules', { @@ -24,6 +24,8 @@ export const schedules = pgTable('schedules', { lastUpdated: timestamp('last_updated', { withTimezone: true }).notNull(), -}); +}, (table) => ({ + unq: unique().on(table.userId, table.name) +})); export type Schedule = typeof schedules.$inferSelect; From 9e317a33c9d46b9d33e27b8723bed67e6e405a21 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:30:46 -0800 Subject: [PATCH 26/90] feat(api): drizzle db wrapper --- apps/backend/src/db/index.ts | 2 + apps/backend/src/lib/rds.ts | 125 +++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 apps/backend/src/lib/rds.ts diff --git a/apps/backend/src/db/index.ts b/apps/backend/src/db/index.ts index 65a724625..8ffb4e48e 100644 --- a/apps/backend/src/db/index.ts +++ b/apps/backend/src/db/index.ts @@ -5,3 +5,5 @@ import * as schema from './schema/index.js'; export const client = postgres('postgres://postgres:postgres@localhost:5432/antalmanac'); export const db = drizzle(client, { schema }); + +export type Database = typeof db; diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts new file mode 100644 index 000000000..8d61824b9 --- /dev/null +++ b/apps/backend/src/lib/rds.ts @@ -0,0 +1,125 @@ +import { ShortCourseSchedule, User } from '@packages/antalmanac-types'; + +import { and, asc, eq } from 'drizzle-orm'; +import type { Database } from "$db/index"; +import { schedules, users, accounts, coursesInSchedule } from '$db/schema'; + + +export class RDS { + /** + * Creates a guest user if they don't already exist. + * + * @param db Database or transaction object + * @param name Guest user's name, to be used as providerAccountID and username + * @returns The new/existing user's ID + */ + static async createGuestUserOptional(db: Database, name: string) { + return db.transaction(async (tx) => { + const guestAccountsWithSameName = await tx + .select() + .from(accounts) + .where(and( + eq(accounts.accountType, "GUEST"), + eq(accounts.providerAccountId, name) + )); + + if (guestAccountsWithSameName.length > 0) { + return guestAccountsWithSameName[0].userId; + } + + return (await ( + tx + .insert(users) + .values({ name }) + .returning({ id: users.id }) + )).map((user) => user.id)[0]; + }); + } + + static async upsertScheduleAndCourses(db: Database, userId: string, schedule: ShortCourseSchedule) { + // Add schedule + const dbSchedule = { + userId, + name: schedule.scheduleName, + notes: schedule.scheduleNote, + lastUpdated: new Date() + } + + const scheduleResult = await db.transaction( + async (tx) => ( + tx.insert(schedules) + .values(dbSchedule) + .onConflictDoUpdate({ + target: [schedules.userId, schedules.name], + set: dbSchedule + }) + .returning({id: schedules.id}) + ) + ); + + const scheduleId = scheduleResult[0].id; + if (scheduleId === undefined) { + throw new Error(`Failed to insert schedule for ${userId}`); + } + + // Drop all courses in the schedule and re-add them + + await db.transaction(async (tx) => await tx + .delete(coursesInSchedule) + .where(eq(coursesInSchedule.scheduleId, scheduleId)) + ); + + const dbCourses = schedule.courses.map((course) => ({ + scheduleId, + sectionCode: parseInt(course.sectionCode), + term: course.term, + color: course.color, + lastUpdated: new Date() + })); + + await db.transaction(async (tx) => await tx + .insert(coursesInSchedule) + .values(dbCourses) + ); + + return scheduleId; + } + + /** + * Creates a guest user with the username in the userData object if one + * with the same name doesn't already exist. + * + * If the user already exists, their schedules and courses are updated. + * + * @param db The Drizzle client or transaction object + * @param userData The object of data containing the user's schedules and courses + * @returns The user's ID + */ + static async upsertGuestUserData( + db: Database, userData: User + ): Promise { + return db.transaction(async (tx) => { + const userId = await this.createGuestUserOptional(tx, userData.id); + + if (userId === undefined) { + throw new Error(`Failed to create guest user for ${userData.id}`); + } + + // Add schedules and courses + const schedulesPromises = userData.userData.schedules.map( + (schedule) => this.upsertScheduleAndCourses(tx, userId, schedule) + ) + + const scheduleIds = await Promise.all(schedulesPromises); + + // Update user's current schedule index + const currentScheduleId = scheduleIds[userData.userData.scheduleIndex]; + await tx + .update(users) + .set({ currentScheduleId: currentScheduleId }) + .where(eq(users.id, userId)); + + return userId; + }) + } +} From fd9d6d8d77ac9262ed0fed21110da77309ed447f Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:31:09 -0800 Subject: [PATCH 27/90] refactor(migrate): use RDS wrapper --- apps/backend/scripts/migrate.ts | 123 ++++++++------------------------ 1 file changed, 28 insertions(+), 95 deletions(-) diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index c4fe49371..0f63443dd 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -9,8 +9,8 @@ import { migrate } from 'drizzle-orm/postgres-js/migrator'; import { ShortCourseSchedule } from '@packages/antalmanac-types'; import { ddbClient } from '../src/db/ddb.ts'; -import { db, client } from '../src/db/index.ts'; -import { accounts, users, schedules, coursesInSchedule } from '../src/db/schema/index.ts'; +import { db, client } from '../src/db/index.ts'; +import { RDS } from '../src/lib/rds.ts'; /** * Migrates the current drizzle schema to the PostgreSQL database associated @@ -23,114 +23,47 @@ async function migratePostgresDb() { }); } -function ddbToPostgresSchedules( - userId: string, - ddbSchedules: ShortCourseSchedule[] -): typeof schedules.$inferInsert[] { - return ddbSchedules.map( - (ddbSchedule) => ({ - userId, - name: ddbSchedule.scheduleName, - notes: ddbSchedule.scheduleNote, - }) - ); -} - -function ddbToPostgresCourse( - ddbSchedules: ShortCourseSchedule[], - scheduleIds: string[], -): typeof coursesInSchedule.$inferInsert[] { - return ddbSchedules.map( - (ddbSchedule, index) => ( - ddbSchedule.courses.map( - (ddbCourse) => ({ - scheduleId: scheduleIds[index], - term: ddbCourse.term, - sectionCode: parseInt(ddbCourse.sectionCode), - color: ddbCourse.color, - }) - ) - ) - ).flat(); -} - /** * Migrates user data from DynamoDB to the PostgreSQL database associated * with the drizzle client. + * + * NOTE: This pipelines the user data from Postgres, and we might get backed up + * if DynamoDB returns a lot faster than we can push to Postgres. */ async function copyUsersToPostgres() { const transactionBatches: Promise[] = []; const failedUsers: string[] = []; + let success = 0; + for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { const transactions = ddbBatch.map( // One transaction per user - (ddbUser) => db.transaction( - async (tx) => { - // Create user with name. - // This overwrites the user, but that doesn't matter because - // the only thing that's changed is the current schedule index. - const userId = (await ( - tx - .insert(users) - .values({ name: ddbUser.name, }) - .returning({ id: users.id }) - )).map((user) => user.id)[0]; - - // Add as guest account - await ( - tx - .insert(accounts) - .values({ userId, providerAccountId: ddbUser.id }) + (ddbUser) => RDS + .upsertGuestUserData(db, ddbUser) + .catch((error) => { + failedUsers.push(ddbUser.id); + console.error( + `Failed to upsert user data for ${ddbUser.id}:`, error ); - - // Add schedules/courses - - // Add schedules - const scheduleIds = ( - await ( - tx - .insert(schedules) - .values( - ddbToPostgresSchedules( - ddbUser.id, - ddbUser.userData.schedules - ) - ) - .returning({ id: schedules.id }) - ) - ).map((schedule) => schedule.id); - - // Update user's current schedule - const currentScheduleId = scheduleIds[ddbUser.userData.scheduleIndex]; - await ( - tx - .update(users) - .set({ currentScheduleId: currentScheduleId }) - .where(eq(users.id, userId)) - ) - - // Add courses - await ( - tx - .insert(coursesInSchedule) - .values( - ddbToPostgresCourse( - ddbUser.userData.schedules, - scheduleIds - ) - ) - ) - } - ).catch((error) => { - failedUsers.push(ddbUser.id); - console.log(error); - }) + }) + .then((data) => { + if (data) + console.log( + `Successfully copied user ${data}. (${++success})` + ); + }) ); transactionBatches.push(Promise.all(transactions)); } - - return Promise.all(transactionBatches); + + await Promise.all(transactionBatches); + + if (failedUsers.length > 0) { + console.log(`Successfully copied ${success} users out of ${success + failedUsers.length}.`); + console.log(`Failed users: ${failedUsers.join(', ')}`); + } + } async function main() { From a764216ec3b9f0a9b485616bd6a8cb53b9564b54 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:31:46 -0800 Subject: [PATCH 28/90] feat(api): write to both RDS and Dynamo --- apps/backend/src/routers/users.ts | 47 +++++++++++-------------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/apps/backend/src/routers/users.ts b/apps/backend/src/routers/users.ts index 82d09c5c3..5e689d9e6 100644 --- a/apps/backend/src/routers/users.ts +++ b/apps/backend/src/routers/users.ts @@ -1,8 +1,12 @@ import { type } from 'arktype'; + import { UserSchema } from '@packages/antalmanac-types'; + +import { RDS } from 'src/lib/rds'; import { router, procedure } from '../trpc'; -import { ddbClient, VISIBILITY } from '../db/ddb'; -import { TRPCError } from '@trpc/server'; +import { ddbClient } from '../db/ddb'; + +import { db } from '../db'; const userInputSchema = type([{ userId: 'string' }, '|', { googleId: 'string' }]); @@ -47,34 +51,17 @@ const usersRouter = router({ /** * Loads schedule data for a user that's logged in. */ - saveUserData: procedure.input(saveInputSchema.assert).mutation(async ({ input }) => { - /** - * Assign default visility value. - */ - input.data.visibility ??= VISIBILITY.PRIVATE; - - // Requester and requestee IDs must match if schedule is private. - - if (input.data.visibility === VISIBILITY.PRIVATE && input.id !== input.data.id) { - throw new TRPCError({ - code: 'UNAUTHORIZED', - message: 'Schedule is private and user ID does not match.', - }); - } - - // Requester and requestee IDs must match if schedule is public (read-only). - - if (input.data.visibility === VISIBILITY.PUBLIC && input.id !== input.data.id) { - throw new TRPCError({ - code: 'UNAUTHORIZED', - message: 'Schedule is public and user ID does not match.', - }); - } - - // Schedule is open, or requester user ID and schedule's user ID match. - - await ddbClient.insertItem(input.data); - }), + saveUserData: procedure + .input(saveInputSchema.assert) + .mutation( + async ({ input }) => { + // Don't await because the show must go on without RDS. + RDS.upsertGuestUserData(db, input.data) + .catch((error) => console.error('Failed to upsert user data:', error)); + + return ddbClient.insertItem(input.data); + } + ), /** * Users can view other users' schedules, even anonymously. From d65892db60ee1883ad6b18c22d1ccb221d443ac6 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:32:16 -0800 Subject: [PATCH 29/90] chore: remove unused imports --- apps/backend/scripts/migrate.ts | 3 --- apps/backend/src/lib/rds.ts | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 0f63443dd..03dbfd986 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -2,12 +2,9 @@ * To run this script, run "pnpm run migrate". */ -import { eq } from 'drizzle-orm'; import { drizzle } from 'drizzle-orm/postgres-js'; import { migrate } from 'drizzle-orm/postgres-js/migrator'; -import { ShortCourseSchedule } from '@packages/antalmanac-types'; - import { ddbClient } from '../src/db/ddb.ts'; import { db, client } from '../src/db/index.ts'; import { RDS } from '../src/lib/rds.ts'; diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index 8d61824b9..df90b421d 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -1,6 +1,6 @@ import { ShortCourseSchedule, User } from '@packages/antalmanac-types'; -import { and, asc, eq } from 'drizzle-orm'; +import { and, eq } from 'drizzle-orm'; import type { Database } from "$db/index"; import { schedules, users, accounts, coursesInSchedule } from '$db/schema'; From 02fbb46f20493c319c823609ef6eddc331ca244e Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:59:23 -0800 Subject: [PATCH 30/90] feat(api): mangle duplicate schedule names --- apps/backend/scripts/migrate.ts | 35 ++++++++++++++++++------------ apps/backend/src/lib/formatting.ts | 35 ++++++++++++++++++++++++++++++ apps/backend/src/routers/users.ts | 14 ++++++++---- 3 files changed, 66 insertions(+), 18 deletions(-) create mode 100644 apps/backend/src/lib/formatting.ts diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 03dbfd986..86d9b1f59 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -8,6 +8,7 @@ import { migrate } from 'drizzle-orm/postgres-js/migrator'; import { ddbClient } from '../src/db/ddb.ts'; import { db, client } from '../src/db/index.ts'; import { RDS } from '../src/lib/rds.ts'; +import { mangleDupliateScheduleNames } from '../src/lib/formatting.ts'; /** * Migrates the current drizzle schema to the PostgreSQL database associated @@ -35,20 +36,26 @@ async function copyUsersToPostgres() { for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { const transactions = ddbBatch.map( // One transaction per user - (ddbUser) => RDS - .upsertGuestUserData(db, ddbUser) - .catch((error) => { - failedUsers.push(ddbUser.id); - console.error( - `Failed to upsert user data for ${ddbUser.id}:`, error - ); - }) - .then((data) => { - if (data) - console.log( - `Successfully copied user ${data}. (${++success})` - ); - }) + async (ddbUser) => { + // Mangle duplicate schedule names + ddbUser.userData.schedules = mangleDupliateScheduleNames(ddbUser.userData.schedules); + + return RDS + .upsertGuestUserData(db, ddbUser) + .catch((error) => { + failedUsers.push(ddbUser.id); + console.error( + `Failed to upsert user data for ${ddbUser.id}:`, error + ); + }) + .then((data) => { + if (data) + console.log( + `Successfully copied user ${data}. (${++success})` + ); + } + ); + } ); transactionBatches.push(Promise.all(transactions)); diff --git a/apps/backend/src/lib/formatting.ts b/apps/backend/src/lib/formatting.ts new file mode 100644 index 000000000..6d2ee962d --- /dev/null +++ b/apps/backend/src/lib/formatting.ts @@ -0,0 +1,35 @@ +import { ShortCourseSchedule } from '@packages/antalmanac-types'; + +/** + * + * @param scheduleName The original schedule name + * @param nameCounts A map of schedule names to the number of times they've been used + * @returns A schedule name with `(NUM)` appended to it if it's a duplicate + */ +function makeNonDuplicateScheduleName( + scheduleName: string, + nameCounts: Map +): string { + const count = nameCounts.get(scheduleName) ?? 0; + nameCounts.set(scheduleName, count + 1); + return scheduleName + (count > 0 ? ` (${count})` : ''); +} + +/** + * Convert a list of schedules to use non-duplicate schedule names by + * appending `(NUM)` to the end of duplicate schedule names. + * + * Example: ['Winter 2022', 'Winter 2022', 'Spring 2022'] -> ['Winter 2022', 'Winter 2022 (1)', 'Spring 2022'] + */ +export function mangleDupliateScheduleNames( + schedules: ShortCourseSchedule[] +): ShortCourseSchedule[] { + const scheduleNameCounts = new Map(); + + return schedules.map( + (schedule, i) => ({ + ...schedule, + scheduleName: makeNonDuplicateScheduleName(schedule.scheduleName, scheduleNameCounts) + }) + ); +} diff --git a/apps/backend/src/routers/users.ts b/apps/backend/src/routers/users.ts index 5e689d9e6..028b345c2 100644 --- a/apps/backend/src/routers/users.ts +++ b/apps/backend/src/routers/users.ts @@ -3,10 +3,11 @@ import { type } from 'arktype'; import { UserSchema } from '@packages/antalmanac-types'; import { RDS } from 'src/lib/rds'; +import { mangleDupliateScheduleNames } from 'src/lib/formatting'; import { router, procedure } from '../trpc'; -import { ddbClient } from '../db/ddb'; -import { db } from '../db'; +import { ddbClient } from '$db/ddb'; +import { db } from '$db/index'; const userInputSchema = type([{ userId: 'string' }, '|', { googleId: 'string' }]); @@ -55,11 +56,16 @@ const usersRouter = router({ .input(saveInputSchema.assert) .mutation( async ({ input }) => { + const data = input.data; + + // Mangle duplicate schedule names + data.userData.schedules = mangleDupliateScheduleNames(data.userData.schedules); + // Don't await because the show must go on without RDS. - RDS.upsertGuestUserData(db, input.data) + RDS.upsertGuestUserData(db, data) .catch((error) => console.error('Failed to upsert user data:', error)); - return ddbClient.insertItem(input.data); + return ddbClient.insertItem(data); } ), From 2ffa9761622579ebdbf474a9c89ca0a9fb6effad Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:17:45 -0800 Subject: [PATCH 31/90] chore(backend): separate DDB->RDS migration from normal migration --- apps/backend/scripts/ddb_to_rds.ts | 72 ++++++++++++++++++++++++++++++ apps/backend/scripts/migrate.ts | 53 +--------------------- 2 files changed, 73 insertions(+), 52 deletions(-) create mode 100644 apps/backend/scripts/ddb_to_rds.ts diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts new file mode 100644 index 000000000..d79a9f082 --- /dev/null +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -0,0 +1,72 @@ +/** + * To run this script, run "pnpm run migrate". + */ + +import { ddbClient } from '../src/db/ddb.ts'; +import { db, client } from '../src/db/index.ts'; +import { RDS } from '../src/lib/rds.ts'; +import { mangleDupliateScheduleNames } from '../src/lib/formatting.ts'; +import { migratePostgresDb } from './migrate.ts'; + + +/** + * Migrates user data from DynamoDB to the PostgreSQL database associated + * with the drizzle client. + * + * NOTE: This pipelines the user data from Postgres, and we might get backed up + * if DynamoDB returns a lot faster than we can push to Postgres. + */ +async function copyUsersToPostgres() { + const transactionBatches: Promise[] = []; + const failedUsers: string[] = []; + + let success = 0; + + for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { + const transactions = ddbBatch.map( // One transaction per user + async (ddbUser) => { + // Mangle duplicate schedule names + ddbUser.userData.schedules = mangleDupliateScheduleNames(ddbUser.userData.schedules); + + return RDS + .upsertGuestUserData(db, ddbUser) + .catch((error) => { + failedUsers.push(ddbUser.id); + console.error( + `Failed to upsert user data for ${ddbUser.id}:`, error + ); + }) + .then((data) => { + if (data) + console.log( + `Successfully copied user ${data}. (${++success})` + ); + } + ); + } + ); + + transactionBatches.push(Promise.all(transactions)); + } + + await Promise.all(transactionBatches); + + if (failedUsers.length > 0) { + console.log(`Successfully copied ${success} users out of ${success + failedUsers.length}.`); + console.log(`Failed users: ${failedUsers.join(', ')}`); + } + +} + +async function main() { + try { + await migratePostgresDb(); + await copyUsersToPostgres(); + } catch (error) { + console.log(error); + } finally { + await client.end(); + } +} + +main(); diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 86d9b1f59..9cb09fdfc 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -15,66 +15,15 @@ import { mangleDupliateScheduleNames } from '../src/lib/formatting.ts'; * with the drizzle client. Before migrating, run "pnpm run generate" to generate * the migration files, and make sure the PostgreSQL database exists beforehand. */ -async function migratePostgresDb() { +export async function migratePostgresDb() { await migrate(drizzle(client), { migrationsFolder: './drizzle' }); } -/** - * Migrates user data from DynamoDB to the PostgreSQL database associated - * with the drizzle client. - * - * NOTE: This pipelines the user data from Postgres, and we might get backed up - * if DynamoDB returns a lot faster than we can push to Postgres. - */ -async function copyUsersToPostgres() { - const transactionBatches: Promise[] = []; - const failedUsers: string[] = []; - - let success = 0; - - for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { - const transactions = ddbBatch.map( // One transaction per user - async (ddbUser) => { - // Mangle duplicate schedule names - ddbUser.userData.schedules = mangleDupliateScheduleNames(ddbUser.userData.schedules); - - return RDS - .upsertGuestUserData(db, ddbUser) - .catch((error) => { - failedUsers.push(ddbUser.id); - console.error( - `Failed to upsert user data for ${ddbUser.id}:`, error - ); - }) - .then((data) => { - if (data) - console.log( - `Successfully copied user ${data}. (${++success})` - ); - } - ); - } - ); - - transactionBatches.push(Promise.all(transactions)); - } - - await Promise.all(transactionBatches); - - if (failedUsers.length > 0) { - console.log(`Successfully copied ${success} users out of ${success + failedUsers.length}.`); - console.log(`Failed users: ${failedUsers.join(', ')}`); - } - -} - async function main() { try { await migratePostgresDb(); - await copyUsersToPostgres(); - } catch (error) { console.log(error); } finally { From 691fa90e97bb00e4eb498f5d72e2ec82558fcaae Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:25:53 -0800 Subject: [PATCH 32/90] ci: pipeline for RDS migration (#1029) Co-authored-by: Minh Nguyen <64875104+MinhxNguyen7@users.noreply.github.com> --- .github/workflows/deploy_production.yml | 4 + .github/workflows/deploy_staging.yml | 1 + apps/backend/README.md | 2 +- apps/backend/drizzle/0000_init_db.sql | 91 ++++++ apps/backend/drizzle/meta/0000_snapshot.json | 301 +++++++++++++++++++ apps/backend/drizzle/meta/_journal.json | 13 + apps/backend/package.json | 3 +- apps/backend/scripts/copy-to-pg.ts | 129 ++++++++ apps/backend/scripts/migrate.ts | 8 +- apps/backend/src/db/index.ts | 6 +- apps/backend/tsconfig.json | 2 +- 11 files changed, 550 insertions(+), 10 deletions(-) create mode 100644 apps/backend/drizzle/0000_init_db.sql create mode 100644 apps/backend/drizzle/meta/0000_snapshot.json create mode 100644 apps/backend/drizzle/meta/_journal.json create mode 100644 apps/backend/scripts/copy-to-pg.ts diff --git a/.github/workflows/deploy_production.yml b/.github/workflows/deploy_production.yml index b28501057..11b6d1811 100644 --- a/.github/workflows/deploy_production.yml +++ b/.github/workflows/deploy_production.yml @@ -28,6 +28,7 @@ env: VITE_TILES_ENDPOINT: ${{ secrets.VITE_TILES_ENDPOINT}} GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }} GOOGLE_CLIENT_SECRET: ${{ secrets.GOOGLE_CLIENT_SECRET }} + DB_URL: ${{ secrets.PROD_DB_URL }} # Turborepo credentials. TURBO_API: ${{ vars.TURBO_API }} @@ -110,6 +111,9 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile --prod false + - name: Run database migrations + run: pnpm --filter "antalmanac-backend" migrate + - name: Build backend run: pnpm --filter "antalmanac-backend" build diff --git a/.github/workflows/deploy_staging.yml b/.github/workflows/deploy_staging.yml index b514eea34..839021666 100644 --- a/.github/workflows/deploy_staging.yml +++ b/.github/workflows/deploy_staging.yml @@ -28,6 +28,7 @@ env: VITE_TILES_ENDPOINT: ${{ secrets.VITE_TILES_ENDPOINT}} GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }} GOOGLE_CLIENT_SECRET: ${{ secrets.GOOGLE_CLIENT_SECRET }} + DB_URL: ${{ secrets.STAGING_DB_URL }} # Turborepo credentials. TURBO_API: ${{ vars.TURBO_API }} diff --git a/apps/backend/README.md b/apps/backend/README.md index 336ee6a70..5131dc492 100644 --- a/apps/backend/README.md +++ b/apps/backend/README.md @@ -4,7 +4,7 @@ This is the dedicated backend for [AntAlmanac](https://antalmanac.com), which is primarily responsible for managing user data and internal information. This is ___NOT___ for retrieving enrollment data from UCI; -[PeterPortal API](https://api.peterportal.org) is a separate ICSSC project dedicated +[Anteater API](https://docs.icssc.club/docs/developer/anteaterapi) is a separate ICSSC project dedicated to providing us this information. diff --git a/apps/backend/drizzle/0000_init_db.sql b/apps/backend/drizzle/0000_init_db.sql new file mode 100644 index 000000000..da3258f4a --- /dev/null +++ b/apps/backend/drizzle/0000_init_db.sql @@ -0,0 +1,91 @@ +DO $$ BEGIN + CREATE TYPE "public"."account_type" AS ENUM('GOOGLE', 'GUEST'); +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + CREATE TYPE "public"."subscription_target_status" AS ENUM('OPEN', 'WAITLISTED'); +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "accounts" ( + "user_id" text NOT NULL, + "account_type" "account_type" NOT NULL, + "provider_account_id" text NOT NULL, + CONSTRAINT "accounts_user_id_account_type_pk" PRIMARY KEY("user_id","account_type") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "sessions" ( + "id" text PRIMARY KEY NOT NULL, + "user_id" text NOT NULL, + "expires" timestamp NOT NULL, + "refresh_token" text +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "users" ( + "id" text PRIMARY KEY NOT NULL, + "phone" text, + "avatar" text, + "name" text, + "current_schedule_id" text +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "coursesInSchedule" ( + "scheduleId" text NOT NULL, + "sectionCode" integer NOT NULL, + "term" text NOT NULL, + "color" text NOT NULL, + CONSTRAINT "coursesInSchedule_scheduleId_sectionCode_term_pk" PRIMARY KEY("scheduleId","sectionCode","term") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "schedules" ( + "id" text PRIMARY KEY NOT NULL, + "user_id" text NOT NULL, + "name" text, + "notes" text +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "subscriptions" ( + "userId" text, + "sectionCode" integer, + "status" "subscription_target_status", + CONSTRAINT "subscriptions_userId_sectionCode_pk" PRIMARY KEY("userId","sectionCode") +); +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "accounts" ADD CONSTRAINT "accounts_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "users" ADD CONSTRAINT "users_current_schedule_id_schedules_id_fk" FOREIGN KEY ("current_schedule_id") REFERENCES "public"."schedules"("id") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "coursesInSchedule" ADD CONSTRAINT "coursesInSchedule_scheduleId_schedules_id_fk" FOREIGN KEY ("scheduleId") REFERENCES "public"."schedules"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "schedules" ADD CONSTRAINT "schedules_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "subscriptions" ADD CONSTRAINT "subscriptions_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; diff --git a/apps/backend/drizzle/meta/0000_snapshot.json b/apps/backend/drizzle/meta/0000_snapshot.json new file mode 100644 index 000000000..e7eedb062 --- /dev/null +++ b/apps/backend/drizzle/meta/0000_snapshot.json @@ -0,0 +1,301 @@ +{ + "id": "4a95fb4b-e13f-4215-9166-bc18cda8dc7a", + "prevId": "00000000-0000-0000-0000-000000000000", + "version": "6", + "dialect": "postgresql", + "tables": { + "public.accounts": { + "name": "accounts", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "account_type": { + "name": "account_type", + "type": "account_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "accounts_user_id_users_id_fk": { + "name": "accounts_user_id_users_id_fk", + "tableFrom": "accounts", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "accounts_user_id_account_type_pk": { + "name": "accounts_user_id_account_type_pk", + "columns": ["user_id", "account_type"] + } + }, + "uniqueConstraints": {} + }, + "public.sessions": { + "name": "sessions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "sessions_user_id_users_id_fk": { + "name": "sessions_user_id_users_id_fk", + "tableFrom": "sessions", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "phone": { + "name": "phone", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "avatar": { + "name": "avatar", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "current_schedule_id": { + "name": "current_schedule_id", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "users_current_schedule_id_schedules_id_fk": { + "name": "users_current_schedule_id_schedules_id_fk", + "tableFrom": "users", + "tableTo": "schedules", + "columnsFrom": ["current_schedule_id"], + "columnsTo": ["id"], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.coursesInSchedule": { + "name": "coursesInSchedule", + "schema": "", + "columns": { + "scheduleId": { + "name": "scheduleId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "sectionCode": { + "name": "sectionCode", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "term": { + "name": "term", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "coursesInSchedule_scheduleId_schedules_id_fk": { + "name": "coursesInSchedule_scheduleId_schedules_id_fk", + "tableFrom": "coursesInSchedule", + "tableTo": "schedules", + "columnsFrom": ["scheduleId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "coursesInSchedule_scheduleId_sectionCode_term_pk": { + "name": "coursesInSchedule_scheduleId_sectionCode_term_pk", + "columns": ["scheduleId", "sectionCode", "term"] + } + }, + "uniqueConstraints": {} + }, + "public.schedules": { + "name": "schedules", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "schedules_user_id_users_id_fk": { + "name": "schedules_user_id_users_id_fk", + "tableFrom": "schedules", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.subscriptions": { + "name": "subscriptions", + "schema": "", + "columns": { + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sectionCode": { + "name": "sectionCode", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "subscription_target_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "subscriptions_userId_users_id_fk": { + "name": "subscriptions_userId_users_id_fk", + "tableFrom": "subscriptions", + "tableTo": "users", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "subscriptions_userId_sectionCode_pk": { + "name": "subscriptions_userId_sectionCode_pk", + "columns": ["userId", "sectionCode"] + } + }, + "uniqueConstraints": {} + } + }, + "enums": { + "public.account_type": { + "name": "account_type", + "schema": "public", + "values": ["GOOGLE", "GUEST"] + }, + "public.subscription_target_status": { + "name": "subscription_target_status", + "schema": "public", + "values": ["OPEN", "WAITLISTED"] + } + }, + "schemas": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} diff --git a/apps/backend/drizzle/meta/_journal.json b/apps/backend/drizzle/meta/_journal.json new file mode 100644 index 000000000..0200ab23c --- /dev/null +++ b/apps/backend/drizzle/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "6", + "dialect": "postgresql", + "entries": [ + { + "idx": 0, + "version": "6", + "when": 1731288052581, + "tag": "0000_init_db", + "breakpoints": true + } + ] +} diff --git a/apps/backend/package.json b/apps/backend/package.json index b83330f77..1d32dbbc2 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -9,7 +9,8 @@ "format": "prettier --write src", "lint": "eslint --fix src", "generate": "drizzle-kit generate", - "migrate": "tsx scripts/migrate.ts" + "migrate": "tsx scripts/migrate.ts", + "copy-to-pg": "tsx scripts/copy-to-pg.ts" }, "dependencies": { "@packages/antalmanac-types": "workspace:**", diff --git a/apps/backend/scripts/copy-to-pg.ts b/apps/backend/scripts/copy-to-pg.ts new file mode 100644 index 000000000..3438c8b16 --- /dev/null +++ b/apps/backend/scripts/copy-to-pg.ts @@ -0,0 +1,129 @@ +import {ShortCourseSchedule} from "@packages/antalmanac-types"; +import {eq} from "drizzle-orm"; +import {accounts, coursesInSchedule, schedules, users} from "$db/schema"; +import {ddbClient} from "$db/ddb"; +import {notNull} from "$aa/src/lib/utils"; +import {client, db} from "$db/index"; + +function ddbToPostgresSchedules( + userId: string, + ddbSchedules: ShortCourseSchedule[] +): typeof schedules.$inferInsert[] { + return ddbSchedules.map( + (ddbSchedule) => ({ + userId, + name: ddbSchedule.scheduleName, + notes: ddbSchedule.scheduleNote, + }) + ); +} + +function ddbToPostgresCourse( + ddbSchedules: ShortCourseSchedule[], + scheduleIds: string[], +): typeof coursesInSchedule.$inferInsert[] { + return ddbSchedules.map( + (ddbSchedule, index) => ( + ddbSchedule.courses.map( + (ddbCourse) => ({ + scheduleId: scheduleIds[index], + term: ddbCourse.term, + sectionCode: parseInt(ddbCourse.sectionCode), + color: ddbCourse.color, + }) + ) + ) + ).flat(); +} + +/** + * Migrates user data from DynamoDB to the PostgreSQL database associated + * with the drizzle client. + */ +async function copyUsersToPostgres() { + const transactionBatches: Promise[] = []; + const failedUsers: string[] = []; + + for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { + const transactions = ddbBatch.filter(notNull).map( // One transaction per user + (ddbUser) => db.transaction( + async (tx) => { + // Create user with name. + // This overwrites the user, but that doesn't matter because + // the only thing that's changed is the current schedule index. + const userId = (await ( + tx + .insert(users) + .values({ name: ddbUser.name, }) + .returning({ id: users.id }) + )).map((user) => user.id)[0]; + + // Add as guest account + await ( + tx + .insert(accounts) + .values({ userId, providerAccountId: ddbUser.id }) + ); + + // Add schedules/courses + + // Add schedules + const scheduleIds = ( + await ( + tx + .insert(schedules) + .values( + ddbToPostgresSchedules( + ddbUser.id, + ddbUser.userData.schedules + ) + ) + .returning({ id: schedules.id }) + ) + ).map((schedule) => schedule.id); + + // Update user's current schedule + const currentScheduleId = scheduleIds[ddbUser.userData.scheduleIndex]; + await ( + tx + .update(users) + .set({ currentScheduleId: currentScheduleId }) + .where(eq(users.id, userId)) + ) + + // Add courses + await ( + tx + .insert(coursesInSchedule) + .values( + ddbToPostgresCourse( + ddbUser.userData.schedules, + scheduleIds + ) + ) + ) + } + ).catch((error) => { + failedUsers.push(ddbUser.id); + console.log(error); + }) + ); + + transactionBatches.push(Promise.all(transactions)); + } + + return Promise.all(transactionBatches); +} + +async function main() { + try { + await copyUsersToPostgres(); + } catch (error) { + console.log(error); + } finally { + await client.end(); + } + +} + +main().then(); diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts index 9cb09fdfc..6cb500a4a 100644 --- a/apps/backend/scripts/migrate.ts +++ b/apps/backend/scripts/migrate.ts @@ -5,15 +5,11 @@ import { drizzle } from 'drizzle-orm/postgres-js'; import { migrate } from 'drizzle-orm/postgres-js/migrator'; -import { ddbClient } from '../src/db/ddb.ts'; -import { db, client } from '../src/db/index.ts'; -import { RDS } from '../src/lib/rds.ts'; -import { mangleDupliateScheduleNames } from '../src/lib/formatting.ts'; +import { client } from '$db/index'; /** * Migrates the current drizzle schema to the PostgreSQL database associated - * with the drizzle client. Before migrating, run "pnpm run generate" to generate - * the migration files, and make sure the PostgreSQL database exists beforehand. + * with the drizzle client. */ export async function migratePostgresDb() { await migrate(drizzle(client), { diff --git a/apps/backend/src/db/index.ts b/apps/backend/src/db/index.ts index 8ffb4e48e..b8c5a01a4 100644 --- a/apps/backend/src/db/index.ts +++ b/apps/backend/src/db/index.ts @@ -2,7 +2,11 @@ import { drizzle } from 'drizzle-orm/postgres-js'; import postgres from 'postgres'; import * as schema from './schema/index.js'; -export const client = postgres('postgres://postgres:postgres@localhost:5432/antalmanac'); +const url = process.env.DB_URL; + +if (!url) throw new Error("DB_URL not defined") + +export const client = postgres(url); export const db = drizzle(client, { schema }); diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json index 9c62a719b..40a600325 100644 --- a/apps/backend/tsconfig.json +++ b/apps/backend/tsconfig.json @@ -16,6 +16,6 @@ "$db/*": ["./src/db/*"] } }, - "include": ["src/**/*"], + "include": ["src/**/*", "scripts/**/*", "drizzle.config.ts"], "exclude": ["node_modules", "dist"] } From 17fafe7618f097471b90d7caefdc0ac2e4ddc28a Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:35:40 -0800 Subject: [PATCH 33/90] chore: clean up migration scripts --- apps/backend/scripts/copy-to-pg.ts | 129 ----------------------------- apps/backend/scripts/ddb_to_rds.ts | 10 +-- 2 files changed, 5 insertions(+), 134 deletions(-) delete mode 100644 apps/backend/scripts/copy-to-pg.ts diff --git a/apps/backend/scripts/copy-to-pg.ts b/apps/backend/scripts/copy-to-pg.ts deleted file mode 100644 index 3438c8b16..000000000 --- a/apps/backend/scripts/copy-to-pg.ts +++ /dev/null @@ -1,129 +0,0 @@ -import {ShortCourseSchedule} from "@packages/antalmanac-types"; -import {eq} from "drizzle-orm"; -import {accounts, coursesInSchedule, schedules, users} from "$db/schema"; -import {ddbClient} from "$db/ddb"; -import {notNull} from "$aa/src/lib/utils"; -import {client, db} from "$db/index"; - -function ddbToPostgresSchedules( - userId: string, - ddbSchedules: ShortCourseSchedule[] -): typeof schedules.$inferInsert[] { - return ddbSchedules.map( - (ddbSchedule) => ({ - userId, - name: ddbSchedule.scheduleName, - notes: ddbSchedule.scheduleNote, - }) - ); -} - -function ddbToPostgresCourse( - ddbSchedules: ShortCourseSchedule[], - scheduleIds: string[], -): typeof coursesInSchedule.$inferInsert[] { - return ddbSchedules.map( - (ddbSchedule, index) => ( - ddbSchedule.courses.map( - (ddbCourse) => ({ - scheduleId: scheduleIds[index], - term: ddbCourse.term, - sectionCode: parseInt(ddbCourse.sectionCode), - color: ddbCourse.color, - }) - ) - ) - ).flat(); -} - -/** - * Migrates user data from DynamoDB to the PostgreSQL database associated - * with the drizzle client. - */ -async function copyUsersToPostgres() { - const transactionBatches: Promise[] = []; - const failedUsers: string[] = []; - - for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { - const transactions = ddbBatch.filter(notNull).map( // One transaction per user - (ddbUser) => db.transaction( - async (tx) => { - // Create user with name. - // This overwrites the user, but that doesn't matter because - // the only thing that's changed is the current schedule index. - const userId = (await ( - tx - .insert(users) - .values({ name: ddbUser.name, }) - .returning({ id: users.id }) - )).map((user) => user.id)[0]; - - // Add as guest account - await ( - tx - .insert(accounts) - .values({ userId, providerAccountId: ddbUser.id }) - ); - - // Add schedules/courses - - // Add schedules - const scheduleIds = ( - await ( - tx - .insert(schedules) - .values( - ddbToPostgresSchedules( - ddbUser.id, - ddbUser.userData.schedules - ) - ) - .returning({ id: schedules.id }) - ) - ).map((schedule) => schedule.id); - - // Update user's current schedule - const currentScheduleId = scheduleIds[ddbUser.userData.scheduleIndex]; - await ( - tx - .update(users) - .set({ currentScheduleId: currentScheduleId }) - .where(eq(users.id, userId)) - ) - - // Add courses - await ( - tx - .insert(coursesInSchedule) - .values( - ddbToPostgresCourse( - ddbUser.userData.schedules, - scheduleIds - ) - ) - ) - } - ).catch((error) => { - failedUsers.push(ddbUser.id); - console.log(error); - }) - ); - - transactionBatches.push(Promise.all(transactions)); - } - - return Promise.all(transactionBatches); -} - -async function main() { - try { - await copyUsersToPostgres(); - } catch (error) { - console.log(error); - } finally { - await client.end(); - } - -} - -main().then(); diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index d79a9f082..201e80178 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -2,11 +2,11 @@ * To run this script, run "pnpm run migrate". */ -import { ddbClient } from '../src/db/ddb.ts'; -import { db, client } from '../src/db/index.ts'; -import { RDS } from '../src/lib/rds.ts'; -import { mangleDupliateScheduleNames } from '../src/lib/formatting.ts'; -import { migratePostgresDb } from './migrate.ts'; +import { ddbClient } from '../src/db/ddb'; +import { db, client } from '../src/db/index'; +import { RDS } from '../src/lib/rds'; +import { mangleDupliateScheduleNames } from '../src/lib/formatting'; +import { migratePostgresDb } from './migrate'; /** From f721579842cded52333b9dfd1eff38d82cb3b32a Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:39:12 -0800 Subject: [PATCH 34/90] feat(package.json): ddb to rds command --- apps/backend/package.json | 1 + apps/backend/scripts/ddb_to_rds.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/backend/package.json b/apps/backend/package.json index 1d32dbbc2..c51945205 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -10,6 +10,7 @@ "lint": "eslint --fix src", "generate": "drizzle-kit generate", "migrate": "tsx scripts/migrate.ts", + "ddb-rds": "tsx scripts/ddb_to_rds.ts", "copy-to-pg": "tsx scripts/copy-to-pg.ts" }, "dependencies": { diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index 201e80178..fb6b75c8e 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -1,5 +1,5 @@ /** - * To run this script, run "pnpm run migrate". + * To run this script, run "pnpm run ddb-rds". */ import { ddbClient } from '../src/db/ddb'; From c70423078fb0b4ca22d68ff23bde705b0387596f Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:54:12 -0800 Subject: [PATCH 35/90] feat(drizzle): dotenv in config and studio --- apps/backend/drizzle.config.ts | 10 +++- apps/backend/package.json | 3 +- pnpm-lock.yaml | 89 +++++++++++++++++++++------------- 3 files changed, 65 insertions(+), 37 deletions(-) diff --git a/apps/backend/drizzle.config.ts b/apps/backend/drizzle.config.ts index a07528dc2..b7c45b23d 100644 --- a/apps/backend/drizzle.config.ts +++ b/apps/backend/drizzle.config.ts @@ -1,7 +1,15 @@ +import * as dotenv from "dotenv"; import { defineConfig } from "drizzle-kit"; +dotenv.config(); + +const { DB_URL } = process.env; + export default defineConfig({ dialect: "postgresql", schema: "./src/db/schema/index.ts", out: "./drizzle", -}); \ No newline at end of file + dbCredentials: { + url: DB_URL ?? "", + } +}); diff --git a/apps/backend/package.json b/apps/backend/package.json index c51945205..4e02c4bac 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -9,6 +9,7 @@ "format": "prettier --write src", "lint": "eslint --fix src", "generate": "drizzle-kit generate", + "studio": "drizzle-kit studio", "migrate": "tsx scripts/migrate.ts", "ddb-rds": "tsx scripts/ddb_to_rds.ts", "copy-to-pg": "tsx scripts/copy-to-pg.ts" @@ -21,7 +22,6 @@ "arktype": "1.0.14-alpha", "aws-lambda": "^1.0.7", "cors": "^2.8.5", - "dotenv": "^16.0.3", "drizzle-orm": "^0.30.10", "envalid": "^7.3.1", "express": "^4.18.2", @@ -40,6 +40,7 @@ "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "concurrently": "^8.0.1", + "dotenv": "^16.0.3", "drizzle-kit": "^0.21.2", "esbuild": "^0.17.19", "eslint": "^8.34.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95d642486..03012cb42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,7 +34,7 @@ importers: version: 3.1.0 turbo: specifier: latest - version: 1.10.13 + version: 2.2.3 vitest: specifier: ^0.34.4 version: 0.34.4(jsdom@22.1.0) @@ -315,9 +315,6 @@ importers: cors: specifier: ^2.8.5 version: 2.8.5 - dotenv: - specifier: ^16.0.3 - version: 16.0.3 drizzle-orm: specifier: ^0.30.10 version: 0.30.10(@types/react@18.0.28)(postgres@3.4.4)(react@18.2.0) @@ -367,6 +364,9 @@ importers: concurrently: specifier: ^8.0.1 version: 8.0.1 + dotenv: + specifier: ^16.0.3 + version: 16.0.3 drizzle-kit: specifier: ^0.21.2 version: 0.21.4 @@ -381,7 +381,7 @@ importers: version: 8.8.0(eslint@8.38.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) + version: 2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0) husky: specifier: ^8.0.3 version: 8.0.3 @@ -1137,6 +1137,7 @@ packages: '@esbuild-kit/cjs-loader@2.4.2': resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} + deprecated: 'Merged into tsx: https://tsx.is' '@esbuild-kit/core-utils@3.1.0': resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} @@ -1592,6 +1593,7 @@ packages: '@humanwhocodes/config-array@0.11.8': resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1599,6 +1601,7 @@ packages: '@humanwhocodes/object-schema@1.2.1': resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + deprecated: Use @eslint/object-schema instead '@icons/material@0.2.4': resolution: {integrity: sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==} @@ -1683,7 +1686,7 @@ packages: '@material-ui/pickers@3.3.10': resolution: {integrity: sha512-hS4pxwn1ZGXVkmgD4tpFpaumUaAg2ZzbTrxltfC5yPw4BJV+mGkfnQOB4VpWEYZw2jv65Z0wLwDE/piQiPPZ3w==} - deprecated: Material UI Pickers v3 doesn't receive active development since January 2020. See the guide https://mui.com/material-ui/guides/pickers-migration/ to upgrade. + deprecated: This package no longer supported. It has been relaced by @mui/x-date-pickers peerDependencies: '@date-io/core': ^1.3.6 '@material-ui/core': ^4.0.0 @@ -2523,6 +2526,7 @@ packages: abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -3087,6 +3091,7 @@ packages: domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dotenv@16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} @@ -3368,11 +3373,13 @@ packages: eslint@8.37.0: resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true eslint@8.38.0: resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true esniff@2.0.1: @@ -4037,6 +4044,7 @@ packages: loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4688,6 +4696,7 @@ packages: rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rollup@3.29.1: @@ -5025,38 +5034,38 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo-darwin-64@1.10.13: - resolution: {integrity: sha512-vmngGfa2dlYvX7UFVncsNDMuT4X2KPyPJ2Jj+xvf5nvQnZR/3IeDEGleGVuMi/hRzdinoxwXqgk9flEmAYp0Xw==} + turbo-darwin-64@2.2.3: + resolution: {integrity: sha512-Rcm10CuMKQGcdIBS3R/9PMeuYnv6beYIHqfZFeKWVYEWH69sauj4INs83zKMTUiZJ3/hWGZ4jet9AOwhsssLyg==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@1.10.13: - resolution: {integrity: sha512-eMoJC+k7gIS4i2qL6rKmrIQGP6Wr9nN4odzzgHFngLTMimok2cGLK3qbJs5O5F/XAtEeRAmuxeRnzQwTl/iuAw==} + turbo-darwin-arm64@2.2.3: + resolution: {integrity: sha512-+EIMHkuLFqUdJYsA3roj66t9+9IciCajgj+DVek+QezEdOJKcRxlvDOS2BUaeN8kEzVSsNiAGnoysFWYw4K0HA==} cpu: [arm64] os: [darwin] - turbo-linux-64@1.10.13: - resolution: {integrity: sha512-0CyYmnKTs6kcx7+JRH3nPEqCnzWduM0hj8GP/aodhaIkLNSAGAa+RiYZz6C7IXN+xUVh5rrWTnU2f1SkIy7Gdg==} + turbo-linux-64@2.2.3: + resolution: {integrity: sha512-UBhJCYnqtaeOBQLmLo8BAisWbc9v9daL9G8upLR+XGj6vuN/Nz6qUAhverN4Pyej1g4Nt1BhROnj6GLOPYyqxQ==} cpu: [x64] os: [linux] - turbo-linux-arm64@1.10.13: - resolution: {integrity: sha512-0iBKviSGQQlh2OjZgBsGjkPXoxvRIxrrLLbLObwJo3sOjIH0loGmVIimGS5E323soMfi/o+sidjk2wU1kFfD7Q==} + turbo-linux-arm64@2.2.3: + resolution: {integrity: sha512-hJYT9dN06XCQ3jBka/EWvvAETnHRs3xuO/rb5bESmDfG+d9yQjeTMlhRXKrr4eyIMt6cLDt1LBfyi+6CQ+VAwQ==} cpu: [arm64] os: [linux] - turbo-windows-64@1.10.13: - resolution: {integrity: sha512-S5XySRfW2AmnTeY1IT+Jdr6Goq7mxWganVFfrmqU+qqq3Om/nr0GkcUX+KTIo9mPrN0D3p5QViBRzulwB5iuUQ==} + turbo-windows-64@2.2.3: + resolution: {integrity: sha512-NPrjacrZypMBF31b4HE4ROg4P3nhMBPHKS5WTpMwf7wydZ8uvdEHpESVNMOtqhlp857zbnKYgP+yJF30H3N2dQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@1.10.13: - resolution: {integrity: sha512-nKol6+CyiExJIuoIc3exUQPIBjP9nIq5SkMJgJuxsot2hkgGrafAg/izVDRDrRduQcXj2s8LdtxJHvvnbI8hEQ==} + turbo-windows-arm64@2.2.3: + resolution: {integrity: sha512-fnNrYBCqn6zgKPKLHu4sOkihBI/+0oYFr075duRxqUZ+1aLWTAGfHZLgjVeLh3zR37CVzuerGIPWAEkNhkWEIw==} cpu: [arm64] os: [win32] - turbo@1.10.13: - resolution: {integrity: sha512-vOF5IPytgQPIsgGtT0n2uGZizR2N3kKuPIn4b5p5DdeLoI0BV7uNiydT7eSzdkPRpdXNnO8UwS658VaI4+YSzQ==} + turbo@2.2.3: + resolution: {integrity: sha512-5lDvSqIxCYJ/BAd6rQGK/AzFRhBkbu4JHVMLmGh/hCb7U3CqSnr5Tjwfy9vc+/5wG2DJ6wttgAaA7MoCgvBKZQ==} hasBin: true type-check@0.4.0: @@ -8962,6 +8971,16 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint@8.38.0): + dependencies: + debug: 3.2.7(supports-color@5.5.0) + optionalDependencies: + '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) + eslint: 8.38.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + eslint-module-utils@2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0): dependencies: debug: 3.2.7(supports-color@5.5.0) @@ -8972,7 +8991,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0): + eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0): dependencies: array-includes: 3.1.6 array.prototype.flat: 1.3.1 @@ -8981,7 +9000,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint@8.38.0) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -10901,32 +10920,32 @@ snapshots: tunnel@0.0.6: {} - turbo-darwin-64@1.10.13: + turbo-darwin-64@2.2.3: optional: true - turbo-darwin-arm64@1.10.13: + turbo-darwin-arm64@2.2.3: optional: true - turbo-linux-64@1.10.13: + turbo-linux-64@2.2.3: optional: true - turbo-linux-arm64@1.10.13: + turbo-linux-arm64@2.2.3: optional: true - turbo-windows-64@1.10.13: + turbo-windows-64@2.2.3: optional: true - turbo-windows-arm64@1.10.13: + turbo-windows-arm64@2.2.3: optional: true - turbo@1.10.13: + turbo@2.2.3: optionalDependencies: - turbo-darwin-64: 1.10.13 - turbo-darwin-arm64: 1.10.13 - turbo-linux-64: 1.10.13 - turbo-linux-arm64: 1.10.13 - turbo-windows-64: 1.10.13 - turbo-windows-arm64: 1.10.13 + turbo-darwin-64: 2.2.3 + turbo-darwin-arm64: 2.2.3 + turbo-linux-64: 2.2.3 + turbo-linux-arm64: 2.2.3 + turbo-windows-64: 2.2.3 + turbo-windows-arm64: 2.2.3 type-check@0.4.0: dependencies: From ed8bf5ad18b78752788947143c61b97f62a56ebd Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:33:31 -0800 Subject: [PATCH 36/90] feat(drizzle): use arktype instead of dotenv --- apps/backend/drizzle.config.ts | 7 +++---- apps/backend/package.json | 1 - apps/backend/src/env.ts | 1 + pnpm-lock.yaml | 3 --- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/apps/backend/drizzle.config.ts b/apps/backend/drizzle.config.ts index b7c45b23d..9eb0a9a76 100644 --- a/apps/backend/drizzle.config.ts +++ b/apps/backend/drizzle.config.ts @@ -1,15 +1,14 @@ -import * as dotenv from "dotenv"; import { defineConfig } from "drizzle-kit"; -dotenv.config(); +import env from "./src/env"; -const { DB_URL } = process.env; +const { DB_URL } = env; export default defineConfig({ dialect: "postgresql", schema: "./src/db/schema/index.ts", out: "./drizzle", dbCredentials: { - url: DB_URL ?? "", + url: DB_URL, } }); diff --git a/apps/backend/package.json b/apps/backend/package.json index 4e02c4bac..deff354cc 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -40,7 +40,6 @@ "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "concurrently": "^8.0.1", - "dotenv": "^16.0.3", "drizzle-kit": "^0.21.2", "esbuild": "^0.17.19", "eslint": "^8.34.0", diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index 407dc2f66..bbc53c71c 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -8,6 +8,7 @@ const Environment = type({ AWS_REGION: 'string', MAPBOX_ACCESS_TOKEN: 'string', 'PR_NUM?': 'number', + DB_URL: 'string', }); const env = Environment.assert({ ...process.env }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 03012cb42..6b300933f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -364,9 +364,6 @@ importers: concurrently: specifier: ^8.0.1 version: 8.0.1 - dotenv: - specifier: ^16.0.3 - version: 16.0.3 drizzle-kit: specifier: ^0.21.2 version: 0.21.4 From 99e74796b1a61ee2681421a0602111aec601e13e Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:49:19 -0800 Subject: [PATCH 37/90] refactor(backend): remove mongo --- apps/backend/package.json | 2 - apps/backend/src/db/ddb.ts | 58 +--------- apps/backend/src/db/mongodb.ts | 24 ---- apps/backend/src/env.ts | 1 - apps/backend/src/index.ts | 3 - apps/backend/src/lambda.ts | 5 +- apps/backend/src/models/News.ts | 18 --- apps/backend/src/models/User.ts | 35 ------ apps/backend/src/routers/users.ts | 2 +- pnpm-lock.yaml | 185 ------------------------------ 10 files changed, 4 insertions(+), 329 deletions(-) delete mode 100644 apps/backend/src/db/mongodb.ts delete mode 100644 apps/backend/src/models/News.ts delete mode 100644 apps/backend/src/models/User.ts diff --git a/apps/backend/package.json b/apps/backend/package.json index deff354cc..bf358db9b 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -25,8 +25,6 @@ "drizzle-orm": "^0.30.10", "envalid": "^7.3.1", "express": "^4.18.2", - "mongodb": "^5.0.1", - "mongoose": "^7.1.0j", "postgres": "^3.4.4", "superjson": "^1.12.3", "websoc-api": "^3.0.0" diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index 0e88b2f67..4e91c11c6 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -4,15 +4,9 @@ import { DynamoDB, ScanCommandInput } from '@aws-sdk/client-dynamodb'; import { UserSchema, - LegacyUserSchema, - ShortCourseSchema, - RepeatingCustomEventSchema, - type LegacyUserData, type ScheduleSaveState, } from '@packages/antalmanac-types'; -import LegacyUserModel from '../models/User'; -import connectToMongoDB from '../db/mongodb'; import env from '../env'; /** @@ -33,44 +27,6 @@ class DDBClient>> { documentClient: DynamoDBDocument; - static convertLegacySchedule(legacyUserData: LegacyUserData) { - const scheduleSaveState: ScheduleSaveState = { schedules: [], scheduleIndex: 0 }; - - for (const scheduleName of legacyUserData.scheduleNames) { - scheduleSaveState.schedules.push({ - scheduleName: scheduleName, - courses: [], - customEvents: [], - scheduleNote: '', - }); - } - - for (const course of legacyUserData.addedCourses) { - const { data, problems } = ShortCourseSchema(course); - - if (data === undefined) { - console.log(problems); - continue; - } - - for (const scheduleIndex of course.scheduleIndices) { - scheduleSaveState.schedules[scheduleIndex].courses.push(data); - } - } - - for (const customEvent of legacyUserData.customEvents) { - for (const scheduleIndex of customEvent.scheduleIndices) { - const { data } = RepeatingCustomEventSchema(customEvent); - - if (data !== undefined) { - scheduleSaveState.schedules[scheduleIndex].customEvents.push(data); - } - } - } - - return scheduleSaveState; - } - constructor(tableName: string, schema: T) { this.tableName = tableName; this.schema = schema; @@ -123,19 +79,7 @@ class DDBClient>> { await this.documentClient.update(params); } - - async getLegacyUserData(userId: string) { - await connectToMongoDB(); - - const { data, problems } = LegacyUserSchema(await LegacyUserModel.findById(userId)); - - if (problems != null || data.userData == null) { - return undefined; - } - - return { id: userId, userData: DDBClient.convertLegacySchedule(data.userData) }; - } - + async getUserData(id: string) { return (await ddbClient.get('id', id))?.userData; } diff --git a/apps/backend/src/db/mongodb.ts b/apps/backend/src/db/mongodb.ts deleted file mode 100644 index 6c788f488..000000000 --- a/apps/backend/src/db/mongodb.ts +++ /dev/null @@ -1,24 +0,0 @@ -import mongoose from 'mongoose'; -import env from '../env'; - -let isConnected = false; - -async function connectToMongoDB(): Promise { - if (isConnected) { - console.log('=> using existing database connection'); - return; - } - - console.log('=> using new database connection'); - - try { - const db = await mongoose.connect(env.AA_MONGODB_URI, {}); - - isConnected = db.connection.readyState === 1; - console.log('Connected to MongoDB'); - } catch (error) { - console.error('MongoDB connection error:', error); - } -} - -export default connectToMongoDB; diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index bbc53c71c..52bbb80bb 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -4,7 +4,6 @@ import 'dotenv/config'; const Environment = type({ 'NODE_ENV?': "'development' | 'production' | 'staging'", USERDATA_TABLE_NAME: 'string', - AA_MONGODB_URI: 'string', AWS_REGION: 'string', MAPBOX_ACCESS_TOKEN: 'string', 'PR_NUM?': 'number', diff --git a/apps/backend/src/index.ts b/apps/backend/src/index.ts index bb1e2a356..32a591b73 100644 --- a/apps/backend/src/index.ts +++ b/apps/backend/src/index.ts @@ -5,7 +5,6 @@ import { createExpressMiddleware } from '@trpc/server/adapters/express'; import AppRouter from './routers'; import createContext from './context'; import env from './env'; -import connectToMongoDB from '$db/mongodb'; const corsOptions: CorsOptions = { origin: ['https://antalmanac.com', 'https://www.antalmanac.com', 'https://icssc-projects.github.io/AntAlmanac'], @@ -16,8 +15,6 @@ const MAPBOX_API_URL = 'https://api.mapbox.com'; const PORT = 3000; export async function start(corsEnabled = false) { - await connectToMongoDB(); - const app = express(); app.use(cors(corsEnabled ? corsOptions : undefined)); app.use(express.json()); diff --git a/apps/backend/src/lambda.ts b/apps/backend/src/lambda.ts index 7df5df2f9..939892b8c 100644 --- a/apps/backend/src/lambda.ts +++ b/apps/backend/src/lambda.ts @@ -1,8 +1,8 @@ import serverlessExpress from '@vendia/serverless-express'; import type { Context, Handler } from 'aws-lambda'; -import { start } from '.'; -import connectToMongoDB from '$db/mongodb'; + import env from './env'; +import { start } from '.'; let cachedHandler: Handler; @@ -11,6 +11,5 @@ export async function handler(event: any, context: Context, callback: any) { const app = await start(env.NODE_ENV === 'production'); cachedHandler = serverlessExpress({ app }); } - await connectToMongoDB(); return cachedHandler(event, context, callback); } diff --git a/apps/backend/src/models/News.ts b/apps/backend/src/models/News.ts deleted file mode 100644 index df4a0538a..000000000 --- a/apps/backend/src/models/News.ts +++ /dev/null @@ -1,18 +0,0 @@ -import mongoose, { Document, Schema } from 'mongoose'; - -export interface News extends Document { - _id: string; - title: string; - body: string; - date: string; -} - -const NewsSchema: Schema = new Schema({ - title: { type: String, required: true }, - body: { type: String, required: true }, - date: { type: String, required: true }, -}); - -const NewsModel = mongoose.model('News', NewsSchema); - -export default NewsModel; diff --git a/apps/backend/src/models/User.ts b/apps/backend/src/models/User.ts deleted file mode 100644 index 291beb53d..000000000 --- a/apps/backend/src/models/User.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Schema, model } from 'mongoose'; -import { LegacyUser } from '@packages/antalmanac-types'; - -const UserSchema = new Schema( - { - _id: String, - userData: { - addedCourses: [ - { - color: String, - term: String, - sectionCode: String, - scheduleIndices: [Number], - }, - ], - scheduleNames: { type: [String], default: ['Schedule 1', 'Schedule 2', 'Schedule 3', 'Schedule 4'] }, - customEvents: [ - { - customEventID: String, - color: String, - title: String, - days: [Boolean], - scheduleIndices: [Number], - start: String, - end: String, - }, - ], - }, - }, - { - collection: 'users', - } -); - -export default model('LegacyUser', UserSchema); diff --git a/apps/backend/src/routers/users.ts b/apps/backend/src/routers/users.ts index 028b345c2..8ad3e070e 100644 --- a/apps/backend/src/routers/users.ts +++ b/apps/backend/src/routers/users.ts @@ -46,7 +46,7 @@ const usersRouter = router({ if ('googleId' in input) { return await ddbClient.getGoogleUserData(input.googleId); } - return (await ddbClient.getUserData(input.userId)) ?? (await ddbClient.getLegacyUserData(input.userId)); + return await ddbClient.getUserData(input.userId); }), /** diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b300933f..ca2f76018 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -324,12 +324,6 @@ importers: express: specifier: ^4.18.2 version: 4.18.2 - mongodb: - specifier: ^5.0.1 - version: 5.0.1 - mongoose: - specifier: ^7.1.0j - version: 7.1.0 postgres: specifier: ^3.4.4 version: 3.4.4 @@ -2432,12 +2426,6 @@ packages: '@types/warning@3.0.0': resolution: {integrity: sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==} - '@types/webidl-conversions@7.0.0': - resolution: {integrity: sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==} - - '@types/whatwg-url@8.2.2': - resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} - '@typescript-eslint/eslint-plugin@5.57.1': resolution: {integrity: sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2734,10 +2722,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bson@5.3.0: - resolution: {integrity: sha512-ukmCZMneMlaC5ebPHXIkP8YJzNl5DC41N5MAIvKDqLggdao342t4McltoJBQfQya/nHBWAcSsYRqlXPoQkTJag==} - engines: {node: '>=14.20.1'} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3747,9 +3731,6 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -3967,10 +3948,6 @@ packages: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} - kareem@2.5.1: - resolution: {integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==} - engines: {node: '>=12.0.0'} - language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} @@ -4084,9 +4061,6 @@ packages: resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} engines: {node: '>=0.12'} - memory-pager@1.5.0: - resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} - merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -4148,51 +4122,6 @@ packages: moment@2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - mongodb-connection-string-url@2.6.0: - resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} - - mongodb@5.0.1: - resolution: {integrity: sha512-KpjtY+NWFmcic6UDYEdfn768ZTuKyv7CRaui7ZSd6q/0/o1AURMC7KygTUwB1Cl8V10Pe5NiP+Y2eBMCDs/ygQ==} - engines: {node: '>=14.20.1'} - peerDependencies: - '@aws-sdk/credential-providers': ^3.201.0 - mongodb-client-encryption: ^2.3.0 - snappy: ^7.2.2 - peerDependenciesMeta: - '@aws-sdk/credential-providers': - optional: true - mongodb-client-encryption: - optional: true - snappy: - optional: true - - mongodb@5.3.0: - resolution: {integrity: sha512-Wy/sbahguL8c3TXQWXmuBabiLD+iVmz+tOgQf+FwkCjhUIorqbAxRbbz00g4ZoN4sXIPwpAlTANMaGRjGGTikQ==} - engines: {node: '>=14.20.1'} - peerDependencies: - '@aws-sdk/credential-providers': ^3.201.0 - mongodb-client-encryption: '>=2.3.0 <3' - snappy: ^7.2.2 - peerDependenciesMeta: - '@aws-sdk/credential-providers': - optional: true - mongodb-client-encryption: - optional: true - snappy: - optional: true - - mongoose@7.1.0: - resolution: {integrity: sha512-shoo9z/7o96Ojx69wpJn65+EC+Mt3q1SWTducW+F2Y4ieCXo0lZwpCZedgC841MIvJ7V8o6gmzoN1NfcnOTOuw==} - engines: {node: '>=14.0.0'} - - mpath@0.9.0: - resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} - engines: {node: '>=4.0.0'} - - mquery@5.0.0: - resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} - engines: {node: '>=14.0.0'} - ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -4719,10 +4648,6 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - saslprep@1.0.3: - resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} - engines: {node: '>=6'} - sax@1.2.1: resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} @@ -4779,9 +4704,6 @@ packages: side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - sift@16.0.1: - resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==} - siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -4811,14 +4733,6 @@ packages: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} - source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -4834,9 +4748,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - sparse-bitfield@3.0.3: - resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} - spawn-command@0.0.2-1: resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} @@ -4993,10 +4904,6 @@ packages: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - tr46@4.1.1: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} @@ -5289,10 +5196,6 @@ packages: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - whatwg-url@12.0.1: resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} engines: {node: '>=14'} @@ -7975,13 +7878,6 @@ snapshots: '@types/warning@3.0.0': {} - '@types/webidl-conversions@7.0.0': {} - - '@types/whatwg-url@8.2.2': - dependencies: - '@types/node': 20.11.5 - '@types/webidl-conversions': 7.0.0 - '@typescript-eslint/eslint-plugin@5.57.1(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.5.0 @@ -8336,8 +8232,6 @@ snapshots: node-releases: 2.0.10 update-browserslist-db: 1.0.10(browserslist@4.21.5) - bson@5.3.0: {} - buffer-from@1.1.2: {} buffer@4.9.2: @@ -9614,8 +9508,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - ip@2.0.0: {} - ipaddr.js@1.9.1: {} is-arguments@1.1.1: @@ -9852,8 +9744,6 @@ snapshots: array-includes: 3.1.6 object.assign: 4.1.4 - kareem@2.5.1: {} - language-subtag-registry@0.3.22: {} language-tags@1.0.5: @@ -9988,9 +9878,6 @@ snapshots: next-tick: 1.1.0 timers-ext: 0.1.8 - memory-pager@1.5.0: - optional: true - merge-descriptors@1.0.1: {} merge-stream@2.0.0: {} @@ -10043,50 +9930,6 @@ snapshots: moment@2.29.4: {} - mongodb-connection-string-url@2.6.0: - dependencies: - '@types/whatwg-url': 8.2.2 - whatwg-url: 11.0.0 - - mongodb@5.0.1: - dependencies: - bson: 5.3.0 - mongodb-connection-string-url: 2.6.0 - socks: 2.7.1 - optionalDependencies: - saslprep: 1.0.3 - - mongodb@5.3.0: - dependencies: - bson: 5.3.0 - mongodb-connection-string-url: 2.6.0 - socks: 2.7.1 - optionalDependencies: - saslprep: 1.0.3 - - mongoose@7.1.0: - dependencies: - bson: 5.3.0 - kareem: 2.5.1 - mongodb: 5.3.0 - mpath: 0.9.0 - mquery: 5.0.0 - ms: 2.1.3 - sift: 16.0.1 - transitivePeerDependencies: - - '@aws-sdk/credential-providers' - - mongodb-client-encryption - - snappy - - supports-color - - mpath@0.9.0: {} - - mquery@5.0.0: - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - ms@2.0.0: {} ms@2.1.2: {} @@ -10612,11 +10455,6 @@ snapshots: safer-buffer@2.1.2: {} - saslprep@1.0.3: - dependencies: - sparse-bitfield: 3.0.3 - optional: true - sax@1.2.1: {} saxes@6.0.0: @@ -10682,8 +10520,6 @@ snapshots: get-intrinsic: 1.2.0 object-inspect: 1.12.3 - sift@16.0.1: {} - siginfo@2.0.0: {} signal-exit@3.0.7: {} @@ -10713,13 +10549,6 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - smart-buffer@4.2.0: {} - - socks@2.7.1: - dependencies: - ip: 2.0.0 - smart-buffer: 4.2.0 - source-map-js@1.0.2: {} source-map-support@0.5.21: @@ -10731,11 +10560,6 @@ snapshots: source-map@0.6.1: {} - sparse-bitfield@3.0.3: - dependencies: - memory-pager: 1.5.0 - optional: true - spawn-command@0.0.2-1: {} split.js@1.6.5: {} @@ -10879,10 +10703,6 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 - tr46@3.0.0: - dependencies: - punycode: 2.3.0 - tr46@4.1.1: dependencies: punycode: 2.3.0 @@ -11186,11 +11006,6 @@ snapshots: whatwg-mimetype@3.0.0: {} - whatwg-url@11.0.0: - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - whatwg-url@12.0.1: dependencies: tr46: 4.1.1 From 68568a47a561715a6facf3540e1271669c872714 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:42:21 -0800 Subject: [PATCH 38/90] chore(turbo): rename pipeline to tasks --- turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/turbo.json b/turbo.json index bc4810d57..72c68b9ee 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,6 @@ { "$schema": "https://turbo.build/schema.json", - "pipeline": { + "tasks": { "start": { "cache": false }, From 43a9953c721fd11521c3adcd04f834009683ccdb Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:42:41 -0800 Subject: [PATCH 39/90] chore(deps): update drizzle --- apps/backend/package.json | 4 +- pnpm-lock.yaml | 9849 ++++++++++++++++++------------------- 2 files changed, 4743 insertions(+), 5110 deletions(-) diff --git a/apps/backend/package.json b/apps/backend/package.json index bf358db9b..2719fcd65 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -22,7 +22,7 @@ "arktype": "1.0.14-alpha", "aws-lambda": "^1.0.7", "cors": "^2.8.5", - "drizzle-orm": "^0.30.10", + "drizzle-orm": "^0.36.3", "envalid": "^7.3.1", "express": "^4.18.2", "postgres": "^3.4.4", @@ -38,7 +38,7 @@ "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "concurrently": "^8.0.1", - "drizzle-kit": "^0.21.2", + "drizzle-kit": "^0.21.4", "esbuild": "^0.17.19", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca2f76018..9864303ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,40 +10,40 @@ importers: devDependencies: '@types/eslint': specifier: ^8.56.5 - version: 8.56.5 + version: 9.6.1 '@types/node': specifier: ^20.11.6 - version: 20.11.6 + version: 22.9.0 cross-env: specifier: ^7.0.3 version: 7.0.3 eslint-import-resolver-typescript: specifier: ^3.6.1 - version: 3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0) + version: 3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0) husky: specifier: ^8.0.3 - version: 8.0.3 + version: 9.1.6 jsdom: specifier: ^22.1.0 - version: 22.1.0 + version: 25.0.1 lint-staged: specifier: ^13.1.1 - version: 13.1.2 + version: 15.2.10 prettier: specifier: ^3.1.0 - version: 3.1.0 + version: 3.3.3 turbo: specifier: latest - version: 2.2.3 + version: 2.3.0 vitest: specifier: ^0.34.4 - version: 0.34.4(jsdom@22.1.0) + version: 2.1.5(@types/node@22.9.0)(jsdom@25.0.1) .github/actions/create-deployment: dependencies: '@actions/core': specifier: ^1.10.1 - version: 1.10.1 + version: 1.11.1 '@actions/github': specifier: ^6.0.0 version: 6.0.0 @@ -52,7 +52,7 @@ importers: dependencies: '@actions/core': specifier: ^1.10.1 - version: 1.10.1 + version: 1.11.1 '@actions/github': specifier: ^6.0.0 version: 6.0.0 @@ -61,67 +61,67 @@ importers: dependencies: '@date-io/date-fns': specifier: ^2.16.0 - version: 2.16.0(date-fns@2.29.3) + version: 3.0.0(date-fns@4.1.0) '@emotion/react': specifier: ^11.10.5 - version: 11.10.6(@types/react@18.0.28)(react@18.2.0) + version: 11.13.3(@types/react@18.3.12)(react@18.3.1) '@emotion/styled': specifier: ^11.10.5 - version: 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) + version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@material-ui/core': specifier: ^4.12.4 - version: 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@material-ui/icons': specifier: ^4.11.3 - version: 4.11.3(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 4.11.3(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@material-ui/lab': specifier: ^4.0.0-alpha.61 - version: 4.0.0-alpha.61(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 4.0.0-alpha.61(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@material-ui/pickers': specifier: ^3.3.10 - version: 3.3.10(@date-io/core@2.16.0)(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 3.3.11(@date-io/core@3.0.0)(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/base': specifier: 5.0.0-beta.13 - version: 5.0.0-beta.13(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 5.0.0-beta.61(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/icons-material': specifier: ^5.11.0 - version: 5.11.9(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) + version: 6.1.7(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/lab': specifier: ^5.0.0-alpha.118 - version: 5.0.0-alpha.120(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 6.0.0-beta.15(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.11.7 - version: 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@packages/antalmanac-types': specifier: workspace:^ version: link:../../packages/types '@react-leaflet/core': specifier: ^2.1.0 - version: 2.1.0(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 2.1.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@reactour/tour': specifier: ^3.6.1 - version: 3.6.1(react@18.2.0) + version: 3.7.0(react@18.3.1) '@tanstack/react-query': specifier: ^4.24.4 - version: 4.24.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 5.60.5(react@18.3.1) '@trpc/client': specifier: ^10.30.0 - version: 10.30.0(@trpc/server@10.30.0) + version: 10.45.2(@trpc/server@10.45.2) '@trpc/server': specifier: ^10.30.0 - version: 10.30.0 + version: 10.45.2 chart.js: specifier: ^4.2.1 - version: 4.2.1 + version: 4.4.6 classnames: specifier: ^2.3.2 - version: 2.3.2 + version: 2.5.1 date-fns: specifier: ^2.29.3 - version: 2.29.3 + version: 4.1.0 dayjs: specifier: ^1.11.7 - version: 1.11.7 + version: 1.11.13 events: specifier: ^3.3.0 version: 3.3.0 @@ -133,119 +133,119 @@ importers: version: 1.4.1 ics: specifier: ^3.0.1 - version: 3.1.0 + version: 3.8.1 leaflet: specifier: ^1.9.3 - version: 1.9.3 + version: 1.9.4 leaflet-routing-machine: specifier: ^3.2.12 version: 3.2.12 leaflet.locatecontrol: specifier: ^0.79.0 - version: 0.79.0 + version: 0.82.0 material-ui-popup-state: specifier: ^5.0.4 - version: 5.0.4(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 5.3.1(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) moment: specifier: ^2.29.4 - version: 2.29.4 + version: 2.30.1 moment-timezone: specifier: ^0.5.43 - version: 0.5.43 + version: 0.5.46 notistack: specifier: ^2.0.8 - version: 2.0.8(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 3.0.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.2.0 - version: 18.2.0 + version: 18.3.1 react-big-calendar: specifier: ^1.6.4 - version: 1.6.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 1.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-chartjs-2: specifier: ^5.2.0 - version: 5.2.0(chart.js@4.2.1)(react@18.2.0) + version: 5.2.0(chart.js@4.4.6)(react@18.3.1) react-color: specifier: ^2.19.3 - version: 2.19.3(react@18.2.0) + version: 2.19.3(react@18.3.1) react-dom: specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + version: 18.3.1(react@18.3.1) react-ga4: specifier: ^2.0.0 - version: 2.0.0 + version: 2.1.0 react-input-mask: specifier: ^2.0.4 - version: 2.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 2.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-lazyload: specifier: ^3.2.0 - version: 3.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-leaflet: specifier: ^4.2.1 - version: 4.2.1(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 4.2.1(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-router-dom: specifier: ^6.8.1 - version: 6.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-split: specifier: ^2.0.14 - version: 2.0.14(react@18.2.0) + version: 2.0.14(react@18.3.1) recharts: specifier: ^2.4.2 - version: 2.4.3(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 2.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) superjson: specifier: ^1.12.3 - version: 1.12.3 + version: 2.2.1 ua-parser-js: specifier: ^1.0.37 - version: 1.0.37 + version: 1.0.39 websoc-fuzzy-search: specifier: ^1.0.1 version: 1.0.1 zustand: specifier: ^4.3.2 - version: 4.3.3(react@18.2.0) + version: 5.0.1(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)) devDependencies: '@babel/core': specifier: ^7.20.12 - version: 7.20.12 + version: 7.26.0 '@testing-library/react': specifier: ^14.0.0 - version: 14.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/eslint': specifier: ^8.56.5 - version: 8.56.5 + version: 9.6.1 '@types/file-saver': specifier: ^2.0.5 - version: 2.0.5 + version: 2.0.7 '@types/leaflet': specifier: ^1.9.0 - version: 1.9.0 + version: 1.9.14 '@types/leaflet-routing-machine': specifier: ^3.2.4 - version: 3.2.4 + version: 3.2.8 '@types/leaflet.locatecontrol': specifier: ^0.74.1 - version: 0.74.1 + version: 0.74.6 '@types/node': specifier: ^18.13.0 - version: 18.13.0 + version: 22.9.0 '@types/react': specifier: ^18.0.27 - version: 18.0.28 + version: 18.3.12 '@types/react-big-calendar': specifier: ^1.6.0 - version: 1.6.0 + version: 1.15.0 '@types/react-color': specifier: ^3.0.6 - version: 3.0.6 + version: 3.0.12 '@types/react-dom': specifier: ^18.0.10 - version: 18.0.11 + version: 18.3.1 '@types/react-input-mask': specifier: ^3.0.2 - version: 3.0.2 + version: 3.0.6 '@types/react-lazyload': specifier: ^3.2.0 - version: 3.2.0 + version: 3.2.3 '@types/reactour': specifier: ^1.18.5 version: 1.18.5 @@ -254,43 +254,43 @@ importers: version: 0.7.39 '@vitejs/plugin-react': specifier: ^4.0.4 - version: 4.0.4(vite@4.4.9(@types/node@18.13.0)) + version: 4.3.3(vite@5.4.11(@types/node@22.9.0)) aws-sdk: specifier: ^2.1550.0 - version: 2.1550.0 + version: 2.1692.0 eslint: specifier: ^8.36.0 - version: 8.37.0 + version: 9.15.0 eslint-config-prettier: specifier: ^8.7.0 - version: 8.8.0(eslint@8.37.0) + version: 9.1.0(eslint@9.15.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0) + version: 2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) eslint-plugin-jsx-a11y: specifier: ^6.7.1 - version: 6.7.1(eslint@8.37.0) + version: 6.10.2(eslint@9.15.0) eslint-plugin-react: specifier: ^7.32.2 - version: 7.32.2(eslint@8.37.0) + version: 7.37.2(eslint@9.15.0) eslint-plugin-react-hooks: specifier: ^4.6.0 - version: 4.6.0(eslint@8.37.0) + version: 5.0.0(eslint@9.15.0) peterportal-api-next-types: specifier: 1.0.0-rc.2.68.0 - version: 1.0.0-rc.2.68.0 + version: 1.0.0-rc.3 prettier: specifier: ^2.8.4 - version: 2.8.4 + version: 3.3.3 typescript: specifier: ^4.9.5 - version: 4.9.5 + version: 5.6.3 vite: specifier: ^4.4.9 - version: 4.4.9(@types/node@18.13.0) + version: 5.4.11(@types/node@22.9.0) vite-plugin-svgr: specifier: ^2.4.0 - version: 2.4.0(rollup@3.29.1)(vite@4.4.9(@types/node@18.13.0)) + version: 4.3.0(rollup@4.27.2)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)) apps/backend: dependencies: @@ -302,13 +302,13 @@ importers: version: 2.2.2 '@trpc/server': specifier: ^10.30.0 - version: 10.30.0 + version: 10.45.2 '@vendia/serverless-express': specifier: ^4.10.1 - version: 4.10.1 + version: 4.12.6 arktype: specifier: 1.0.14-alpha - version: 1.0.14-alpha + version: 2.0.0-rc.23 aws-lambda: specifier: ^1.0.7 version: 1.0.7 @@ -316,128 +316,128 @@ importers: specifier: ^2.8.5 version: 2.8.5 drizzle-orm: - specifier: ^0.30.10 - version: 0.30.10(@types/react@18.0.28)(postgres@3.4.4)(react@18.2.0) + specifier: ^0.36.3 + version: 0.36.3(@types/react@18.3.12)(postgres@3.4.5)(react@18.3.1) envalid: specifier: ^7.3.1 - version: 7.3.1 + version: 8.0.0 express: specifier: ^4.18.2 - version: 4.18.2 + version: 4.21.1 postgres: specifier: ^3.4.4 - version: 3.4.4 + version: 3.4.5 superjson: specifier: ^1.12.3 - version: 1.12.3 + version: 2.2.1 websoc-api: specifier: ^3.0.0 version: 3.0.0 devDependencies: '@aws-sdk/client-dynamodb': specifier: ^3.332.0 - version: 3.332.0 + version: 3.693.0 '@aws-sdk/lib-dynamodb': specifier: ^3.332.0 - version: 3.332.0(@aws-sdk/client-dynamodb@3.332.0)(@aws-sdk/smithy-client@3.347.0)(@aws-sdk/types@3.489.0) + version: 3.693.0(@aws-sdk/client-dynamodb@3.693.0) '@types/aws-lambda': specifier: ^8.10.110 - version: 8.10.110 + version: 8.10.145 '@types/cors': specifier: ^2.8.13 - version: 2.8.13 + version: 2.8.17 '@types/express': specifier: ^4.17.17 - version: 4.17.17 + version: 5.0.0 '@typescript-eslint/eslint-plugin': specifier: ^5.52.0 - version: 5.57.1(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5) + version: 8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^5.52.0 - version: 5.57.1(eslint@8.38.0)(typescript@4.9.5) + version: 8.14.0(eslint@9.15.0)(typescript@5.6.3) concurrently: specifier: ^8.0.1 - version: 8.0.1 + version: 9.1.0 drizzle-kit: - specifier: ^0.21.2 - version: 0.21.4 + specifier: ^0.21.4 + version: 0.28.1 esbuild: specifier: ^0.17.19 - version: 0.17.19 + version: 0.24.0 eslint: specifier: ^8.34.0 - version: 8.38.0 + version: 9.15.0 eslint-config-prettier: specifier: ^8.6.0 - version: 8.8.0(eslint@8.38.0) + version: 9.1.0(eslint@9.15.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0) + version: 2.31.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) husky: specifier: ^8.0.3 - version: 8.0.3 + version: 9.1.6 lint-staged: specifier: ^13.1.2 - version: 13.1.2 + version: 15.2.10 nodemon: specifier: ^2.0.22 - version: 2.0.22 + version: 3.1.7 prettier: specifier: ^2.8.4 - version: 2.8.4 + version: 3.3.3 tsx: specifier: ^3.12.7 - version: 3.12.7 + version: 4.19.2 typescript: specifier: ^4.9.5 - version: 4.9.5 + version: 5.6.3 apps/cdk: dependencies: '@aws-sdk/client-cloudformation': specifier: ^3.405.0 - version: 3.490.0 + version: 3.693.0 '@aws-sdk/util-waiter': specifier: ^3.374.0 version: 3.374.0 arktype: specifier: 1.0.14-alpha - version: 1.0.14-alpha + version: 2.0.0-rc.23 aws-cdk-lib: specifier: ^2.94.0 - version: 2.121.1(constructs@10.3.0) + version: 2.167.1(constructs@10.4.2) constructs: specifier: ^10.2.70 - version: 10.3.0 + version: 10.4.2 dotenv: specifier: ^16.0.3 - version: 16.0.3 + version: 16.4.5 devDependencies: '@types/node': specifier: ^20.11.5 - version: 20.11.5 + version: 22.9.0 aws-cdk: specifier: ^2.94.0 - version: 2.121.1 + version: 2.167.1 tsx: specifier: ^3.12.7 - version: 3.12.7 + version: 4.19.2 typescript: specifier: ^5.1.0 - version: 5.3.3 + version: 5.6.3 packages/peterportal-schemas: dependencies: arktype: specifier: 1.0.14-alpha - version: 1.0.14-alpha + version: 2.0.0-rc.23 peterportal-api-next-types: specifier: 1.0.0-alpha.6 - version: 1.0.0-alpha.6 + version: 1.0.0-rc.3 devDependencies: typescript: specifier: ^4.9 - version: 4.9.5 + version: 5.6.3 packages/types: dependencies: @@ -446,16 +446,19 @@ importers: version: link:../peterportal-schemas arktype: specifier: 1.0.14-alpha - version: 1.0.14-alpha + version: 2.0.0-rc.23 devDependencies: typescript: specifier: ^4.9 - version: 4.9.5 + version: 5.6.3 packages: - '@actions/core@1.10.1': - resolution: {integrity: sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==} + '@actions/core@1.11.1': + resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} + + '@actions/exec@1.1.1': + resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} '@actions/github@6.0.0': resolution: {integrity: sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==} @@ -463,559 +466,243 @@ packages: '@actions/http-client@2.2.0': resolution: {integrity: sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==} + '@actions/io@1.1.3': + resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} + '@ampproject/remapping@2.2.0': resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} - '@aws-cdk/asset-awscli-v1@2.2.201': - resolution: {integrity: sha512-INZqcwDinNaIdb5CtW3ez5s943nX5stGBQS6VOP2JDlOFP81hM3fds/9NDknipqfUkZM43dx+HgVvkXYXXARCQ==} - - '@aws-cdk/asset-kubectl-v20@2.1.2': - resolution: {integrity: sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==} - - '@aws-cdk/asset-node-proxy-agent-v6@2.0.1': - resolution: {integrity: sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg==} - - '@aws-crypto/crc32@3.0.0': - resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} - - '@aws-crypto/ie11-detection@3.0.0': - resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} - - '@aws-crypto/sha256-browser@3.0.0': - resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} - - '@aws-crypto/sha256-js@3.0.0': - resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} - - '@aws-crypto/supports-web-crypto@3.0.0': - resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} - - '@aws-crypto/util@3.0.0': - resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} - - '@aws-sdk/abort-controller@3.329.0': - resolution: {integrity: sha512-hzrjPNQcJoSPe0oS20V5i98oiEZSM3mKNiR6P3xHTHTPI/F23lyjGZ+/CSkCmJbSWfGZ5sHZZcU6AWuS7xBdTw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/client-cloudformation@3.490.0': - resolution: {integrity: sha512-WtHIxAAEpWID4u3UeZSq+wE2fXgSi04LaqQ/ZDtCJ4UbR/ml5y05lX0HCXdkPJbqbmBXzoZRPKUPGicJ03Hy0w==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/client-dynamodb@3.332.0': - resolution: {integrity: sha512-v+4a0drW4Q9IZDKbolteyQKbTt42cwbD9CVy2EISB0rThKJKwe/QSUWoeO/nUxmZ7Q4bB/r15Vga5r274FrQ4Q==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/client-sso-oidc@3.332.0': - resolution: {integrity: sha512-tz8k8Yqm4TScIfit0Tum2zWAq1md+gZKr747CSixd4Zwcp7Vwh75cRoL7Rz1ZHSEn1Yo983MWREevVez3SubLw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/client-sso@3.332.0': - resolution: {integrity: sha512-4q1Nko8M6YVANdEiLYvdv1qb00j4xN4ppE/6d4xpGp7DxHYlm0GA762h0/TR2dun+2I+SMnwj4Fv6BxOmzBaEw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/client-sso@3.490.0': - resolution: {integrity: sha512-yfxoHmCL1w/IKmFRfzCxdVCQrGlSQf4eei9iVEm5oi3iE8REFyPj3o/BmKQEHG3h2ITK5UbdYDb5TY4xoYHsyA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/client-sts@3.332.0': - resolution: {integrity: sha512-uVobnXIzMcEhwBDyk6iOt36N/TRNI8hwq7MQugjYGj7Inma9g4vnR09hXJ24HxyKCoVUoIgMbEguQ43+/+uvDQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/client-sts@3.490.0': - resolution: {integrity: sha512-n2vQ5Qu2qi2I0XMI+IH99ElpIRHOJTa1+sqNC4juMYxKQBMvw+EnsqUtaL3QvTHoyxNB/R7mpkeBB6SzPQ1TtA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/config-resolver@3.329.0': - resolution: {integrity: sha512-Oj6eiT3q+Jn685yvUrfRi8PhB3fb81hasJqdrsEivA8IP8qAgnVUTJzXsh8O2UX8UM2MF6A1gTgToSgneJuw2Q==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/core@3.490.0': - resolution: {integrity: sha512-TSBWkXtxMU7q1Zo6w3v5wIOr/sj7P5Jw3OyO7lJrFGsPsDC2xwpxkVqTesDxkzgMRypO52xjYEmveagn1xxBHg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/credential-provider-env@3.329.0': - resolution: {integrity: sha512-B4orC9hMt9hG82vAR0TAnQqjk6cFDbO2S14RdzUj2n2NPlGWW4Blkv3NTo86K0lq011VRhtqaLcuTwn5EJD5Sg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/credential-provider-env@3.489.0': - resolution: {integrity: sha512-5PqYsx9G5SB2tqPT9/z/u0EkF6D4wP6HTMWQs+DfMdmwXihrqQAgeYaTtV3KbXqb88p6sfacwxhUvE6+Rm494w==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/credential-provider-imds@3.329.0': - resolution: {integrity: sha512-ggPlnd7QROPTid0CwT01TYYGvstRRTpzTGsQ/B31wkh30IrRXE81W3S4xrOYuqQD3u0RnflSxnvhs+EayJEYjg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/credential-provider-ini@3.332.0': - resolution: {integrity: sha512-DTW6d6rcqizPVyvcIrwvxecQ7e5GONtVc5Wyf0RTfqf41sDOVZYmn6G+zEFSpBLW0975uZbJS0lyLWtJe2VujQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/credential-provider-ini@3.490.0': - resolution: {integrity: sha512-7m63zyCpVqj9FsoDxWMWWRvL6c7zZzOcXYkHZmHujVVlmAXH0RT/vkXFkYgt+Ku+ov+v5NQrzwO5TmVoRt6O8g==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/credential-provider-node@3.332.0': - resolution: {integrity: sha512-KkBayS9k4WyJTvC86ngeRM+RmWxNCS1BHvudkR6PLXfnsNPDzxySDVY0UgxVhbNYDYsO561fXZt9ccpKyVWjgg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/credential-provider-node@3.490.0': - resolution: {integrity: sha512-Gh33u2O5Xbout8G3z/Z5H/CZzdG1ophxf/XS3iMFxA1cazQ7swY1UMmGvB7Lm7upvax5anXouItD1Ph3gzKc4w==} - engines: {node: '>=14.0.0'} + '@ark/schema@0.23.0': + resolution: {integrity: sha512-406Zx0te3ICd7PkGise4XIxOfmjFzK64tEuiN5rmJDg14AqhySXygMk8QcHqHORDJ7VXhel7J41iduw8eyiFPg==} - '@aws-sdk/credential-provider-process@3.329.0': - resolution: {integrity: sha512-5oO220qoFc2pMdZDQa6XN/mVhp669I3+LqMbbscGtX/UgLJPSOb7YzPld9Wjv12L5rf+sD3G1PF3LZXO0vKLFA==} - engines: {node: '>=14.0.0'} + '@ark/util@0.23.0': + resolution: {integrity: sha512-2mb24N2leQENRh+zPqnlRJzFFf8Xr7BT+/4MJN46/G8C45davpqFfcqvOw0ZlXrjQpBi8H+ZqDQsi95lN/9oVg==} - '@aws-sdk/credential-provider-process@3.489.0': - resolution: {integrity: sha512-3vKQYJZ5cZYjy0870CPmbmKRBgATw2xCygxhn4m4UDCjOXVXcGUtYD51DMWsvBo3S0W8kH+FIJV4yuEDMFqLFQ==} - engines: {node: '>=14.0.0'} + '@aws-cdk/asset-awscli-v1@2.2.211': + resolution: {integrity: sha512-56G1FYTiKyec3bEfEI/5UcU0XPnaGUlaDDH7OYClyvqss0HlnmoSulHK2gwai2PGAD1Nk+scPrdfH/MVAkSKuw==} - '@aws-sdk/credential-provider-sso@3.332.0': - resolution: {integrity: sha512-SaKXl48af3n6LRitcaEqbeg1YDXwQ0A5QziC1xQyYPraEIj3IZ/GyTjx04Lo2jxNYHuEOE8u4aTw1+IK1GDKbg==} - engines: {node: '>=14.0.0'} + '@aws-cdk/asset-kubectl-v20@2.1.3': + resolution: {integrity: sha512-cDG1w3ieM6eOT9mTefRuTypk95+oyD7P5X/wRltwmYxU7nZc3+076YEVS6vrjDKr3ADYbfn0lDKpfB1FBtO9CQ==} - '@aws-sdk/credential-provider-sso@3.490.0': - resolution: {integrity: sha512-3UUBUoPbFvT58IhS4Vb23omYj/QPNkjgxu9p9ruQ3KSjLkanI4w8t/l/jljA65q83P7CoLnM5UKG9L7RA8/V1Q==} - engines: {node: '>=14.0.0'} + '@aws-cdk/asset-node-proxy-agent-v6@2.1.0': + resolution: {integrity: sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==} - '@aws-sdk/credential-provider-web-identity@3.329.0': - resolution: {integrity: sha512-lcEibZD7AlutCacpQ6DyNUqElZJDq+ylaIo5a8MH9jGh7Pg2WpDg0Sy+B6FbGCkVn4eIjdHxeX54JM245nhESg==} - engines: {node: '>=14.0.0'} + '@aws-cdk/cloud-assembly-schema@38.0.1': + resolution: {integrity: sha512-KvPe+NMWAulfNVwY7jenFhzhuLhLqJ/OPy5jx7wUstbjnYnjRVLpUHPU3yCjXFE0J8cuJVdx95BJ4rOs66Pi9w==} + bundledDependencies: + - jsonschema + - semver - '@aws-sdk/credential-provider-web-identity@3.489.0': - resolution: {integrity: sha512-mjIuE2Wg1H/ds0nXQ/7vfusEDudmdd8YzKZI1y5O4n60iZZtyB2RNIECtvLMx1EQAKclidY7/06qQkArrGau5Q==} - engines: {node: '>=14.0.0'} + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} - '@aws-sdk/endpoint-cache@3.310.0': - resolution: {integrity: sha512-y3wipforet41EDTI0vnzxILqwAGll1KfI5qcdX9pXF/WF1f+3frcOtPiWtQEZQpy4czRogKm3BHo70QBYAZxlQ==} - engines: {node: '>=14.0.0'} + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/fetch-http-handler@3.329.0': - resolution: {integrity: sha512-9jfIeJhYCcTX4ScXOueRTB3S/tVce0bRsKxKDP0PnTxnGYOwKXoM9lAPmiYItzYmQ/+QzjTI8xfkA9Usz2SK/Q==} + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} - '@aws-sdk/hash-node@3.329.0': - resolution: {integrity: sha512-6RmnWXNWpi7yAs0oRDQlkMn2wfXOStr/8kTCgiAiqrk1KopGSBkC2veKiKRSfv02FTd1yV/ISqYNIRqW1VLyxg==} - engines: {node: '>=14.0.0'} + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/invalid-dependency@3.329.0': - resolution: {integrity: sha512-UXynGusDxN/HxLma5ByJ7u+XnuMd47NbHOjJgYsaAjb1CVZT7hEPXOB+mcZ+Ku7To5SCOKu2QbRn7m4bGespBg==} + '@aws-sdk/client-cloudformation@3.693.0': + resolution: {integrity: sha512-Y0dWF4uMPICGG4SS/QGu5hmnUxoCEPlJ1UMcKABLfAhmP0qBeTHxvVLb35rYyfM0QK34n4AjGgAVago8ImgVZg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/is-array-buffer@3.310.0': - resolution: {integrity: sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==} - engines: {node: '>=14.0.0'} + '@aws-sdk/client-dynamodb@3.693.0': + resolution: {integrity: sha512-EmgFoE/wAxiOq/sfO/VFGlmvfq0FexUO4IMURr3deIpU/AuCsuU87HJH/UodFdKu88ykNZxMfHHku6o6BV2dAA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/lib-dynamodb@3.332.0': - resolution: {integrity: sha512-qs/Ki8/W7fVwI0DBKJ3mwTst+md+jNitHQD6neuxifi8NkdWkDwXFO32DIuHBkXbeo1aERLKF7Q1N046gVSm7A==} - engines: {node: '>=14.0.0'} + '@aws-sdk/client-sso-oidc@3.693.0': + resolution: {integrity: sha512-UEDbYlYtK/e86OOMyFR4zEPyenIxDzO2DRdz3fwVW7RzZ94wfmSwBh/8skzPTuY1G7sI064cjHW0b0QG01Sdtg==} + engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-dynamodb': ^3.0.0 - '@aws-sdk/smithy-client': ^3.0.0 - '@aws-sdk/types': ^3.0.0 - - '@aws-sdk/middleware-content-length@3.329.0': - resolution: {integrity: sha512-7kCd+CvY/4KbyXB0uyL7jCwPjMi2yERMALFdEH9dsUciwmxIQT6eSc4aF6wImC4UrbafaqmXvvHErABKMVBTKA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-endpoint-discovery@3.329.0': - resolution: {integrity: sha512-gzzKuAqvnTSo2mLMpgxAwGB7bdoLMwpobqyoDVVOpGcRyZmffYq/MdaBLgjcGIvlyzFHhnTF3KKO83X0ufebaw==} - engines: {node: '>=14.0.0'} + '@aws-sdk/client-sts': ^3.693.0 - '@aws-sdk/middleware-endpoint@3.329.0': - resolution: {integrity: sha512-hdJRoNdCM0BT4W+rrtee+kfFRgGPGXQDgtbIQlf/FuuuYz2sdef7/SYWr0mxuncnVBW5WkYSPP8h6q07whSKbg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-host-header@3.329.0': - resolution: {integrity: sha512-JrHeUdTIpTCfXDo9JpbAbZTS1x4mt63CCytJRq0mpWp+FlP9hjckBcNxWdR/wSKEzP9pDRnTri638BOwWH7O8w==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-host-header@3.489.0': - resolution: {integrity: sha512-Cl7HJ1jhOfllwf0CRx1eB4ypRGMqdGKWpc0eSTXty7wWSvCdMZUhwfjQqu2bIOIlgYxg/gFu6TVmVZ6g4O8PlA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-logger@3.329.0': - resolution: {integrity: sha512-lKeeTXsYC1NiwmxrXsZepcwNXPoQxTNNbeD1qaCELPGK2cJlrGoeAP2YRWzpwO2kNZWrDLaGAPT/EUEhqw+d1w==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-logger@3.489.0': - resolution: {integrity: sha512-+EVDnWese61MdImcBNAgz/AhTcIZJaska/xsU3GWU9CP905x4a4qZdB7fExFMDu1Jlz5pJqNteFYYHCFMJhHfg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-recursion-detection@3.329.0': - resolution: {integrity: sha512-0/TYOJwrj1Z8s+Y7thibD23hggBq/K/01NwPk32CwWG/G+1vWozs5DefknEl++w0vuV+39pkY4KHI8m/+wOCpg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-recursion-detection@3.489.0': - resolution: {integrity: sha512-m4rU+fTzziQcu9DKjRNZ4nQlXENEd2ZnJblJV4ONdWqqEjbmOgOj3P6aCCQlJdIbzuNvX1FBOZ5tY59ZpERo7Q==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-retry@3.329.0': - resolution: {integrity: sha512-cB3D7GlhHUcHGOlygOYxD9cPhwsTYEAMcohK38An8+RHNp6VQEWezzLFCmHVKUSeCQ+wkjZfPA40jOG0rbjSgQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-sdk-sts@3.329.0': - resolution: {integrity: sha512-bqtZuhkH8pANb2Gb4FEM1p27o+BoDBmVhEWm8sWH+APsyOor3jc6eUG2GxkfoO6D5tGNIuyCC/GuvW9XDIe4Kg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-serde@3.329.0': - resolution: {integrity: sha512-tvM9NdPuRPCozPjTGNOeYZeLlyx3BcEyajrkRorCRf1YzG/mXdB6I1stote7i4q1doFtYTz0sYL8bqW3LUPn9A==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-signing@3.329.0': - resolution: {integrity: sha512-bL1nI+EUcF5B1ipwDXxiKL+Uw02Mbt/TNX54PbzunBGZIyO6DZG/H+M3U296bYbvPlwlZhp26O830g6K7VEWsA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-signing@3.489.0': - resolution: {integrity: sha512-rlHcWYZn6Ym3v/u0DvKNDiD7ogIzEsHlerm0lowTiQbszkFobOiUClRTALwvsUZdAAztl706qO1OKbnGnD6Ubw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-stack@3.329.0': - resolution: {integrity: sha512-2huFLhJ45td2nuiIOjpc9JKJbFNn5CYmw9U8YDITTcydpteRN62CzCpeqroDvF89VOLWxh0ZFtuLCGUr7liSWQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-stack@3.347.0': - resolution: {integrity: sha512-Izidg4rqtYMcKuvn2UzgEpPLSmyd8ub9+LQ2oIzG3mpIzCBITq7wp40jN1iNkMg+X6KEnX9vdMJIYZsPYMCYuQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-user-agent@3.332.0': - resolution: {integrity: sha512-rSL1xP4QmcMOsunN1p5ZDR9GT3vvoSCnYa4iPvMSjP8Jx7l4ff/aVctwfZkMs/up12+68Jqwj4TvtaCvCFXdUA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/middleware-user-agent@3.489.0': - resolution: {integrity: sha512-M54Cv2fAN3GGgdfUjLtZ4wFUIrfM/ivbXv4DgpcNsacEQ2g4H+weQgKp41X7XZW8MWAzl+k1zJaryK69RYNQkQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/node-config-provider@3.329.0': - resolution: {integrity: sha512-hg9rGNlkzh8aeR/sQbijrkFx2BIO53j4Z6qDxPNWwSGpl05jri1VHxHx2HZMwgbY6Zy/DSguETN/BL8vdFqyLg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/node-http-handler@3.329.0': - resolution: {integrity: sha512-OrjaHjU2ZTPfoHa5DruRvTIbeHH/cc0wvh4ml+FwDpWaPaBpOhLiluhZ3anqX1l5QjrXNiQnL8FxSM5OV/zVCA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/property-provider@3.329.0': - resolution: {integrity: sha512-1cHLTV6yyMGaMSWWDW/p4vTkJ1cc5BOEO+A0eHuAcoSOk+LDe9IKhUG3/ZOvvYKQYcqIj5jjGSni/noXNCl/qw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/protocol-http@3.329.0': - resolution: {integrity: sha512-0rLEHY6QTHTUUcVxzGbPUSmCKlXWplxT/fcYRh0bcc5MBK4naKfcQft1O6Ajp8uqs/9YPZ7XCVCn90pDeJfeaw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/querystring-builder@3.329.0': - resolution: {integrity: sha512-UWgMKkS5trliaDJG4nPv3onu8Y0aBuwRo7RdIgggguOiU8pU6pq1I113nH2FBNWy+Me1bwf+bcviJh0pCo6bEg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/querystring-parser@3.329.0': - resolution: {integrity: sha512-9mkK+FB7snJ2G7H3CqtprDwYIRhzm6jEezffCwUWrC+lbqHBbErbhE9IeU/MKxILmf0RbC2riXEY1MHGspjRrQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/region-config-resolver@3.489.0': - resolution: {integrity: sha512-UvrnB78XTz9ddby7mr0vuUHn2MO3VTjzaIu+GQhyedMGQU0QlIQrYOlzbbu4LC5rL1O8FxFLUxRe/AAjgwyuGw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/service-error-classification@3.329.0': - resolution: {integrity: sha512-TSNr0flOcCLe71aPp7MjblKNGsmxpTU4xR5772MDX9Cz9GUTNZCPFtvrcqd+wzEPP/AC7XwNXe8KjoXooZImUQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/shared-ini-file-loader@3.329.0': - resolution: {integrity: sha512-e0hyd75fbjMd4aCoRwpP2/HR+0oScwogErVArIkq3F42c/hyNCQP3sph4JImuXIjuo6HNnpKpf20CEPPhNna8A==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/signature-v4@3.329.0': - resolution: {integrity: sha512-9EnLoyOD5nFtCRAp+QRllDgQASCfY7jLHVhwht7jzwE80wE65Z9Ym5Z/mwTd4IyTz/xXfCvcE2VwClsBt0Ybdw==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/smithy-client@3.329.0': - resolution: {integrity: sha512-7E0fGpBKxwFqHHAOqNbgNsHSEmCZLuvmU9yvG9DXKVzrS4P48O/PfOro123WpcFZs3STyOVgH8wjUPftHAVKmg==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/smithy-client@3.347.0': - resolution: {integrity: sha512-PaGTDsJLGK0sTjA6YdYQzILRlPRN3uVFyqeBUkfltXssvUzkm8z2t1lz2H4VyJLAhwnG5ZuZTNEV/2mcWrU7JQ==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/token-providers@3.332.0': - resolution: {integrity: sha512-fccbg6OSl0l658pxl2p1MoU9gEePo5B361+JNaN0zfRMu7c5HBXCpdl4djlFxAHjltrX9f1+BKqfGHYgI3h8SQ==} - engines: {node: '>=14.0.0'} + '@aws-sdk/client-sso@3.693.0': + resolution: {integrity: sha512-QEynrBC26x6TG9ZMzApR/kZ3lmt4lEIs2D+cHuDxt6fDGzahBUsQFBwJqhizzsM97JJI5YvmJhmihoYjdSSaXA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.489.0': - resolution: {integrity: sha512-hSgjB8CMQoA8EIQ0ripDjDtbBcWDSa+7vSBYPIzksyknaGERR/GUfGXLV2dpm5t17FgFG6irT5f3ZlBzarL8Dw==} - engines: {node: '>=14.0.0'} + '@aws-sdk/client-sts@3.693.0': + resolution: {integrity: sha512-4S2y7VEtvdnjJX4JPl4kDQlslxXEZFnC50/UXVUYSt/AMc5A/GgspFNA5FVz4E3Gwpfobbf23hR2NBF8AGvYoQ==} + engines: {node: '>=16.0.0'} - '@aws-sdk/types@3.329.0': - resolution: {integrity: sha512-wFBW4yciDfzQBSFmWNaEvHShnSGLMxSu9Lls6EUf6xDMavxSB36bsrVRX6CyAo/W0NeIIyEOW1LclGPgJV1okg==} - engines: {node: '>=14.0.0'} + '@aws-sdk/core@3.693.0': + resolution: {integrity: sha512-v6Z/kWmLFqRLDPEwl9hJGhtTgIFHjZugSfF1Yqffdxf4n1AWgtHS7qSegakuMyN5pP4K2tvUD8qHJ+gGe2Bw2A==} + engines: {node: '>=16.0.0'} - '@aws-sdk/types@3.347.0': - resolution: {integrity: sha512-GkCMy79mdjU9OTIe5KT58fI/6uqdf8UmMdWqVHmFJ+UpEzOci7L/uw4sOXWo7xpPzLs6cJ7s5ouGZW4GRPmHFA==} - engines: {node: '>=14.0.0'} + '@aws-sdk/credential-provider-env@3.693.0': + resolution: {integrity: sha512-hMUZaRSF7+iBKZfBHNLihFs9zvpM1CB8MBOTnTp5NGCVkRYF3SB2LH+Kcippe0ats4qCyB1eEoyQX99rERp2iQ==} + engines: {node: '>=16.0.0'} - '@aws-sdk/types@3.489.0': - resolution: {integrity: sha512-kcDtLfKog/p0tC4gAeqJqWxAiEzfe2LRPnKamvSG2Mjbthx4R/alE2dxyIq/wW+nvRv0fqR3OD5kD1+eVfdr/w==} - engines: {node: '>=14.0.0'} + '@aws-sdk/credential-provider-http@3.693.0': + resolution: {integrity: sha512-sL8MvwNJU7ZpD7/d2VVb3by1GknIJUxzTIgYtVkDVA/ojo+KRQSSHxcj0EWWXF5DTSh2Tm+LrEug3y1ZyKHsDA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/url-parser@3.329.0': - resolution: {integrity: sha512-/VcfL7vNJKJGSjYYHVQF3bYCDFs4fSzB7j5qeVDwRdWr870gE7O1Dar+sLWBRKFF3AX+4VzplqzUfpu9t44JVA==} + '@aws-sdk/credential-provider-ini@3.693.0': + resolution: {integrity: sha512-kvaa4mXhCCOuW7UQnBhYqYfgWmwy7WSBSDClutwSLPZvgrhYj2l16SD2lN4IfYdxARYMJJ1lFYp3/jJG/9Yk4Q==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.693.0 - '@aws-sdk/util-base64@3.310.0': - resolution: {integrity: sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==} - engines: {node: '>=14.0.0'} + '@aws-sdk/credential-provider-node@3.693.0': + resolution: {integrity: sha512-42WMsBjTNnjYxYuM3qD/Nq+8b7UdMopUq5OduMDxoM3mFTV6PXMMnfI4Z1TNnR4tYRvPXAnuNltF6xmjKbSJRA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-body-length-browser@3.310.0': - resolution: {integrity: sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==} + '@aws-sdk/credential-provider-process@3.693.0': + resolution: {integrity: sha512-cvxQkrTWHHjeHrPlj7EWXPnFSq8x7vMx+Zn1oTsMpCY445N9KuzjfJTkmNGwU2GT6rSZI9/0MM02aQvl5bBBTQ==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-body-length-node@3.310.0': - resolution: {integrity: sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==} - engines: {node: '>=14.0.0'} + '@aws-sdk/credential-provider-sso@3.693.0': + resolution: {integrity: sha512-479UlJxY+BFjj3pJFYUNC0DCMrykuG7wBAXfsvZqQxKUa83DnH5Q1ID/N2hZLkxjGd4ZW0AC3lTOMxFelGzzpQ==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-buffer-from@3.310.0': - resolution: {integrity: sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==} - engines: {node: '>=14.0.0'} + '@aws-sdk/credential-provider-web-identity@3.693.0': + resolution: {integrity: sha512-8LB210Pr6VeCiSb2hIra+sAH4KUBLyGaN50axHtIgufVK8jbKIctTZcVY5TO9Se+1107TsruzeXS7VeqVdJfFA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.693.0 - '@aws-sdk/util-config-provider@3.310.0': - resolution: {integrity: sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==} - engines: {node: '>=14.0.0'} + '@aws-sdk/endpoint-cache@3.693.0': + resolution: {integrity: sha512-/zK0ZZncBf5FbTfo8rJMcQIXXk4Ibhe5zEMiwFNivVPR2uNC0+oqfwXz7vjxwY0t6BPE3Bs4h9uFEz4xuGCY6w==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-defaults-mode-browser@3.329.0': - resolution: {integrity: sha512-2iSiy/pzX3OXMhtSxtAzOiEFr3viQEFnYOTeZuiheuyS+cea2L79F6SlZ1110b/nOIU/UOrxxtz83HVad8YFMQ==} - engines: {node: '>= 10.0.0'} + '@aws-sdk/lib-dynamodb@3.693.0': + resolution: {integrity: sha512-LrGLXoioeT9xJQxJHmtV9MSQW5rl0Pv1wzgnWARIUsF+srkO2dA2UgTES0G1Sv3fXSFqPwplU6Knwe0yx+P2/w==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-dynamodb': ^3.693.0 - '@aws-sdk/util-defaults-mode-node@3.329.0': - resolution: {integrity: sha512-7A6C7YKjkZtmKtH29isYEtOCbhd7IcXPP8lftN8WAWlLOiZE4gV7PHveagUj7QserJzgRKGwwTQbBj53n18HYg==} - engines: {node: '>= 10.0.0'} + '@aws-sdk/middleware-endpoint-discovery@3.693.0': + resolution: {integrity: sha512-OG8WM8OzYuAt3Ueb8TZoBgA+vqNgPaXksHhiy8SFTQxNamSMMRvKrDSBbdUuV96mq0lcJq1mFgJ4oRXJ1HPh6A==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-dynamodb@3.332.0': - resolution: {integrity: sha512-2Z+L8w7VK6fY5qob6CT42fRy8qNXcaacvpBijjrjDknWHPSh+YSliGHrsLE/CcTEHzWSm5Sebjk+iuREMy064g==} - engines: {node: '>=14.0.0'} + '@aws-sdk/middleware-host-header@3.693.0': + resolution: {integrity: sha512-BCki6sAZ5jYwIN/t3ElCiwerHad69ipHwPsDCxJQyeiOnJ8HG+lEpnVIfrnI8A0fLQNSF3Gtx6ahfBpKiv1Oug==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-endpoints@3.332.0': - resolution: {integrity: sha512-nQx7AiOroMU2hj6h+umWOSZ+WECwxupaxFUK/PPKGW6NY/VdQE6LluYnXOtF5awlr8w1nPksT0Lq05PZutMDLA==} - engines: {node: '>=14.0.0'} + '@aws-sdk/middleware-logger@3.693.0': + resolution: {integrity: sha512-dXnXDPr+wIiJ1TLADACI1g9pkSB21KkMIko2u4CJ2JCBoxi5IqeTnVoa6YcC8GdFNVRl+PorZ3Zqfmf1EOTC6w==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-endpoints@3.489.0': - resolution: {integrity: sha512-uGyG1u84ATX03mf7bT4xD9XD/vlYJGD5+RxMN/UpzeTfzXfh+jvCQWbOQ44z8ttFJWYQQqrLxkfpF/JgvALzLA==} - engines: {node: '>=14.0.0'} + '@aws-sdk/middleware-recursion-detection@3.693.0': + resolution: {integrity: sha512-0LDmM+VxXp0u3rG0xQRWD/q6Ubi7G8I44tBPahevD5CaiDZTkmNTrVUf0VEJgVe0iCKBppACMBDkLB0/ETqkFw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-hex-encoding@3.310.0': - resolution: {integrity: sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==} - engines: {node: '>=14.0.0'} + '@aws-sdk/middleware-user-agent@3.693.0': + resolution: {integrity: sha512-/KUq/KEpFFbQmNmpp7SpAtFAdViquDfD2W0QcG07zYBfz9MwE2ig48ALynXm5sMpRmnG7sJXjdvPtTsSVPfkiw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-locate-window@3.310.0': - resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} - engines: {node: '>=14.0.0'} + '@aws-sdk/region-config-resolver@3.693.0': + resolution: {integrity: sha512-YLUkMsUY0GLW/nfwlZ69cy1u07EZRmsv8Z9m0qW317/EZaVx59hcvmcvb+W4bFqj5E8YImTjoGfE4cZ0F9mkyw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-middleware@3.329.0': - resolution: {integrity: sha512-RhBOBaxzkTUghi4MSqr8S5qeeBCjgJ0XPJ6jIYkVkj1saCmqkuZCgl3zFaYdyhdxxPV6nflkFer+1HUoqT+Fqw==} - engines: {node: '>=14.0.0'} + '@aws-sdk/token-providers@3.693.0': + resolution: {integrity: sha512-nDBTJMk1l/YmFULGfRbToOA2wjf+FkQT4dMgYCv+V9uSYsMzQj8A7Tha2dz9yv4vnQgYaEiErQ8d7HVyXcVEoA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sso-oidc': ^3.693.0 - '@aws-sdk/util-retry@3.329.0': - resolution: {integrity: sha512-+3VQ9HZLinysnmryUs9Xjt1YVh4TYYHLt30ilu4iUnIHFQoamdzIbRCWseSVFPCxGroen9M9qmAleAsytHEKuA==} - engines: {node: '>= 14.0.0'} + '@aws-sdk/types@3.692.0': + resolution: {integrity: sha512-RpNvzD7zMEhiKgmlxGzyXaEcg2khvM7wd5sSHVapOcrde1awQSOMGI4zKBQ+wy5TnDfrm170ROz/ERLYtrjPZA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-uri-escape@3.310.0': - resolution: {integrity: sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==} - engines: {node: '>=14.0.0'} + '@aws-sdk/util-dynamodb@3.693.0': + resolution: {integrity: sha512-lwJnlQndVS7cGN1UmtG4s6IdVW3U/WheJ14Xc/mUeAH3vga7GTY3hGi+Jp1TbnaYQkad589tU+NQ5KUW7V8ZjA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-dynamodb': ^3.693.0 - '@aws-sdk/util-user-agent-browser@3.329.0': - resolution: {integrity: sha512-8hLSmMCl8aw2++0Zuba8ELq8FkK6/VNyx470St201IpMn2GMbQMDl/rLolRKiTgji6wc+T3pOTidkJkz8/cIXA==} + '@aws-sdk/util-endpoints@3.693.0': + resolution: {integrity: sha512-eo4F6DRQ/kxS3gxJpLRv+aDNy76DxQJL5B3DPzpr9Vkq0ygVoi4GT5oIZLVaAVIJmi6k5qq9dLsYZfWLUxJJSg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-browser@3.489.0': - resolution: {integrity: sha512-85B9KMsuMpAZauzWQ16r52ZBAHYnznW6BVitnBglsibN7oJKn10Hggt4QGuRhvQFCxQ8YhvBl7r+vQGFO4hxIw==} + '@aws-sdk/util-locate-window@3.693.0': + resolution: {integrity: sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-node@3.329.0': - resolution: {integrity: sha512-C50Zaeodc0+psEP+L4WpElrH8epuLWJPVN4hDOTORcM0cSoU2o025Ost9mbcU7UdoHNxF9vitLnzORGN9SHolg==} - engines: {node: '>=14.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true + '@aws-sdk/util-user-agent-browser@3.693.0': + resolution: {integrity: sha512-6EUfuKOujtddy18OLJUaXfKBgs+UcbZ6N/3QV4iOkubCUdeM1maIqs++B9bhCbWeaeF5ORizJw5FTwnyNjE/mw==} - '@aws-sdk/util-user-agent-node@3.489.0': - resolution: {integrity: sha512-CYdkBHig8sFNc0dv11Ni9WXvZQHeI5+z77OrDHKkbidFx/V4BDTuwZw4K1vWg62pzFOEfzunJFiULRcDZWJR3w==} - engines: {node: '>=14.0.0'} + '@aws-sdk/util-user-agent-node@3.693.0': + resolution: {integrity: sha512-td0OVX8m5ZKiXtecIDuzY3Y3UZIzvxEr57Hp21NOwieqKCG2UeyQWWeGPv0FQaU7dpTkvFmVNI+tx9iB8V/Nhg==} + engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: aws-crt: optional: true - '@aws-sdk/util-utf8-browser@3.259.0': - resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} - - '@aws-sdk/util-utf8@3.310.0': - resolution: {integrity: sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==} - engines: {node: '>=14.0.0'} - - '@aws-sdk/util-waiter@3.329.0': - resolution: {integrity: sha512-MIGs7snNL0ZV55zo1BDVPlrmbinUGV3260hp6HrW4zUbpYVoeIOGeewtrwAsF6FJ+vpZCxljPBB0X2jYR7Q7ZQ==} - engines: {node: '>=14.0.0'} - '@aws-sdk/util-waiter@3.374.0': resolution: {integrity: sha512-NlPn+hC4H+tPOnJ00g/DjYcwTVWdkNlOtUUmQ9c7u3EsPSNbaw8vEPkh+YdWENtX8NmG0yn0D29fTp/vfvLfAw==} engines: {node: '>=14.0.0'} deprecated: This package has moved to @smithy/util-waiter - '@babel/code-frame@7.18.6': - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.22.13': - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.20.14': - resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.22.9': - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.20.12': - resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.22.17': - resolution: {integrity: sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.20.14': - resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.22.15': - resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.20.7': - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-compilation-targets@7.22.15': - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.18.9': - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.22.5': - resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.19.0': - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.22.5': - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.18.6': - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + '@babel/compat-data@7.26.2': + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.18.6': - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.22.15': - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.20.11': - resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.22.17': - resolution: {integrity: sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.22.5': - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.20.2': - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} - 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'} - - '@babel/helper-split-export-declaration@7.18.6': - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.19.4': - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.22.5': - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.19.1': - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.15': - resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.18.6': - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.22.15': - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.20.13': - resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.22.15': - resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.18.6': - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.22.13': - resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.20.15': - resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.22.16': - resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-transform-react-jsx-self@7.22.5': - resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.22.5': - resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1028,67 +715,60 @@ packages: resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==} engines: {node: '>=6.9.0'} - '@babel/template@7.20.7': - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.22.15': - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.20.13': - resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.22.17': - resolution: {integrity: sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==} + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} - '@babel/types@7.20.7': - resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} - '@babel/types@7.22.17': - resolution: {integrity: sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==} - engines: {node: '>=6.9.0'} + '@codegenie/serverless-express@4.16.0': + resolution: {integrity: sha512-TlvAHQysphN3OW6Ziz6AD2DnN9IIy/KkKNImZwMJpwGHHqLATi/9hMg8H8VBRg2L15pGt8ad3R6j6mfvHVWrCg==} + engines: {node: '>=18'} - '@date-io/core@2.16.0': - resolution: {integrity: sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg==} + '@date-io/core@3.0.0': + resolution: {integrity: sha512-S3j+IAQVBYNkQzchVVhX40eBkGDreBpScy9RXwTS5j2+k07+62pMVPisQ44Gq76Rqy5AOG/EZXCwBpY/jbemvA==} - '@date-io/date-fns@2.16.0': - resolution: {integrity: sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA==} + '@date-io/date-fns@3.0.0': + resolution: {integrity: sha512-hsLAbsdP8LKfi7OQ729cXMWfmHQEq0hn3ysXfAAoc92j6j6sBq0s0tplnkWu6O4iBUpVCYRPGuNjQQhTaOu2AA==} peerDependencies: - date-fns: ^2.0.0 + date-fns: ^3.2.0 peerDependenciesMeta: date-fns: optional: true - '@emotion/babel-plugin@11.10.6': - resolution: {integrity: sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==} + '@drizzle-team/brocli@0.10.2': + resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} + + '@emotion/babel-plugin@11.12.0': + resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} - '@emotion/cache@11.10.5': - resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} + '@emotion/cache@11.13.1': + resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} '@emotion/hash@0.8.0': resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - '@emotion/hash@0.9.0': - resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} - - '@emotion/is-prop-valid@1.2.0': - resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==} - - '@emotion/is-prop-valid@1.2.1': - resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@emotion/memoize@0.8.0': - resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} + '@emotion/is-prop-valid@1.3.1': + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - '@emotion/react@11.10.6': - resolution: {integrity: sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==} + '@emotion/react@11.13.3': + resolution: {integrity: sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==} peerDependencies: '@types/react': '*' react: '>=16.8.0' @@ -1096,14 +776,14 @@ packages: '@types/react': optional: true - '@emotion/serialize@1.1.1': - resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} + '@emotion/serialize@1.3.2': + resolution: {integrity: sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==} - '@emotion/sheet@1.2.1': - resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - '@emotion/styled@11.10.6': - resolution: {integrity: sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==} + '@emotion/styled@11.13.0': + resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 '@types/react': '*' @@ -1112,23 +792,19 @@ packages: '@types/react': optional: true - '@emotion/unitless@0.8.0': - resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - '@emotion/use-insertion-effect-with-fallbacks@1.0.0': - resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} peerDependencies: react: '>=16.8.0' - '@emotion/utils@1.2.0': - resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} + '@emotion/utils@1.4.1': + resolution: {integrity: sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==} - '@emotion/weak-memoize@0.3.0': - resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} - - '@esbuild-kit/cjs-loader@2.4.2': - resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} - deprecated: 'Merged into tsx: https://tsx.is' + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} '@esbuild-kit/core-utils@3.1.0': resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} @@ -1144,490 +820,819 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.5.0': - resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.0.2': - resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.19.0': + resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.37.0': - resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/core@0.9.0': + resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.38.0': - resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.15.0': + resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.1.0': resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} engines: {node: '>=14'} - '@floating-ui/core@1.4.1': - resolution: {integrity: sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==} + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} - '@floating-ui/dom@1.5.1': - resolution: {integrity: sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==} + '@floating-ui/dom@1.6.12': + resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} - '@floating-ui/react-dom@2.0.2': - resolution: {integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==} + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.1.1': - resolution: {integrity: sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==} + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} - '@humanwhocodes/config-array@0.11.8': - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@1.2.1': - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} '@icons/material@0.2.4': resolution: {integrity: sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==} peerDependencies: react: '*' - '@jest/schemas@29.6.0': - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.1.1': resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} - '@jridgewell/gen-mapping@0.3.2': - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.0': resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.1.2': resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + '@jridgewell/sourcemap-codec@1.4.14': resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.17': resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@kurkle/color@0.3.2': resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} @@ -1675,8 +1680,8 @@ packages: '@types/react': optional: true - '@material-ui/pickers@3.3.10': - resolution: {integrity: sha512-hS4pxwn1ZGXVkmgD4tpFpaumUaAg2ZzbTrxltfC5yPw4BJV+mGkfnQOB4VpWEYZw2jv65Z0wLwDE/piQiPPZ3w==} + '@material-ui/pickers@3.3.11': + resolution: {integrity: sha512-pDYjbjUeabapijS2FpSwK/ruJdk7IGeAshpLbKDa3PRRKRy7Nv6sXxAvUg2F+lID/NwUKgBmCYS5bzrl7Xxqzw==} deprecated: This package no longer supported. It has been relaced by @mui/x-date-pickers peerDependencies: '@date-io/core': ^1.3.6 @@ -1723,20 +1728,9 @@ packages: react: ^16.8.0 || ^17.0.0 react-dom: ^16.8.0 || ^17.0.0 - '@mui/base@5.0.0-alpha.118': - resolution: {integrity: sha512-GAEpqhnuHjRaAZLdxFNuOf2GDTp9sUawM46oHZV4VnYPFjXJDkIYFWfIQLONb0nga92OiqS5DD/scGzVKCL0Mw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/base@5.0.0-beta.13': - resolution: {integrity: sha512-uC0l97pBspfDAp+iz2cJq8YZ8Sd9i73V77+WzUiOAckIVEyCm5dyVDZCCO2/phmzckVEeZCGcytybkjMQuhPQw==} - engines: {node: '>=12.0.0'} + '@mui/base@5.0.0-beta.61': + resolution: {integrity: sha512-YaMOTXS3ecDNGsPKa6UdlJ8loFLvcL9+VbpCK3hfk71OaNauZRp4Yf7KeXDYr7Ms3M/XBD3SaiR6JMr6vYtfDg==} + engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0 @@ -1745,86 +1739,92 @@ packages: '@types/react': optional: true - '@mui/core-downloads-tracker@5.11.9': - resolution: {integrity: sha512-YGEtucQ/Nl91VZkzYaLad47Cdui51n/hW+OQm4210g4N3/nZzBxmGeKfubEalf+ShKH4aYDS86XTO6q/TpZnjQ==} + '@mui/core-downloads-tracker@6.1.7': + resolution: {integrity: sha512-POuIBi80BZBogQkG4PQKIGwy4QFwB+kOr+OI4k7Znh7LqMAIhwB9OC00l6M+w1GrZJYj3T8R5WX8G6QAIvoVEw==} - '@mui/icons-material@5.11.9': - resolution: {integrity: sha512-SPANMk6K757Q1x48nCwPGdSNb8B71d+2hPMJ0V12VWerpSsbjZtvAPi5FAn13l2O5mwWkvI0Kne+0tCgnNxMNw==} - engines: {node: '>=12.0.0'} + '@mui/icons-material@6.1.7': + resolution: {integrity: sha512-RGzkeHNArIVy5ZQ12bq/8VYNeICEyngngsFskTJ/2hYKhIeIII3iRGtaZaSvLpXh7h3Fg3VKTulT+QU0w5K4XQ==} + engines: {node: '>=14.0.0'} peerDependencies: - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 + '@mui/material': ^6.1.7 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/lab@5.0.0-alpha.120': - resolution: {integrity: sha512-vjlF2jTKSZnNxtUO0xxHEDfpL5cG0LLNRsfKv8TYOiPs0Q1bbqO3YfqJsqxv8yh+wx7EFZc8lwJ4NSAQdenW3A==} - engines: {node: '>=12.0.0'} + '@mui/lab@6.0.0-beta.15': + resolution: {integrity: sha512-LwX34gdIBBpIHi0RkWUjktCnX1rEB+U2tOzDKfF2f4h+GXTO+DOjAXTkFw558zQ8SWmpQTOUp58sGRxlZ2x9FQ==} + engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 + '@mui/material': ^6.1.7 + '@mui/material-pigment-css': ^6.1.7 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@emotion/react': optional: true '@emotion/styled': optional: true + '@mui/material-pigment-css': + optional: true '@types/react': optional: true - '@mui/material@5.11.10': - resolution: {integrity: sha512-hs1WErbiedqlJIZsljgoil908x4NMp8Lfk8di+5c7o809roqKcFTg2+k3z5ucKvs29AXcsdXrDB/kn2K6dGYIw==} - engines: {node: '>=12.0.0'} + '@mui/material@6.1.7': + resolution: {integrity: sha512-KsjujQL/A2hLd1PV3QboF+W6SSL5QqH6ZlSuQoeYz9r69+TnyBFIevbYLxdjJcJmGBjigL5pfpn7hTGop+vhSg==} + engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 + '@mui/material-pigment-css': ^6.1.7 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@emotion/react': optional: true '@emotion/styled': optional: true + '@mui/material-pigment-css': + optional: true '@types/react': optional: true - '@mui/private-theming@5.11.9': - resolution: {integrity: sha512-XMyVIFGomVCmCm92EvYlgq3zrC9K+J6r7IKl/rBJT2/xVYoRY6uM7jeB+Wxh7kXxnW9Dbqsr2yL3cx6wSD1sAg==} - engines: {node: '>=12.0.0'} + '@mui/private-theming@6.1.7': + resolution: {integrity: sha512-uLbfUSsug5K0LVkv0PI6Flste3le8+6WSL2omdTiYde93P89Qr7pKr8TA6d2yXfr+Bm+SvD8/fGnkaRwFkryuQ==} + engines: {node: '>=14.0.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/styled-engine@5.11.9': - resolution: {integrity: sha512-bkh2CjHKOMy98HyOc8wQXEZvhOmDa/bhxMUekFX5IG0/w4f5HJ8R6+K6nakUUYNEgjOWPYzNPrvGB8EcGbhahQ==} - engines: {node: '>=12.0.0'} + '@mui/styled-engine@6.1.7': + resolution: {integrity: sha512-Ou4CxN7MQmwrfG1Pu6EYjPgPChQXxPDJrwgizLXlRPOad5qAq4gYXRuzrGQ2DfGjjwmJhjI8T6A0SeapAZPGig==} + engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.4.1 '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@emotion/react': optional: true '@emotion/styled': optional: true - '@mui/system@5.11.9': - resolution: {integrity: sha512-h6uarf+l3FO6l75Nf7yO+qDGrIoa1DM9nAMCUFZQsNCDKOInRzcptnm8M1w/Z3gVetfeeGoIGAYuYKbft6KZZA==} - engines: {node: '>=12.0.0'} + '@mui/system@6.1.7': + resolution: {integrity: sha512-qbMGgcC/FodpuRSfjXlEDdbNQaW++eATh0vNBcPUv2/YXSpReoOpoT9FhogxEBNks+aQViDXBRZKh6HX2fVmwg==} + engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@emotion/react': optional: true @@ -1833,34 +1833,24 @@ packages: '@types/react': optional: true - '@mui/types@7.2.3': - resolution: {integrity: sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==} + '@mui/types@7.2.19': + resolution: {integrity: sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==} peerDependencies: - '@types/react': '*' + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/types@7.2.4': - resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} + '@mui/utils@6.1.7': + resolution: {integrity: sha512-Gr7cRZxBoZ0BIa3Xqf/2YaUrBLyNPJvXPQH3OsD9WMZukI/TutibbQBVqLYpgqJn8pKSjbD50Yq2auG0wI1xOw==} + engines: {node: '>=14.0.0'} peerDependencies: - '@types/react': '*' + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/utils@5.11.9': - resolution: {integrity: sha512-eOJaqzcEs4qEwolcvFAmXGpln+uvouvOS9FUX6Wkrte+4I8rZbjODOBDVNlK+V6/ziTfD4iNKC0G+KfOTApbqg==} - engines: {node: '>=12.0.0'} - peerDependencies: - react: ^17.0.0 || ^18.0.0 - - '@mui/utils@5.14.7': - resolution: {integrity: sha512-RtheP/aBoPogVdi8vj8Vo2IFnRa4mZVmnD0RGlVZ49yF60rZs+xP4/KbpIrTr83xVs34QmHQ2aQ+IX7I0a0dDw==} - engines: {node: '>=12.0.0'} - peerDependencies: - react: ^17.0.0 || ^18.0.0 - '@noble/hashes@1.5.0': resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} engines: {node: ^14.21.3 || >=16} @@ -1877,6 +1867,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + '@octokit/auth-token@4.0.0': resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} engines: {node: '>= 18'} @@ -1945,8 +1939,8 @@ packages: peerDependencies: react: 16.x || 17.x || 18.x - '@reactour/tour@3.6.1': - resolution: {integrity: sha512-vzmgbm4T7n5gh0cjc4Zi4G3K29dXQyEdi/o7ZYLpNcisJ0hwP5jNKH7BgckrHWEGldBxYSWl34tsRmHcyxporQ==} + '@reactour/tour@3.7.0': + resolution: {integrity: sha512-p0USaOBc5fcNBS5ZiQ2lsmztAhIGCUfx913Zw14FbEM8bhSXpR1F2JD0alVj9Ya1N+pnTNYatf14rSNGJsEnCg==} peerDependencies: react: 16.x || 17.x || 18.x @@ -1955,329 +1949,431 @@ packages: peerDependencies: react: 16.x || 17.x || 18.x - '@remix-run/router@1.3.2': - resolution: {integrity: sha512-t54ONhl/h75X94SWsHGQ4G/ZrCEguKSRQr7DrjTciJXW0YU1QhlwYeycvK5JgkzlxmvrK7wq1NB/PLtHxoiDcA==} - engines: {node: '>=14'} + '@remix-run/router@1.21.0': + resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==} + engines: {node: '>=14.0.0'} '@restart/hooks@0.4.9': resolution: {integrity: sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==} peerDependencies: react: '>=16.8.0' - '@rollup/pluginutils@5.0.2': - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.27.2': + resolution: {integrity: sha512-Tj+j7Pyzd15wAdSJswvs5CJzJNV+qqSUcr/aCD+jpQSBtXvGnV0pnrjoc8zFTe9fcKCatkpFpOO7yAzpO998HA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.27.2': + resolution: {integrity: sha512-xsPeJgh2ThBpUqlLgRfiVYBEf/P1nWlWvReG+aBWfNv3XEBpa6ZCmxSVnxJgLgkNz4IbxpLy64h2gCmAAQLneQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.27.2': + resolution: {integrity: sha512-KnXU4m9MywuZFedL35Z3PuwiTSn/yqRIhrEA9j+7OSkji39NzVkgxuxTYg5F8ryGysq4iFADaU5osSizMXhU2A==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.27.2': + resolution: {integrity: sha512-Hj77A3yTvUeCIx/Vi+4d4IbYhyTwtHj07lVzUgpUq9YpJSEiGJj4vXMKwzJ3w5zp5v3PFvpJNgc/J31smZey6g==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.27.2': + resolution: {integrity: sha512-RjgKf5C3xbn8gxvCm5VgKZ4nn0pRAIe90J0/fdHUsgztd3+Zesb2lm2+r6uX4prV2eUByuxJNdt647/1KPRq5g==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.27.2': + resolution: {integrity: sha512-duq21FoXwQtuws+V9H6UZ+eCBc7fxSpMK1GQINKn3fAyd9DFYKPJNcUhdIKOrMFjLEJgQskoMoiuizMt+dl20g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.27.2': + resolution: {integrity: sha512-6npqOKEPRZkLrMcvyC/32OzJ2srdPzCylJjiTJT2c0bwwSGm7nz2F9mNQ1WrAqCBZROcQn91Fno+khFhVijmFA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.27.2': + resolution: {integrity: sha512-V9Xg6eXtgBtHq2jnuQwM/jr2mwe2EycnopO8cbOvpzFuySCGtKlPCI3Hj9xup/pJK5Q0388qfZZy2DqV2J8ftw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.27.2': + resolution: {integrity: sha512-uCFX9gtZJoQl2xDTpRdseYuNqyKkuMDtH6zSrBTA28yTfKyjN9hQ2B04N5ynR8ILCoSDOrG/Eg+J2TtJ1e/CSA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.27.2': + resolution: {integrity: sha512-/PU9P+7Rkz8JFYDHIi+xzHabOu9qEWR07L5nWLIUsvserrxegZExKCi2jhMZRd0ATdboKylu/K5yAXbp7fYFvA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.27.2': + resolution: {integrity: sha512-eCHmol/dT5odMYi/N0R0HC8V8QE40rEpkyje/ZAXJYNNoSfrObOvG/Mn+s1F/FJyB7co7UQZZf6FuWnN6a7f4g==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.27.2': + resolution: {integrity: sha512-DEP3Njr9/ADDln3kNi76PXonLMSSMiCir0VHXxmGSHxCxDfQ70oWjHcJGfiBugzaqmYdTC7Y+8Int6qbnxPBIQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.27.2': + resolution: {integrity: sha512-NHGo5i6IE/PtEPh5m0yw5OmPMpesFnzMIS/lzvN5vknnC1sXM5Z/id5VgcNPgpD+wHmIcuYYgW+Q53v+9s96lQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.27.2': + resolution: {integrity: sha512-PaW2DY5Tan+IFvNJGHDmUrORadbe/Ceh8tQxi8cmdQVCCYsLoQo2cuaSj+AU+YRX8M4ivS2vJ9UGaxfuNN7gmg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.27.2': + resolution: {integrity: sha512-dOlWEMg2gI91Qx5I/HYqOD6iqlJspxLcS4Zlg3vjk1srE67z5T2Uz91yg/qA8sY0XcwQrFzWWiZhMNERylLrpQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.27.2': + resolution: {integrity: sha512-euMIv/4x5Y2/ImlbGl88mwKNXDsvzbWUlT7DFky76z2keajCtcbAsN9LUdmk31hAoVmJJYSThgdA0EsPeTr1+w==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.27.2': + resolution: {integrity: sha512-RsnE6LQkUHlkC10RKngtHNLxb7scFykEbEwOFDjr3CeCMG+Rr+cKqlkKc2/wJ1u4u990urRHCbjz31x84PBrSQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.27.2': + resolution: {integrity: sha512-foJM5vv+z2KQmn7emYdDLyTbkoO5bkHZE1oth2tWbQNGW7mX32d46Hz6T0MqXdWS2vBZhaEtHqdy9WYwGfiliA==} + cpu: [x64] + os: [win32] + '@rooks/use-mutation-observer@4.11.2': resolution: {integrity: sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==} peerDependencies: react: '>=16.8.0' - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} '@smithy/abort-controller@1.1.0': resolution: {integrity: sha512-5imgGUlZL4dW4YWdMYAKLmal9ny/tlenM81QZY7xYyb76z9Z/QOg7oM5Ak9HQl8QfFTlGVWwcMXl+54jroRgEQ==} engines: {node: '>=14.0.0'} - '@smithy/abort-controller@2.0.16': - resolution: {integrity: sha512-4foO7738k8kM9flMHu3VLabqu7nPgvIj8TB909S0CnKx0YZz/dcDH3pZ/4JHdatfxlZdKF1JWOYCw9+v3HVVsw==} - engines: {node: '>=14.0.0'} - - '@smithy/config-resolver@2.0.23': - resolution: {integrity: sha512-XakUqgtP2YY8Mi+Nlif5BiqJgWdvfxJafSpOSQeCOMizu+PUhE4fBQSy6xFcR+eInrwVadaABNxoJyGUMn15ew==} - engines: {node: '>=14.0.0'} + '@smithy/abort-controller@3.1.8': + resolution: {integrity: sha512-+3DOBcUn5/rVjlxGvUPKc416SExarAQ+Qe0bqk30YSUjbepwpS7QN0cyKUSifvLJhdMZ0WPzPP5ymut0oonrpQ==} + engines: {node: '>=16.0.0'} - '@smithy/core@1.2.2': - resolution: {integrity: sha512-uLjrskLT+mWb0emTR5QaiAIxVEU7ndpptDaVDrTwwhD+RjvHhjIiGQ3YL5jKk1a5VSDQUA2RGkXvJ6XKRcz6Dg==} - engines: {node: '>=14.0.0'} + '@smithy/config-resolver@3.0.12': + resolution: {integrity: sha512-YAJP9UJFZRZ8N+UruTeq78zkdjUHmzsY62J4qKWZ4SXB4QXJ/+680EfXXgkYA2xj77ooMqtUY9m406zGNqwivQ==} + engines: {node: '>=16.0.0'} - '@smithy/credential-provider-imds@2.1.5': - resolution: {integrity: sha512-VfvE6Wg1MUWwpTZFBnUD7zxvPhLY8jlHCzu6bCjlIYoWgXCDzZAML76IlZUEf45nib3rjehnFgg0s1rgsuN/bg==} - engines: {node: '>=14.0.0'} + '@smithy/core@2.5.3': + resolution: {integrity: sha512-96uW8maifUSmehaeW7uydWn7wBc98NEeNI3zN8vqakGpyCQgzyJaA64Z4FCOUmAdCJkhppd/7SZ798Fo4Xx37g==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-codec@2.0.16': - resolution: {integrity: sha512-umYh5pdCE9GHgiMAH49zu9wXWZKNHHdKPm/lK22WYISTjqu29SepmpWNmPiBLy/yUu4HFEGJHIFrDWhbDlApaw==} + '@smithy/credential-provider-imds@3.2.7': + resolution: {integrity: sha512-cEfbau+rrWF8ylkmmVAObOmjbTIzKyUC5TkBL58SbLywD0RCBC4JAUKbmtSm2w5KUJNRPGgpGFMvE2FKnuNlWQ==} + engines: {node: '>=16.0.0'} - '@smithy/fetch-http-handler@2.3.2': - resolution: {integrity: sha512-O9R/OlnAOTsnysuSDjt0v2q6DcSvCz5cCFC/CFAWWcLyBwJDeFyGTCTszgpQTb19+Fi8uRwZE5/3ziAQBFeDMQ==} + '@smithy/fetch-http-handler@4.1.1': + resolution: {integrity: sha512-bH7QW0+JdX0bPBadXt8GwMof/jz0H28I84hU1Uet9ISpzUqXqRQ3fEZJ+ANPOhzSEczYvANNl3uDQDYArSFDtA==} - '@smithy/hash-node@2.0.18': - resolution: {integrity: sha512-gN2JFvAgnZCyDN9rJgcejfpK0uPPJrSortVVVVWsru9whS7eQey6+gj2eM5ln2i6rHNntIXzal1Fm9XOPuoaKA==} - engines: {node: '>=14.0.0'} + '@smithy/hash-node@3.0.10': + resolution: {integrity: sha512-3zWGWCHI+FlJ5WJwx73Mw2llYR8aflVyZN5JhoqLxbdPZi6UyKSdCeXAWJw9ja22m6S6Tzz1KZ+kAaSwvydi0g==} + engines: {node: '>=16.0.0'} - '@smithy/invalid-dependency@2.0.16': - resolution: {integrity: sha512-apEHakT/kmpNo1VFHP4W/cjfeP9U0x5qvfsLJubgp7UM/gq4qYp0GbqdE7QhsjUaYvEnrftRqs7+YrtWreV0wA==} + '@smithy/invalid-dependency@3.0.10': + resolution: {integrity: sha512-Lp2L65vFi+cj0vFMu2obpPW69DU+6O5g3086lmI4XcnRCG8PxvpWC7XyaVwJCxsZFzueHjXnrOH/E0pl0zikfA==} - '@smithy/is-array-buffer@2.0.0': - resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/middleware-content-length@2.0.18': - resolution: {integrity: sha512-ZJ9uKPTfxYheTKSKYB+GCvcj+izw9WGzRLhjn8n254q0jWLojUzn7Vw0l4R/Gq7Wdpf/qmk/ptD+6CCXHNVCaw==} - engines: {node: '>=14.0.0'} + '@smithy/is-array-buffer@3.0.0': + resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-endpoint@2.3.0': - resolution: {integrity: sha512-VsOAG2YQ8ykjSmKO+CIXdJBIWFo6AAvG6Iw95BakBTqk66/4BI7XyqLevoNSq/lZ6NgZv24sLmrcIN+fLDWBCg==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-content-length@3.0.12': + resolution: {integrity: sha512-1mDEXqzM20yywaMDuf5o9ue8OkJ373lSPbaSjyEvkWdqELhFMyNNgKGWL/rCSf4KME8B+HlHKuR8u9kRj8HzEQ==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-retry@2.0.26': - resolution: {integrity: sha512-Qzpxo0U5jfNiq9iD38U3e2bheXwvTEX4eue9xruIvEgh+UKq6dKuGqcB66oBDV7TD/mfoJi9Q/VmaiqwWbEp7A==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-endpoint@3.2.3': + resolution: {integrity: sha512-Hdl9296i/EMptaX7agrSzJZDiz5Y8XPUeBbctTmMtnCguGpqfU3jVsTUan0VLaOhsnquqWLL8Bl5HrlbVGT1og==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-serde@2.0.16': - resolution: {integrity: sha512-5EAd4t30pcc4M8TSSGq7q/x5IKrxfXR5+SrU4bgxNy7RPHQo2PSWBUco9C+D9Tfqp/JZvprRpK42dnupZafk2g==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-retry@3.0.27': + resolution: {integrity: sha512-H3J/PjJpLL7Tt+fxDKiOD25sMc94YetlQhCnYeNmina2LZscAdu0ZEZPas/kwePHABaEtqp7hqa5S4UJgMs1Tg==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-stack@2.0.10': - resolution: {integrity: sha512-I2rbxctNq9FAPPEcuA1ntZxkTKOPQFy7YBPOaD/MLg1zCvzv21CoNxR0py6J8ZVC35l4qE4nhxB0f7TF5/+Ldw==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-serde@3.0.10': + resolution: {integrity: sha512-MnAuhh+dD14F428ubSJuRnmRsfOpxSzvRhaGVTvd/lrUDE3kxzCCmH8lnVTvoNQnV2BbJ4c15QwZ3UdQBtFNZA==} + engines: {node: '>=16.0.0'} - '@smithy/node-config-provider@2.1.9': - resolution: {integrity: sha512-tUyW/9xrRy+s7RXkmQhgYkAPMpTIF8izK4orhHjNFEKR3QZiOCbWB546Y8iB/Fpbm3O9+q0Af9rpywLKJOwtaQ==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-stack@3.0.10': + resolution: {integrity: sha512-grCHyoiARDBBGPyw2BeicpjgpsDFWZZxptbVKb3CRd/ZA15F/T6rZjCCuBUjJwdck1nwUuIxYtsS4H9DDpbP5w==} + engines: {node: '>=16.0.0'} - '@smithy/node-http-handler@2.2.2': - resolution: {integrity: sha512-XO58TO/Eul/IBQKFKaaBtXJi0ItEQQCT+NI4IiKHCY/4KtqaUT6y/wC1EvDqlA9cP7Dyjdj7FdPs4DyynH3u7g==} - engines: {node: '>=14.0.0'} + '@smithy/node-config-provider@3.1.11': + resolution: {integrity: sha512-URq3gT3RpDikh/8MBJUB+QGZzfS7Bm6TQTqoh4CqE8NBuyPkWa5eUXj0XFcFfeZVgg3WMh1u19iaXn8FvvXxZw==} + engines: {node: '>=16.0.0'} - '@smithy/property-provider@2.0.17': - resolution: {integrity: sha512-+VkeZbVu7qtQ2DjI48Qwaf9fPOr3gZIwxQpuLJgRRSkWsdSvmaTCxI3gzRFKePB63Ts9r4yjn4HkxSCSkdWmcQ==} - engines: {node: '>=14.0.0'} + '@smithy/node-http-handler@3.3.1': + resolution: {integrity: sha512-fr+UAOMGWh6bn4YSEezBCpJn9Ukp9oR4D32sCjCo7U81evE11YePOQ58ogzyfgmjIO79YeOdfXXqr0jyhPQeMg==} + engines: {node: '>=16.0.0'} - '@smithy/protocol-http@3.0.12': - resolution: {integrity: sha512-Xz4iaqLiaBfbQpB9Hgi3VcZYbP7xRDXYhd8XWChh4v94uw7qwmvlxdU5yxzfm6ACJM66phHrTbS5TVvj5uQ72w==} - engines: {node: '>=14.0.0'} + '@smithy/property-provider@3.1.10': + resolution: {integrity: sha512-n1MJZGTorTH2DvyTVj+3wXnd4CzjJxyXeOgnTlgNVFxaaMeT4OteEp4QrzF8p9ee2yg42nvyVK6R/awLCakjeQ==} + engines: {node: '>=16.0.0'} - '@smithy/querystring-builder@2.0.16': - resolution: {integrity: sha512-Q/GsJT0C0mijXMRs7YhZLLCP5FcuC4797lYjKQkME5CZohnLC4bEhylAd2QcD3gbMKNjCw8+T2I27WKiV/wToA==} - engines: {node: '>=14.0.0'} + '@smithy/protocol-http@4.1.7': + resolution: {integrity: sha512-FP2LepWD0eJeOTm0SjssPcgqAlDFzOmRXqXmGhfIM52G7Lrox/pcpQf6RP4F21k0+O12zaqQt5fCDOeBtqY6Cg==} + engines: {node: '>=16.0.0'} - '@smithy/querystring-parser@2.0.16': - resolution: {integrity: sha512-c4ueAuL6BDYKWpkubjrQthZKoC3L5kql5O++ovekNxiexRXTlLIVlCR4q3KziOktLIw66EU9SQljPXd/oN6Okg==} - engines: {node: '>=14.0.0'} + '@smithy/querystring-builder@3.0.10': + resolution: {integrity: sha512-nT9CQF3EIJtIUepXQuBFb8dxJi3WVZS3XfuDksxSCSn+/CzZowRLdhDn+2acbBv8R6eaJqPupoI/aRFIImNVPQ==} + engines: {node: '>=16.0.0'} - '@smithy/service-error-classification@2.0.9': - resolution: {integrity: sha512-0K+8GvtwI7VkGmmInPydM2XZyBfIqLIbfR7mDQ+oPiz8mIinuHbV6sxOLdvX1Jv/myk7XTK9orgt3tuEpBu/zg==} - engines: {node: '>=14.0.0'} + '@smithy/querystring-parser@3.0.10': + resolution: {integrity: sha512-Oa0XDcpo9SmjhiDD9ua2UyM3uU01ZTuIrNdZvzwUTykW1PM8o2yJvMh1Do1rY5sUQg4NDV70dMi0JhDx4GyxuQ==} + engines: {node: '>=16.0.0'} - '@smithy/shared-ini-file-loader@2.2.8': - resolution: {integrity: sha512-E62byatbwSWrtq9RJ7xN40tqrRKDGrEL4EluyNpaIDvfvet06a/QC58oHw2FgVaEgkj0tXZPjZaKrhPfpoU0qw==} - engines: {node: '>=14.0.0'} + '@smithy/service-error-classification@3.0.10': + resolution: {integrity: sha512-zHe642KCqDxXLuhs6xmHVgRwy078RfqxP2wRDpIyiF8EmsWXptMwnMwbVa50lw+WOGNrYm9zbaEg0oDe3PTtvQ==} + engines: {node: '>=16.0.0'} - '@smithy/signature-v4@2.0.19': - resolution: {integrity: sha512-nwc3JihdM+kcJjtORv/n7qRHN2Kfh7S2RJI2qr8pz9UcY5TD8rSCRGQ0g81HgyS3jZ5X9U/L4p014P3FonBPhg==} - engines: {node: '>=14.0.0'} + '@smithy/shared-ini-file-loader@3.1.11': + resolution: {integrity: sha512-AUdrIZHFtUgmfSN4Gq9nHu3IkHMa1YDcN+s061Nfm+6pQ0mJy85YQDB0tZBCmls0Vuj22pLwDPmL92+Hvfwwlg==} + engines: {node: '>=16.0.0'} - '@smithy/smithy-client@2.2.1': - resolution: {integrity: sha512-SpD7FLK92XV2fon2hMotaNDa2w5VAy5/uVjP9WFmjGSgWM8pTPVkHcDl1yFs5Z8LYbij0FSz+DbCBK6i+uXXUA==} - engines: {node: '>=14.0.0'} + '@smithy/signature-v4@4.2.3': + resolution: {integrity: sha512-pPSQQ2v2vu9vc8iew7sszLd0O09I5TRc5zhY71KA+Ao0xYazIG+uLeHbTJfIWGO3BGVLiXjUr3EEeCcEQLjpWQ==} + engines: {node: '>=16.0.0'} + + '@smithy/smithy-client@3.4.4': + resolution: {integrity: sha512-dPGoJuSZqvirBq+yROapBcHHvFjChoAQT8YPWJ820aPHHiowBlB3RL1Q4kPT1hx0qKgJuf+HhyzKi5Gbof4fNA==} + engines: {node: '>=16.0.0'} '@smithy/types@1.2.0': resolution: {integrity: sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==} engines: {node: '>=14.0.0'} - '@smithy/types@2.8.0': - resolution: {integrity: sha512-h9sz24cFgt/W1Re22OlhQKmUZkNh244ApgRsUDYinqF8R+QgcsBIX344u2j61TPshsTz3CvL6HYU1DnQdsSrHA==} - engines: {node: '>=14.0.0'} + '@smithy/types@3.7.1': + resolution: {integrity: sha512-XKLcLXZY7sUQgvvWyeaL/qwNPp6V3dWcUjqrQKjSb+tzYiCy340R/c64LV5j+Tnb2GhmunEX0eou+L+m2hJNYA==} + engines: {node: '>=16.0.0'} - '@smithy/url-parser@2.0.16': - resolution: {integrity: sha512-Wfz5WqAoRT91TjRy1JeLR0fXtkIXHGsMbgzKFTx7E68SrZ55TB8xoG+vm11Ru4gheFTMXjAjwAxv1jQdC+pAQA==} + '@smithy/url-parser@3.0.10': + resolution: {integrity: sha512-j90NUalTSBR2NaZTuruEgavSdh8MLirf58LoGSk4AtQfyIymogIhgnGUU2Mga2bkMkpSoC9gxb74xBXL5afKAQ==} - '@smithy/util-base64@2.0.1': - resolution: {integrity: sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==} - engines: {node: '>=14.0.0'} + '@smithy/util-base64@3.0.0': + resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-body-length-browser@2.0.1': - resolution: {integrity: sha512-NXYp3ttgUlwkaug4bjBzJ5+yIbUbUx8VsSLuHZROQpoik+gRkIBeEG9MPVYfvPNpuXb/puqodeeUXcKFe7BLOQ==} + '@smithy/util-body-length-browser@3.0.0': + resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} - '@smithy/util-body-length-node@2.1.0': - resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} - engines: {node: '>=14.0.0'} + '@smithy/util-body-length-node@3.0.0': + resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} + engines: {node: '>=16.0.0'} - '@smithy/util-buffer-from@2.0.0': - resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-config-provider@2.1.0': - resolution: {integrity: sha512-S6V0JvvhQgFSGLcJeT1CBsaTR03MM8qTuxMH9WPCCddlSo2W0V5jIHimHtIQALMLEDPGQ0ROSRr/dU0O+mxiQg==} - engines: {node: '>=14.0.0'} + '@smithy/util-buffer-from@3.0.0': + resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} + engines: {node: '>=16.0.0'} + + '@smithy/util-config-provider@3.0.0': + resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-browser@2.0.24': - resolution: {integrity: sha512-TsP5mBuLgO2C21+laNG2nHYZEyUdkbGURv2tHvSuQQxLz952MegX95uwdxOY2jR2H4GoKuVRfdJq7w4eIjGYeg==} + '@smithy/util-defaults-mode-browser@3.0.27': + resolution: {integrity: sha512-GV8NvPy1vAGp7u5iD/xNKUxCorE4nQzlyl057qRac+KwpH5zq8wVq6rE3lPPeuFLyQXofPN6JwxL1N9ojGapiQ==} engines: {node: '>= 10.0.0'} - '@smithy/util-defaults-mode-node@2.0.32': - resolution: {integrity: sha512-d0S33dXA2cq1NyorVMroMrEtqKMr3MlyLITcfTBf9pXiigYiPMOtbSI7czHIfDbuVuM89Cg0urAgpt73QV9mPQ==} + '@smithy/util-defaults-mode-node@3.0.27': + resolution: {integrity: sha512-7+4wjWfZqZxZVJvDutO+i1GvL6bgOajEkop4FuR6wudFlqBiqwxw3HoH6M9NgeCd37km8ga8NPp2JacQEtAMPg==} engines: {node: '>= 10.0.0'} - '@smithy/util-endpoints@1.0.8': - resolution: {integrity: sha512-l8zVuyZZ61IzZBYp5NWvsAhbaAjYkt0xg9R4xUASkg5SEeTT2meHOJwJHctKMFUXe4QZbn9fR2MaBYjP2119+w==} - engines: {node: '>= 14.0.0'} + '@smithy/util-endpoints@2.1.6': + resolution: {integrity: sha512-mFV1t3ndBh0yZOJgWxO9J/4cHZVn5UG1D8DeCc6/echfNkeEJWu9LD7mgGH5fHrEdR7LDoWw7PQO6QiGpHXhgA==} + engines: {node: '>=16.0.0'} - '@smithy/util-hex-encoding@2.0.0': - resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} - engines: {node: '>=14.0.0'} + '@smithy/util-hex-encoding@3.0.0': + resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-middleware@2.0.9': - resolution: {integrity: sha512-PnCnBJ07noMX1lMDTEefmxSlusWJUiLfrme++MfK5TD0xz8NYmakgoXy5zkF/16zKGmiwOeKAztWT/Vjk1KRIQ==} - engines: {node: '>=14.0.0'} + '@smithy/util-middleware@3.0.10': + resolution: {integrity: sha512-eJO+/+RsrG2RpmY68jZdwQtnfsxjmPxzMlQpnHKjFPwrYqvlcT+fHdT+ZVwcjlWSrByOhGr9Ff2GG17efc192A==} + engines: {node: '>=16.0.0'} - '@smithy/util-retry@2.0.9': - resolution: {integrity: sha512-46BFWe9RqB6g7f4mxm3W3HlqknqQQmWHKlhoqSFZuGNuiDU5KqmpebMbvC3tjTlUkqn4xa2Z7s3Hwb0HNs5scw==} - engines: {node: '>= 14.0.0'} + '@smithy/util-retry@3.0.10': + resolution: {integrity: sha512-1l4qatFp4PiU6j7UsbasUHL2VU023NRB/gfaa1M0rDqVrRN4g3mCArLRyH3OuktApA4ye+yjWQHjdziunw2eWA==} + engines: {node: '>=16.0.0'} - '@smithy/util-stream@2.0.24': - resolution: {integrity: sha512-hRpbcRrOxDriMVmbya+Mv77VZVupxRAsfxVDKS54XuiURhdiwCUXJP0X1iJhHinuUf6n8pBF0MkG9C8VooMnWw==} - engines: {node: '>=14.0.0'} + '@smithy/util-stream@3.3.1': + resolution: {integrity: sha512-Ff68R5lJh2zj+AUTvbAU/4yx+6QPRzg7+pI7M1FbtQHcRIp7xvguxVsQBKyB3fwiOwhAKu0lnNyYBaQfSW6TNw==} + engines: {node: '>=16.0.0'} - '@smithy/util-uri-escape@2.0.0': - resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} - engines: {node: '>=14.0.0'} + '@smithy/util-uri-escape@3.0.0': + resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} + engines: {node: '>=16.0.0'} - '@smithy/util-utf8@2.0.2': - resolution: {integrity: sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==} + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} + '@smithy/util-utf8@3.0.0': + resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} + engines: {node: '>=16.0.0'} + '@smithy/util-waiter@1.1.0': resolution: {integrity: sha512-S6FNIB3UJT+5Efd/0DeziO5Rs82QAMODHW4v2V3oNRrwaBigY/7Yx3SiLudZuF9WpVsV08Ih3BjIH34nzZiinQ==} engines: {node: '>=14.0.0'} - '@smithy/util-waiter@2.0.16': - resolution: {integrity: sha512-5i4YONHQ6HoUWDd+X0frpxTXxSXgJhUFl+z0iMy/zpUmVeCQY2or3Vss6DzHKKMMQL4pmVHpQm9WayHDorFdZg==} - engines: {node: '>=14.0.0'} + '@smithy/util-waiter@3.1.9': + resolution: {integrity: sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==} + engines: {node: '>=16.0.0'} - '@svgr/babel-plugin-add-jsx-attribute@6.5.1': - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-remove-jsx-attribute@6.5.0': - resolution: {integrity: sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==} - engines: {node: '>=10'} + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-remove-jsx-empty-expression@6.5.0': - resolution: {integrity: sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==} - engines: {node: '>=10'} + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-svg-dynamic-title@6.5.1': - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} + '@svgr/babel-plugin-svg-dynamic-title@8.0.0': + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-svg-em-dimensions@6.5.1': - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} + '@svgr/babel-plugin-svg-em-dimensions@8.0.0': + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-transform-react-native-svg@6.5.1': - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} + '@svgr/babel-plugin-transform-react-native-svg@8.1.0': + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-transform-svg-component@6.5.1': - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + '@svgr/babel-plugin-transform-svg-component@8.0.0': + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-preset@6.5.1': - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} + '@svgr/babel-preset@8.1.0': + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/core@6.5.1': - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} + '@svgr/core@8.1.0': + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} - '@svgr/hast-util-to-babel-ast@6.5.1': - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} + '@svgr/hast-util-to-babel-ast@8.0.0': + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} - '@svgr/plugin-jsx@6.5.1': - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} + '@svgr/plugin-jsx@8.1.0': + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} peerDependencies: - '@svgr/core': ^6.0.0 + '@svgr/core': '*' - '@tanstack/query-core@4.24.10': - resolution: {integrity: sha512-2QywqXEAGBIUoTdgn1lAB4/C8QEqwXHj2jrCLeYTk2xVGtLiPEUD8jcMoeB2noclbiW2mMt4+Fq7fZStuz3wAQ==} + '@tanstack/query-core@5.60.5': + resolution: {integrity: sha512-jiS1aC3XI3BJp83ZiTuDLerTmn9P3U95r6p+6/SNauLJaYxfIC4dMuWygwnBHIZxjn2zJqEpj3nysmPieoxfPQ==} - '@tanstack/react-query@4.24.10': - resolution: {integrity: sha512-FY1DixytOcNNCydPQXLxuKEV7VSST32CAuJ55BjhDNqASnMLZn+6c30yQBMrODjmWMNwzfjMZnq0Vw7C62Fwow==} + '@tanstack/react-query@5.60.5': + resolution: {integrity: sha512-M77bOsPwj1wYE56gk7iJvxGAr4IC12NWdIDhT+Eo8ldkWRHMvIR8I/rufIvT1OXoV/bl7EECwuRuMlxxWtvW2Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true + react: ^18 || ^19 - '@testing-library/dom@9.3.1': - resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} - engines: {node: '>=14'} + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} - '@testing-library/react@14.0.0': - resolution: {integrity: sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==} - engines: {node: '>=14'} + '@testing-library/react@16.0.1': + resolution: {integrity: sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==} + engines: {node: '>=18'} peerDependencies: + '@testing-library/dom': ^10.0.0 + '@types/react': ^18.0.0 + '@types/react-dom': ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@trpc/client@10.30.0': - resolution: {integrity: sha512-utz0qRI4eU3QcHvBwcSONEnt5pWR3Dyk4VFJnySHysBT6GQRRpJifWX5+RxDhFK93LxcAmiirFbYXjZ40gbobw==} + '@trpc/client@10.45.2': + resolution: {integrity: sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg==} peerDependencies: - '@trpc/server': 10.30.0 + '@trpc/server': 10.45.2 - '@trpc/server@10.30.0': - resolution: {integrity: sha512-pRsrHCuar3fbyOdJvO4b80OMP1Tx/wOSy5Ozy6cFDFWVUmfAyIX3En5Hoysy4cmMUuCsQsfTEYQwo+OcpjzBkg==} + '@trpc/server@10.45.2': + resolution: {integrity: sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg==} - '@types/aria-query@5.0.1': - resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - '@types/aws-lambda@8.10.110': - resolution: {integrity: sha512-r6egf2Cwv/JaFTTrF9OXFVUB3j/SXTgM9BwrlbBRjWAa2Tu6GWoDoLflppAZ8uSfbUJdXvC7Br3DjuN9pQ2NUQ==} + '@types/aws-lambda@8.10.145': + resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==} - '@types/body-parser@1.19.2': - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/chai-subset@1.3.3': - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/chai@4.3.5': - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + '@types/body-parser@1.19.2': + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} '@types/connect@3.4.35': resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} - '@types/cors@2.8.13': - resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} + '@types/cors@2.8.17': + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} '@types/d3-array@3.0.4': resolution: {integrity: sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ==} @@ -2309,20 +2405,23 @@ packages: '@types/date-arithmetic@4.1.1': resolution: {integrity: sha512-o9ILUTMSRiOC73o7h30mgLpuDwOJWqMHZfnEIwNQlfZsGY6Kw2gK5Gz6nXAjNt9zm3Qpr12pM4FDqssfdtBzGA==} - '@types/eslint@8.56.5': - resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree@1.0.0': resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - '@types/express-serve-static-core@4.17.35': - resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express@4.17.17': - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + '@types/express-serve-static-core@5.0.1': + resolution: {integrity: sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==} - '@types/file-saver@2.0.5': - resolution: {integrity: sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==} + '@types/express@5.0.0': + resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} + + '@types/file-saver@2.0.7': + resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} '@types/geojson@7946.0.10': resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} @@ -2330,38 +2429,38 @@ packages: '@types/json-schema@7.0.11': resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/leaflet-routing-machine@3.2.4': - resolution: {integrity: sha512-CFcWghU+eDel/zY2Q1u1tI6rxL2V6SfJ85/prt7s2QEw8tK+OkH+o5PLm/7eYsZH86i30ff5rmEk8GN1nZ9ODg==} + '@types/leaflet-routing-machine@3.2.8': + resolution: {integrity: sha512-v2pJDv/nqbB769SsytHemhLkqwjVor9UdWvZ1l6Y2SEaXNt1yDwVrktc4sCT8/4n7npuEb8VP+UAk8xrPePqSQ==} - '@types/leaflet.locatecontrol@0.74.1': - resolution: {integrity: sha512-4rqWfKadQ+Rksv4uq7Ab68CdOlaDt8z5bP+EMbXk5Ea82XMV9yLzQpAvVZ2xdARa8fpF2Atk+fheQ04Lik6ziA==} + '@types/leaflet.locatecontrol@0.74.6': + resolution: {integrity: sha512-IMnp6zSkiEKx5fwZSfySIyQWJWR/tpF00jRZC6BmFU//ygVRChakQpGPMpHIjQOnP3UMTmTXgztvQ2AwlHL8Mg==} - '@types/leaflet@1.9.0': - resolution: {integrity: sha512-7LeOSj7EloC5UcyOMo+1kc3S1UT3MjJxwqsMT1d2PTyvQz53w0Y0oSSk9nwZnOZubCmBvpSNGceucxiq+ZPEUw==} + '@types/leaflet@1.9.14': + resolution: {integrity: sha512-sx2q6MDJaajwhKeVgPSvqXd8rhNJSTA3tMidQGduZn9S6WBYxDkCpSpV5xXEmSg7Cgdk/5vJGhVF1kMYLzauBg==} - '@types/lodash@4.14.191': - resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} - - '@types/mime@1.3.2': - resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} '@types/mime@3.0.1': resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - '@types/node@18.13.0': - resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} - '@types/node@20.11.5': resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} - '@types/node@20.11.6': - resolution: {integrity: sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==} + '@types/node@22.9.0': + resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} - '@types/parse-json@4.0.0': - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} '@types/prop-types@15.7.5': resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} @@ -2369,35 +2468,32 @@ packages: '@types/qs@6.9.7': resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} - '@types/range-parser@1.2.4': - resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} - - '@types/react-big-calendar@1.6.0': - resolution: {integrity: sha512-ZdewX362GjB8MIVweVw+XR/6qkpkTVJvlTTyhqcLbEVI/zEUxPSX+9OlSDIJG3IONkvq+QqGPJbhyLkiDBQ7Jg==} + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-color@3.0.6': - resolution: {integrity: sha512-OzPIO5AyRmLA7PlOyISlgabpYUa3En74LP8mTMa0veCA719SvYQov4WLMsHvCgXP+L+KI9yGhYnqZafVGG0P4w==} + '@types/react-big-calendar@1.15.0': + resolution: {integrity: sha512-eZF0HCwalF8bFaEpcxufrIEAu8m6UiTjqbuQk66i7RbuPbi4xjlJqFeQ6Pb6TCudZVZ5ttnz9AquQDvgKGM3cQ==} - '@types/react-dom@18.0.11': - resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + '@types/react-color@3.0.12': + resolution: {integrity: sha512-pr3uKE3lSvf7GFo1Rn2K3QktiZQFFrSgSGJ/3iMvSOYWt2pPAJ97rVdVfhWxYJZ8prAEXzoP2XX//3qGSQgu7Q==} - '@types/react-input-mask@3.0.2': - resolution: {integrity: sha512-WTli3kUyvUqqaOLYG/so2pLqUvRb+n4qnx2He5klfqZDiQmRyD07jVIt/bco/1BrcErkPMtpOm+bHii4Oed6cQ==} + '@types/react-dom@18.3.1': + resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} - '@types/react-is@17.0.3': - resolution: {integrity: sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==} + '@types/react-input-mask@3.0.6': + resolution: {integrity: sha512-+5I18WKyG3eWIj7TVPWfK1VitI9mPpS9y6jE/BfmTCe+iL27NfBw/yzKRvCFp1DRBvlvvcsiZf05bub0YC1k8A==} - '@types/react-is@18.2.1': - resolution: {integrity: sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==} + '@types/react-lazyload@3.2.3': + resolution: {integrity: sha512-s03gWlHXiFqZr7TEFDTx8Lkl+ZEYrwTkXP9MNZ3Z3blzsPrnkYjgeSK2tjfzVv/TYVCnDk6TZwNRDHQlHy/1Ug==} - '@types/react-lazyload@3.2.0': - resolution: {integrity: sha512-4+r+z8Cf7L/mgxA1vl5uHx5GS/8gY2jqq2p5r5WCm+nUsg9KilwQ+8uaJA3EUlLj57AOzOfGGwwRJ5LOVl8fwA==} + '@types/react-transition-group@4.4.11': + resolution: {integrity: sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==} '@types/react-transition-group@4.4.5': resolution: {integrity: sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==} - '@types/react@18.0.28': - resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} '@types/reactcss@1.2.6': resolution: {integrity: sha512-qaIzpCuXNWomGR1Xq8SCFTtF4v8V27Y6f+b9+bzHiv087MylI/nTCqqdChNeWS7tslgROmYB7yeiruWX7WnqNg==} @@ -2405,14 +2501,8 @@ packages: '@types/reactour@1.18.5': resolution: {integrity: sha512-Pl5yh9bXeXaFcioDk6XVmUzdJGZDAKesVmwoh2KvN/1FXSd9saN8pIprLvfspnXANMcgl3AtSlD4zs0cJIhGIw==} - '@types/scheduler@0.16.2': - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - - '@types/semver@7.3.13': - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} - - '@types/send@0.17.1': - resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} '@types/serve-static@1.15.1': resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} @@ -2423,95 +2513,107 @@ packages: '@types/ua-parser-js@0.7.39': resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/warning@3.0.0': resolution: {integrity: sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==} - '@typescript-eslint/eslint-plugin@5.57.1': - resolution: {integrity: sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/eslint-plugin@8.14.0': + resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@5.57.1': - resolution: {integrity: sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/parser@8.14.0': + resolution: {integrity: sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@5.57.1': - resolution: {integrity: sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/scope-manager@8.14.0': + resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@5.57.1': - resolution: {integrity: sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/type-utils@8.14.0': + resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '*' typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@5.57.1': - resolution: {integrity: sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/types@8.14.0': + resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@5.57.1': - resolution: {integrity: sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/typescript-estree@8.14.0': + resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@5.57.1': - resolution: {integrity: sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/utils@8.14.0': + resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@5.57.1': - resolution: {integrity: sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/visitor-keys@8.14.0': + resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vendia/serverless-express@4.10.1': - resolution: {integrity: sha512-8FM/GnQ8bbp1fynAWLGzNIy3Hyhoevixwh2Aj8qBPpw7rkbWZ1I7RC2XhZZaTZo/1JTDlff4cDDmkgY0CzUV7g==} + '@vendia/serverless-express@4.12.6': + resolution: {integrity: sha512-ePsIPk3VQwgm5nh/JGBtTKQs5ZOF7REjHxC+PKk/CHvhlKQkJuUU365uPOlxuLJhC+BAefDznDRReWxpnKjmYg==} engines: {node: '>=12'} - '@vitejs/plugin-react@4.0.4': - resolution: {integrity: sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==} + '@vitejs/plugin-react@4.3.3': + resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 + vite: ^4.2.0 || ^5.0.0 - '@vitest/expect@0.34.4': - resolution: {integrity: sha512-XlMKX8HyYUqB8dsY8Xxrc64J2Qs9pKMt2Z8vFTL4mBWXJsg4yoALHzJfDWi8h5nkO4Zua4zjqtapQ/IluVkSnA==} + '@vitest/expect@2.1.5': + resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} + + '@vitest/mocker@2.1.5': + resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true - '@vitest/runner@0.34.4': - resolution: {integrity: sha512-hwwdB1StERqUls8oV8YcpmTIpVeJMe4WgYuDongVzixl5hlYLT2G8afhcdADeDeqCaAmZcSgLTLtqkjPQF7x+w==} + '@vitest/pretty-format@2.1.5': + resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} - '@vitest/snapshot@0.34.4': - resolution: {integrity: sha512-GCsh4coc3YUSL/o+BPUo7lHQbzpdttTxL6f4q0jRx2qVGoYz/cyTRDJHbnwks6TILi6560bVWoBpYC10PuTLHw==} + '@vitest/runner@2.1.5': + resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==} - '@vitest/spy@0.34.4': - resolution: {integrity: sha512-PNU+fd7DUPgA3Ya924b1qKuQkonAW6hL7YUjkON3wmBwSTIlhOSpy04SJ0NrRsEbrXgMMj6Morh04BMf8k+w0g==} + '@vitest/snapshot@2.1.5': + resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==} - '@vitest/utils@0.34.4': - resolution: {integrity: sha512-yR2+5CHhp/K4ySY0Qtd+CAL9f5Yh1aXrKfAT42bq6CtlGPh92jIDDDSg7ydlRow1CP+dys4TrOrbELOyNInHSg==} + '@vitest/spy@2.1.5': + resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==} - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead + '@vitest/utils@2.1.5': + resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -2525,47 +2627,30 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - - acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true - acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} - engines: {node: '>=0.4.0'} - hasBin: true - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -2588,43 +2673,57 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + arktype@2.0.0-rc.23: + resolution: {integrity: sha512-P0e40t3J4rc3xRHzPjzyOK1CgdgKswQJOFBgFLuehSiGcjAuRx6p/9lDVPzXZ62m7q5yRUqFiX8ovN5FjWQjMQ==} - arktype@1.0.14-alpha: - resolution: {integrity: sha512-theD5K4QrYCWMtQ52Masj169IgtMJ8Argld/MBS4lotEwR3b+GzfBvsqVJ1OIKhJDTdES02FLQTjcfRe00//mA==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} - array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} - array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} - ast-types-flow@0.0.7: - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -2633,8 +2732,12 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - aws-cdk-lib@2.121.1: - resolution: {integrity: sha512-wrOHDDQqVuH2tRTH7p2LaMPVI3V2bqr8X//Qrhy+hOFA04u2MVetQYev+NgMXPjNzU9IGX2wy1Fs9Y/ntq2sQA==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + aws-cdk-lib@2.167.1: + resolution: {integrity: sha512-Ck7Wlc37DDx0aZ7Ho1SIQAF+QKwJ479fmIuR490X1gbx4YquQ9ZQ4Jo0XJqgwyneRpAfE3OISDzTB0cyNyiCYA==} engines: {node: '>= 14.15.0'} peerDependencies: constructs: ^10.0.0 @@ -2649,9 +2752,10 @@ packages: - semver - table - yaml + - mime-types - aws-cdk@2.121.1: - resolution: {integrity: sha512-T8UFuNGDnXNmcHagCGeQ8xQA3zU/o2ENuyGXO/ho+U3KyYs7tnWIr++ovrp2FvhiBpmBv6SuKiueBA6OW7utBw==} + aws-cdk@2.167.1: + resolution: {integrity: sha512-GOFe5hj7xi7i7aqkaQ2PT1jmar+Ip+qNpA7hJoH4anz98rthcl4N2X01CdHiEc61/0urobwl5358xAZIhMd21g==} engines: {node: '>= 14.15.0'} hasBin: true @@ -2663,16 +2767,17 @@ packages: resolution: {integrity: sha512-GoLwk2SuG9A6eWgc1mGmm548dklheDmkeptHRw2RhCvq2GZqlc4AzStFUjUURy4O4NQmd2ZiQIoeseue4RwurA==} engines: {node: '>= 10.0.0'} - aws-sdk@2.1550.0: - resolution: {integrity: sha512-abkbOeaL7iV085UqO8Y7/Ep7VYONK32chhKejhMbPYSqTp2YgNeqOSQfSaVZWeWCwqJxujEyoXFGTNgTt46D0g==} + aws-sdk@2.1692.0: + resolution: {integrity: sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw==} engines: {node: '>= 10.0.0'} - axe-core@4.6.3: - resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==} + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - axobject-query@3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} @@ -2695,8 +2800,8 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} bowser@2.11.0: @@ -2712,13 +2817,12 @@ packages: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - browserslist@4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} - browserslist@4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2736,8 +2840,9 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -2747,57 +2852,43 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001454: - resolution: {integrity: sha512-4E63M5TBbgDoA9dQoFRdjL6iAmzTrz3rwYWoKDlvnvyvBxjCZ0rrUoX3THhEMie0/RYuTCeMbeTYLGAWgnLwEg==} + caniuse-lite@1.0.30001680: + resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} - caniuse-lite@1.0.30001532: - resolution: {integrity: sha512-FbDFnNat3nMnrROzqrsg314zhqN5LGQ1kyyMk2opcrwGbVGpHRhgCWtAgD5YJUqNAiQ+dklreil/c3Qf1dfCTw==} - - chai@4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} - engines: {node: '>=4'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chart.js@4.2.1: - resolution: {integrity: sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==} - engines: {pnpm: ^7.0.0} + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chart.js@4.4.6: + resolution: {integrity: sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA==} + engines: {pnpm: '>=8'} - check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} - classnames@2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-color@2.0.4: - resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} - engines: {node: '>=0.10'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} - cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -2807,48 +2898,41 @@ packages: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} - clsx@2.0.0: - resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@3.0.2: resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concurrently@8.0.1: - resolution: {integrity: sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==} - engines: {node: ^14.13.0 || >=16.0.0} + concurrently@9.1.0: + resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} + engines: {node: '>=18'} hasBin: true - constructs@10.3.0: - resolution: {integrity: sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==} - engines: {node: '>= 16.14.0'} + constructs@10.4.2: + resolution: {integrity: sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA==} content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} @@ -2861,11 +2945,14 @@ packages: convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} copy-anything@3.0.5: @@ -2880,6 +2967,15 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -2889,18 +2985,19 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.5: + resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} + engines: {node: '>= 8'} + css-line-break@2.1.0: resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==} - css-unit-converter@1.1.2: - resolution: {integrity: sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==} - css-vendor@2.0.8: resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} - cssstyle@3.0.0: - resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} - engines: {node: '>=14'} + cssstyle@4.1.0: + resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} + engines: {node: '>=18'} csstype@2.6.21: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} @@ -2908,6 +3005,9 @@ packages: csstype@3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + d3-array@3.2.2: resolution: {integrity: sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ==} engines: {node: '>=12'} @@ -2952,10 +3052,6 @@ packages: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} - d@1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} - engines: {node: '>=0.12'} - damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -2963,19 +3059,30 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - data-urls@4.0.0: - resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} - engines: {node: '>=14'} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} date-arithmetic@4.1.0: resolution: {integrity: sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg==} - date-fns@2.29.3: - resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} - engines: {node: '>=0.11'} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - dayjs@1.11.7: - resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -3002,24 +3109,34 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js-light@2.5.1: resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - deep-equal@2.2.0: - resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} delayed-stream@1.0.0: @@ -3041,62 +3158,41 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - difflib@0.2.4: - resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dom-helpers@3.4.0: - resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==} - dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dreamopt@0.8.0: - resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} - engines: {node: '>=0.4.0'} - - drizzle-kit@0.21.4: - resolution: {integrity: sha512-Nxcc1ONJLRgbhmR+azxjNF9Ly9privNLEIgW53c92whb4xp8jZLH1kMCh/54ci1mTMuYxPdOukqLwJ8wRudNwA==} + drizzle-kit@0.28.1: + resolution: {integrity: sha512-JimOV+ystXTWMgZkLHYHf2w3oS28hxiH1FR0dkmJLc7GHzdGJoJAQtQS5DRppnabsRZwE2U1F6CuezVBgmsBBQ==} hasBin: true - drizzle-orm@0.30.10: - resolution: {integrity: sha512-IRy/QmMWw9lAQHpwbUh1b8fcn27S/a9zMIzqea1WNOxK9/4EB8gIo+FZWLiPXzl2n9ixGSv8BhsLZiOppWEwBw==} + drizzle-orm@0.36.3: + resolution: {integrity: sha512-ffQB7CcyCTvQBK6xtRLMl/Jsd5xFTBs+UTHrgs1hbk68i5TPkbsoCPbKEwiEsQZfq2I7VH632XJpV1g7LS2H9Q==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=3' - '@electric-sql/pglite': '>=0.1.1' - '@libsql/client': '*' + '@electric-sql/pglite': '>=0.2.0' + '@libsql/client': '>=0.10.0' + '@libsql/client-wasm': '>=0.10.0' '@neondatabase/serverless': '>=0.1' '@op-engineering/op-sqlite': '>=2' '@opentelemetry/api': ^1.4.1 '@planetscale/database': '>=1' + '@prisma/client': '*' + '@tidbcloud/serverless': '*' '@types/better-sqlite3': '*' '@types/pg': '*' '@types/react': '>=18' @@ -3105,12 +3201,13 @@ packages: '@xata.io/client': '*' better-sqlite3: '>=7' bun-types: '*' - expo-sqlite: '>=13.2.0' + expo-sqlite: '>=14.0.0' knex: '*' kysely: '*' mysql2: '>=2' pg: '>=8' postgres: '>=3' + prisma: '*' react: '>=18' sql.js: '>=1' sqlite3: '>=5' @@ -3123,6 +3220,8 @@ packages: optional: true '@libsql/client': optional: true + '@libsql/client-wasm': + optional: true '@neondatabase/serverless': optional: true '@op-engineering/op-sqlite': @@ -3131,6 +3230,10 @@ packages: optional: true '@planetscale/database': optional: true + '@prisma/client': + optional: true + '@tidbcloud/serverless': + optional: true '@types/better-sqlite3': optional: true '@types/pg': @@ -3159,6 +3262,8 @@ packages: optional: true postgres: optional: true + prisma: + optional: true react: optional: true sql.js: @@ -3166,17 +3271,14 @@ packages: sqlite3: optional: true - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.300: - resolution: {integrity: sha512-tHLIBkKaxvG6NnDWuLgeYrz+LTwAnApHm2R3KBNcRrFn0qLmTrqQeB4X4atfN6YJbkOOOSdRBeQ89OfFUelnEQ==} + electron-to-chromium@1.5.62: + resolution: {integrity: sha512-t8c+zLmJHa9dJy96yBZRXGQYoiCEnHYgFwn1asvSPZSUdVxnB62A4RASd7k41ytG3ErFBA0TpHlKg9D9SQBmLg==} - electron-to-chromium@1.4.514: - resolution: {integrity: sha512-M8LVncPt1Xaw1XLxws6EoJCmY41RXLk87tq6PHvSHDyTYWla3CrEgGlbhC79e8LHyvQ2JTDXx//xzgSixNYcUQ==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3188,6 +3290,10 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + enhanced-resolve@5.15.1: resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} engines: {node: '>=10.13.0'} @@ -3196,48 +3302,54 @@ packages: resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} engines: {node: '>=0.12'} - env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - envalid@7.3.1: - resolution: {integrity: sha512-KL1YRwn8WcoF/Ty7t+yLLtZol01xr9ZJMTjzoGRM8NaSU+nQQjSWOQKKJhJP2P57bpdakJ9jbxqQX4fGTOicZg==} + envalid@8.0.0: + resolution: {integrity: sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==} engines: {node: '>=8.12'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.21.1: - resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + es-iterator-helpers@1.2.0: + resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} engines: {node: '>= 0.4'} - es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} - engines: {node: '>=0.10'} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} - es6-symbol@3.1.4: - resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} - engines: {node: '>=0.12'} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - es6-weak-map@2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} esbuild-register@3.6.0: resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} @@ -3249,49 +3361,65 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-prettier@8.8.0: - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.6.1: - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + eslint-import-resolver-typescript@3.6.3: + resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true - eslint-module-utils@2.7.4: - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3311,83 +3439,73 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.27.5: - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - eslint-plugin-jsx-a11y@6.7.1: - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + eslint-plugin-react-hooks@5.0.0: + resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react@7.32.2: - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.37.0: - resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.38.0: - resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint@9.15.0: + resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} - - espree@9.5.1: - resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - esquery@1.4.2: - resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -3395,6 +3513,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3403,12 +3524,12 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events@1.1.1: resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} engines: {node: '>=0.4.x'} @@ -3417,26 +3538,24 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@6.1.0: - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} - express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} - ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} + engines: {node: '>= 0.10.0'} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-equals@4.0.3: - resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==} - - fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} + fast-equals@5.0.1: + resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} + engines: {node: '>=6.0.0'} fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} @@ -3448,16 +3567,12 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-xml-parser@4.1.2: - resolution: {integrity: sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==} - hasBin: true - fast-xml-parser@4.2.4: resolution: {integrity: sha512-fbfMDvgBNIdDJLdLOwacjFAPYt67tr31H9ZhWSm45CDAxvd0I6WTlSOUo7K2P/K5sA5JgMKG64PI3DMcaFdWpQ==} hasBin: true - fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + fast-xml-parser@4.4.1: + resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} hasBin: true fastq@1.15.0: @@ -3467,9 +3582,9 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} @@ -3478,8 +3593,12 @@ packages: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} find-root@1.1.0: @@ -3489,12 +3608,12 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} - flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -3515,19 +3634,21 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -3541,23 +3662,28 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} - get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} get-tsconfig@4.6.2: resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3569,15 +3695,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - globalize@0.1.1: resolution: {integrity: sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==} @@ -3585,17 +3702,18 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + goober@2.1.16: + resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} + peerDependencies: + csstype: ^3.0.10 gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -3603,11 +3721,8 @@ packages: graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - - hanji@0.0.5: - resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -3620,11 +3735,11 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} has-symbols@1.0.3: @@ -3635,19 +3750,20 @@ packages: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} - has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} - heap@0.2.7: - resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} html2canvas@1.4.1: resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} @@ -3657,21 +3773,21 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} - human-signals@3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} - husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} + husky@9.1.6: + resolution: {integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==} + engines: {node: '>=18'} hasBin: true hyphenate-style-name@1.0.4: @@ -3685,8 +3801,8 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - ics@3.1.0: - resolution: {integrity: sha512-O48TZKyLYagLlXoZwDmjetXc6SoT54wFkTu2MEYe7zse8kL+C/dgSynYCjRG1OTAv3iHtGtG0PWKG81LbcrKFA==} + ics@3.8.1: + resolution: {integrity: sha512-UqQlfkajfhrS4pUGQfGIJMYz/Jsl/ob3LqcfEhUmLbwumg+ZNkU0/6S734Vsjq3/FYNpEcZVKodLBoe+zBM69g==} ieee754@1.1.13: resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} @@ -3701,6 +3817,10 @@ packages: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -3709,19 +3829,11 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} internmap@2.0.3: @@ -3739,12 +3851,17 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.1: - resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -3756,12 +3873,20 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} + is-bun-module@1.2.1: + resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -3771,6 +3896,9 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -3779,6 +3907,10 @@ packages: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -3790,11 +3922,12 @@ packages: is-in-browser@1.1.3: resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==} - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} is-number-object@1.0.7: @@ -3805,25 +3938,20 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} @@ -3841,14 +3969,20 @@ packages: resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} engines: {node: '>= 0.4'} - is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} is-what@4.1.15: resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==} @@ -3863,13 +3997,14 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} + jmespath@0.16.0: resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} engines: {node: '>= 0.6.0'} - js-sdsl@4.3.0: - resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3881,23 +4016,22 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdom@22.1.0: - resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} - engines: {node: '>=16'} + jsdom@25.0.1: + resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + engines: {node: '>=18'} peerDependencies: - canvas: ^2.5.0 + canvas: ^2.11.2 peerDependenciesMeta: canvas: optional: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true - json-diff@0.9.0: - resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} - hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -3917,9 +4051,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jss-plugin-camel-case@10.10.0: resolution: {integrity: sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==} @@ -3948,49 +4079,48 @@ packages: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - language-tags@1.0.5: - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} leaflet-routing-machine@3.2.12: resolution: {integrity: sha512-HLde58G1YtD9xSIzZavJ6BPABZaV1hHeGst8ouhzuxmSC3s32NVtADT+njbIUMW1maHRCrsgTk/E4hz5QH7FrA==} - leaflet.locatecontrol@0.79.0: - resolution: {integrity: sha512-h64QIHFkypYdr90lkSfjKvPvvk8/b8UnP3m9WuoWdp5p2AaCWC0T1NVwyuj4rd5U4fBW3tQt4ppmZ2LceHMIDg==} + leaflet.locatecontrol@0.82.0: + resolution: {integrity: sha512-+lvtZ7tfqgWoUvTYRqDggw50HUZJGvaSgSU5JYvl5H4WtlnHek2R0TsL0EqROhT3igPFwYVV87bFT/ps1SqyGA==} - leaflet@1.9.3: - resolution: {integrity: sha512-iB2cR9vAkDOu5l3HAay2obcUHZ7xwUBBjph8+PGtmW/2lYhbLizWtG7nTeYht36WfOslixQF9D/uSIzhZgGMfQ==} + leaflet@1.9.4: + resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==} levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@13.1.2: - resolution: {integrity: sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==} - engines: {node: ^14.13.1 || >=16.0.0} + lint-staged@15.2.10: + resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} + engines: {node: '>=18.12.0'} hasBin: true - listr2@5.0.7: - resolution: {integrity: sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - - local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} + engines: {node: '>=18.0.0'} locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -4002,34 +4132,26 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} - deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-queue@0.1.0: - resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} - luxon@3.2.1: resolution: {integrity: sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==} engines: {node: '>=12'} @@ -4038,16 +4160,17 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.2: - resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} - engines: {node: '>=12'} + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} material-colors@1.2.6: resolution: {integrity: sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==} - material-ui-popup-state@5.0.4: - resolution: {integrity: sha512-QdlKHiKv498UNsH3zpQNJ7SN9RYiEjR5MSJIg+a9gqCp43G0A8fo1r0kmX1qFTLGTfYKgXix5RANJkNTujWtxA==} + material-ui-popup-state@5.3.1: + resolution: {integrity: sha512-mmx1DsQwF/2cmcpHvS/QkUwOQG2oAM+cDEQU0DaZVYnvwKyTB3AFgu8l1/E+LQFausmzpSJoljwQSZXkNvt7eA==} + engines: {node: '>=16'} peerDependencies: + '@mui/material': ^5.0.0 || ^6.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 media-typer@0.3.0: @@ -4057,12 +4180,8 @@ packages: memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} - memoizee@0.4.17: - resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} - engines: {node: '>=0.12'} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -4075,8 +4194,8 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime-db@1.52.0: @@ -4092,35 +4211,32 @@ packages: engines: {node: '>=4'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - mlly@1.4.0: - resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} - mnemonist@0.38.3: resolution: {integrity: sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==} - moment-timezone@0.5.43: - resolution: {integrity: sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==} + moment-timezone@0.5.46: + resolution: {integrity: sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==} - moment@2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -4131,22 +4247,16 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoclone@0.2.1: - resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} - nanoid@3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4154,8 +4264,8 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} @@ -4165,15 +4275,12 @@ packages: resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-releases@2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - - nodemon@2.0.22: - resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} - engines: {node: '>=8.10.0'} + nodemon@3.1.7: + resolution: {integrity: sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==} + engines: {node: '>=10'} hasBin: true nopt@1.0.10: @@ -4184,36 +4291,26 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - notistack@2.0.8: - resolution: {integrity: sha512-/IY14wkFp5qjPgKNvAdfL5Jp6q90+MjgKTPh4c81r/lW70KeuX6b9pE/4f8L4FG31cNudbN9siiFS5ql1aSLRw==} + notistack@3.0.1: + resolution: {integrity: sha512-ntVZXXgSQH5WYfyU+3HfcXuKaapzAJ8fBLQ/G618rn3yvSzEbnOB8ZSOwhX+dAORy/lw+GC2N061JA0+gYWTVA==} + engines: {node: '>=12.0.0', npm: '>=6.0.0'} peerDependencies: - '@emotion/react': ^11.4.1 - '@emotion/styled': ^11.3.0 - '@mui/material': ^5.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + nwsapi@2.2.13: + resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - - object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -4224,19 +4321,24 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} - object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} - object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} - object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} obliterator@1.6.1: @@ -4249,16 +4351,16 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} osrm-text-instructions@0.13.4: @@ -4268,18 +4370,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - pako@2.1.0: resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} @@ -4302,10 +4396,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -4317,65 +4407,60 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - peterportal-api-next-types@1.0.0-alpha.6: - resolution: {integrity: sha512-sbQmYiH21t6wIsgFXStJcBZWhMOCjKQspLGdpUEmpYQaR4tL1kwGQ+KNix5EwLJxHM9BnMtK1BJcwu6fOTeqMQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} - peterportal-api-next-types@1.0.0-rc.2.68.0: - resolution: {integrity: sha512-gq0k53abt6ea9roA+GlSgP3Rbv+0tC4rGw4gGbrahh+ZNnmTGdlZSF8ISq07DbQ7td8dBev4gMrjrZq+Xn500A==} + peterportal-api-next-types@1.0.0-rc.3: + resolution: {integrity: sha512-TlylpK4OcfxG91aze6urHv9ei7/gX/GLrR7v8ktPVX31r/xPfYS77ygi6wcawwguka6dk8/JHQukYdy5tlOYgA==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} hasBin: true - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - popper.js@1.16.1-lts: resolution: {integrity: sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==} - postcss-value-parser@3.3.1: - resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} - postcss@8.4.29: - resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - postgres@3.4.4: - resolution: {integrity: sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==} + postgres@3.4.5: + resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==} engines: {node: '>=12'} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@2.8.4: - resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -4383,23 +4468,16 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@29.6.2: - resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-expr@2.0.5: - resolution: {integrity: sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==} + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} @@ -4410,8 +4488,12 @@ packages: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} querystring@0.2.0: @@ -4419,9 +4501,6 @@ packages: engines: {node: '>=0.4.x'} deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -4429,12 +4508,12 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} - react-big-calendar@1.6.7: - resolution: {integrity: sha512-Xg6UGhDHjlhI16YaKtVVAIUwbxOHKdC0+ddcJhYsNOqT6xyRsDPbX3JfpRJaqGuKLpFPVv6vuOQUowXDNI8xbg==} + react-big-calendar@1.15.0: + resolution: {integrity: sha512-RNiPH1Vh/fpJpNIValpl6lHvuEroWkDvS8z3YW2QpmGUuAk6a0Q1uEujlQTd/gQrpKAaBA4Gyc1mzCdNIQ7DZQ==} peerDependencies: react: ^16.14.0 || ^17 || ^18 react-dom: ^16.14.0 || ^17 || ^18 @@ -4450,13 +4529,13 @@ packages: peerDependencies: react: '*' - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.2.0 + react: ^18.3.1 - react-ga4@2.0.0: - resolution: {integrity: sha512-WHi98hMunzh4ngRdNil8NN6Qly3ZZUkprhbgSqA+NFzovp8zqpYV3jcbKL9FnMdeBQHGhv8AVNCT2oFEE+EFXA==} + react-ga4@2.1.0: + resolution: {integrity: sha512-ZKS7PGNFqqMd3PJ6+C2Jtz/o1iU9ggiy8Y8nUeksgVuvNISbmrQtJiZNvC/TjDsqD0QlU5Wkgs7i+w9+OjHhhQ==} react-input-mask@2.0.4: resolution: {integrity: sha512-1hwzMr/aO9tXfiroiVCx5EtKohKwLk/NT8QlJXHQ4N+yJJFyUuMT+zfTpLBwX/lK3PkuMlievIffncpMZ3HGRQ==} @@ -4470,14 +4549,14 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-lazyload@3.2.0: - resolution: {integrity: sha512-zJlrG8QyVZz4+xkYZH5v1w3YaP5wEFaYSUWC4CT9UXfK75IfRAIEdnyIUF+dXr3kX2MOtL1lUaZmaQZqrETwgw==} + react-lazyload@3.2.1: + resolution: {integrity: sha512-oDLlLOI/rRLY0fUh/HYFCy4CqCe7zdJXv6oTl2pC30tN3ezWxvwcdHYfD/ZkrGOMOOT5pO7hNLSvg7WsmAij1w==} peerDependencies: - react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-leaflet@4.2.1: resolution: {integrity: sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==} @@ -4495,55 +4574,42 @@ packages: react: '>=16.3.0' react-dom: '>=16.3.0' - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-resize-detector@7.1.2: - resolution: {integrity: sha512-zXnPJ2m8+6oq9Nn8zsep/orts9vQv3elrpA+R8XTcW7DVVUJ9vwDwMXaBtykAYjMnkCIaOoK9vObyR7ZgFNlOw==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 - - react-router-dom@6.8.1: - resolution: {integrity: sha512-67EXNfkQgf34P7+PSb6VlBuaacGhkKn3kpE51+P6zYSG2kiRoumXEL6e27zTa9+PGF2MNXbgIUHTVlleLbIcHQ==} - engines: {node: '>=14'} + react-router-dom@6.28.0: + resolution: {integrity: sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==} + engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.8.1: - resolution: {integrity: sha512-Jgi8BzAJQ8MkPt8ipXnR73rnD7EmZ0HFFb7jdQU24TynGW1Ooqin2KVDN9voSC+7xhqbbCd2cjGUepb6RObnyg==} - engines: {node: '>=14'} + react-router@6.28.0: + resolution: {integrity: sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==} + engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' - react-smooth@2.0.2: - resolution: {integrity: sha512-pgqSp1q8rAGtF1bXQE0m3CHGLNfZZh5oA5o1tsPLXRHnKtkujMIJ8Ws5nO1mTySZf1c4vgwlEk+pHi3Ln6eYLw==} + react-smooth@4.0.1: + resolution: {integrity: sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==} peerDependencies: - prop-types: ^15.6.0 - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-split@2.0.14: resolution: {integrity: sha512-bKWydgMgaKTg/2JGQnaJPg51T6dmumTWZppFgEbbY0Fbme0F5TuatAScCLaqommbGQQf/ZT1zaejuPDriscISA==} peerDependencies: react: '*' - react-transition-group@2.9.0: - resolution: {integrity: sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==} - peerDependencies: - react: '>=15.0.0' - react-dom: '>=15.0.0' - react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: react: '>=16.6.0' react-dom: '>=16.6.0' - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} reactcss@1.2.3: @@ -4558,16 +4624,16 @@ packages: recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - recharts@2.4.3: - resolution: {integrity: sha512-/hkRHTQShEOKDYd2OlKLIvGA0X9v/XVO/mNeRoDHg0lgFRL2KbGzeqVnStI3mMfORUZ6Hak4JbQ+uDiin1Foqg==} - engines: {node: '>=12'} + recharts@2.13.3: + resolution: {integrity: sha512-YDZ9dOfK9t3ycwxgKbrnDlRC4BHdjlY73fet3a0C1+qGMjXVZe6+VXmpOIIhzkje5MMEL8AN4hLIe4AMskBzlA==} + engines: {node: '>=14'} peerDependencies: - prop-types: ^15.6.0 react: ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 - reduce-css-calc@2.1.8: - resolution: {integrity: sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==} + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} @@ -4575,17 +4641,17 @@ packages: regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - regexp.prototype.flags@1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} @@ -4596,54 +4662,57 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rifm@0.7.0: resolution: {integrity: sha512-DSOJTWHD67860I5ojetXdEQRIBvF6YcpNe53j0vn1vp9EUb9N80EiZTxgP+FkDKorWC8PZw052kTF4C1GOivCQ==} peerDependencies: react: '>=16.8' - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@3.29.1: - resolution: {integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + rollup@4.27.2: + resolution: {integrity: sha512-KreA+PzWmk2yaFmZVwe6GB2uBD86nXl86OsDkt1bJS9p3vqWuEQ6HnJJ+j/mZi/q0920P99/MVRlB4L3crpF5w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + runes2@1.1.4: + resolution: {integrity: sha512-LNPnEDPOOU4ehF71m5JoQyzT2yxwD6ZreFJ7MxZUAoMKNMY1XrAo60H1CUoX5ncSm0rIuKlqn9JZNRrRkNou2g==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -4655,38 +4724,34 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - - semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - - semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.0.0: - resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} - hasBin: true - - semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -4701,40 +4766,34 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - simple-update-notifier@1.1.0: - resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} - engines: {node: '>=8.10.0'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} - source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-support@0.5.21: @@ -4748,9 +4807,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - spawn-command@0.0.2-1: - resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} - split.js@1.6.5: resolution: {integrity: sha512-mPTnGCiS/RiuTNsVhCm9De9cCAUsrNFFviRbADdKiiV+Kk8HKp/0fWu7Kr8pi3/yBmsqLFHuXGT9UUZ+CNLwFw==} @@ -4764,40 +4820,49 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - std-env@3.4.0: - resolution: {integrity: sha512-YqHeQIIQ8r1VtUZOTOyjsAXAsjr369SplZ5rlQaiJTBsvodvPSCME7vuz8pnQltbQ0Cw0lyFo5Q8uyNwYQ58Xw==} - - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} - string-argv@0.3.1: - resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} strip-bom@3.0.0: @@ -4812,18 +4877,15 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - stylis@4.1.3: - resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - superjson@1.12.3: - resolution: {integrity: sha512-0j+U70KUtP8+roVPbwfqkyQI7lBt7ETnuA7KXbTDX3mCKiD/4fXs2ldKSMdt0MCfpTwiMxo20yFU3vu6ewETpQ==} - engines: {node: '>=10'} + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -4854,36 +4916,42 @@ packages: text-segmentation@1.0.3: resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} - timers-ext@0.1.8: - resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} - engines: {node: '>=0.12'} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - tinybench@2.5.0: - resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@2.1.1: - resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + tldts-core@6.1.61: + resolution: {integrity: sha512-In7VffkDWUPgwa+c9picLUxvb0RltVwTkSgMNFgvlGSWveCzGBemBqTsgJCL4EDFWZ6WH0fKTsot6yNhzy3ZzQ==} + + tldts@6.1.61: + resolution: {integrity: sha512-rv8LUyez4Ygkopqn+M6OLItAOT9FF3REpPQDkdMx5ix8w4qkuE7Vo2o/vw1nxKQYmJDV8JpAMJQr1b+lTKf0FA==} + hasBin: true to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -4900,119 +4968,115 @@ packages: resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} hasBin: true - tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} + tough-cookie@5.0.0: + resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + engines: {node: '>=16'} - tr46@4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} - engines: {node: '>=14'} + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - tsconfig-paths@3.14.1: - resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + ts-api-utils@1.4.0: + resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' - tslib@2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} tslib@2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tsx@3.12.7: - resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} hasBin: true tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo-darwin-64@2.2.3: - resolution: {integrity: sha512-Rcm10CuMKQGcdIBS3R/9PMeuYnv6beYIHqfZFeKWVYEWH69sauj4INs83zKMTUiZJ3/hWGZ4jet9AOwhsssLyg==} + turbo-darwin-64@2.3.0: + resolution: {integrity: sha512-pji+D49PhFItyQjf2QVoLZw2d3oRGo8gJgKyOiRzvip78Rzie74quA8XNwSg/DuzM7xx6gJ3p2/LylTTlgZXxQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.2.3: - resolution: {integrity: sha512-+EIMHkuLFqUdJYsA3roj66t9+9IciCajgj+DVek+QezEdOJKcRxlvDOS2BUaeN8kEzVSsNiAGnoysFWYw4K0HA==} + turbo-darwin-arm64@2.3.0: + resolution: {integrity: sha512-AJrGIL9BO41mwDF/IBHsNGwvtdyB911vp8f5mbNo1wG66gWTvOBg7WCtYQBvCo11XTenTfXPRSsAb7w3WAZb6w==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.2.3: - resolution: {integrity: sha512-UBhJCYnqtaeOBQLmLo8BAisWbc9v9daL9G8upLR+XGj6vuN/Nz6qUAhverN4Pyej1g4Nt1BhROnj6GLOPYyqxQ==} + turbo-linux-64@2.3.0: + resolution: {integrity: sha512-jZqW6vc2sPJT3M/3ZmV1Cg4ecQVPqsbHncG/RnogHpBu783KCSXIndgxvUQNm9qfgBYbZDBnP1md63O4UTElhw==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.2.3: - resolution: {integrity: sha512-hJYT9dN06XCQ3jBka/EWvvAETnHRs3xuO/rb5bESmDfG+d9yQjeTMlhRXKrr4eyIMt6cLDt1LBfyi+6CQ+VAwQ==} + turbo-linux-arm64@2.3.0: + resolution: {integrity: sha512-HUbDLJlvd/hxuyCNO0BmEWYQj0TugRMvSQeG8vHJH+Lq8qOgDAe7J0K73bFNbZejZQxW3C3XEiZFB3pnpO78+A==} cpu: [arm64] os: [linux] - turbo-windows-64@2.2.3: - resolution: {integrity: sha512-NPrjacrZypMBF31b4HE4ROg4P3nhMBPHKS5WTpMwf7wydZ8uvdEHpESVNMOtqhlp857zbnKYgP+yJF30H3N2dQ==} + turbo-windows-64@2.3.0: + resolution: {integrity: sha512-c5rxrGNTYDWX9QeMzWLFE9frOXnKjHGEvQMp1SfldDlbZYsloX9UKs31TzUThzfTgTiz8NYuShaXJ2UvTMnV/g==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.2.3: - resolution: {integrity: sha512-fnNrYBCqn6zgKPKLHu4sOkihBI/+0oYFr075duRxqUZ+1aLWTAGfHZLgjVeLh3zR37CVzuerGIPWAEkNhkWEIw==} + turbo-windows-arm64@2.3.0: + resolution: {integrity: sha512-7qfUuYhfIVb1AZgs89DxhXK+zZez6O2ocmixEQ4hXZK7ytnBt5vaz2zGNJJKFNYIL5HX1C3tuHolnpNgDNCUIg==} cpu: [arm64] os: [win32] - turbo@2.2.3: - resolution: {integrity: sha512-5lDvSqIxCYJ/BAd6rQGK/AzFRhBkbu4JHVMLmGh/hCb7U3CqSnr5Tjwfy9vc+/5wG2DJ6wttgAaA7MoCgvBKZQ==} + turbo@2.3.0: + resolution: {integrity: sha512-/uOq5o2jwRPyaUDnwBpOR5k9mQq4c3wziBgWNWttiYQPmbhDtrKYPRBxTvA2WpgQwRIbt8UM612RMN8n/TvmHA==} hasBin: true type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - type@2.7.3: - resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true - ua-parser-js@1.0.37: - resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} - - ufo@1.2.0: - resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} + ua-parser-js@1.0.39: + resolution: {integrity: sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==} + hasBin: true unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -5028,6 +5092,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici@5.28.2: resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} engines: {node: '>=14.0'} @@ -5035,22 +5102,12 @@ packages: universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.0.10: - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.0.11: - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -5058,14 +5115,11 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - url@0.10.3: resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} - use-sync-external-store@1.2.0: - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + use-sync-external-store@1.2.2: + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -5083,8 +5137,8 @@ packages: resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} hasBin: true - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true vary@1.1.2: @@ -5094,25 +5148,26 @@ packages: victory-vendor@36.6.8: resolution: {integrity: sha512-H3kyQ+2zgjMPvbPqAl7Vwm2FD5dU7/4bCTQakFQnpIsfDljeOMDojRsrmJfwh4oAlNnWhpAf+mbAoLh8u7dwyQ==} - vite-node@0.34.4: - resolution: {integrity: sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ==} - engines: {node: '>=v14.18.0'} + vite-node@2.1.5: + resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-plugin-svgr@2.4.0: - resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==} + vite-plugin-svgr@4.3.0: + resolution: {integrity: sha512-Jy9qLB2/PyWklpYy0xk0UU3TlU0t2UMpJXZvf+hWII1lAmRHrOUKi11Uw8N3rxoNk7atZNYO3pR3vI1f7oi+6w==} peerDependencies: - vite: ^2.6.0 || 3 || 4 + vite: '>=2.6.0' - vite@4.4.9: - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} - engines: {node: ^14.18.0 || >=16.0.0} + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -5125,6 +5180,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -5132,22 +5189,22 @@ packages: terser: optional: true - vitest@0.34.4: - resolution: {integrity: sha512-SE/laOsB6995QlbSE6BtkpXDeVNLJc1u2LHRG/OpnN4RsRzM3GQm4nm3PQCK5OBtrsUqnhzLdnT7se3aeNGdlw==} - engines: {node: '>=v14.18.0'} + vitest@2.1.5: + resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.5 + '@vitest/ui': 2.1.5 happy-dom: '*' jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/node': + optional: true '@vitest/browser': optional: true '@vitest/ui': @@ -5156,16 +5213,10 @@ packages: optional: true jsdom: optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} @@ -5188,23 +5239,32 @@ packages: websoc-fuzzy-search@1.0.1: resolution: {integrity: sha512-1UlDdT2OvMxVIczNSQzI+vSoojfagbORdwtMQiLAnG1zVLG9Po6x5+VWNysi8w5xoxE2NootQH72HzoenLygDg==} - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} - whatwg-url@12.0.1: - resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} - engines: {node: '>=14'} + whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} which-typed-array@1.1.9: resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} @@ -5215,31 +5275,28 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true - word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.14.1: - resolution: {integrity: sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5250,9 +5307,9 @@ packages: utf-8-validate: optional: true - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} xml2js@0.4.19: resolution: {integrity: sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==} @@ -5279,16 +5336,14 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.2.1: - resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} + hasBin: true yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} @@ -5302,35 +5357,37 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - - yup@0.32.11: - resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} - engines: {node: '>=10'} - - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} - zustand@4.3.3: - resolution: {integrity: sha512-x2jXq8S0kfLGNwGh87nhRfEc2eZy37tSatpSoSIN+O6HIaBhgQHSONV/F9VNrNcBcKQu/E80K1DeHDYQC/zCrQ==} - engines: {node: '>=12.7.0'} + zustand@5.0.1: + resolution: {integrity: sha512-pRET7Lao2z+n5R/HduXMio35TncTlSW68WsYBq2Lg1ASspsNGjpwLAsij3RpouyV6+kHMwwwzP0bZPD70/Jx/w==} + engines: {node: '>=12.20.0'} peerDependencies: - immer: '>=9.0' - react: '>=16.8' + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' peerDependenciesMeta: + '@types/react': + optional: true immer: optional: true react: optional: true + use-sync-external-store: + optional: true snapshots: - '@actions/core@1.10.1': + '@actions/core@1.11.1': dependencies: + '@actions/exec': 1.1.1 '@actions/http-client': 2.2.0 - uuid: 8.3.2 + + '@actions/exec@1.1.1': + dependencies: + '@actions/io': 1.1.3 '@actions/github@6.0.0': dependencies: @@ -5344,1524 +5401,1108 @@ snapshots: tunnel: 0.0.6 undici: 5.28.2 + '@actions/io@1.1.3': {} + '@ampproject/remapping@2.2.0': dependencies: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.17 - '@aws-cdk/asset-awscli-v1@2.2.201': {} - - '@aws-cdk/asset-kubectl-v20@2.1.2': {} - - '@aws-cdk/asset-node-proxy-agent-v6@2.0.1': {} - - '@aws-crypto/crc32@3.0.0': - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.489.0 - tslib: 1.14.1 - - '@aws-crypto/ie11-detection@3.0.0': - dependencies: - tslib: 1.14.1 - - '@aws-crypto/sha256-browser@3.0.0': - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.489.0 - '@aws-sdk/util-locate-window': 3.310.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - - '@aws-crypto/sha256-js@3.0.0': - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.489.0 - tslib: 1.14.1 - - '@aws-crypto/supports-web-crypto@3.0.0': - dependencies: - tslib: 1.14.1 - - '@aws-crypto/util@3.0.0': - dependencies: - '@aws-sdk/types': 3.347.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - - '@aws-sdk/abort-controller@3.329.0': - dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/client-cloudformation@3.490.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.490.0 - '@aws-sdk/core': 3.490.0 - '@aws-sdk/credential-provider-node': 3.490.0 - '@aws-sdk/middleware-host-header': 3.489.0 - '@aws-sdk/middleware-logger': 3.489.0 - '@aws-sdk/middleware-recursion-detection': 3.489.0 - '@aws-sdk/middleware-signing': 3.489.0 - '@aws-sdk/middleware-user-agent': 3.489.0 - '@aws-sdk/region-config-resolver': 3.489.0 - '@aws-sdk/types': 3.489.0 - '@aws-sdk/util-endpoints': 3.489.0 - '@aws-sdk/util-user-agent-browser': 3.489.0 - '@aws-sdk/util-user-agent-node': 3.489.0 - '@smithy/config-resolver': 2.0.23 - '@smithy/core': 1.2.2 - '@smithy/fetch-http-handler': 2.3.2 - '@smithy/hash-node': 2.0.18 - '@smithy/invalid-dependency': 2.0.16 - '@smithy/middleware-content-length': 2.0.18 - '@smithy/middleware-endpoint': 2.3.0 - '@smithy/middleware-retry': 2.0.26 - '@smithy/middleware-serde': 2.0.16 - '@smithy/middleware-stack': 2.0.10 - '@smithy/node-config-provider': 2.1.9 - '@smithy/node-http-handler': 2.2.2 - '@smithy/protocol-http': 3.0.12 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - '@smithy/url-parser': 2.0.16 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.24 - '@smithy/util-defaults-mode-node': 2.0.32 - '@smithy/util-endpoints': 1.0.8 - '@smithy/util-retry': 2.0.9 - '@smithy/util-utf8': 2.0.2 - '@smithy/util-waiter': 2.0.16 - fast-xml-parser: 4.2.5 - tslib: 2.5.0 - uuid: 8.3.2 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-dynamodb@3.332.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.332.0 - '@aws-sdk/config-resolver': 3.329.0 - '@aws-sdk/credential-provider-node': 3.332.0 - '@aws-sdk/fetch-http-handler': 3.329.0 - '@aws-sdk/hash-node': 3.329.0 - '@aws-sdk/invalid-dependency': 3.329.0 - '@aws-sdk/middleware-content-length': 3.329.0 - '@aws-sdk/middleware-endpoint': 3.329.0 - '@aws-sdk/middleware-endpoint-discovery': 3.329.0 - '@aws-sdk/middleware-host-header': 3.329.0 - '@aws-sdk/middleware-logger': 3.329.0 - '@aws-sdk/middleware-recursion-detection': 3.329.0 - '@aws-sdk/middleware-retry': 3.329.0 - '@aws-sdk/middleware-serde': 3.329.0 - '@aws-sdk/middleware-signing': 3.329.0 - '@aws-sdk/middleware-stack': 3.329.0 - '@aws-sdk/middleware-user-agent': 3.332.0 - '@aws-sdk/node-config-provider': 3.329.0 - '@aws-sdk/node-http-handler': 3.329.0 - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/smithy-client': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/url-parser': 3.329.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.329.0 - '@aws-sdk/util-defaults-mode-node': 3.329.0 - '@aws-sdk/util-endpoints': 3.332.0 - '@aws-sdk/util-retry': 3.329.0 - '@aws-sdk/util-user-agent-browser': 3.329.0 - '@aws-sdk/util-user-agent-node': 3.329.0 - '@aws-sdk/util-utf8': 3.310.0 - '@aws-sdk/util-waiter': 3.329.0 - tslib: 2.5.0 - uuid: 8.3.2 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sso-oidc@3.332.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/config-resolver': 3.329.0 - '@aws-sdk/fetch-http-handler': 3.329.0 - '@aws-sdk/hash-node': 3.329.0 - '@aws-sdk/invalid-dependency': 3.329.0 - '@aws-sdk/middleware-content-length': 3.329.0 - '@aws-sdk/middleware-endpoint': 3.329.0 - '@aws-sdk/middleware-host-header': 3.329.0 - '@aws-sdk/middleware-logger': 3.329.0 - '@aws-sdk/middleware-recursion-detection': 3.329.0 - '@aws-sdk/middleware-retry': 3.329.0 - '@aws-sdk/middleware-serde': 3.329.0 - '@aws-sdk/middleware-stack': 3.329.0 - '@aws-sdk/middleware-user-agent': 3.332.0 - '@aws-sdk/node-config-provider': 3.329.0 - '@aws-sdk/node-http-handler': 3.329.0 - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/smithy-client': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/url-parser': 3.329.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.329.0 - '@aws-sdk/util-defaults-mode-node': 3.329.0 - '@aws-sdk/util-endpoints': 3.332.0 - '@aws-sdk/util-retry': 3.329.0 - '@aws-sdk/util-user-agent-browser': 3.329.0 - '@aws-sdk/util-user-agent-node': 3.329.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.5.0 + '@ark/schema@0.23.0': + dependencies: + '@ark/util': 0.23.0 + + '@ark/util@0.23.0': {} + + '@aws-cdk/asset-awscli-v1@2.2.211': {} + + '@aws-cdk/asset-kubectl-v20@2.1.3': {} + + '@aws-cdk/asset-node-proxy-agent-v6@2.1.0': {} + + '@aws-cdk/cloud-assembly-schema@38.0.1': {} + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.692.0 + '@aws-sdk/util-locate-window': 3.693.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.692.0 + tslib: 2.8.1 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.692.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-sdk/client-cloudformation@3.693.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.693.0(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/client-sts': 3.693.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/credential-provider-node': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/middleware-host-header': 3.693.0 + '@aws-sdk/middleware-logger': 3.693.0 + '@aws-sdk/middleware-recursion-detection': 3.693.0 + '@aws-sdk/middleware-user-agent': 3.693.0 + '@aws-sdk/region-config-resolver': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@aws-sdk/util-endpoints': 3.693.0 + '@aws-sdk/util-user-agent-browser': 3.693.0 + '@aws-sdk/util-user-agent-node': 3.693.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + '@smithy/util-waiter': 3.1.9 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.332.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/config-resolver': 3.329.0 - '@aws-sdk/fetch-http-handler': 3.329.0 - '@aws-sdk/hash-node': 3.329.0 - '@aws-sdk/invalid-dependency': 3.329.0 - '@aws-sdk/middleware-content-length': 3.329.0 - '@aws-sdk/middleware-endpoint': 3.329.0 - '@aws-sdk/middleware-host-header': 3.329.0 - '@aws-sdk/middleware-logger': 3.329.0 - '@aws-sdk/middleware-recursion-detection': 3.329.0 - '@aws-sdk/middleware-retry': 3.329.0 - '@aws-sdk/middleware-serde': 3.329.0 - '@aws-sdk/middleware-stack': 3.329.0 - '@aws-sdk/middleware-user-agent': 3.332.0 - '@aws-sdk/node-config-provider': 3.329.0 - '@aws-sdk/node-http-handler': 3.329.0 - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/smithy-client': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/url-parser': 3.329.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.329.0 - '@aws-sdk/util-defaults-mode-node': 3.329.0 - '@aws-sdk/util-endpoints': 3.332.0 - '@aws-sdk/util-retry': 3.329.0 - '@aws-sdk/util-user-agent-browser': 3.329.0 - '@aws-sdk/util-user-agent-node': 3.329.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.5.0 + '@aws-sdk/client-dynamodb@3.693.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.693.0(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/client-sts': 3.693.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/credential-provider-node': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/middleware-endpoint-discovery': 3.693.0 + '@aws-sdk/middleware-host-header': 3.693.0 + '@aws-sdk/middleware-logger': 3.693.0 + '@aws-sdk/middleware-recursion-detection': 3.693.0 + '@aws-sdk/middleware-user-agent': 3.693.0 + '@aws-sdk/region-config-resolver': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@aws-sdk/util-endpoints': 3.693.0 + '@aws-sdk/util-user-agent-browser': 3.693.0 + '@aws-sdk/util-user-agent-node': 3.693.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + '@smithy/util-waiter': 3.1.9 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.490.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.490.0 - '@aws-sdk/middleware-host-header': 3.489.0 - '@aws-sdk/middleware-logger': 3.489.0 - '@aws-sdk/middleware-recursion-detection': 3.489.0 - '@aws-sdk/middleware-user-agent': 3.489.0 - '@aws-sdk/region-config-resolver': 3.489.0 - '@aws-sdk/types': 3.489.0 - '@aws-sdk/util-endpoints': 3.489.0 - '@aws-sdk/util-user-agent-browser': 3.489.0 - '@aws-sdk/util-user-agent-node': 3.489.0 - '@smithy/config-resolver': 2.0.23 - '@smithy/core': 1.2.2 - '@smithy/fetch-http-handler': 2.3.2 - '@smithy/hash-node': 2.0.18 - '@smithy/invalid-dependency': 2.0.16 - '@smithy/middleware-content-length': 2.0.18 - '@smithy/middleware-endpoint': 2.3.0 - '@smithy/middleware-retry': 2.0.26 - '@smithy/middleware-serde': 2.0.16 - '@smithy/middleware-stack': 2.0.10 - '@smithy/node-config-provider': 2.1.9 - '@smithy/node-http-handler': 2.2.2 - '@smithy/protocol-http': 3.0.12 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - '@smithy/url-parser': 2.0.16 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.24 - '@smithy/util-defaults-mode-node': 2.0.32 - '@smithy/util-endpoints': 1.0.8 - '@smithy/util-retry': 2.0.9 - '@smithy/util-utf8': 2.0.2 - tslib: 2.5.0 + '@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0)': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sts': 3.693.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/credential-provider-node': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/middleware-host-header': 3.693.0 + '@aws-sdk/middleware-logger': 3.693.0 + '@aws-sdk/middleware-recursion-detection': 3.693.0 + '@aws-sdk/middleware-user-agent': 3.693.0 + '@aws-sdk/region-config-resolver': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@aws-sdk/util-endpoints': 3.693.0 + '@aws-sdk/util-user-agent-browser': 3.693.0 + '@aws-sdk/util-user-agent-node': 3.693.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.332.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/config-resolver': 3.329.0 - '@aws-sdk/credential-provider-node': 3.332.0 - '@aws-sdk/fetch-http-handler': 3.329.0 - '@aws-sdk/hash-node': 3.329.0 - '@aws-sdk/invalid-dependency': 3.329.0 - '@aws-sdk/middleware-content-length': 3.329.0 - '@aws-sdk/middleware-endpoint': 3.329.0 - '@aws-sdk/middleware-host-header': 3.329.0 - '@aws-sdk/middleware-logger': 3.329.0 - '@aws-sdk/middleware-recursion-detection': 3.329.0 - '@aws-sdk/middleware-retry': 3.329.0 - '@aws-sdk/middleware-sdk-sts': 3.329.0 - '@aws-sdk/middleware-serde': 3.329.0 - '@aws-sdk/middleware-signing': 3.329.0 - '@aws-sdk/middleware-stack': 3.329.0 - '@aws-sdk/middleware-user-agent': 3.332.0 - '@aws-sdk/node-config-provider': 3.329.0 - '@aws-sdk/node-http-handler': 3.329.0 - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/smithy-client': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/url-parser': 3.329.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.329.0 - '@aws-sdk/util-defaults-mode-node': 3.329.0 - '@aws-sdk/util-endpoints': 3.332.0 - '@aws-sdk/util-retry': 3.329.0 - '@aws-sdk/util-user-agent-browser': 3.329.0 - '@aws-sdk/util-user-agent-node': 3.329.0 - '@aws-sdk/util-utf8': 3.310.0 - fast-xml-parser: 4.1.2 - tslib: 2.5.0 + '@aws-sdk/client-sso@3.693.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/middleware-host-header': 3.693.0 + '@aws-sdk/middleware-logger': 3.693.0 + '@aws-sdk/middleware-recursion-detection': 3.693.0 + '@aws-sdk/middleware-user-agent': 3.693.0 + '@aws-sdk/region-config-resolver': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@aws-sdk/util-endpoints': 3.693.0 + '@aws-sdk/util-user-agent-browser': 3.693.0 + '@aws-sdk/util-user-agent-node': 3.693.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.490.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.490.0 - '@aws-sdk/credential-provider-node': 3.490.0 - '@aws-sdk/middleware-host-header': 3.489.0 - '@aws-sdk/middleware-logger': 3.489.0 - '@aws-sdk/middleware-recursion-detection': 3.489.0 - '@aws-sdk/middleware-user-agent': 3.489.0 - '@aws-sdk/region-config-resolver': 3.489.0 - '@aws-sdk/types': 3.489.0 - '@aws-sdk/util-endpoints': 3.489.0 - '@aws-sdk/util-user-agent-browser': 3.489.0 - '@aws-sdk/util-user-agent-node': 3.489.0 - '@smithy/config-resolver': 2.0.23 - '@smithy/core': 1.2.2 - '@smithy/fetch-http-handler': 2.3.2 - '@smithy/hash-node': 2.0.18 - '@smithy/invalid-dependency': 2.0.16 - '@smithy/middleware-content-length': 2.0.18 - '@smithy/middleware-endpoint': 2.3.0 - '@smithy/middleware-retry': 2.0.26 - '@smithy/middleware-serde': 2.0.16 - '@smithy/middleware-stack': 2.0.10 - '@smithy/node-config-provider': 2.1.9 - '@smithy/node-http-handler': 2.2.2 - '@smithy/protocol-http': 3.0.12 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - '@smithy/url-parser': 2.0.16 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.24 - '@smithy/util-defaults-mode-node': 2.0.32 - '@smithy/util-endpoints': 1.0.8 - '@smithy/util-middleware': 2.0.9 - '@smithy/util-retry': 2.0.9 - '@smithy/util-utf8': 2.0.2 - fast-xml-parser: 4.2.5 - tslib: 2.5.0 + '@aws-sdk/client-sts@3.693.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.693.0(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/core': 3.693.0 + '@aws-sdk/credential-provider-node': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/middleware-host-header': 3.693.0 + '@aws-sdk/middleware-logger': 3.693.0 + '@aws-sdk/middleware-recursion-detection': 3.693.0 + '@aws-sdk/middleware-user-agent': 3.693.0 + '@aws-sdk/region-config-resolver': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@aws-sdk/util-endpoints': 3.693.0 + '@aws-sdk/util-user-agent-browser': 3.693.0 + '@aws-sdk/util-user-agent-node': 3.693.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/config-resolver@3.329.0': - dependencies: - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-config-provider': 3.310.0 - '@aws-sdk/util-middleware': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/core@3.490.0': - dependencies: - '@smithy/core': 1.2.2 - '@smithy/protocol-http': 3.0.12 - '@smithy/signature-v4': 2.0.19 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - tslib: 2.5.0 - - '@aws-sdk/credential-provider-env@3.329.0': - dependencies: - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/credential-provider-env@3.489.0': - dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/property-provider': 2.0.17 - '@smithy/types': 2.8.0 - tslib: 2.5.0 - - '@aws-sdk/credential-provider-imds@3.329.0': - dependencies: - '@aws-sdk/node-config-provider': 3.329.0 - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/url-parser': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/credential-provider-ini@3.332.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.329.0 - '@aws-sdk/credential-provider-imds': 3.329.0 - '@aws-sdk/credential-provider-process': 3.329.0 - '@aws-sdk/credential-provider-sso': 3.332.0 - '@aws-sdk/credential-provider-web-identity': 3.329.0 - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/shared-ini-file-loader': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/core@3.693.0': + dependencies: + '@aws-sdk/types': 3.692.0 + '@smithy/core': 2.5.3 + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/signature-v4': 4.2.3 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/util-middleware': 3.0.10 + fast-xml-parser: 4.4.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.693.0': + dependencies: + '@aws-sdk/core': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.693.0': + dependencies: + '@aws-sdk/core': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/node-http-handler': 3.3.1 + '@smithy/property-provider': 3.1.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/util-stream': 3.3.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))(@aws-sdk/client-sts@3.693.0)': + dependencies: + '@aws-sdk/client-sts': 3.693.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/credential-provider-env': 3.693.0 + '@aws-sdk/credential-provider-http': 3.693.0 + '@aws-sdk/credential-provider-process': 3.693.0 + '@aws-sdk/credential-provider-sso': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0)) + '@aws-sdk/credential-provider-web-identity': 3.693.0(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/types': 3.692.0 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-ini@3.490.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.489.0 - '@aws-sdk/credential-provider-process': 3.489.0 - '@aws-sdk/credential-provider-sso': 3.490.0 - '@aws-sdk/credential-provider-web-identity': 3.489.0 - '@aws-sdk/types': 3.489.0 - '@smithy/credential-provider-imds': 2.1.5 - '@smithy/property-provider': 2.0.17 - '@smithy/shared-ini-file-loader': 2.2.8 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@aws-sdk/credential-provider-node@3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))(@aws-sdk/client-sts@3.693.0)': + dependencies: + '@aws-sdk/credential-provider-env': 3.693.0 + '@aws-sdk/credential-provider-http': 3.693.0 + '@aws-sdk/credential-provider-ini': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/credential-provider-process': 3.693.0 + '@aws-sdk/credential-provider-sso': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0)) + '@aws-sdk/credential-provider-web-identity': 3.693.0(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/types': 3.692.0 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-node@3.332.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.329.0 - '@aws-sdk/credential-provider-imds': 3.329.0 - '@aws-sdk/credential-provider-ini': 3.332.0 - '@aws-sdk/credential-provider-process': 3.329.0 - '@aws-sdk/credential-provider-sso': 3.332.0 - '@aws-sdk/credential-provider-web-identity': 3.329.0 - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/shared-ini-file-loader': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/credential-provider-process@3.693.0': + dependencies: + '@aws-sdk/core': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))': + dependencies: + '@aws-sdk/client-sso': 3.693.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/token-providers': 3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0)) + '@aws-sdk/types': 3.692.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.490.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.489.0 - '@aws-sdk/credential-provider-ini': 3.490.0 - '@aws-sdk/credential-provider-process': 3.489.0 - '@aws-sdk/credential-provider-sso': 3.490.0 - '@aws-sdk/credential-provider-web-identity': 3.489.0 - '@aws-sdk/types': 3.489.0 - '@smithy/credential-provider-imds': 2.1.5 - '@smithy/property-provider': 2.0.17 - '@smithy/shared-ini-file-loader': 2.2.8 - '@smithy/types': 2.8.0 - tslib: 2.5.0 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-process@3.329.0': - dependencies: - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/shared-ini-file-loader': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/credential-provider-process@3.489.0': - dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/property-provider': 2.0.17 - '@smithy/shared-ini-file-loader': 2.2.8 - '@smithy/types': 2.8.0 - tslib: 2.5.0 - - '@aws-sdk/credential-provider-sso@3.332.0': - dependencies: - '@aws-sdk/client-sso': 3.332.0 - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/shared-ini-file-loader': 3.329.0 - '@aws-sdk/token-providers': 3.332.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-sso@3.490.0': - dependencies: - '@aws-sdk/client-sso': 3.490.0 - '@aws-sdk/token-providers': 3.489.0 - '@aws-sdk/types': 3.489.0 - '@smithy/property-provider': 2.0.17 - '@smithy/shared-ini-file-loader': 2.2.8 - '@smithy/types': 2.8.0 - tslib: 2.5.0 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.329.0': + '@aws-sdk/credential-provider-web-identity@3.693.0(@aws-sdk/client-sts@3.693.0)': dependencies: - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/credential-provider-web-identity@3.489.0': - dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/property-provider': 2.0.17 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@aws-sdk/client-sts': 3.693.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/endpoint-cache@3.310.0': + '@aws-sdk/endpoint-cache@3.693.0': dependencies: mnemonist: 0.38.3 - tslib: 2.5.0 - - '@aws-sdk/fetch-http-handler@3.329.0': - dependencies: - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/querystring-builder': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-base64': 3.310.0 - tslib: 2.5.0 - - '@aws-sdk/hash-node@3.329.0': - dependencies: - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-buffer-from': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.5.0 + tslib: 2.8.1 - '@aws-sdk/invalid-dependency@3.329.0': + '@aws-sdk/lib-dynamodb@3.693.0(@aws-sdk/client-dynamodb@3.693.0)': dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/is-array-buffer@3.310.0': - dependencies: - tslib: 2.5.0 - - '@aws-sdk/lib-dynamodb@3.332.0(@aws-sdk/client-dynamodb@3.332.0)(@aws-sdk/smithy-client@3.347.0)(@aws-sdk/types@3.489.0)': - dependencies: - '@aws-sdk/client-dynamodb': 3.332.0 - '@aws-sdk/smithy-client': 3.347.0 - '@aws-sdk/types': 3.489.0 - '@aws-sdk/util-dynamodb': 3.332.0 - tslib: 2.5.0 - - '@aws-sdk/middleware-content-length@3.329.0': - dependencies: - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/middleware-endpoint-discovery@3.329.0': - dependencies: - '@aws-sdk/endpoint-cache': 3.310.0 - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/middleware-endpoint@3.329.0': - dependencies: - '@aws-sdk/middleware-serde': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/url-parser': 3.329.0 - '@aws-sdk/util-middleware': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/client-dynamodb': 3.693.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/util-dynamodb': 3.693.0(@aws-sdk/client-dynamodb@3.693.0) + '@smithy/core': 2.5.3 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.329.0': + '@aws-sdk/middleware-endpoint-discovery@3.693.0': dependencies: - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/endpoint-cache': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.489.0': + '@aws-sdk/middleware-host-header@3.693.0': dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/protocol-http': 3.0.12 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@aws-sdk/types': 3.692.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.329.0': + '@aws-sdk/middleware-logger@3.693.0': dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/types': 3.692.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.489.0': + '@aws-sdk/middleware-recursion-detection@3.693.0': dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@aws-sdk/types': 3.692.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.329.0': + '@aws-sdk/middleware-user-agent@3.693.0': dependencies: - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/core': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@aws-sdk/util-endpoints': 3.693.0 + '@smithy/core': 2.5.3 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.489.0': + '@aws-sdk/region-config-resolver@3.693.0': dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/protocol-http': 3.0.12 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@aws-sdk/types': 3.692.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.10 + tslib: 2.8.1 - '@aws-sdk/middleware-retry@3.329.0': + '@aws-sdk/token-providers@3.693.0(@aws-sdk/client-sso-oidc@3.693.0(@aws-sdk/client-sts@3.693.0))': dependencies: - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/service-error-classification': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-middleware': 3.329.0 - '@aws-sdk/util-retry': 3.329.0 - tslib: 2.5.0 - uuid: 8.3.2 + '@aws-sdk/client-sso-oidc': 3.693.0(@aws-sdk/client-sts@3.693.0) + '@aws-sdk/types': 3.692.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-sdk-sts@3.329.0': + '@aws-sdk/types@3.692.0': dependencies: - '@aws-sdk/middleware-signing': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/middleware-serde@3.329.0': + '@aws-sdk/util-dynamodb@3.693.0(@aws-sdk/client-dynamodb@3.693.0)': dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/client-dynamodb': 3.693.0 + tslib: 2.8.1 - '@aws-sdk/middleware-signing@3.329.0': + '@aws-sdk/util-endpoints@3.693.0': dependencies: - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/signature-v4': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-middleware': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/types': 3.692.0 + '@smithy/types': 3.7.1 + '@smithy/util-endpoints': 2.1.6 + tslib: 2.8.1 - '@aws-sdk/middleware-signing@3.489.0': + '@aws-sdk/util-locate-window@3.693.0': dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/property-provider': 2.0.17 - '@smithy/protocol-http': 3.0.12 - '@smithy/signature-v4': 2.0.19 - '@smithy/types': 2.8.0 - '@smithy/util-middleware': 2.0.9 - tslib: 2.5.0 + tslib: 2.8.1 - '@aws-sdk/middleware-stack@3.329.0': + '@aws-sdk/util-user-agent-browser@3.693.0': dependencies: - tslib: 2.5.0 - - '@aws-sdk/middleware-stack@3.347.0': - dependencies: - tslib: 2.5.0 - - '@aws-sdk/middleware-user-agent@3.332.0': - dependencies: - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-endpoints': 3.332.0 - tslib: 2.5.0 - - '@aws-sdk/middleware-user-agent@3.489.0': - dependencies: - '@aws-sdk/types': 3.489.0 - '@aws-sdk/util-endpoints': 3.489.0 - '@smithy/protocol-http': 3.0.12 - '@smithy/types': 2.8.0 - tslib: 2.5.0 - - '@aws-sdk/node-config-provider@3.329.0': - dependencies: - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/shared-ini-file-loader': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/node-http-handler@3.329.0': - dependencies: - '@aws-sdk/abort-controller': 3.329.0 - '@aws-sdk/protocol-http': 3.329.0 - '@aws-sdk/querystring-builder': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/property-provider@3.329.0': - dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/protocol-http@3.329.0': - dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/querystring-builder@3.329.0': - dependencies: - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-uri-escape': 3.310.0 - tslib: 2.5.0 - - '@aws-sdk/querystring-parser@3.329.0': - dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/region-config-resolver@3.489.0': - dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/node-config-provider': 2.1.9 - '@smithy/types': 2.8.0 - '@smithy/util-config-provider': 2.1.0 - '@smithy/util-middleware': 2.0.9 - tslib: 2.5.0 - - '@aws-sdk/service-error-classification@3.329.0': {} + '@aws-sdk/types': 3.692.0 + '@smithy/types': 3.7.1 + bowser: 2.11.0 + tslib: 2.8.1 - '@aws-sdk/shared-ini-file-loader@3.329.0': + '@aws-sdk/util-user-agent-node@3.693.0': dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@aws-sdk/middleware-user-agent': 3.693.0 + '@aws-sdk/types': 3.692.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@aws-sdk/signature-v4@3.329.0': + '@aws-sdk/util-waiter@3.374.0': dependencies: - '@aws-sdk/is-array-buffer': 3.310.0 - '@aws-sdk/types': 3.329.0 - '@aws-sdk/util-hex-encoding': 3.310.0 - '@aws-sdk/util-middleware': 3.329.0 - '@aws-sdk/util-uri-escape': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 + '@smithy/util-waiter': 1.1.0 tslib: 2.5.0 - '@aws-sdk/smithy-client@3.329.0': + '@babel/code-frame@7.26.2': dependencies: - '@aws-sdk/middleware-stack': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@aws-sdk/smithy-client@3.347.0': - dependencies: - '@aws-sdk/middleware-stack': 3.347.0 - '@aws-sdk/types': 3.347.0 - tslib: 2.5.0 + '@babel/compat-data@7.26.2': {} - '@aws-sdk/token-providers@3.332.0': + '@babel/core@7.26.0': dependencies: - '@aws-sdk/client-sso-oidc': 3.332.0 - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/shared-ini-file-loader': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/token-providers@3.489.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/middleware-host-header': 3.489.0 - '@aws-sdk/middleware-logger': 3.489.0 - '@aws-sdk/middleware-recursion-detection': 3.489.0 - '@aws-sdk/middleware-user-agent': 3.489.0 - '@aws-sdk/region-config-resolver': 3.489.0 - '@aws-sdk/types': 3.489.0 - '@aws-sdk/util-endpoints': 3.489.0 - '@aws-sdk/util-user-agent-browser': 3.489.0 - '@aws-sdk/util-user-agent-node': 3.489.0 - '@smithy/config-resolver': 2.0.23 - '@smithy/fetch-http-handler': 2.3.2 - '@smithy/hash-node': 2.0.18 - '@smithy/invalid-dependency': 2.0.16 - '@smithy/middleware-content-length': 2.0.18 - '@smithy/middleware-endpoint': 2.3.0 - '@smithy/middleware-retry': 2.0.26 - '@smithy/middleware-serde': 2.0.16 - '@smithy/middleware-stack': 2.0.10 - '@smithy/node-config-provider': 2.1.9 - '@smithy/node-http-handler': 2.2.2 - '@smithy/property-provider': 2.0.17 - '@smithy/protocol-http': 3.0.12 - '@smithy/shared-ini-file-loader': 2.2.8 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - '@smithy/url-parser': 2.0.16 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.24 - '@smithy/util-defaults-mode-node': 2.0.32 - '@smithy/util-endpoints': 1.0.8 - '@smithy/util-retry': 2.0.9 - '@smithy/util-utf8': 2.0.2 - tslib: 2.5.0 + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.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: - - aws-crt - - '@aws-sdk/types@3.329.0': - dependencies: - tslib: 2.5.0 - - '@aws-sdk/types@3.347.0': - dependencies: - tslib: 2.5.0 - - '@aws-sdk/types@3.489.0': - dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 - - '@aws-sdk/url-parser@3.329.0': - dependencies: - '@aws-sdk/querystring-parser': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 - - '@aws-sdk/util-base64@3.310.0': - dependencies: - '@aws-sdk/util-buffer-from': 3.310.0 - tslib: 2.5.0 - - '@aws-sdk/util-body-length-browser@3.310.0': - dependencies: - tslib: 2.5.0 - - '@aws-sdk/util-body-length-node@3.310.0': - dependencies: - tslib: 2.5.0 - - '@aws-sdk/util-buffer-from@3.310.0': - dependencies: - '@aws-sdk/is-array-buffer': 3.310.0 - tslib: 2.5.0 + - supports-color - '@aws-sdk/util-config-provider@3.310.0': + '@babel/generator@7.26.2': dependencies: - tslib: 2.5.0 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 - '@aws-sdk/util-defaults-mode-browser@3.329.0': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/types': 3.329.0 - bowser: 2.11.0 - tslib: 2.5.0 + '@babel/compat-data': 7.26.2 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 - '@aws-sdk/util-defaults-mode-node@3.329.0': + '@babel/helper-module-imports@7.25.9': dependencies: - '@aws-sdk/config-resolver': 3.329.0 - '@aws-sdk/credential-provider-imds': 3.329.0 - '@aws-sdk/node-config-provider': 3.329.0 - '@aws-sdk/property-provider': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color - '@aws-sdk/util-dynamodb@3.332.0': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - tslib: 2.5.0 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color - '@aws-sdk/util-endpoints@3.332.0': - dependencies: - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@babel/helper-plugin-utils@7.25.9': {} - '@aws-sdk/util-endpoints@3.489.0': - dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/types': 2.8.0 - '@smithy/util-endpoints': 1.0.8 - tslib: 2.5.0 + '@babel/helper-string-parser@7.25.9': {} - '@aws-sdk/util-hex-encoding@3.310.0': - dependencies: - tslib: 2.5.0 + '@babel/helper-validator-identifier@7.25.9': {} - '@aws-sdk/util-locate-window@3.310.0': - dependencies: - tslib: 2.5.0 + '@babel/helper-validator-option@7.25.9': {} - '@aws-sdk/util-middleware@3.329.0': + '@babel/helpers@7.26.0': dependencies: - tslib: 2.5.0 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 - '@aws-sdk/util-retry@3.329.0': + '@babel/parser@7.26.2': dependencies: - '@aws-sdk/service-error-classification': 3.329.0 - tslib: 2.5.0 + '@babel/types': 7.26.0 - '@aws-sdk/util-uri-escape@3.310.0': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': dependencies: - tslib: 2.5.0 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@aws-sdk/util-user-agent-browser@3.329.0': + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': dependencies: - '@aws-sdk/types': 3.329.0 - bowser: 2.11.0 - tslib: 2.5.0 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@aws-sdk/util-user-agent-browser@3.489.0': + '@babel/runtime@7.20.13': dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/types': 2.8.0 - bowser: 2.11.0 - tslib: 2.5.0 + regenerator-runtime: 0.13.11 - '@aws-sdk/util-user-agent-node@3.329.0': + '@babel/runtime@7.22.11': dependencies: - '@aws-sdk/node-config-provider': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + regenerator-runtime: 0.14.0 - '@aws-sdk/util-user-agent-node@3.489.0': + '@babel/runtime@7.26.0': dependencies: - '@aws-sdk/types': 3.489.0 - '@smithy/node-config-provider': 2.1.9 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + regenerator-runtime: 0.14.1 - '@aws-sdk/util-utf8-browser@3.259.0': + '@babel/template@7.25.9': dependencies: - tslib: 2.5.0 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 - '@aws-sdk/util-utf8@3.310.0': + '@babel/traverse@7.25.9': dependencies: - '@aws-sdk/util-buffer-from': 3.310.0 - tslib: 2.5.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color - '@aws-sdk/util-waiter@3.329.0': + '@babel/types@7.26.0': dependencies: - '@aws-sdk/abort-controller': 3.329.0 - '@aws-sdk/types': 3.329.0 - tslib: 2.5.0 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 - '@aws-sdk/util-waiter@3.374.0': - dependencies: - '@smithy/util-waiter': 1.1.0 - tslib: 2.5.0 + '@codegenie/serverless-express@4.16.0': {} - '@babel/code-frame@7.18.6': - dependencies: - '@babel/highlight': 7.18.6 + '@date-io/core@3.0.0': {} - '@babel/code-frame@7.22.13': + '@date-io/date-fns@3.0.0(date-fns@4.1.0)': dependencies: - '@babel/highlight': 7.22.13 - chalk: 2.4.2 - - '@babel/compat-data@7.20.14': {} - - '@babel/compat-data@7.22.9': {} + '@date-io/core': 3.0.0 + optionalDependencies: + date-fns: 4.1.0 - '@babel/core@7.20.12': - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12) - '@babel/helper-module-transforms': 7.20.11 - '@babel/helpers': 7.20.13 - '@babel/parser': 7.20.15 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color + '@drizzle-team/brocli@0.10.2': {} - '@babel/core@7.22.17': + '@emotion/babel-plugin@11.12.0': dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.22.17(@babel/core@7.22.17) - '@babel/helpers': 7.22.15 - '@babel/parser': 7.22.16 - '@babel/template': 7.22.15 - '@babel/traverse': 7.22.17 - '@babel/types': 7.22.17 + '@babel/helper-module-imports': 7.25.9 + '@babel/runtime': 7.20.13 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.2 + babel-plugin-macros: 3.1.0 convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 transitivePeerDependencies: - supports-color - '@babel/generator@7.20.14': - dependencies: - '@babel/types': 7.20.7 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - - '@babel/generator@7.22.15': - dependencies: - '@babel/types': 7.22.17 - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.17 - jsesc: 2.5.2 - - '@babel/helper-compilation-targets@7.20.7(@babel/core@7.20.12)': - dependencies: - '@babel/compat-data': 7.20.14 - '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.5 - lru-cache: 5.1.1 - semver: 6.3.0 - - '@babel/helper-compilation-targets@7.22.15': + '@emotion/cache@11.13.1': dependencies: - '@babel/compat-data': 7.22.9 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.1 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 - '@babel/helper-environment-visitor@7.18.9': {} + '@emotion/hash@0.8.0': {} - '@babel/helper-environment-visitor@7.22.5': {} + '@emotion/hash@0.9.2': {} - '@babel/helper-function-name@7.19.0': + '@emotion/is-prop-valid@1.3.1': dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 + '@emotion/memoize': 0.9.0 - '@babel/helper-function-name@7.22.5': - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.22.17 + '@emotion/memoize@0.9.0': {} - '@babel/helper-hoist-variables@7.18.6': + '@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/types': 7.20.7 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.22.17 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.12.0 + '@emotion/cache': 11.13.1 + '@emotion/serialize': 1.3.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.1 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-imports@7.18.6': + '@emotion/serialize@1.3.2': dependencies: - '@babel/types': 7.20.7 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.1 + csstype: 3.1.3 - '@babel/helper-module-imports@7.22.15': - dependencies: - '@babel/types': 7.22.17 + '@emotion/sheet@1.4.0': {} - '@babel/helper-module-transforms@7.20.11': + '@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.20.2 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.12.0 + '@emotion/is-prop-valid': 1.3.1 + '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) + '@emotion/serialize': 1.3.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.22.17(@babel/core@7.22.17)': - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-environment-visitor': 7.22.5 - '@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.15 - - '@babel/helper-plugin-utils@7.22.5': {} + '@emotion/unitless@0.10.0': {} - '@babel/helper-simple-access@7.20.2': + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': dependencies: - '@babel/types': 7.20.7 + react: 18.3.1 - '@babel/helper-simple-access@7.22.5': - dependencies: - '@babel/types': 7.22.17 + '@emotion/utils@1.4.1': {} - '@babel/helper-split-export-declaration@7.18.6': - dependencies: - '@babel/types': 7.20.7 + '@emotion/weak-memoize@0.4.0': {} - '@babel/helper-split-export-declaration@7.22.6': + '@esbuild-kit/core-utils@3.1.0': dependencies: - '@babel/types': 7.22.17 - - '@babel/helper-string-parser@7.19.4': {} - - '@babel/helper-string-parser@7.22.5': {} - - '@babel/helper-validator-identifier@7.19.1': {} + esbuild: 0.17.19 + source-map-support: 0.5.21 - '@babel/helper-validator-identifier@7.22.15': {} + '@esbuild-kit/esm-loader@2.5.5': + dependencies: + '@esbuild-kit/core-utils': 3.1.0 + get-tsconfig: 4.6.2 - '@babel/helper-validator-option@7.18.6': {} + '@esbuild/aix-ppc64@0.19.12': + optional: true - '@babel/helper-validator-option@7.22.15': {} + '@esbuild/aix-ppc64@0.21.5': + optional: true - '@babel/helpers@7.20.13': - dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color + '@esbuild/aix-ppc64@0.23.1': + optional: true - '@babel/helpers@7.22.15': - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.22.17 - '@babel/types': 7.22.17 - transitivePeerDependencies: - - supports-color + '@esbuild/aix-ppc64@0.24.0': + optional: true - '@babel/highlight@7.18.6': - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 + '@esbuild/android-arm64@0.17.19': + optional: true - '@babel/highlight@7.22.13': - dependencies: - '@babel/helper-validator-identifier': 7.22.15 - chalk: 2.4.2 - js-tokens: 4.0.0 + '@esbuild/android-arm64@0.19.12': + optional: true - '@babel/parser@7.20.15': - dependencies: - '@babel/types': 7.20.7 + '@esbuild/android-arm64@0.21.5': + optional: true - '@babel/parser@7.22.16': - dependencies: - '@babel/types': 7.22.17 + '@esbuild/android-arm64@0.23.1': + optional: true - '@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.17)': - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 + '@esbuild/android-arm64@0.24.0': + optional: true - '@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.17)': - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 + '@esbuild/android-arm@0.17.19': + optional: true - '@babel/runtime@7.20.13': - dependencies: - regenerator-runtime: 0.13.11 + '@esbuild/android-arm@0.19.12': + optional: true - '@babel/runtime@7.22.11': - dependencies: - regenerator-runtime: 0.14.0 + '@esbuild/android-arm@0.21.5': + optional: true - '@babel/template@7.20.7': - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 + '@esbuild/android-arm@0.23.1': + optional: true - '@babel/template@7.22.15': - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.22.16 - '@babel/types': 7.22.17 + '@esbuild/android-arm@0.24.0': + optional: true - '@babel/traverse@7.20.13': - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@esbuild/android-x64@0.17.19': + optional: true - '@babel/traverse@7.22.17': - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.16 - '@babel/types': 7.22.17 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@esbuild/android-x64@0.19.12': + optional: true - '@babel/types@7.20.7': - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 + '@esbuild/android-x64@0.21.5': + optional: true - '@babel/types@7.22.17': - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.15 - to-fast-properties: 2.0.0 + '@esbuild/android-x64@0.23.1': + optional: true - '@date-io/core@2.16.0': {} + '@esbuild/android-x64@0.24.0': + optional: true - '@date-io/date-fns@2.16.0(date-fns@2.29.3)': - dependencies: - '@date-io/core': 2.16.0 - optionalDependencies: - date-fns: 2.29.3 + '@esbuild/darwin-arm64@0.17.19': + optional: true - '@emotion/babel-plugin@11.10.6': - dependencies: - '@babel/helper-module-imports': 7.18.6 - '@babel/runtime': 7.22.11 - '@emotion/hash': 0.9.0 - '@emotion/memoize': 0.8.0 - '@emotion/serialize': 1.1.1 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.1.3 + '@esbuild/darwin-arm64@0.19.12': + optional: true - '@emotion/cache@11.10.5': - dependencies: - '@emotion/memoize': 0.8.0 - '@emotion/sheet': 1.2.1 - '@emotion/utils': 1.2.0 - '@emotion/weak-memoize': 0.3.0 - stylis: 4.1.3 + '@esbuild/darwin-arm64@0.21.5': + optional: true - '@emotion/hash@0.8.0': {} + '@esbuild/darwin-arm64@0.23.1': + optional: true - '@emotion/hash@0.9.0': {} + '@esbuild/darwin-arm64@0.24.0': + optional: true - '@emotion/is-prop-valid@1.2.0': - dependencies: - '@emotion/memoize': 0.8.0 + '@esbuild/darwin-x64@0.17.19': + optional: true - '@emotion/is-prop-valid@1.2.1': - dependencies: - '@emotion/memoize': 0.8.1 + '@esbuild/darwin-x64@0.19.12': + optional: true - '@emotion/memoize@0.8.0': {} + '@esbuild/darwin-x64@0.21.5': + optional: true - '@emotion/memoize@0.8.1': {} + '@esbuild/darwin-x64@0.23.1': + optional: true - '@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0)': - dependencies: - '@babel/runtime': 7.20.13 - '@emotion/babel-plugin': 11.10.6 - '@emotion/cache': 11.10.5 - '@emotion/serialize': 1.1.1 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) - '@emotion/utils': 1.2.0 - '@emotion/weak-memoize': 0.3.0 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - optionalDependencies: - '@types/react': 18.0.28 + '@esbuild/darwin-x64@0.24.0': + optional: true - '@emotion/serialize@1.1.1': - dependencies: - '@emotion/hash': 0.9.0 - '@emotion/memoize': 0.8.0 - '@emotion/unitless': 0.8.0 - '@emotion/utils': 1.2.0 - csstype: 3.1.1 + '@esbuild/freebsd-arm64@0.17.19': + optional: true - '@emotion/sheet@1.2.1': {} + '@esbuild/freebsd-arm64@0.19.12': + optional: true - '@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0)': - dependencies: - '@babel/runtime': 7.20.13 - '@emotion/babel-plugin': 11.10.6 - '@emotion/is-prop-valid': 1.2.0 - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/serialize': 1.1.1 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) - '@emotion/utils': 1.2.0 - react: 18.2.0 - optionalDependencies: - '@types/react': 18.0.28 + '@esbuild/freebsd-arm64@0.21.5': + optional: true - '@emotion/unitless@0.8.0': {} + '@esbuild/freebsd-arm64@0.23.1': + optional: true - '@emotion/use-insertion-effect-with-fallbacks@1.0.0(react@18.2.0)': - dependencies: - react: 18.2.0 + '@esbuild/freebsd-arm64@0.24.0': + optional: true - '@emotion/utils@1.2.0': {} + '@esbuild/freebsd-x64@0.17.19': + optional: true - '@emotion/weak-memoize@0.3.0': {} + '@esbuild/freebsd-x64@0.19.12': + optional: true - '@esbuild-kit/cjs-loader@2.4.2': - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.6.2 + '@esbuild/freebsd-x64@0.21.5': + optional: true - '@esbuild-kit/core-utils@3.1.0': - dependencies: - esbuild: 0.17.19 - source-map-support: 0.5.21 + '@esbuild/freebsd-x64@0.23.1': + optional: true - '@esbuild-kit/esm-loader@2.5.5': - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.6.2 + '@esbuild/freebsd-x64@0.24.0': + optional: true - '@esbuild/aix-ppc64@0.19.12': + '@esbuild/linux-arm64@0.17.19': optional: true - '@esbuild/android-arm64@0.17.19': + '@esbuild/linux-arm64@0.19.12': optional: true - '@esbuild/android-arm64@0.18.20': + '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.19.12': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.17.19': + '@esbuild/linux-arm64@0.24.0': optional: true - '@esbuild/android-arm@0.18.20': + '@esbuild/linux-arm@0.17.19': optional: true - '@esbuild/android-arm@0.19.12': + '@esbuild/linux-arm@0.19.12': optional: true - '@esbuild/android-x64@0.17.19': + '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/android-x64@0.18.20': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/android-x64@0.19.12': + '@esbuild/linux-arm@0.24.0': optional: true - '@esbuild/darwin-arm64@0.17.19': + '@esbuild/linux-ia32@0.17.19': optional: true - '@esbuild/darwin-arm64@0.18.20': + '@esbuild/linux-ia32@0.19.12': optional: true - '@esbuild/darwin-arm64@0.19.12': + '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/darwin-x64@0.17.19': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/darwin-x64@0.18.20': + '@esbuild/linux-ia32@0.24.0': optional: true - '@esbuild/darwin-x64@0.19.12': + '@esbuild/linux-loong64@0.17.19': optional: true - '@esbuild/freebsd-arm64@0.17.19': + '@esbuild/linux-loong64@0.19.12': optional: true - '@esbuild/freebsd-arm64@0.18.20': + '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.19.12': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.17.19': + '@esbuild/linux-loong64@0.24.0': optional: true - '@esbuild/freebsd-x64@0.18.20': + '@esbuild/linux-mips64el@0.17.19': optional: true - '@esbuild/freebsd-x64@0.19.12': + '@esbuild/linux-mips64el@0.19.12': optional: true - '@esbuild/linux-arm64@0.17.19': + '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-arm64@0.18.20': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-arm64@0.19.12': + '@esbuild/linux-mips64el@0.24.0': optional: true - '@esbuild/linux-arm@0.17.19': + '@esbuild/linux-ppc64@0.17.19': optional: true - '@esbuild/linux-arm@0.18.20': + '@esbuild/linux-ppc64@0.19.12': optional: true - '@esbuild/linux-arm@0.19.12': + '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ia32@0.17.19': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-ia32@0.18.20': + '@esbuild/linux-ppc64@0.24.0': optional: true - '@esbuild/linux-ia32@0.19.12': + '@esbuild/linux-riscv64@0.17.19': optional: true - '@esbuild/linux-loong64@0.17.19': + '@esbuild/linux-riscv64@0.19.12': optional: true - '@esbuild/linux-loong64@0.18.20': + '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-loong64@0.19.12': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.17.19': + '@esbuild/linux-riscv64@0.24.0': optional: true - '@esbuild/linux-mips64el@0.18.20': + '@esbuild/linux-s390x@0.17.19': optional: true - '@esbuild/linux-mips64el@0.19.12': + '@esbuild/linux-s390x@0.19.12': optional: true - '@esbuild/linux-ppc64@0.17.19': + '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-ppc64@0.18.20': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-ppc64@0.19.12': + '@esbuild/linux-s390x@0.24.0': optional: true - '@esbuild/linux-riscv64@0.17.19': + '@esbuild/linux-x64@0.17.19': optional: true - '@esbuild/linux-riscv64@0.18.20': + '@esbuild/linux-x64@0.19.12': optional: true - '@esbuild/linux-riscv64@0.19.12': + '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-s390x@0.17.19': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-s390x@0.18.20': + '@esbuild/linux-x64@0.24.0': optional: true - '@esbuild/linux-s390x@0.19.12': + '@esbuild/netbsd-x64@0.17.19': optional: true - '@esbuild/linux-x64@0.17.19': + '@esbuild/netbsd-x64@0.19.12': optional: true - '@esbuild/linux-x64@0.18.20': + '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.19.12': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.17.19': + '@esbuild/netbsd-x64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.18.20': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/openbsd-arm64@0.24.0': optional: true '@esbuild/openbsd-x64@0.17.19': optional: true - '@esbuild/openbsd-x64@0.18.20': + '@esbuild/openbsd-x64@0.19.12': optional: true - '@esbuild/openbsd-x64@0.19.12': + '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.17.19': + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.24.0': optional: true - '@esbuild/sunos-x64@0.18.20': + '@esbuild/sunos-x64@0.17.19': optional: true '@esbuild/sunos-x64@0.19.12': optional: true - '@esbuild/win32-arm64@0.17.19': + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.24.0': optional: true - '@esbuild/win32-arm64@0.18.20': + '@esbuild/win32-arm64@0.17.19': optional: true '@esbuild/win32-arm64@0.19.12': optional: true - '@esbuild/win32-ia32@0.17.19': + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.24.0': optional: true - '@esbuild/win32-ia32@0.18.20': + '@esbuild/win32-ia32@0.17.19': optional: true '@esbuild/win32-ia32@0.19.12': optional: true - '@esbuild/win32-x64@0.17.19': + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.24.0': optional: true - '@esbuild/win32-x64@0.18.20': + '@esbuild/win32-x64@0.17.19': optional: true '@esbuild/win32-x64@0.19.12': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.37.0)': + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@esbuild/win32-x64@0.24.0': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.15.0)': + dependencies: + eslint: 9.15.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0)': dependencies: - eslint: 8.37.0 - eslint-visitor-keys: 3.4.0 + eslint: 9.15.0 + eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@8.38.0)': + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.0': dependencies: - eslint: 8.38.0 - eslint-visitor-keys: 3.4.0 + '@eslint/object-schema': 2.1.4 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color - '@eslint-community/regexpp@4.5.0': {} + '@eslint/core@0.9.0': {} - '@eslint/eslintrc@2.0.2': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.5.1 - globals: 13.20.0 + espree: 10.3.0 + globals: 14.0.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -6870,139 +6511,151 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.37.0': {} + '@eslint/js@9.15.0': {} + + '@eslint/object-schema@2.1.4': {} - '@eslint/js@8.38.0': {} + '@eslint/plugin-kit@0.2.3': + dependencies: + levn: 0.4.1 '@fastify/busboy@2.1.0': {} - '@floating-ui/core@1.4.1': + '@floating-ui/core@1.6.8': dependencies: - '@floating-ui/utils': 0.1.1 + '@floating-ui/utils': 0.2.8 - '@floating-ui/dom@1.5.1': + '@floating-ui/dom@1.6.12': dependencies: - '@floating-ui/core': 1.4.1 - '@floating-ui/utils': 0.1.1 + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 - '@floating-ui/react-dom@2.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.5.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@floating-ui/dom': 1.6.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.1.1': {} + '@floating-ui/utils@0.2.8': {} - '@humanwhocodes/config-array@0.11.8': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@1.2.1': {} + '@humanwhocodes/retry@0.3.1': {} - '@icons/material@0.2.4(react@18.2.0)': - dependencies: - react: 18.2.0 + '@humanwhocodes/retry@0.4.1': {} - '@jest/schemas@29.6.0': + '@icons/material@0.2.4(react@18.3.1)': dependencies: - '@sinclair/typebox': 0.27.8 + react: 18.3.1 '@jridgewell/gen-mapping@0.1.1': dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/gen-mapping@0.3.2': + '@jridgewell/gen-mapping@0.3.5': dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.0': {} + '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/set-array@1.1.2': {} + '@jridgewell/set-array@1.2.1': {} + '@jridgewell/sourcemap-codec@1.4.14': {} '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.17': dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@kurkle/color@0.3.2': {} '@mapbox/corslite@0.0.7': {} '@mapbox/polyline@0.2.0': {} - '@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.20.13 - '@material-ui/styles': 4.11.5(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@material-ui/system': 4.12.2(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@material-ui/types': 5.1.0(@types/react@18.0.28) - '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@material-ui/styles': 4.11.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@material-ui/system': 4.12.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@material-ui/types': 5.1.0(@types/react@18.3.12) + '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react-transition-group': 4.4.5 clsx: 1.2.1 hoist-non-react-statics: 3.3.2 popper.js: 1.16.1-lts prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-is: 17.0.2 - react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@material-ui/icons@4.11.3(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@material-ui/icons@4.11.3(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.20.13 - '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@material-ui/core': 4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@material-ui/lab@4.0.0-alpha.61(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@material-ui/lab@4.0.0-alpha.61(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.20.13 - '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@material-ui/core': 4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 1.2.1 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-is: 17.0.2 optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@material-ui/pickers@3.3.10(@date-io/core@2.16.0)(@material-ui/core@4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@material-ui/pickers@3.3.11(@date-io/core@3.0.0)(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.20.13 - '@date-io/core': 2.16.0 - '@material-ui/core': 4.12.4(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@date-io/core': 3.0.0 + '@material-ui/core': 4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/styled-jsx': 2.2.9 clsx: 1.2.1 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rifm: 0.7.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rifm: 0.7.0(react@18.3.1) - '@material-ui/styles@4.11.5(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@material-ui/styles@4.11.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.22.11 '@emotion/hash': 0.8.0 - '@material-ui/types': 5.1.0(@types/react@18.0.28) - '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@material-ui/types': 5.1.0(@types/react@18.3.12) + '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 1.2.1 csstype: 2.6.21 hoist-non-react-statics: 3.3.2 @@ -7015,175 +6668,149 @@ snapshots: jss-plugin-rule-value-function: 10.10.0 jss-plugin-vendor-prefixer: 10.10.0 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@material-ui/system@4.12.2(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@material-ui/system@4.12.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.22.11 - '@material-ui/utils': 4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) csstype: 2.6.21 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@material-ui/types@5.1.0(@types/react@18.0.28)': + '@material-ui/types@5.1.0(@types/react@18.3.12)': optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@material-ui/utils@4.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@material-ui/utils@4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.22.11 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-is: 17.0.2 - '@mui/base@5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.22.11 - '@emotion/is-prop-valid': 1.2.0 - '@mui/types': 7.2.3(@types/react@18.0.28) - '@mui/utils': 5.11.9(react@18.2.0) - '@popperjs/core': 2.11.6 - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - optionalDependencies: - '@types/react': 18.0.28 - - '@mui/base@5.0.0-beta.13(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/base@5.0.0-beta.61(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 - '@emotion/is-prop-valid': 1.2.1 - '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mui/types': 7.2.4(@types/react@18.0.28) - '@mui/utils': 5.14.7(react@18.2.0) + '@babel/runtime': 7.26.0 + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.12) + '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) '@popperjs/core': 2.11.8 - clsx: 2.0.0 + clsx: 2.1.1 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@mui/core-downloads-tracker@5.11.9': {} + '@mui/core-downloads-tracker@6.1.7': {} - '@mui/icons-material@5.11.9(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react@18.2.0)': + '@mui/icons-material@6.1.7(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 - '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 + '@babel/runtime': 7.26.0 + '@mui/material': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@mui/lab@5.0.0-alpha.120(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/lab@6.0.0-beta.15(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 - '@mui/base': 5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mui/system': 5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) - '@mui/types': 7.2.3(@types/react@18.0.28) - '@mui/utils': 5.11.9(react@18.2.0) - clsx: 1.2.1 + '@babel/runtime': 7.26.0 + '@mui/base': 5.0.0-beta.61(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/material': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/system': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.12) + '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + clsx: 2.1.1 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) - '@types/react': 18.0.28 + '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@types/react': 18.3.12 - '@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 - '@mui/base': 5.0.0-alpha.118(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mui/core-downloads-tracker': 5.11.9 - '@mui/system': 5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) - '@mui/types': 7.2.3(@types/react@18.0.28) - '@mui/utils': 5.11.9(react@18.2.0) - '@types/react-transition-group': 4.4.5 - clsx: 1.2.1 - csstype: 3.1.1 + '@babel/runtime': 7.26.0 + '@mui/core-downloads-tracker': 6.1.7 + '@mui/system': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.12) + '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.11 + clsx: 2.1.1 + csstype: 3.1.3 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) - '@types/react': 18.0.28 + '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@types/react': 18.3.12 - '@mui/private-theming@5.11.9(@types/react@18.0.28)(react@18.2.0)': + '@mui/private-theming@6.1.7(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 - '@mui/utils': 5.11.9(react@18.2.0) + '@babel/runtime': 7.26.0 + '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) prop-types: 15.8.1 - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@mui/styled-engine@5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(react@18.2.0)': + '@mui/styled-engine@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 - '@emotion/cache': 11.10.5 - csstype: 3.1.1 + '@babel/runtime': 7.26.0 + '@emotion/cache': 11.13.1 + '@emotion/serialize': 1.3.2 + '@emotion/sheet': 1.4.0 + csstype: 3.1.3 prop-types: 15.8.1 - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) - - '@mui/system@5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0)': - dependencies: - '@babel/runtime': 7.22.11 - '@mui/private-theming': 5.11.9(@types/react@18.0.28)(react@18.2.0) - '@mui/styled-engine': 5.11.9(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(react@18.2.0) - '@mui/types': 7.2.3(@types/react@18.0.28) - '@mui/utils': 5.11.9(react@18.2.0) - clsx: 1.2.1 - csstype: 3.1.1 + '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + + '@mui/system@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/private-theming': 6.1.7(@types/react@18.3.12)(react@18.3.1) + '@mui/styled-engine': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.12) + '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 prop-types: 15.8.1 - react: 18.2.0 - optionalDependencies: - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) - '@types/react': 18.0.28 - - '@mui/types@7.2.3(@types/react@18.0.28)': + react: 18.3.1 optionalDependencies: - '@types/react': 18.0.28 + '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@types/react': 18.3.12 - '@mui/types@7.2.4(@types/react@18.0.28)': + '@mui/types@7.2.19(@types/react@18.3.12)': optionalDependencies: - '@types/react': 18.0.28 - - '@mui/utils@5.11.9(react@18.2.0)': - dependencies: - '@babel/runtime': 7.22.11 - '@types/prop-types': 15.7.5 - '@types/react-is': 17.0.3 - prop-types: 15.8.1 - react: 18.2.0 - react-is: 18.2.0 + '@types/react': 18.3.12 - '@mui/utils@5.14.7(react@18.2.0)': + '@mui/utils@6.1.7(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 - '@types/prop-types': 15.7.5 - '@types/react-is': 18.2.1 + '@babel/runtime': 7.26.0 + '@mui/types': 7.2.19(@types/react@18.3.12) + '@types/prop-types': 15.7.13 + clsx: 2.1.1 prop-types: 15.8.1 - react: 18.2.0 - react-is: 18.2.0 + react: 18.3.1 + react-is: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 '@noble/hashes@1.5.0': {} @@ -7199,6 +6826,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + '@nolyfill/is-core-module@1.0.39': {} + '@octokit/auth-token@4.0.0': {} '@octokit/core@5.1.0': @@ -7259,321 +6888,385 @@ snapshots: '@popperjs/core@2.11.8': {} - '@react-leaflet/core@2.1.0(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-leaflet/core@2.1.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - leaflet: 1.9.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + leaflet: 1.9.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@reactour/mask@1.1.0(react@18.2.0)': + '@reactour/mask@1.1.0(react@18.3.1)': dependencies: - '@reactour/utils': 0.5.0(react@18.2.0) - react: 18.2.0 + '@reactour/utils': 0.5.0(react@18.3.1) + react: 18.3.1 - '@reactour/popover@1.1.1(react@18.2.0)': + '@reactour/popover@1.1.1(react@18.3.1)': dependencies: - '@reactour/utils': 0.5.0(react@18.2.0) - react: 18.2.0 + '@reactour/utils': 0.5.0(react@18.3.1) + react: 18.3.1 - '@reactour/tour@3.6.1(react@18.2.0)': + '@reactour/tour@3.7.0(react@18.3.1)': dependencies: - '@reactour/mask': 1.1.0(react@18.2.0) - '@reactour/popover': 1.1.1(react@18.2.0) - '@reactour/utils': 0.5.0(react@18.2.0) - react: 18.2.0 + '@reactour/mask': 1.1.0(react@18.3.1) + '@reactour/popover': 1.1.1(react@18.3.1) + '@reactour/utils': 0.5.0(react@18.3.1) + react: 18.3.1 - '@reactour/utils@0.5.0(react@18.2.0)': + '@reactour/utils@0.5.0(react@18.3.1)': dependencies: - '@rooks/use-mutation-observer': 4.11.2(react@18.2.0) - react: 18.2.0 + '@rooks/use-mutation-observer': 4.11.2(react@18.3.1) + react: 18.3.1 resize-observer-polyfill: 1.5.1 - '@remix-run/router@1.3.2': {} + '@remix-run/router@1.21.0': {} - '@restart/hooks@0.4.9(react@18.2.0)': + '@restart/hooks@0.4.9(react@18.3.1)': dependencies: dequal: 2.0.3 - react: 18.2.0 + react: 18.3.1 - '@rollup/pluginutils@5.0.2(rollup@3.29.1)': + '@rollup/pluginutils@5.1.3(rollup@4.27.2)': dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 optionalDependencies: - rollup: 3.29.1 + rollup: 4.27.2 + + '@rollup/rollup-android-arm-eabi@4.27.2': + optional: true + + '@rollup/rollup-android-arm64@4.27.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.27.2': + optional: true + + '@rollup/rollup-darwin-x64@4.27.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.27.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.27.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.27.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.27.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.27.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.27.2': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.27.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.27.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.27.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.27.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.27.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.27.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.27.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.27.2': + optional: true - '@rooks/use-mutation-observer@4.11.2(react@18.2.0)': + '@rooks/use-mutation-observer@4.11.2(react@18.3.1)': dependencies: - react: 18.2.0 + react: 18.3.1 - '@sinclair/typebox@0.27.8': {} + '@rtsao/scc@1.1.0': {} '@smithy/abort-controller@1.1.0': dependencies: '@smithy/types': 1.2.0 tslib: 2.5.0 - '@smithy/abort-controller@2.0.16': + '@smithy/abort-controller@3.1.8': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/config-resolver@2.0.23': + '@smithy/config-resolver@3.0.12': dependencies: - '@smithy/node-config-provider': 2.1.9 - '@smithy/types': 2.8.0 - '@smithy/util-config-provider': 2.1.0 - '@smithy/util-middleware': 2.0.9 - tslib: 2.5.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.10 + tslib: 2.8.1 - '@smithy/core@1.2.2': + '@smithy/core@2.5.3': dependencies: - '@smithy/middleware-endpoint': 2.3.0 - '@smithy/middleware-retry': 2.0.26 - '@smithy/middleware-serde': 2.0.16 - '@smithy/protocol-http': 3.0.12 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - '@smithy/util-middleware': 2.0.9 - tslib: 2.5.0 + '@smithy/middleware-serde': 3.0.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-stream': 3.3.1 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 - '@smithy/credential-provider-imds@2.1.5': + '@smithy/credential-provider-imds@3.2.7': dependencies: - '@smithy/node-config-provider': 2.1.9 - '@smithy/property-provider': 2.0.17 - '@smithy/types': 2.8.0 - '@smithy/url-parser': 2.0.16 - tslib: 2.5.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + tslib: 2.8.1 - '@smithy/eventstream-codec@2.0.16': + '@smithy/fetch-http-handler@4.1.1': dependencies: - '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.8.0 - '@smithy/util-hex-encoding': 2.0.0 - tslib: 2.5.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 + '@smithy/util-base64': 3.0.0 + tslib: 2.8.1 - '@smithy/fetch-http-handler@2.3.2': + '@smithy/hash-node@3.0.10': dependencies: - '@smithy/protocol-http': 3.0.12 - '@smithy/querystring-builder': 2.0.16 - '@smithy/types': 2.8.0 - '@smithy/util-base64': 2.0.1 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 - '@smithy/hash-node@2.0.18': + '@smithy/invalid-dependency@3.0.10': dependencies: - '@smithy/types': 2.8.0 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/invalid-dependency@2.0.16': + '@smithy/is-array-buffer@2.2.0': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/is-array-buffer@2.0.0': + '@smithy/is-array-buffer@3.0.0': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/middleware-content-length@2.0.18': + '@smithy/middleware-content-length@3.0.12': dependencies: - '@smithy/protocol-http': 3.0.12 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/middleware-endpoint@2.3.0': + '@smithy/middleware-endpoint@3.2.3': dependencies: - '@smithy/middleware-serde': 2.0.16 - '@smithy/node-config-provider': 2.1.9 - '@smithy/shared-ini-file-loader': 2.2.8 - '@smithy/types': 2.8.0 - '@smithy/url-parser': 2.0.16 - '@smithy/util-middleware': 2.0.9 - tslib: 2.5.0 + '@smithy/core': 2.5.3 + '@smithy/middleware-serde': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-middleware': 3.0.10 + tslib: 2.8.1 - '@smithy/middleware-retry@2.0.26': + '@smithy/middleware-retry@3.0.27': dependencies: - '@smithy/node-config-provider': 2.1.9 - '@smithy/protocol-http': 3.0.12 - '@smithy/service-error-classification': 2.0.9 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - '@smithy/util-middleware': 2.0.9 - '@smithy/util-retry': 2.0.9 - tslib: 2.5.0 - uuid: 8.3.2 + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/service-error-classification': 3.0.10 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + tslib: 2.8.1 + uuid: 9.0.1 - '@smithy/middleware-serde@2.0.16': + '@smithy/middleware-serde@3.0.10': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/middleware-stack@2.0.10': + '@smithy/middleware-stack@3.0.10': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/node-config-provider@2.1.9': + '@smithy/node-config-provider@3.1.11': dependencies: - '@smithy/property-provider': 2.0.17 - '@smithy/shared-ini-file-loader': 2.2.8 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/node-http-handler@2.2.2': + '@smithy/node-http-handler@3.3.1': dependencies: - '@smithy/abort-controller': 2.0.16 - '@smithy/protocol-http': 3.0.12 - '@smithy/querystring-builder': 2.0.16 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/abort-controller': 3.1.8 + '@smithy/protocol-http': 4.1.7 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/property-provider@2.0.17': + '@smithy/property-provider@3.1.10': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/protocol-http@3.0.12': + '@smithy/protocol-http@4.1.7': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/querystring-builder@2.0.16': + '@smithy/querystring-builder@3.0.10': dependencies: - '@smithy/types': 2.8.0 - '@smithy/util-uri-escape': 2.0.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + '@smithy/util-uri-escape': 3.0.0 + tslib: 2.8.1 - '@smithy/querystring-parser@2.0.16': + '@smithy/querystring-parser@3.0.10': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/service-error-classification@2.0.9': + '@smithy/service-error-classification@3.0.10': dependencies: - '@smithy/types': 2.8.0 + '@smithy/types': 3.7.1 - '@smithy/shared-ini-file-loader@2.2.8': + '@smithy/shared-ini-file-loader@3.1.11': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/signature-v4@2.0.19': + '@smithy/signature-v4@4.2.3': dependencies: - '@smithy/eventstream-codec': 2.0.16 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/types': 2.8.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-middleware': 2.0.9 - '@smithy/util-uri-escape': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.5.0 + '@smithy/is-array-buffer': 3.0.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-uri-escape': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 - '@smithy/smithy-client@2.2.1': + '@smithy/smithy-client@3.4.4': dependencies: - '@smithy/middleware-endpoint': 2.3.0 - '@smithy/middleware-stack': 2.0.10 - '@smithy/protocol-http': 3.0.12 - '@smithy/types': 2.8.0 - '@smithy/util-stream': 2.0.24 - tslib: 2.5.0 + '@smithy/core': 2.5.3 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-stack': 3.0.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-stream': 3.3.1 + tslib: 2.8.1 '@smithy/types@1.2.0': dependencies: tslib: 2.5.0 - '@smithy/types@2.8.0': + '@smithy/types@3.7.1': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/url-parser@2.0.16': + '@smithy/url-parser@3.0.10': dependencies: - '@smithy/querystring-parser': 2.0.16 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/querystring-parser': 3.0.10 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/util-base64@2.0.1': + '@smithy/util-base64@3.0.0': dependencies: - '@smithy/util-buffer-from': 2.0.0 - tslib: 2.5.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 - '@smithy/util-body-length-browser@2.0.1': + '@smithy/util-body-length-browser@3.0.0': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/util-body-length-node@2.1.0': + '@smithy/util-body-length-node@3.0.0': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/util-buffer-from@2.0.0': + '@smithy/util-buffer-from@2.2.0': dependencies: - '@smithy/is-array-buffer': 2.0.0 - tslib: 2.5.0 + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 - '@smithy/util-config-provider@2.1.0': + '@smithy/util-buffer-from@3.0.0': dependencies: - tslib: 2.5.0 + '@smithy/is-array-buffer': 3.0.0 + tslib: 2.8.1 + + '@smithy/util-config-provider@3.0.0': + dependencies: + tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@2.0.24': + '@smithy/util-defaults-mode-browser@3.0.27': dependencies: - '@smithy/property-provider': 2.0.17 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 + '@smithy/property-provider': 3.1.10 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 bowser: 2.11.0 - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/util-defaults-mode-node@2.0.32': + '@smithy/util-defaults-mode-node@3.0.27': dependencies: - '@smithy/config-resolver': 2.0.23 - '@smithy/credential-provider-imds': 2.1.5 - '@smithy/node-config-provider': 2.1.9 - '@smithy/property-provider': 2.0.17 - '@smithy/smithy-client': 2.2.1 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/util-endpoints@1.0.8': + '@smithy/util-endpoints@2.1.6': dependencies: - '@smithy/node-config-provider': 2.1.9 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/util-hex-encoding@2.0.0': + '@smithy/util-hex-encoding@3.0.0': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/util-middleware@2.0.9': + '@smithy/util-middleware@3.0.10': dependencies: - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/util-retry@2.0.9': + '@smithy/util-retry@3.0.10': dependencies: - '@smithy/service-error-classification': 2.0.9 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/service-error-classification': 3.0.10 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@smithy/util-stream@2.0.24': + '@smithy/util-stream@3.3.1': dependencies: - '@smithy/fetch-http-handler': 2.3.2 - '@smithy/node-http-handler': 2.2.2 - '@smithy/types': 2.8.0 - '@smithy/util-base64': 2.0.1 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.5.0 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/node-http-handler': 3.3.1 + '@smithy/types': 3.7.1 + '@smithy/util-base64': 3.0.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.8.1 - '@smithy/util-uri-escape@2.0.0': + '@smithy/util-uri-escape@3.0.0': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 - '@smithy/util-utf8@2.0.2': + '@smithy/util-utf8@2.3.0': dependencies: - '@smithy/util-buffer-from': 2.0.0 - tslib: 2.5.0 + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@3.0.0': + dependencies: + '@smithy/util-buffer-from': 3.0.0 + tslib: 2.8.1 '@smithy/util-waiter@1.1.0': dependencies: @@ -7581,138 +7274,151 @@ snapshots: '@smithy/types': 1.2.0 tslib: 2.5.0 - '@smithy/util-waiter@2.0.16': + '@smithy/util-waiter@3.1.9': dependencies: - '@smithy/abort-controller': 2.0.16 - '@smithy/types': 2.8.0 - tslib: 2.5.0 + '@smithy/abort-controller': 3.1.8 + '@smithy/types': 3.7.1 + tslib: 2.8.1 - '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.20.12)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-remove-jsx-attribute@6.5.0(@babel/core@7.20.12)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-remove-jsx-empty-expression@6.5.0(@babel/core@7.20.12)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.20.12)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.20.12)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.20.12)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.20.12)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.20.12)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.26.0 - '@svgr/babel-preset@6.5.1(@babel/core@7.20.12)': + '@svgr/babel-preset@8.1.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.20.12 - '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.20.12) - '@svgr/babel-plugin-remove-jsx-attribute': 6.5.0(@babel/core@7.20.12) - '@svgr/babel-plugin-remove-jsx-empty-expression': 6.5.0(@babel/core@7.20.12) - '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.20.12) - '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.20.12) - '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.20.12) - '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.20.12) - '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.20.12) + '@babel/core': 7.26.0 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0) - '@svgr/core@6.5.1': + '@svgr/core@8.1.0(typescript@5.6.3)': dependencies: - '@babel/core': 7.20.12 - '@svgr/babel-preset': 6.5.1(@babel/core@7.20.12) - '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) + '@babel/core': 7.26.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) camelcase: 6.3.0 - cosmiconfig: 7.1.0 + cosmiconfig: 8.3.6(typescript@5.6.3) + snake-case: 3.0.4 transitivePeerDependencies: - supports-color + - typescript - '@svgr/hast-util-to-babel-ast@6.5.1': + '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.20.7 - entities: 4.4.0 + '@babel/types': 7.26.0 + entities: 4.5.0 - '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))': dependencies: - '@babel/core': 7.20.12 - '@svgr/babel-preset': 6.5.1(@babel/core@7.20.12) - '@svgr/core': 6.5.1 - '@svgr/hast-util-to-babel-ast': 6.5.1 + '@babel/core': 7.26.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) + '@svgr/core': 8.1.0(typescript@5.6.3) + '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@tanstack/query-core@4.24.10': {} + '@tanstack/query-core@5.60.5': {} - '@tanstack/react-query@4.24.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@tanstack/react-query@5.60.5(react@18.3.1)': dependencies: - '@tanstack/query-core': 4.24.10 - react: 18.2.0 - use-sync-external-store: 1.2.0(react@18.2.0) - optionalDependencies: - react-dom: 18.2.0(react@18.2.0) + '@tanstack/query-core': 5.60.5 + react: 18.3.1 - '@testing-library/dom@9.3.1': + '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.18.6 - '@babel/runtime': 7.22.11 - '@types/aria-query': 5.0.1 - aria-query: 5.1.3 + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.26.0 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@14.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.22.11 - '@testing-library/dom': 9.3.1 - '@types/react-dom': 18.0.11 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@testing-library/dom': 10.4.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + + '@trpc/client@10.45.2(@trpc/server@10.45.2)': + dependencies: + '@trpc/server': 10.45.2 + + '@trpc/server@10.45.2': {} - '@tootallnate/once@2.0.0': {} + '@types/aria-query@5.0.4': {} - '@trpc/client@10.30.0(@trpc/server@10.30.0)': + '@types/aws-lambda@8.10.145': {} + + '@types/babel__core@7.20.5': dependencies: - '@trpc/server': 10.30.0 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 - '@trpc/server@10.30.0': {} + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.0 - '@types/aria-query@5.0.1': {} + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 - '@types/aws-lambda@8.10.110': {} + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.0 '@types/body-parser@1.19.2': dependencies: '@types/connect': 3.4.35 - '@types/node': 20.11.5 - - '@types/chai-subset@1.3.3': - dependencies: - '@types/chai': 4.3.5 - - '@types/chai@4.3.5': {} + '@types/node': 22.9.0 '@types/connect@3.4.35': dependencies: - '@types/node': 20.11.5 + '@types/node': 22.9.0 - '@types/cors@2.8.13': + '@types/cors@2.8.17': dependencies: '@types/node': 20.11.5 @@ -7742,267 +7448,272 @@ snapshots: '@types/date-arithmetic@4.1.1': {} - '@types/eslint@8.56.5': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.0 '@types/json-schema': 7.0.11 '@types/estree@1.0.0': {} - '@types/express-serve-static-core@4.17.35': + '@types/estree@1.0.6': {} + + '@types/express-serve-static-core@5.0.1': dependencies: - '@types/node': 20.11.5 + '@types/node': 22.9.0 '@types/qs': 6.9.7 - '@types/range-parser': 1.2.4 - '@types/send': 0.17.1 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 - '@types/express@4.17.17': + '@types/express@5.0.0': dependencies: '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.35 + '@types/express-serve-static-core': 5.0.1 '@types/qs': 6.9.7 '@types/serve-static': 1.15.1 - '@types/file-saver@2.0.5': {} + '@types/file-saver@2.0.7': {} '@types/geojson@7946.0.10': {} '@types/json-schema@7.0.11': {} + '@types/json-schema@7.0.15': {} + '@types/json5@0.0.29': {} - '@types/leaflet-routing-machine@3.2.4': + '@types/leaflet-routing-machine@3.2.8': dependencies: - '@types/leaflet': 1.9.0 + '@types/leaflet': 1.9.14 - '@types/leaflet.locatecontrol@0.74.1': + '@types/leaflet.locatecontrol@0.74.6': dependencies: - '@types/leaflet': 1.9.0 + '@types/leaflet': 1.9.14 - '@types/leaflet@1.9.0': + '@types/leaflet@1.9.14': dependencies: '@types/geojson': 7946.0.10 - '@types/lodash@4.14.191': {} - - '@types/mime@1.3.2': {} + '@types/mime@1.3.5': {} '@types/mime@3.0.1': {} - '@types/node@18.13.0': {} - '@types/node@20.11.5': dependencies: undici-types: 5.26.5 - '@types/node@20.11.6': + '@types/node@22.9.0': dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 + + '@types/parse-json@4.0.2': {} - '@types/parse-json@4.0.0': {} + '@types/prop-types@15.7.13': {} '@types/prop-types@15.7.5': {} '@types/qs@6.9.7': {} - '@types/range-parser@1.2.4': {} + '@types/range-parser@1.2.7': {} - '@types/react-big-calendar@1.6.0': + '@types/react-big-calendar@1.15.0': dependencies: '@types/date-arithmetic': 4.1.1 '@types/prop-types': 15.7.5 - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@types/react-color@3.0.6': + '@types/react-color@3.0.12': dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 '@types/reactcss': 1.2.6 - '@types/react-dom@18.0.11': + '@types/react-dom@18.3.1': dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@types/react-input-mask@3.0.2': + '@types/react-input-mask@3.0.6': dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@types/react-is@17.0.3': + '@types/react-lazyload@3.2.3': dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@types/react-is@18.2.1': + '@types/react-transition-group@4.4.11': dependencies: - '@types/react': 18.0.28 - - '@types/react-lazyload@3.2.0': - dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 '@types/react-transition-group@4.4.5': dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 - '@types/react@18.0.28': + '@types/react@18.3.12': dependencies: '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 csstype: 3.1.1 '@types/reactcss@1.2.6': dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 '@types/reactour@1.18.5': dependencies: - '@types/react': 18.0.28 - - '@types/scheduler@0.16.2': {} - - '@types/semver@7.3.13': {} + '@types/react': 18.3.12 - '@types/send@0.17.1': + '@types/send@0.17.4': dependencies: - '@types/mime': 1.3.2 - '@types/node': 20.11.5 + '@types/mime': 1.3.5 + '@types/node': 22.9.0 '@types/serve-static@1.15.1': dependencies: '@types/mime': 3.0.1 - '@types/node': 20.11.5 + '@types/node': 22.9.0 '@types/styled-jsx@2.2.9': dependencies: - '@types/react': 18.0.28 + '@types/react': 18.3.12 '@types/ua-parser-js@0.7.39': {} + '@types/uuid@9.0.8': {} + '@types/warning@3.0.0': {} - '@typescript-eslint/eslint-plugin@5.57.1(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5)': - dependencies: - '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 5.57.1 - '@typescript-eslint/type-utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5) - '@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5) - debug: 4.3.4 - eslint: 8.38.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@4.9.5) + '@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.14.0(eslint@9.15.0)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.14.0 + '@typescript-eslint/type-utils': 8.14.0(eslint@9.15.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.14.0(eslint@9.15.0)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.14.0 + eslint: 9.15.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5)': + '@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 5.57.1 - '@typescript-eslint/types': 5.57.1 - '@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.14.0 + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.14.0 debug: 4.3.4 - eslint: 8.38.0 + eslint: 9.15.0 optionalDependencies: - typescript: 4.9.5 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@5.57.1': + '@typescript-eslint/scope-manager@8.14.0': dependencies: - '@typescript-eslint/types': 5.57.1 - '@typescript-eslint/visitor-keys': 5.57.1 + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/visitor-keys': 8.14.0 - '@typescript-eslint/type-utils@5.57.1(eslint@8.38.0)(typescript@4.9.5)': + '@typescript-eslint/type-utils@8.14.0(eslint@9.15.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5) - '@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5) - debug: 4.3.4 - eslint: 8.38.0 - tsutils: 3.21.0(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.14.0(eslint@9.15.0)(typescript@5.6.3) + debug: 4.3.7(supports-color@5.5.0) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.6.3 transitivePeerDependencies: + - eslint - supports-color - '@typescript-eslint/types@5.57.1': {} + '@typescript-eslint/types@8.14.0': {} - '@typescript-eslint/typescript-estree@5.57.1(typescript@4.9.5)': + '@typescript-eslint/typescript-estree@8.14.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 5.57.1 - '@typescript-eslint/visitor-keys': 5.57.1 + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/visitor-keys': 8.14.0 debug: 4.3.4 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@4.9.5) + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.57.1(eslint@8.38.0)(typescript@4.9.5)': + '@typescript-eslint/utils@8.14.0(eslint@9.15.0)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.57.1 - '@typescript-eslint/types': 5.57.1 - '@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5) - eslint: 8.38.0 - eslint-scope: 5.1.1 - semver: 7.3.8 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0) + '@typescript-eslint/scope-manager': 8.14.0 + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) + eslint: 9.15.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@5.57.1': + '@typescript-eslint/visitor-keys@8.14.0': dependencies: - '@typescript-eslint/types': 5.57.1 - eslint-visitor-keys: 3.4.0 + '@typescript-eslint/types': 8.14.0 + eslint-visitor-keys: 3.4.3 - '@vendia/serverless-express@4.10.1': {} + '@vendia/serverless-express@4.12.6': + dependencies: + '@codegenie/serverless-express': 4.16.0 - '@vitejs/plugin-react@4.0.4(vite@4.4.9(@types/node@18.13.0))': + '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@22.9.0))': dependencies: - '@babel/core': 7.22.17 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.17) - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.17) - react-refresh: 0.14.0 - vite: 4.4.9(@types/node@18.13.0) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.4.11(@types/node@22.9.0) transitivePeerDependencies: - supports-color - '@vitest/expect@0.34.4': + '@vitest/expect@2.1.5': + dependencies: + '@vitest/spy': 2.1.5 + '@vitest/utils': 2.1.5 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.9.0))': dependencies: - '@vitest/spy': 0.34.4 - '@vitest/utils': 0.34.4 - chai: 4.3.7 + '@vitest/spy': 2.1.5 + estree-walker: 3.0.3 + magic-string: 0.30.12 + optionalDependencies: + vite: 5.4.11(@types/node@22.9.0) - '@vitest/runner@0.34.4': + '@vitest/pretty-format@2.1.5': dependencies: - '@vitest/utils': 0.34.4 - p-limit: 4.0.0 - pathe: 1.1.1 + tinyrainbow: 1.2.0 - '@vitest/snapshot@0.34.4': + '@vitest/runner@2.1.5': dependencies: - magic-string: 0.30.2 - pathe: 1.1.1 - pretty-format: 29.6.2 + '@vitest/utils': 2.1.5 + pathe: 1.1.2 - '@vitest/spy@0.34.4': + '@vitest/snapshot@2.1.5': dependencies: - tinyspy: 2.1.1 + '@vitest/pretty-format': 2.1.5 + magic-string: 0.30.12 + pathe: 1.1.2 - '@vitest/utils@0.34.4': + '@vitest/spy@2.1.5': dependencies: - diff-sequences: 29.4.3 - loupe: 2.3.6 - pretty-format: 29.6.2 + tinyspy: 3.0.2 - abab@2.0.6: {} + '@vitest/utils@2.1.5': + dependencies: + '@vitest/pretty-format': 2.1.5 + loupe: 3.1.2 + tinyrainbow: 1.2.0 abbrev@1.1.1: {} @@ -8011,27 +7722,18 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.8.2): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.8.2 - - acorn-walk@8.2.0: {} + acorn: 8.14.0 - acorn@8.10.0: {} + acorn@8.14.0: {} - acorn@8.8.2: {} - - agent-base@6.0.2: + agent-base@7.1.1: dependencies: - debug: 4.3.4 + debug: 4.3.7(supports-color@5.5.0) transitivePeerDependencies: - supports-color - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -8039,17 +7741,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ansi-escapes@4.3.2: + ansi-escapes@7.0.0: dependencies: - type-fest: 0.21.3 + environment: 1.1.0 ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 + ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: @@ -8070,64 +7768,105 @@ snapshots: argparse@2.0.1: {} - aria-query@5.1.3: + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + + aria-query@5.3.2: {} + + arktype@2.0.0-rc.23: dependencies: - deep-equal: 2.2.0 + '@ark/schema': 0.23.0 + '@ark/util': 0.23.0 - arktype@1.0.14-alpha: {} + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 array-flatten@1.1.1: {} - array-includes@3.1.6: + array-includes@3.1.8: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - get-intrinsic: 1.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 is-string: 1.0.7 - array-union@2.1.0: {} + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 - array.prototype.flat@1.3.1: + array.prototype.flat@1.3.2: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-shim-unscopables: 1.0.2 - array.prototype.flatmap@1.3.1: + array.prototype.flatmap@1.3.2: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-shim-unscopables: 1.0.2 - array.prototype.tosorted@1.1.1: + array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 - assertion-error@1.1.0: {} + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 - ast-types-flow@0.0.7: {} + assertion-error@2.0.1: {} - astral-regex@2.0.0: {} + ast-types-flow@0.0.8: {} asynckit@0.4.0: {} available-typed-arrays@1.0.5: {} - aws-cdk-lib@2.121.1(constructs@10.3.0): + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + aws-cdk-lib@2.167.1(constructs@10.4.2): dependencies: - '@aws-cdk/asset-awscli-v1': 2.2.201 - '@aws-cdk/asset-kubectl-v20': 2.1.2 - '@aws-cdk/asset-node-proxy-agent-v6': 2.0.1 - constructs: 10.3.0 + '@aws-cdk/asset-awscli-v1': 2.2.211 + '@aws-cdk/asset-kubectl-v20': 2.1.3 + '@aws-cdk/asset-node-proxy-agent-v6': 2.1.0 + '@aws-cdk/cloud-assembly-schema': 38.0.1 + constructs: 10.4.2 - aws-cdk@2.121.1: + aws-cdk@2.167.1: optionalDependencies: fsevents: 2.3.2 @@ -8151,7 +7890,7 @@ snapshots: uuid: 8.0.0 xml2js: 0.4.19 - aws-sdk@2.1550.0: + aws-sdk@2.1692.0: dependencies: buffer: 4.9.2 events: 1.1.1 @@ -8164,17 +7903,15 @@ snapshots: uuid: 8.0.0 xml2js: 0.6.2 - axe-core@4.6.3: {} + axe-core@4.10.2: {} - axobject-query@3.1.1: - dependencies: - deep-equal: 2.2.0 + axobject-query@4.1.0: {} babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.20.13 cosmiconfig: 7.1.0 - resolve: 1.22.1 + resolve: 1.22.8 balanced-match@1.0.2: {} @@ -8186,7 +7923,7 @@ snapshots: binary-extensions@2.2.0: {} - body-parser@1.20.1: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -8196,8 +7933,8 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 + qs: 6.13.0 + raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: @@ -8218,19 +7955,16 @@ snapshots: dependencies: fill-range: 7.0.1 - browserslist@4.21.10: + braces@3.0.3: dependencies: - caniuse-lite: 1.0.30001532 - electron-to-chromium: 1.4.514 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.10) + fill-range: 7.1.1 - browserslist@4.21.5: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001454 - electron-to-chromium: 1.4.300 - node-releases: 2.0.10 - update-browserslist-db: 1.0.10(browserslist@4.21.5) + caniuse-lite: 1.0.30001680 + electron-to-chromium: 1.5.62 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) buffer-from@1.1.2: {} @@ -8244,45 +7978,40 @@ snapshots: cac@6.7.14: {} - call-bind@1.0.2: + call-bind@1.0.7: dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 callsites@3.1.0: {} camelcase@6.3.0: {} - caniuse-lite@1.0.30001454: {} + caniuse-lite@1.0.30001680: {} - caniuse-lite@1.0.30001532: {} - - chai@4.3.7: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.2 - deep-eql: 4.1.3 - get-func-name: 2.0.0 - loupe: 2.3.6 - pathval: 1.1.1 - type-detect: 4.0.8 - - chalk@2.4.2: + chai@5.1.2: dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chart.js@4.2.1: + chalk@5.3.0: {} + + chart.js@4.4.6: dependencies: '@kurkle/color': 0.3.2 - check-error@1.0.2: {} + check-error@2.1.1: {} chokidar@3.5.3: dependencies: @@ -8296,31 +8025,16 @@ snapshots: optionalDependencies: fsevents: 2.3.2 - classnames@2.3.2: {} - - clean-stack@2.2.0: {} - - cli-color@2.0.4: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-iterator: 2.0.3 - memoizee: 0.4.17 - timers-ext: 0.1.8 - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 + classnames@2.5.1: {} - cli-truncate@2.1.0: + cli-cursor@5.0.0: dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 + restore-cursor: 5.1.0 - cli-truncate@3.1.0: + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 - string-width: 5.1.2 + string-width: 7.2.0 cliui@8.0.1: dependencies: @@ -8330,45 +8044,37 @@ snapshots: clsx@1.2.1: {} - clsx@2.0.0: {} - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 + clsx@2.1.1: {} color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} - colorette@2.0.19: {} + colorette@2.0.20: {} combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - commander@3.0.2: {} + commander@12.1.0: {} - commander@9.5.0: {} + commander@3.0.2: {} concat-map@0.0.1: {} - concurrently@8.0.1: + concurrently@9.1.0: dependencies: chalk: 4.1.2 - date-fns: 2.29.3 lodash: 4.17.21 - rxjs: 7.8.0 + rxjs: 7.8.1 shell-quote: 1.8.1 - spawn-command: 0.0.2-1 supports-color: 8.1.1 tree-kill: 1.2.2 yargs: 17.7.2 - constructs@10.3.0: {} + constructs@10.4.2: {} content-disposition@0.5.4: dependencies: @@ -8378,9 +8084,11 @@ snapshots: convert-source-map@1.9.0: {} + convert-source-map@2.0.0: {} + cookie-signature@1.0.6: {} - cookie@0.5.0: {} + cookie@0.7.1: {} copy-anything@3.0.5: dependencies: @@ -8393,12 +8101,21 @@ snapshots: cosmiconfig@7.1.0: dependencies: - '@types/parse-json': 4.0.0 + '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 + cosmiconfig@8.3.6(typescript@5.6.3): + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.6.3 + cross-env@7.0.3: dependencies: cross-spawn: 7.0.3 @@ -8409,25 +8126,31 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.5: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + css-line-break@2.1.0: dependencies: utrie: 1.0.2 - css-unit-converter@1.1.2: {} - css-vendor@2.0.8: dependencies: '@babel/runtime': 7.22.11 is-in-browser: 1.1.3 - cssstyle@3.0.0: + cssstyle@4.1.0: dependencies: - rrweb-cssom: 0.6.0 + rrweb-cssom: 0.7.1 csstype@2.6.21: {} csstype@3.1.1: {} + csstype@3.1.3: {} + d3-array@3.2.2: dependencies: internmap: 2.0.3 @@ -8468,74 +8191,75 @@ snapshots: d3-timer@3.0.1: {} - d@1.0.2: - dependencies: - es5-ext: 0.10.64 - type: 2.7.3 - damerau-levenshtein@1.0.8: {} data-uri-to-buffer@4.0.1: {} - data-urls@4.0.0: + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 date-arithmetic@4.1.0: {} - date-fns@2.29.3: {} + date-fns@4.1.0: {} - dayjs@1.11.7: {} + dayjs@1.11.13: {} debug@2.6.9: dependencies: ms: 2.0.0 - debug@3.2.7(supports-color@5.5.0): + debug@3.2.7: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 5.5.0 debug@4.3.4: dependencies: ms: 2.1.2 + debug@4.3.7(supports-color@5.5.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 + decimal.js-light@2.5.1: {} decimal.js@10.4.3: {} - deep-eql@4.1.3: - dependencies: - type-detect: 4.0.8 - - deep-equal@2.2.0: - dependencies: - call-bind: 1.0.2 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.0 - is-arguments: 1.1.1 - is-array-buffer: 3.0.1 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - isarray: 2.0.5 - object-is: 1.1.5 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - side-channel: 1.0.4 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.9 + deep-eql@5.0.2: {} deep-is@0.1.4: {} - define-properties@1.2.0: + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: dependencies: - has-property-descriptors: 1.0.0 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 delayed-stream@1.0.0: {} @@ -8548,72 +8272,44 @@ snapshots: destroy@1.2.0: {} - diff-sequences@29.4.3: {} - - difflib@0.2.4: - dependencies: - heap: 0.2.7 - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - doctrine@2.1.0: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} - dom-helpers@3.4.0: - dependencies: - '@babel/runtime': 7.22.11 - dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.20.13 csstype: 3.1.1 - domexception@4.0.0: + dot-case@3.0.4: dependencies: - webidl-conversions: 7.0.0 + no-case: 3.0.4 + tslib: 2.8.1 - dotenv@16.0.3: {} + dotenv@16.4.5: {} - dreamopt@0.8.0: - dependencies: - wordwrap: 1.0.0 - - drizzle-kit@0.21.4: + drizzle-kit@0.28.1: dependencies: + '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.5.5 - commander: 9.5.0 - env-paths: 3.0.0 esbuild: 0.19.12 esbuild-register: 3.6.0(esbuild@0.19.12) - glob: 8.1.0 - hanji: 0.0.5 - json-diff: 0.9.0 - zod: 3.23.8 transitivePeerDependencies: - supports-color - drizzle-orm@0.30.10(@types/react@18.0.28)(postgres@3.4.4)(react@18.2.0): + drizzle-orm@0.36.3(@types/react@18.3.12)(postgres@3.4.5)(react@18.3.1): optionalDependencies: - '@types/react': 18.0.28 - postgres: 3.4.4 - react: 18.2.0 - - eastasianwidth@0.2.0: {} + '@types/react': 18.3.12 + postgres: 3.4.5 + react: 18.3.1 ee-first@1.1.1: {} - electron-to-chromium@1.4.300: {} + electron-to-chromium@1.5.62: {} - electron-to-chromium@1.4.514: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -8621,6 +8317,8 @@ snapshots: encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + enhanced-resolve@5.15.1: dependencies: graceful-fs: 4.2.10 @@ -8628,104 +8326,112 @@ snapshots: entities@4.4.0: {} - env-paths@3.0.0: {} + entities@4.5.0: {} - envalid@7.3.1: + envalid@8.0.0: dependencies: - tslib: 2.3.1 + tslib: 2.6.2 + + environment@1.1.0: {} error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - es-abstract@1.21.1: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 + es-abstract@1.23.5: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.1 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-negative-zero: 2.0.2 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.3 object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - safe-regex-test: 1.0.0 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 + which-typed-array: 1.1.15 - es-get-iterator@1.1.3: + es-define-property@1.0.0: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.2 - is-set: 2.0.2 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 + get-intrinsic: 1.2.4 - es-set-tostringtag@2.0.1: - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - has-tostringtag: 1.0.0 + es-errors@1.3.0: {} - es-shim-unscopables@1.0.0: + es-iterator-helpers@1.2.0: dependencies: - has: 1.0.3 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.3 + safe-array-concat: 1.1.2 - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + es-module-lexer@1.5.4: {} - es5-ext@0.10.64: + es-object-atoms@1.0.0: dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - esniff: 2.0.1 - next-tick: 1.1.0 + es-errors: 1.3.0 - es6-iterator@2.0.3: + es-set-tostringtag@2.0.3: dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-symbol: 3.1.4 + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 - es6-symbol@3.1.4: + es-shim-unscopables@1.0.2: dependencies: - d: 1.0.2 - ext: 1.7.0 + hasown: 2.0.2 - es6-weak-map@2.0.3: + es-to-primitive@1.2.1: dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 esbuild-register@3.6.0(esbuild@0.19.12): dependencies: @@ -8759,31 +8465,6 @@ snapshots: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - esbuild@0.18.20: - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - esbuild@0.19.12: optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 @@ -8810,310 +8491,294 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + escalade@3.1.1: {} - escape-html@1.0.3: {} + escalade@3.2.0: {} - escape-string-regexp@1.0.5: {} + escape-html@1.0.3: {} escape-string-regexp@4.0.0: {} - eslint-config-prettier@8.8.0(eslint@8.37.0): - dependencies: - eslint: 8.37.0 - - eslint-config-prettier@8.8.0(eslint@8.38.0): + eslint-config-prettier@9.1.0(eslint@9.15.0): dependencies: - eslint: 8.38.0 + eslint: 9.15.0 - eslint-import-resolver-node@0.3.7: + eslint-import-resolver-node@0.3.9: dependencies: - debug: 3.2.7(supports-color@5.5.0) - is-core-module: 2.11.0 - resolve: 1.22.1 + debug: 3.2.7 + is-core-module: 2.15.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0): + eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0): dependencies: - debug: 4.3.4 + '@nolyfill/is-core-module': 1.0.39 + debug: 4.3.7(supports-color@5.5.0) enhanced-resolve: 5.15.1 - eslint: 8.38.0 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) - eslint-plugin-import: 2.27.5(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0) + eslint: 9.15.0 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) fast-glob: 3.3.2 - get-tsconfig: 4.6.2 - is-core-module: 2.11.0 + get-tsconfig: 4.8.1 + is-bun-module: 1.2.1 is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0): - dependencies: - debug: 3.2.7(supports-color@5.5.0) - optionalDependencies: - '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) - eslint: 8.38.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint@8.38.0): - dependencies: - debug: 3.2.7(supports-color@5.5.0) - optionalDependencies: - '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) - eslint: 8.38.0 - eslint-import-resolver-node: 0.3.7 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0): dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7 optionalDependencies: - eslint: 8.37.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0) + '@typescript-eslint/parser': 8.14.0(eslint@9.15.0)(typescript@5.6.3) + eslint: 9.15.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0): dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7(supports-color@5.5.0) + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.38.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint@8.38.0) - has: 1.0.3 - is-core-module: 2.11.0 + eslint: 9.15.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + hasown: 2.0.2 + is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - semver: 6.3.0 - tsconfig-paths: 3.14.1 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + string.prototype.trimend: 1.0.8 + tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.27.5(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0): - dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7(supports-color@5.5.0) - doctrine: 2.1.0 - eslint: 8.37.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.37.0) - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - semver: 6.3.0 - tsconfig-paths: 3.14.1 + '@typescript-eslint/parser': 8.14.0(eslint@9.15.0)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.27.5(eslint-import-resolver-typescript@3.6.1)(eslint@8.38.0): + eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0): dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7(supports-color@5.5.0) + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.38.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1(eslint-plugin-import@2.27.5)(eslint@8.38.0))(eslint@8.38.0) - has: 1.0.3 - is-core-module: 2.11.0 + eslint: 9.15.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + hasown: 2.0.2 + is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - semver: 6.3.0 - tsconfig-paths: 3.14.1 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + string.prototype.trimend: 1.0.8 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.7.1(eslint@8.37.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.15.0): dependencies: - '@babel/runtime': 7.20.13 - aria-query: 5.1.3 - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - ast-types-flow: 0.0.7 - axe-core: 4.6.3 - axobject-query: 3.1.1 + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.37.0 - has: 1.0.3 - jsx-ast-utils: 3.3.3 - language-tags: 1.0.5 + eslint: 9.15.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - semver: 6.3.0 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@4.6.0(eslint@8.37.0): + eslint-plugin-react-hooks@5.0.0(eslint@9.15.0): dependencies: - eslint: 8.37.0 + eslint: 9.15.0 - eslint-plugin-react@7.32.2(eslint@8.37.0): + eslint-plugin-react@7.37.2(eslint@9.15.0): dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - eslint: 8.37.0 + es-iterator-helpers: 1.2.0 + eslint: 9.15.0 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.8 - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 - eslint-scope@7.1.1: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-visitor-keys@3.4.0: {} + eslint-visitor-keys@3.4.3: {} - eslint@8.37.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.37.0 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 - esquery: 1.4.2 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.3.0 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color + eslint-visitor-keys@4.2.0: {} - eslint@8.38.0: + eslint@9.15.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.38.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.0 + '@eslint/core': 0.9.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.15.0 + '@eslint/plugin-kit': 0.2.3 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 debug: 4.3.4 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 - esquery: 1.4.2 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.3.0 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 + optionator: 0.9.4 transitivePeerDependencies: - supports-color - esniff@2.0.1: + espree@10.3.0: dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - event-emitter: 0.3.5 - type: 2.7.3 - - espree@9.5.1: - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} - esquery@1.4.2: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -9121,67 +8786,68 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + esutils@2.0.3: {} etag@1.8.1: {} - event-emitter@0.3.5: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - eventemitter3@4.0.7: {} + eventemitter3@5.0.1: {} + events@1.1.1: {} events@3.3.0: {} - execa@6.1.0: + execa@8.0.1: dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 3.0.1 + cross-spawn: 7.0.5 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.3.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 - express@4.18.2: + expect-type@1.1.0: {} + + express@4.21.1: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.1 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.5.0 + cookie: 0.7.1 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -9190,21 +8856,9 @@ snapshots: transitivePeerDependencies: - supports-color - ext@1.7.0: - dependencies: - type: 2.7.3 - fast-deep-equal@3.1.3: {} - fast-equals@4.0.3: {} - - fast-glob@3.2.12: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 + fast-equals@5.0.1: {} fast-glob@3.3.2: dependencies: @@ -9212,21 +8866,17 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} - fast-levenshtein@2.0.6: {} - - fast-xml-parser@4.1.2: - dependencies: - strnum: 1.0.5 - + fast-levenshtein@2.0.6: {} + fast-xml-parser@4.2.4: dependencies: strnum: 1.0.5 - fast-xml-parser@4.2.5: + fast-xml-parser@4.4.1: dependencies: strnum: 1.0.5 @@ -9239,9 +8889,9 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.0.4 + flat-cache: 4.0.1 file-saver@2.0.5: {} @@ -9249,10 +8899,14 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.3.1: dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -9268,12 +8922,12 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.0.4: + flat-cache@4.0.1: dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 + flatted: 3.3.1 + keyv: 4.5.4 - flatted@3.2.7: {} + flatted@3.3.1: {} for-each@0.3.3: dependencies: @@ -9293,18 +8947,19 @@ snapshots: fresh@0.5.2: {} - fs.realpath@1.0.0: {} - fsevents@2.3.2: optional: true - function-bind@1.1.1: {} + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} - function.prototype.name@1.1.5: + function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} @@ -9313,25 +8968,32 @@ snapshots: get-caller-file@2.0.5: {} - get-func-name@2.0.0: {} + get-east-asian-width@1.3.0: {} - get-intrinsic@1.2.0: + get-intrinsic@1.2.4: dependencies: - function-bind: 1.1.1 - has: 1.0.3 + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 has-symbols: 1.0.3 + hasown: 2.0.2 - get-stream@6.0.1: {} + get-stream@8.0.1: {} - get-symbol-description@1.0.0: + get-symbol-description@1.0.2: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 get-tsconfig@4.6.2: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -9342,56 +9004,28 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@7.2.3: - 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 - - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - globalize@0.1.1: {} globals@11.12.0: {} - globals@13.20.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} - globalthis@1.0.3: + globalthis@1.0.4: dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 + gopd: 1.0.1 - globby@11.1.0: + goober@2.1.16(csstype@3.1.3): dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 + csstype: 3.1.3 gopd@1.0.1: dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.4 graceful-fs@4.2.10: {} - grapheme-splitter@1.0.4: {} - - hanji@0.0.5: - dependencies: - lodash.throttle: 4.1.1 - sisteransi: 1.0.5 + graphemer@1.4.0: {} has-bigints@1.0.2: {} @@ -9399,11 +9033,11 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.0: + has-property-descriptors@1.0.2: dependencies: - get-intrinsic: 1.2.0 + es-define-property: 1.0.0 - has-proto@1.0.1: {} + has-proto@1.0.3: {} has-symbols@1.0.3: {} @@ -9411,19 +9045,21 @@ snapshots: dependencies: has-symbols: 1.0.3 - has@1.0.3: + has-tostringtag@1.0.2: dependencies: - function-bind: 1.1.1 + has-symbols: 1.0.3 - heap@0.2.7: {} + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - html-encoding-sniffer@3.0.0: + html-encoding-sniffer@4.0.0: dependencies: - whatwg-encoding: 2.0.0 + whatwg-encoding: 3.1.1 html2canvas@1.4.1: dependencies: @@ -9438,24 +9074,23 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@5.0.0: + http-proxy-agent@7.0.2: dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.4 + agent-base: 7.1.1 + debug: 4.3.7(supports-color@5.5.0) transitivePeerDependencies: - supports-color - https-proxy-agent@5.0.1: + https-proxy-agent@7.0.5: dependencies: - agent-base: 6.0.2 - debug: 4.3.4 + agent-base: 7.1.1 + debug: 4.3.7(supports-color@5.5.0) transitivePeerDependencies: - supports-color - human-signals@3.0.1: {} + human-signals@5.0.0: {} - husky@8.0.3: {} + husky@9.1.6: {} hyphenate-style-name@1.0.4: {} @@ -9467,10 +9102,11 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ics@3.1.0: + ics@3.8.1: dependencies: nanoid: 3.3.4 - yup: 0.32.11 + runes2: 1.1.4 + yup: 1.4.0 ieee754@1.1.13: {} @@ -9480,6 +9116,8 @@ snapshots: ignore@5.2.4: {} + ignore@5.3.2: {} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -9487,20 +9125,13 @@ snapshots: imurmurhash@0.1.4: {} - indent-string@4.0.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - inherits@2.0.4: {} - internal-slot@1.0.5: + internal-slot@1.0.7: dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 internmap@2.0.3: {} @@ -9512,17 +9143,20 @@ snapshots: is-arguments@1.1.1: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 has-tostringtag: 1.0.0 - is-array-buffer@3.0.1: + is-array-buffer@3.0.4: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-typed-array: 1.1.10 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-arrayish@0.2.1: {} + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -9533,25 +9167,41 @@ snapshots: is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-bun-module@1.2.1: + dependencies: + semver: 7.6.3 is-callable@1.2.7: {} - is-core-module@2.11.0: + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: dependencies: - has: 1.0.3 + is-typed-array: 1.1.13 is-date-object@1.0.5: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-extglob@2.1.1: {} + is-finalizationregistry@1.0.2: + dependencies: + call-bind: 1.0.7 + is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@4.0.0: {} + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.3.0 + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.0 @@ -9562,38 +9212,34 @@ snapshots: is-in-browser@1.1.3: {} - is-map@2.0.2: {} + is-map@2.0.3: {} - is-negative-zero@2.0.2: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-number@7.0.0: {} - is-path-inside@3.0.3: {} - is-potential-custom-element-name@1.0.1: {} - is-promise@2.2.2: {} - is-regex@1.1.4: dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 - is-set@2.0.2: {} + is-set@2.0.3: {} - is-shared-array-buffer@1.0.2: + is-shared-array-buffer@1.0.3: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 is-stream@3.0.0: {} is-string@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-symbol@1.0.4: dependencies: @@ -9602,21 +9248,25 @@ snapshots: is-typed-array@1.1.10: dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-weakmap@2.0.1: {} + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-weakmap@2.0.2: {} is-weakref@1.0.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 - is-weakset@2.0.2: + is-weakset@2.0.3: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-what@4.1.15: {} @@ -9626,9 +9276,15 @@ snapshots: isexe@2.0.0: {} - jmespath@0.16.0: {} + iterator.prototype@1.1.3: + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 - js-sdsl@4.3.0: {} + jmespath@0.16.0: {} js-tokens@4.0.0: {} @@ -9641,43 +9297,37 @@ snapshots: dependencies: argparse: 2.0.1 - jsdom@22.1.0: + jsdom@25.0.1: dependencies: - abab: 2.0.6 - cssstyle: 3.0.0 - data-urls: 4.0.0 + cssstyle: 4.1.0 + data-urls: 5.0.0 decimal.js: 10.4.3 - domexception: 4.0.0 form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 + nwsapi: 2.2.13 parse5: 7.1.2 - rrweb-cssom: 0.6.0 + rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.3 - w3c-xmlserializer: 4.0.0 + tough-cookie: 5.0.0 + w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 - ws: 8.14.1 - xml-name-validator: 4.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.18.0 + xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jsesc@2.5.2: {} + jsesc@3.0.2: {} - json-diff@0.9.0: - dependencies: - cli-color: 2.0.4 - difflib: 0.2.4 - dreamopt: 0.8.0 + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -9691,8 +9341,6 @@ snapshots: json5@2.2.3: {} - jsonc-parser@3.2.0: {} - jss-plugin-camel-case@10.10.0: dependencies: '@babel/runtime': 7.22.11 @@ -9735,20 +9383,31 @@ snapshots: jss@10.10.0: dependencies: '@babel/runtime': 7.22.11 - csstype: 3.1.1 + csstype: 3.1.3 is-in-browser: 1.1.3 tiny-warning: 1.0.3 jsx-ast-utils@3.3.3: dependencies: - array-includes: 3.1.6 + array-includes: 3.1.8 object.assign: 4.1.4 - language-subtag-registry@0.3.22: {} + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + language-subtag-registry@0.3.23: {} - language-tags@1.0.5: + language-tags@1.0.9: dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 leaflet-routing-machine@3.2.12: dependencies: @@ -9756,50 +9415,42 @@ snapshots: '@mapbox/polyline': 0.2.0 osrm-text-instructions: 0.13.4 - leaflet.locatecontrol@0.79.0: {} + leaflet.locatecontrol@0.82.0: {} - leaflet@1.9.3: {} + leaflet@1.9.4: {} levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@2.0.6: {} + lilconfig@3.1.2: {} lines-and-columns@1.2.4: {} - lint-staged@13.1.2: + lint-staged@15.2.10: dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.19 - commander: 9.5.0 - debug: 4.3.4 - execa: 6.1.0 - lilconfig: 2.0.6 - listr2: 5.0.7 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.7(supports-color@5.5.0) + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.5 + micromatch: 4.0.8 pidtree: 0.6.0 - string-argv: 0.3.1 - yaml: 2.2.1 + string-argv: 0.3.2 + yaml: 2.5.1 transitivePeerDependencies: - - enquirer - supports-color - listr2@5.0.7: + listr2@8.2.5: dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.19 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.8.0 - through: 2.3.8 - wrap-ansi: 7.0.0 - - local-pkg@0.4.3: {} + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 locate-path@6.0.0: dependencies: @@ -9809,76 +9460,55 @@ snapshots: lodash.merge@4.6.2: {} - lodash.throttle@4.1.1: {} - lodash@4.17.21: {} - log-update@4.0.0: + log-update@6.1.0: dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - loupe@2.3.6: + loupe@3.1.2: {} + + lower-case@2.0.2: dependencies: - get-func-name: 2.0.0 + tslib: 2.8.1 lru-cache@5.1.1: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lru-queue@0.1.0: - dependencies: - es5-ext: 0.10.64 - luxon@3.2.1: {} lz-string@1.5.0: {} - magic-string@0.30.2: + magic-string@0.30.12: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 material-colors@1.2.6: {} - material-ui-popup-state@5.0.4(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + material-ui-popup-state@5.3.1(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.20.13 - '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 + '@mui/material': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/prop-types': 15.7.13 + '@types/react': 18.3.12 + classnames: 2.5.1 prop-types: 15.8.1 - react: 18.2.0 - transitivePeerDependencies: - - '@emotion/react' - - '@emotion/styled' - - '@types/react' - - react-dom + react: 18.3.1 media-typer@0.3.0: {} memoize-one@6.0.0: {} - memoizee@0.4.17: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-weak-map: 2.0.3 - event-emitter: 0.3.5 - is-promise: 2.2.2 - lru-queue: 0.1.0 - next-tick: 1.1.0 - timers-ext: 0.1.8 - - merge-descriptors@1.0.1: {} + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -9886,9 +9516,9 @@ snapshots: methods@1.1.2: {} - micromatch@4.0.5: + micromatch@4.0.8: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 mime-db@1.52.0: {} @@ -9899,36 +9529,29 @@ snapshots: mime@1.6.0: {} - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - minimatch@5.1.6: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 minimist@1.2.8: {} - mlly@1.4.0: - dependencies: - acorn: 8.10.0 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.2.0 - mnemonist@0.38.3: dependencies: obliterator: 1.6.1 - moment-timezone@0.5.43: + moment-timezone@0.5.46: dependencies: - moment: 2.29.4 + moment: 2.30.1 - moment@2.29.4: {} + moment@2.30.1: {} ms@2.0.0: {} @@ -9936,19 +9559,18 @@ snapshots: ms@2.1.3: {} - nanoclone@0.2.1: {} - nanoid@3.3.4: {} - nanoid@3.3.6: {} - - natural-compare-lite@1.4.0: {} + nanoid@3.3.7: {} natural-compare@1.4.0: {} negotiator@0.6.3: {} - next-tick@1.1.0: {} + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 node-domexception@1.0.0: {} @@ -9958,19 +9580,17 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-releases@2.0.10: {} + node-releases@2.0.18: {} - node-releases@2.0.13: {} - - nodemon@2.0.22: + nodemon@3.1.7: dependencies: chokidar: 3.5.3 - debug: 3.2.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 - semver: 5.7.1 - simple-update-notifier: 1.1.0 + semver: 7.6.3 + simple-update-notifier: 2.0.0 supports-color: 5.5.0 touch: 3.1.0 undefsafe: 2.0.5 @@ -9981,63 +9601,65 @@ snapshots: normalize-path@3.0.0: {} - notistack@2.0.8(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@mui/material@5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + notistack@3.0.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@mui/material': 5.11.10(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@emotion/styled@11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) clsx: 1.2.1 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - optionalDependencies: - '@emotion/react': 11.10.6(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.10.6(@emotion/react@11.10.6(@types/react@18.0.28)(react@18.2.0))(@types/react@18.0.28)(react@18.2.0) + goober: 2.1.16(csstype@3.1.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - csstype - npm-run-path@5.1.0: + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 - nwsapi@2.2.7: {} + nwsapi@2.2.13: {} object-assign@4.1.1: {} - object-inspect@1.12.3: {} - - object-is@1.1.5: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + object-inspect@1.13.3: {} object-keys@1.1.1: {} object.assign@4.1.4: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.6: + object.assign@4.1.5: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 - object.fromentries@2.0.6: + object.fromentries@2.0.8: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 - object.hasown@1.1.2: + object.groupby@1.0.3: dependencies: - define-properties: 1.2.0 - es-abstract: 1.21.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 - object.values@1.1.6: + object.values@1.2.0: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 obliterator@1.6.1: {} @@ -10049,22 +9671,22 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - optionator@0.9.1: + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + optionator@0.9.4: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 + word-wrap: 1.2.5 osrm-text-instructions@0.13.4: {} @@ -10072,18 +9694,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.0.0 - p-locate@5.0.0: dependencies: p-limit: 3.1.0 - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - pako@2.1.0: {} parent-module@1.0.1: @@ -10092,7 +9706,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -10105,55 +9719,45 @@ snapshots: path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} path-key@4.0.0: {} path-parse@1.0.7: {} - path-to-regexp@0.1.7: {} + path-to-regexp@0.1.10: {} path-type@4.0.0: {} - pathe@1.1.1: {} - - pathval@1.1.1: {} + pathe@1.1.2: {} - peterportal-api-next-types@1.0.0-alpha.6: {} + pathval@2.0.0: {} - peterportal-api-next-types@1.0.0-rc.2.68.0: {} + peterportal-api-next-types@1.0.0-rc.3: {} - picocolors@1.0.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} - pidtree@0.6.0: {} + picomatch@4.0.2: {} - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.0 - pathe: 1.1.1 + pidtree@0.6.0: {} popper.js@1.16.1-lts: {} - postcss-value-parser@3.3.1: {} + possible-typed-array-names@1.0.0: {} - postcss@8.4.29: + postcss@8.4.49: dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 - postgres@3.4.4: {} + postgres@3.4.5: {} prelude-ls@1.2.1: {} - prettier@2.8.4: {} - - prettier@3.1.0: {} + prettier@3.3.3: {} pretty-format@27.5.1: dependencies: @@ -10161,58 +9765,50 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@29.6.2: - dependencies: - '@jest/schemas': 29.6.0 - ansi-styles: 5.2.0 - react-is: 18.2.0 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - property-expr@2.0.5: {} + property-expr@2.0.6: {} proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - psl@1.9.0: {} - pstree.remy@1.1.8: {} punycode@1.3.2: {} punycode@2.3.0: {} - qs@6.11.0: + punycode@2.3.1: {} + + qs@6.13.0: dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 querystring@0.2.0: {} - querystringify@2.2.0: {} - queue-microtask@1.2.3: {} range-parser@1.2.1: {} - raw-body@2.5.1: + raw-body@2.5.2: dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - react-big-calendar@1.6.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-big-calendar@1.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.20.13 clsx: 1.2.1 date-arithmetic: 4.1.0 - dayjs: 1.11.7 + dayjs: 1.11.13 dom-helpers: 5.2.1 globalize: 0.1.1 invariant: 2.2.4 @@ -10220,138 +9816,123 @@ snapshots: lodash-es: 4.17.21 luxon: 3.2.1 memoize-one: 6.0.0 - moment: 2.29.4 - moment-timezone: 0.5.43 + moment: 2.30.1 + moment-timezone: 0.5.46 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-overlays: 5.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - uncontrollable: 7.2.1(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-overlays: 5.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + uncontrollable: 7.2.1(react@18.3.1) - react-chartjs-2@5.2.0(chart.js@4.2.1)(react@18.2.0): + react-chartjs-2@5.2.0(chart.js@4.4.6)(react@18.3.1): dependencies: - chart.js: 4.2.1 - react: 18.2.0 + chart.js: 4.4.6 + react: 18.3.1 - react-color@2.19.3(react@18.2.0): + react-color@2.19.3(react@18.3.1): dependencies: - '@icons/material': 0.2.4(react@18.2.0) + '@icons/material': 0.2.4(react@18.3.1) lodash: 4.17.21 lodash-es: 4.17.21 material-colors: 1.2.6 prop-types: 15.8.1 - react: 18.2.0 - reactcss: 1.2.3(react@18.2.0) + react: 18.3.1 + reactcss: 1.2.3(react@18.3.1) tinycolor2: 1.6.0 - react-dom@18.2.0(react@18.2.0): + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 - react-ga4@2.0.0: {} + react-ga4@2.1.0: {} - react-input-mask@2.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-input-mask@2.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: invariant: 2.2.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) warning: 4.0.3 react-is@16.13.1: {} react-is@17.0.2: {} - react-is@18.2.0: {} + react-is@18.3.1: {} - react-lazyload@3.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-lazyload@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-leaflet@4.2.1(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-leaflet@4.2.1(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@react-leaflet/core': 2.1.0(leaflet@1.9.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - leaflet: 1.9.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@react-leaflet/core': 2.1.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + leaflet: 1.9.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-lifecycles-compat@3.0.4: {} - react-overlays@5.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-overlays@5.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.20.13 '@popperjs/core': 2.11.6 - '@restart/hooks': 0.4.9(react@18.2.0) + '@restart/hooks': 0.4.9(react@18.3.1) '@types/warning': 3.0.0 dom-helpers: 5.2.1 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - uncontrollable: 7.2.1(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + uncontrollable: 7.2.1(react@18.3.1) warning: 4.0.3 - react-refresh@0.14.0: {} - - react-resize-detector@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - lodash: 4.17.21 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-refresh@0.14.2: {} - react-router-dom@6.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/router': 1.3.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.8.1(react@18.2.0) + '@remix-run/router': 1.21.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.28.0(react@18.3.1) - react-router@6.8.1(react@18.2.0): + react-router@6.28.0(react@18.3.1): dependencies: - '@remix-run/router': 1.3.2 - react: 18.2.0 + '@remix-run/router': 1.21.0 + react: 18.3.1 - react-smooth@2.0.2(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-smooth@4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - fast-equals: 4.0.3 + fast-equals: 5.0.1 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-transition-group: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-split@2.0.14(react@18.2.0): + react-split@2.0.14(react@18.3.1): dependencies: prop-types: 15.8.1 - react: 18.2.0 + react: 18.3.1 split.js: 1.6.5 - react-transition-group@2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - dom-helpers: 3.4.0 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-lifecycles-compat: 3.0.4 - - react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.22.11 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react@18.2.0: + react@18.3.1: dependencies: loose-envify: 1.4.0 - reactcss@1.2.3(react@18.2.0): + reactcss@1.2.3(react@18.3.1): dependencies: lodash: 4.17.21 - react: 18.2.0 + react: 18.3.1 readdirp@3.6.0: dependencies: @@ -10361,96 +9942,125 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.4.3(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + recharts@2.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - classnames: 2.3.2 + clsx: 2.1.1 eventemitter3: 4.0.7 lodash: 4.17.21 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 16.13.1 - react-resize-detector: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react-smooth: 2.0.2(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-smooth: 4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) recharts-scale: 0.4.5 - reduce-css-calc: 2.1.8 + tiny-invariant: 1.3.3 victory-vendor: 36.6.8 - reduce-css-calc@2.1.8: + reflect.getprototypeof@1.0.6: dependencies: - css-unit-converter: 1.1.2 - postcss-value-parser: 3.3.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 regenerator-runtime@0.13.11: {} regenerator-runtime@0.14.0: {} - regexp.prototype.flags@1.4.3: + regenerator-runtime@0.14.1: {} + + regexp.prototype.flags@1.5.3: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 require-directory@2.1.1: {} - requires-port@1.0.0: {} - resize-observer-polyfill@1.5.1: {} resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} - resolve@1.22.1: + resolve@1.22.8: dependencies: - is-core-module: 2.11.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.4: + resolve@2.0.0-next.5: dependencies: - is-core-module: 2.11.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: + restore-cursor@5.1.0: dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 + onetime: 7.0.0 + signal-exit: 4.1.0 reusify@1.0.4: {} - rfdc@1.3.0: {} + rfdc@1.4.1: {} - rifm@0.7.0(react@18.2.0): + rifm@0.7.0(react@18.3.1): dependencies: '@babel/runtime': 7.22.11 - react: 18.2.0 + react: 18.3.1 - rimraf@3.0.2: + rollup@4.27.2: dependencies: - glob: 7.2.3 - - rollup@3.29.1: + '@types/estree': 1.0.6 optionalDependencies: - fsevents: 2.3.2 - - rrweb-cssom@0.6.0: {} + '@rollup/rollup-android-arm-eabi': 4.27.2 + '@rollup/rollup-android-arm64': 4.27.2 + '@rollup/rollup-darwin-arm64': 4.27.2 + '@rollup/rollup-darwin-x64': 4.27.2 + '@rollup/rollup-freebsd-arm64': 4.27.2 + '@rollup/rollup-freebsd-x64': 4.27.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.27.2 + '@rollup/rollup-linux-arm-musleabihf': 4.27.2 + '@rollup/rollup-linux-arm64-gnu': 4.27.2 + '@rollup/rollup-linux-arm64-musl': 4.27.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.27.2 + '@rollup/rollup-linux-riscv64-gnu': 4.27.2 + '@rollup/rollup-linux-s390x-gnu': 4.27.2 + '@rollup/rollup-linux-x64-gnu': 4.27.2 + '@rollup/rollup-linux-x64-musl': 4.27.2 + '@rollup/rollup-win32-arm64-msvc': 4.27.2 + '@rollup/rollup-win32-ia32-msvc': 4.27.2 + '@rollup/rollup-win32-x64-msvc': 4.27.2 + fsevents: 2.3.3 + + rrweb-cssom@0.7.1: {} run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.0: + runes2@1.1.4: {} + + rxjs@7.8.1: dependencies: - tslib: 2.5.0 + tslib: 2.8.1 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 safe-buffer@5.2.1: {} - safe-regex-test@1.0.0: + safe-regex-test@1.0.3: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 + call-bind: 1.0.7 + es-errors: 1.3.0 is-regex: 1.1.4 safer-buffer@2.1.2: {} @@ -10461,23 +10071,15 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.23.0: + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 - semver@5.7.1: {} - - semver@6.3.0: {} - semver@6.3.1: {} - semver@7.0.0: {} - - semver@7.3.8: - dependencies: - lru-cache: 6.0.0 + semver@7.6.3: {} - send@0.18.0: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -10495,15 +10097,31 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.15.0: + serve-static@1.16.2: dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + setprototypeof@1.2.0: {} shebang-command@2.0.0: @@ -10514,42 +10132,37 @@ snapshots: shell-quote@1.8.1: {} - side-channel@1.0.4: + side-channel@1.0.6: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - object-inspect: 1.12.3 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.3 siginfo@2.0.0: {} - signal-exit@3.0.7: {} + signal-exit@4.1.0: {} - simple-update-notifier@1.1.0: + simple-update-notifier@2.0.0: dependencies: - semver: 7.0.0 - - sisteransi@1.0.5: {} + semver: 7.6.3 - slash@3.0.0: {} - - slice-ansi@3.0.0: + slice-ansi@5.0.0: dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 - slice-ansi@4.0.0: + slice-ansi@7.1.0: dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 - slice-ansi@5.0.0: + snake-case@3.0.4: dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 + dot-case: 3.0.4 + tslib: 2.8.1 - source-map-js@1.0.2: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: dependencies: @@ -10560,8 +10173,6 @@ snapshots: source-map@0.6.1: {} - spawn-command@0.0.2-1: {} - split.js@1.6.5: {} sprintf-js@1.0.3: {} @@ -10570,13 +10181,9 @@ snapshots: statuses@2.0.1: {} - std-env@3.4.0: {} - - stop-iteration-iterator@1.0.0: - dependencies: - internal-slot: 1.0.5 + std-env@3.8.0: {} - string-argv@0.3.1: {} + string-argv@0.3.2: {} string-width@4.2.3: dependencies: @@ -10584,42 +10191,64 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: + string-width@7.2.0: dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 - string.prototype.matchall@4.0.8: + string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - get-intrinsic: 1.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.4.3 - side-channel: 1.0.4 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.3 + set-function-name: 2.0.2 + side-channel: 1.0.6 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.5 + + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.6: + string.prototype.trimend@1.0.8: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 - string.prototype.trimstart@1.0.6: + string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.0.1: + strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom@3.0.0: {} @@ -10627,15 +10256,11 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@1.3.0: - dependencies: - acorn: 8.10.0 - strnum@1.0.5: {} - stylis@4.1.3: {} + stylis@4.2.0: {} - superjson@1.12.3: + superjson@2.2.1: dependencies: copy-anything: 3.0.5 @@ -10663,26 +10288,29 @@ snapshots: dependencies: utrie: 1.0.2 - text-table@0.2.0: {} - - through@2.3.8: {} + tiny-case@1.0.3: {} - timers-ext@0.1.8: - dependencies: - es5-ext: 0.10.64 - next-tick: 1.1.0 + tiny-invariant@1.3.3: {} tiny-warning@1.0.3: {} - tinybench@2.5.0: {} + tinybench@2.9.0: {} tinycolor2@1.6.0: {} - tinypool@0.7.0: {} + tinyexec@0.3.1: {} + + tinypool@1.0.2: {} - tinyspy@2.1.1: {} + tinyrainbow@1.2.0: {} - to-fast-properties@2.0.0: {} + tinyspy@3.0.2: {} + + tldts-core@6.1.61: {} + + tldts@6.1.61: + dependencies: + tldts-core: 6.1.61 to-regex-range@5.0.1: dependencies: @@ -10696,163 +10324,164 @@ snapshots: dependencies: nopt: 1.0.10 - tough-cookie@4.1.3: + tough-cookie@5.0.0: dependencies: - psl: 1.9.0 - punycode: 2.3.0 - universalify: 0.2.0 - url-parse: 1.5.10 + tldts: 6.1.61 - tr46@4.1.1: + tr46@5.0.0: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 tree-kill@1.2.2: {} - tsconfig-paths@3.14.1: + ts-api-utils@1.4.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} - - tslib@2.3.1: {} - tslib@2.5.0: {} - tsutils@3.21.0(typescript@4.9.5): - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 + tslib@2.6.2: {} - tsx@3.12.7: + tslib@2.8.1: {} + + tsx@4.19.2: dependencies: - '@esbuild-kit/cjs-loader': 2.4.2 - '@esbuild-kit/core-utils': 3.1.0 - '@esbuild-kit/esm-loader': 2.5.5 + esbuild: 0.23.1 + get-tsconfig: 4.8.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 tunnel@0.0.6: {} - turbo-darwin-64@2.2.3: + turbo-darwin-64@2.3.0: optional: true - turbo-darwin-arm64@2.2.3: + turbo-darwin-arm64@2.3.0: optional: true - turbo-linux-64@2.2.3: + turbo-linux-64@2.3.0: optional: true - turbo-linux-arm64@2.2.3: + turbo-linux-arm64@2.3.0: optional: true - turbo-windows-64@2.2.3: + turbo-windows-64@2.3.0: optional: true - turbo-windows-arm64@2.2.3: + turbo-windows-arm64@2.3.0: optional: true - turbo@2.2.3: + turbo@2.3.0: optionalDependencies: - turbo-darwin-64: 2.2.3 - turbo-darwin-arm64: 2.2.3 - turbo-linux-64: 2.2.3 - turbo-linux-arm64: 2.2.3 - turbo-windows-64: 2.2.3 - turbo-windows-arm64: 2.2.3 + turbo-darwin-64: 2.3.0 + turbo-darwin-arm64: 2.3.0 + turbo-linux-64: 2.3.0 + turbo-linux-arm64: 2.3.0 + turbo-windows-64: 2.3.0 + turbo-windows-arm64: 2.3.0 type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - - type-fest@0.20.2: {} - - type-fest@0.21.3: {} + type-fest@2.19.0: {} type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - type@2.7.3: {} + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 - typed-array-length@1.0.4: + typed-array-byte-length@1.0.1: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.10 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typescript@4.9.5: {} + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typescript@5.3.3: {} + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 - ua-parser-js@1.0.37: {} + typescript@5.6.3: {} - ufo@1.2.0: {} + ua-parser-js@1.0.39: {} unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - uncontrollable@7.2.1(react@18.2.0): + uncontrollable@7.2.1(react@18.3.1): dependencies: - '@babel/runtime': 7.22.11 - '@types/react': 18.0.28 + '@babel/runtime': 7.20.13 + '@types/react': 18.3.12 invariant: 2.2.4 - react: 18.2.0 + react: 18.3.1 react-lifecycles-compat: 3.0.4 undefsafe@2.0.5: {} undici-types@5.26.5: {} + undici-types@6.19.8: {} + undici@5.28.2: dependencies: '@fastify/busboy': 2.1.0 universal-user-agent@6.0.1: {} - universalify@0.2.0: {} - unpipe@1.0.0: {} - update-browserslist-db@1.0.10(browserslist@4.21.5): - dependencies: - browserslist: 4.21.5 - escalade: 3.1.1 - picocolors: 1.0.0 - - update-browserslist-db@1.0.11(browserslist@4.21.10): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.21.10 - escalade: 3.1.1 - picocolors: 1.0.0 + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 uri-js@4.4.1: dependencies: punycode: 2.3.0 - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - url@0.10.3: dependencies: punycode: 1.3.2 querystring: 0.2.0 - use-sync-external-store@1.2.0(react@18.2.0): + use-sync-external-store@1.2.2(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 + optional: true util@0.12.5: dependencies: @@ -10870,7 +10499,7 @@ snapshots: uuid@8.0.0: {} - uuid@8.3.2: {} + uuid@9.0.1: {} vary@1.1.2: {} @@ -10891,91 +10520,83 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-node@0.34.4(@types/node@20.11.6): + vite-node@2.1.5(@types/node@22.9.0): dependencies: cac: 6.7.14 - debug: 4.3.4 - mlly: 1.4.0 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 4.4.9(@types/node@20.11.6) + debug: 4.3.7(supports-color@5.5.0) + es-module-lexer: 1.5.4 + pathe: 1.1.2 + vite: 5.4.11(@types/node@22.9.0) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vite-plugin-svgr@2.4.0(rollup@3.29.1)(vite@4.4.9(@types/node@18.13.0)): + vite-plugin-svgr@4.3.0(rollup@4.27.2)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)): dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.29.1) - '@svgr/core': 6.5.1 - vite: 4.4.9(@types/node@18.13.0) + '@rollup/pluginutils': 5.1.3(rollup@4.27.2) + '@svgr/core': 8.1.0(typescript@5.6.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3)) + vite: 5.4.11(@types/node@22.9.0) transitivePeerDependencies: - rollup - supports-color + - typescript - vite@4.4.9(@types/node@18.13.0): - dependencies: - esbuild: 0.18.20 - postcss: 8.4.29 - rollup: 3.29.1 - optionalDependencies: - '@types/node': 18.13.0 - fsevents: 2.3.2 - - vite@4.4.9(@types/node@20.11.6): + vite@5.4.11(@types/node@22.9.0): dependencies: - esbuild: 0.18.20 - postcss: 8.4.29 - rollup: 3.29.1 + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.27.2 optionalDependencies: - '@types/node': 20.11.6 - fsevents: 2.3.2 - - vitest@0.34.4(jsdom@22.1.0): - dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.3 - '@types/node': 20.11.6 - '@vitest/expect': 0.34.4 - '@vitest/runner': 0.34.4 - '@vitest/snapshot': 0.34.4 - '@vitest/spy': 0.34.4 - '@vitest/utils': 0.34.4 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.2 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.4.0 - strip-literal: 1.3.0 - tinybench: 2.5.0 - tinypool: 0.7.0 - vite: 4.4.9(@types/node@20.11.6) - vite-node: 0.34.4(@types/node@20.11.6) - why-is-node-running: 2.2.2 + '@types/node': 22.9.0 + fsevents: 2.3.3 + + vitest@2.1.5(@types/node@22.9.0)(jsdom@25.0.1): + dependencies: + '@vitest/expect': 2.1.5 + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.9.0)) + '@vitest/pretty-format': 2.1.5 + '@vitest/runner': 2.1.5 + '@vitest/snapshot': 2.1.5 + '@vitest/spy': 2.1.5 + '@vitest/utils': 2.1.5 + chai: 5.1.2 + debug: 4.3.7(supports-color@5.5.0) + expect-type: 1.1.0 + magic-string: 0.30.12 + pathe: 1.1.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 5.4.11(@types/node@22.9.0) + vite-node: 2.1.5(@types/node@22.9.0) + why-is-node-running: 2.3.0 optionalDependencies: - jsdom: 22.1.0 + '@types/node': 22.9.0 + jsdom: 25.0.1 transitivePeerDependencies: - less - lightningcss + - msw - sass + - sass-embedded - stylus - sugarss - supports-color - terser - w3c-xmlserializer@4.0.0: + w3c-xmlserializer@5.0.0: dependencies: - xml-name-validator: 4.0.0 + xml-name-validator: 5.0.0 warning@4.0.3: dependencies: @@ -11000,15 +10621,15 @@ snapshots: base64-arraybuffer: 1.0.2 pako: 2.1.0 - whatwg-encoding@2.0.0: + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 - whatwg-mimetype@3.0.0: {} + whatwg-mimetype@4.0.0: {} - whatwg-url@12.0.1: + whatwg-url@14.0.0: dependencies: - tr46: 4.1.1 + tr46: 5.0.0 webidl-conversions: 7.0.0 which-boxed-primitive@1.0.2: @@ -11019,17 +10640,40 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-collection@1.0.1: + which-builtin-type@1.1.4: + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + + which-typed-array@1.1.15: dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 which-typed-array@1.1.9: dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 @@ -11039,32 +10683,30 @@ snapshots: dependencies: isexe: 2.0.0 - why-is-node-running@2.2.2: + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - word-wrap@1.2.3: {} + word-wrap@1.2.5: {} - wordwrap@1.0.0: {} - - wrap-ansi@6.2.0: + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@7.0.0: + wrap-ansi@9.0.0: dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 wrappy@1.0.2: {} - ws@8.14.1: {} + ws@8.18.0: {} - xml-name-validator@4.0.0: {} + xml-name-validator@5.0.0: {} xml2js@0.4.19: dependencies: @@ -11086,11 +10728,9 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} - yaml@1.10.2: {} - yaml@2.2.1: {} + yaml@2.5.1: {} yargs-parser@21.1.1: {} @@ -11106,22 +10746,15 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} - - yup@0.32.11: + yup@1.4.0: dependencies: - '@babel/runtime': 7.22.11 - '@types/lodash': 4.14.191 - lodash: 4.17.21 - lodash-es: 4.17.21 - nanoclone: 0.2.1 - property-expr: 2.0.5 + property-expr: 2.0.6 + tiny-case: 1.0.3 toposort: 2.0.2 + type-fest: 2.19.0 - zod@3.23.8: {} - - zustand@4.3.3(react@18.2.0): - dependencies: - use-sync-external-store: 1.2.0(react@18.2.0) + zustand@5.0.1(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)): optionalDependencies: - react: 18.2.0 + '@types/react': 18.3.12 + react: 18.3.1 + use-sync-external-store: 1.2.2(react@18.3.1) From 23e0806e9148589694858e7c35b816eb083fcc10 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:45:25 -0800 Subject: [PATCH 40/90] feat(migrate): write one batch at a time --- apps/backend/scripts/ddb_to_rds.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index fb6b75c8e..6eb47365b 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -17,17 +17,18 @@ import { migratePostgresDb } from './migrate'; * if DynamoDB returns a lot faster than we can push to Postgres. */ async function copyUsersToPostgres() { - const transactionBatches: Promise[] = []; const failedUsers: string[] = []; let success = 0; for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { + console.log(`Copying ${ddbBatch.length} users...`); const transactions = ddbBatch.map( // One transaction per user async (ddbUser) => { // Mangle duplicate schedule names ddbUser.userData.schedules = mangleDupliateScheduleNames(ddbUser.userData.schedules); + console.log(`Copying user ${ddbUser.id}...`); return RDS .upsertGuestUserData(db, ddbUser) .catch((error) => { @@ -46,11 +47,9 @@ async function copyUsersToPostgres() { } ); - transactionBatches.push(Promise.all(transactions)); + await Promise.all(transactions); } - await Promise.all(transactionBatches); - if (failedUsers.length > 0) { console.log(`Successfully copied ${success} users out of ${success + failedUsers.length}.`); console.log(`Failed users: ${failedUsers.join(', ')}`); From 6e80fb0d3b172794947729eba22503d2f75478fb Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:14:27 -0800 Subject: [PATCH 41/90] feat(migrate): remove postgres migration from copy script --- apps/backend/scripts/ddb_to_rds.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index 6eb47365b..67e33417e 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -6,7 +6,6 @@ import { ddbClient } from '../src/db/ddb'; import { db, client } from '../src/db/index'; import { RDS } from '../src/lib/rds'; import { mangleDupliateScheduleNames } from '../src/lib/formatting'; -import { migratePostgresDb } from './migrate'; /** @@ -59,7 +58,6 @@ async function copyUsersToPostgres() { async function main() { try { - await migratePostgresDb(); await copyUsersToPostgres(); } catch (error) { console.log(error); From 6d8169ad9ee6c6cf18c5c1c0bf9ace28cc95965e Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:14:42 -0800 Subject: [PATCH 42/90] feat(backend): use dotenv in env --- apps/backend/src/env.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index 52bbb80bb..3c47e86a1 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -1,5 +1,7 @@ import { type } from 'arktype'; -import 'dotenv/config'; +import * as dotenv from 'dotenv'; + +dotenv.config(); const Environment = type({ 'NODE_ENV?': "'development' | 'production' | 'staging'", From a124b1e77f9d8e567c34e96fdb2c484bc1f0d48e Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:14:55 -0800 Subject: [PATCH 43/90] chore(deps): update drizzle-kit (again) --- pnpm-lock.yaml | 3316 +++++++++++++++++++++++------------------------- 1 file changed, 1600 insertions(+), 1716 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9864303ef..b8829feb0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: devDependencies: '@types/eslint': specifier: ^8.56.5 - version: 9.6.1 + version: 8.56.12 '@types/node': specifier: ^20.11.6 - version: 22.9.0 + version: 20.17.6 cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -22,13 +22,13 @@ importers: version: 3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0) husky: specifier: ^8.0.3 - version: 9.1.6 + version: 8.0.3 jsdom: specifier: ^22.1.0 - version: 25.0.1 + version: 22.1.0 lint-staged: specifier: ^13.1.1 - version: 15.2.10 + version: 13.3.0 prettier: specifier: ^3.1.0 version: 3.3.3 @@ -37,7 +37,7 @@ importers: version: 2.3.0 vitest: specifier: ^0.34.4 - version: 2.1.5(@types/node@22.9.0)(jsdom@25.0.1) + version: 0.34.6(jsdom@22.1.0) .github/actions/create-deployment: dependencies: @@ -61,7 +61,7 @@ importers: dependencies: '@date-io/date-fns': specifier: ^2.16.0 - version: 3.0.0(date-fns@4.1.0) + version: 2.17.0(date-fns@2.30.0) '@emotion/react': specifier: ^11.10.5 version: 11.13.3(@types/react@18.3.12)(react@18.3.1) @@ -82,16 +82,16 @@ importers: version: 3.3.11(@date-io/core@3.0.0)(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/base': specifier: 5.0.0-beta.13 - version: 5.0.0-beta.61(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.13(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/icons-material': specifier: ^5.11.0 - version: 6.1.7(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/lab': specifier: ^5.0.0-alpha.118 - version: 6.0.0-beta.15(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.0.0-alpha.173(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.11.7 - version: 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@packages/antalmanac-types': specifier: workspace:^ version: link:../../packages/types @@ -103,7 +103,7 @@ importers: version: 3.7.0(react@18.3.1) '@tanstack/react-query': specifier: ^4.24.4 - version: 5.60.5(react@18.3.1) + version: 4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/client': specifier: ^10.30.0 version: 10.45.2(@trpc/server@10.45.2) @@ -118,7 +118,7 @@ importers: version: 2.5.1 date-fns: specifier: ^2.29.3 - version: 4.1.0 + version: 2.30.0 dayjs: specifier: ^1.11.7 version: 1.11.13 @@ -142,10 +142,10 @@ importers: version: 3.2.12 leaflet.locatecontrol: specifier: ^0.79.0 - version: 0.82.0 + version: 0.79.0 material-ui-popup-state: specifier: ^5.0.4 - version: 5.3.1(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.3.1(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) moment: specifier: ^2.29.4 version: 2.30.1 @@ -154,7 +154,7 @@ importers: version: 0.5.46 notistack: specifier: ^2.0.8 - version: 3.0.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.8(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.2.0 version: 18.3.1 @@ -193,7 +193,7 @@ importers: version: 2.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) superjson: specifier: ^1.12.3 - version: 2.2.1 + version: 1.13.3 ua-parser-js: specifier: ^1.0.37 version: 1.0.39 @@ -202,17 +202,17 @@ importers: version: 1.0.1 zustand: specifier: ^4.3.2 - version: 5.0.1(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)) + version: 4.5.5(@types/react@18.3.12)(react@18.3.1) devDependencies: '@babel/core': specifier: ^7.20.12 version: 7.26.0 '@testing-library/react': specifier: ^14.0.0 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/eslint': specifier: ^8.56.5 - version: 9.6.1 + version: 8.56.12 '@types/file-saver': specifier: ^2.0.5 version: 2.0.7 @@ -227,7 +227,7 @@ importers: version: 0.74.6 '@types/node': specifier: ^18.13.0 - version: 22.9.0 + version: 18.19.64 '@types/react': specifier: ^18.0.27 version: 18.3.12 @@ -254,43 +254,43 @@ importers: version: 0.7.39 '@vitejs/plugin-react': specifier: ^4.0.4 - version: 4.3.3(vite@5.4.11(@types/node@22.9.0)) + version: 4.3.3(vite@4.5.5(@types/node@18.19.64)) aws-sdk: specifier: ^2.1550.0 version: 2.1692.0 eslint: specifier: ^8.36.0 - version: 9.15.0 + version: 8.57.1 eslint-config-prettier: specifier: ^8.7.0 - version: 9.1.0(eslint@9.15.0) + version: 8.10.0(eslint@8.57.1) eslint-plugin-import: specifier: ^2.27.5 - version: 2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) + version: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@8.57.1) eslint-plugin-jsx-a11y: specifier: ^6.7.1 - version: 6.10.2(eslint@9.15.0) + version: 6.10.2(eslint@8.57.1) eslint-plugin-react: specifier: ^7.32.2 - version: 7.37.2(eslint@9.15.0) + version: 7.37.2(eslint@8.57.1) eslint-plugin-react-hooks: specifier: ^4.6.0 - version: 5.0.0(eslint@9.15.0) + version: 4.6.2(eslint@8.57.1) peterportal-api-next-types: specifier: 1.0.0-rc.2.68.0 - version: 1.0.0-rc.3 + version: 1.0.0-rc.2.68.0 prettier: specifier: ^2.8.4 - version: 3.3.3 + version: 2.8.8 typescript: specifier: ^4.9.5 - version: 5.6.3 + version: 4.9.5 vite: specifier: ^4.4.9 - version: 5.4.11(@types/node@22.9.0) + version: 4.5.5(@types/node@18.19.64) vite-plugin-svgr: specifier: ^2.4.0 - version: 4.3.0(rollup@4.27.2)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)) + version: 2.4.0(rollup@4.27.2)(vite@4.5.5(@types/node@18.19.64)) apps/backend: dependencies: @@ -308,7 +308,7 @@ importers: version: 4.12.6 arktype: specifier: 1.0.14-alpha - version: 2.0.0-rc.23 + version: 1.0.14-alpha aws-lambda: specifier: ^1.0.7 version: 1.0.7 @@ -320,7 +320,7 @@ importers: version: 0.36.3(@types/react@18.3.12)(postgres@3.4.5)(react@18.3.1) envalid: specifier: ^7.3.1 - version: 8.0.0 + version: 7.3.1 express: specifier: ^4.18.2 version: 4.21.1 @@ -329,7 +329,7 @@ importers: version: 3.4.5 superjson: specifier: ^1.12.3 - version: 2.2.1 + version: 1.13.3 websoc-api: specifier: ^3.0.0 version: 3.0.0 @@ -348,49 +348,52 @@ importers: version: 2.8.17 '@types/express': specifier: ^4.17.17 - version: 5.0.0 + version: 4.17.21 '@typescript-eslint/eslint-plugin': specifier: ^5.52.0 - version: 8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3) + version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^5.52.0 - version: 8.14.0(eslint@9.15.0)(typescript@5.6.3) + version: 5.62.0(eslint@8.57.1)(typescript@4.9.5) concurrently: specifier: ^8.0.1 - version: 9.1.0 + version: 8.2.2 + dotenv: + specifier: ^16.0.3 + version: 16.4.5 drizzle-kit: - specifier: ^0.21.4 + specifier: ^0.28.1 version: 0.28.1 esbuild: specifier: ^0.17.19 - version: 0.24.0 + version: 0.17.19 eslint: specifier: ^8.34.0 - version: 9.15.0 + version: 8.57.1 eslint-config-prettier: specifier: ^8.6.0 - version: 9.1.0(eslint@9.15.0) + version: 8.10.0(eslint@8.57.1) eslint-plugin-import: specifier: ^2.27.5 - version: 2.31.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + version: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@8.57.1) husky: specifier: ^8.0.3 - version: 9.1.6 + version: 8.0.3 lint-staged: specifier: ^13.1.2 - version: 15.2.10 + version: 13.3.0 nodemon: specifier: ^2.0.22 - version: 3.1.7 + version: 2.0.22 prettier: specifier: ^2.8.4 - version: 3.3.3 + version: 2.8.8 tsx: specifier: ^3.12.7 - version: 4.19.2 + version: 3.14.0 typescript: specifier: ^4.9.5 - version: 5.6.3 + version: 4.9.5 apps/cdk: dependencies: @@ -402,7 +405,7 @@ importers: version: 3.374.0 arktype: specifier: 1.0.14-alpha - version: 2.0.0-rc.23 + version: 1.0.14-alpha aws-cdk-lib: specifier: ^2.94.0 version: 2.167.1(constructs@10.4.2) @@ -415,13 +418,13 @@ importers: devDependencies: '@types/node': specifier: ^20.11.5 - version: 22.9.0 + version: 20.17.6 aws-cdk: specifier: ^2.94.0 version: 2.167.1 tsx: specifier: ^3.12.7 - version: 4.19.2 + version: 3.14.0 typescript: specifier: ^5.1.0 version: 5.6.3 @@ -430,14 +433,14 @@ importers: dependencies: arktype: specifier: 1.0.14-alpha - version: 2.0.0-rc.23 + version: 1.0.14-alpha peterportal-api-next-types: specifier: 1.0.0-alpha.6 - version: 1.0.0-rc.3 + version: 1.0.0-alpha.6 devDependencies: typescript: specifier: ^4.9 - version: 5.6.3 + version: 4.9.5 packages/types: dependencies: @@ -446,11 +449,11 @@ importers: version: link:../peterportal-schemas arktype: specifier: 1.0.14-alpha - version: 2.0.0-rc.23 + version: 1.0.14-alpha devDependencies: typescript: specifier: ^4.9 - version: 5.6.3 + version: 4.9.5 packages: @@ -473,12 +476,6 @@ packages: resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} - '@ark/schema@0.23.0': - resolution: {integrity: sha512-406Zx0te3ICd7PkGise4XIxOfmjFzK64tEuiN5rmJDg14AqhySXygMk8QcHqHORDJ7VXhel7J41iduw8eyiFPg==} - - '@ark/util@0.23.0': - resolution: {integrity: sha512-2mb24N2leQENRh+zPqnlRJzFFf8Xr7BT+/4MJN46/G8C45davpqFfcqvOw0ZlXrjQpBi8H+ZqDQsi95lN/9oVg==} - '@aws-cdk/asset-awscli-v1@2.2.211': resolution: {integrity: sha512-56G1FYTiKyec3bEfEI/5UcU0XPnaGUlaDDH7OYClyvqss0HlnmoSulHK2gwai2PGAD1Nk+scPrdfH/MVAkSKuw==} @@ -735,13 +732,16 @@ packages: resolution: {integrity: sha512-TlvAHQysphN3OW6Ziz6AD2DnN9IIy/KkKNImZwMJpwGHHqLATi/9hMg8H8VBRg2L15pGt8ad3R6j6mfvHVWrCg==} engines: {node: '>=18'} + '@date-io/core@2.17.0': + resolution: {integrity: sha512-+EQE8xZhRM/hsY0CDTVyayMDDY5ihc4MqXCrPxooKw19yAzUIC6uUqsZeaOFNL9YKTNxYKrJP5DFgE8o5xRCOw==} + '@date-io/core@3.0.0': resolution: {integrity: sha512-S3j+IAQVBYNkQzchVVhX40eBkGDreBpScy9RXwTS5j2+k07+62pMVPisQ44Gq76Rqy5AOG/EZXCwBpY/jbemvA==} - '@date-io/date-fns@3.0.0': - resolution: {integrity: sha512-hsLAbsdP8LKfi7OQ729cXMWfmHQEq0hn3ysXfAAoc92j6j6sBq0s0tplnkWu6O4iBUpVCYRPGuNjQQhTaOu2AA==} + '@date-io/date-fns@2.17.0': + resolution: {integrity: sha512-L0hWZ/mTpy3Gx/xXJ5tq5CzHo0L7ry6KEO9/w/JWiFWFLZgiNVo3ex92gOl3zmzjHqY/3Ev+5sehAr8UnGLEng==} peerDependencies: - date-fns: ^3.2.0 + date-fns: ^2.0.0 peerDependenciesMeta: date-fns: optional: true @@ -806,12 +806,12 @@ packages: '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - '@esbuild-kit/core-utils@3.1.0': - resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} + '@esbuild-kit/core-utils@3.3.2': + resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} deprecated: 'Merged into tsx: https://tsx.is' - '@esbuild-kit/esm-loader@2.5.5': - resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} + '@esbuild-kit/esm-loader@2.6.5': + resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} deprecated: 'Merged into tsx: https://tsx.is' '@esbuild/aix-ppc64@0.19.12': @@ -820,702 +820,402 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + '@esbuild/linux-loong64@0.18.20': + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + '@esbuild/linux-mips64el@0.18.20': + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + '@esbuild/linux-ppc64@0.18.20': + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + '@esbuild/linux-riscv64@0.18.20': + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + '@esbuild/linux-s390x@0.18.20': + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + '@esbuild/linux-x64@0.18.20': + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + '@esbuild/netbsd-x64@0.18.20': + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + '@esbuild/openbsd-x64@0.18.20': + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + '@esbuild/sunos-x64@0.18.20': + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + '@esbuild/win32-arm64@0.18.20': + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + '@esbuild/win32-ia32@0.18.20': + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + '@esbuild/win32-x64@0.18.20': + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1534,10 +1234,18 @@ packages: resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.15.0': resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1577,10 +1285,19 @@ packages: resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} @@ -1594,6 +1311,10 @@ packages: peerDependencies: react: '*' + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.1.1': resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -1728,9 +1449,20 @@ packages: react: ^16.8.0 || ^17.0.0 react-dom: ^16.8.0 || ^17.0.0 - '@mui/base@5.0.0-beta.61': - resolution: {integrity: sha512-YaMOTXS3ecDNGsPKa6UdlJ8loFLvcL9+VbpCK3hfk71OaNauZRp4Yf7KeXDYr7Ms3M/XBD3SaiR6JMr6vYtfDg==} - engines: {node: '>=14.0.0'} + '@mui/base@5.0.0-beta.13': + resolution: {integrity: sha512-uC0l97pBspfDAp+iz2cJq8YZ8Sd9i73V77+WzUiOAckIVEyCm5dyVDZCCO2/phmzckVEeZCGcytybkjMQuhPQw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/base@5.0.0-beta.40': + resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} + engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0 @@ -1739,92 +1471,86 @@ packages: '@types/react': optional: true - '@mui/core-downloads-tracker@6.1.7': - resolution: {integrity: sha512-POuIBi80BZBogQkG4PQKIGwy4QFwB+kOr+OI4k7Znh7LqMAIhwB9OC00l6M+w1GrZJYj3T8R5WX8G6QAIvoVEw==} + '@mui/core-downloads-tracker@5.16.7': + resolution: {integrity: sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==} - '@mui/icons-material@6.1.7': - resolution: {integrity: sha512-RGzkeHNArIVy5ZQ12bq/8VYNeICEyngngsFskTJ/2hYKhIeIII3iRGtaZaSvLpXh7h3Fg3VKTulT+QU0w5K4XQ==} - engines: {node: '>=14.0.0'} + '@mui/icons-material@5.16.7': + resolution: {integrity: sha512-UrGwDJCXEszbDI7yV047BYU5A28eGJ79keTCP4cc74WyncuVrnurlmIRxaHL8YK+LI1Kzq+/JM52IAkNnv4u+Q==} + engines: {node: '>=12.0.0'} peerDependencies: - '@mui/material': ^6.1.7 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + '@mui/material': ^5.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/lab@6.0.0-beta.15': - resolution: {integrity: sha512-LwX34gdIBBpIHi0RkWUjktCnX1rEB+U2tOzDKfF2f4h+GXTO+DOjAXTkFw558zQ8SWmpQTOUp58sGRxlZ2x9FQ==} - engines: {node: '>=14.0.0'} + '@mui/lab@5.0.0-alpha.173': + resolution: {integrity: sha512-Gt5zopIWwxDgGy/MXcp6GueD84xFFugFai4hYiXY0zowJpTVnIrTQCQXV004Q7rejJ7aaCntX9hpPJqCrioshA==} + engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material': ^6.1.7 - '@mui/material-pigment-css': ^6.1.7 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + '@mui/material': '>=5.15.0' + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@emotion/react': optional: true '@emotion/styled': optional: true - '@mui/material-pigment-css': - optional: true '@types/react': optional: true - '@mui/material@6.1.7': - resolution: {integrity: sha512-KsjujQL/A2hLd1PV3QboF+W6SSL5QqH6ZlSuQoeYz9r69+TnyBFIevbYLxdjJcJmGBjigL5pfpn7hTGop+vhSg==} - engines: {node: '>=14.0.0'} + '@mui/material@5.16.7': + resolution: {integrity: sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==} + engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material-pigment-css': ^6.1.7 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@emotion/react': optional: true '@emotion/styled': optional: true - '@mui/material-pigment-css': - optional: true '@types/react': optional: true - '@mui/private-theming@6.1.7': - resolution: {integrity: sha512-uLbfUSsug5K0LVkv0PI6Flste3le8+6WSL2omdTiYde93P89Qr7pKr8TA6d2yXfr+Bm+SvD8/fGnkaRwFkryuQ==} - engines: {node: '>=14.0.0'} + '@mui/private-theming@5.16.6': + resolution: {integrity: sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==} + engines: {node: '>=12.0.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/styled-engine@6.1.7': - resolution: {integrity: sha512-Ou4CxN7MQmwrfG1Pu6EYjPgPChQXxPDJrwgizLXlRPOad5qAq4gYXRuzrGQ2DfGjjwmJhjI8T6A0SeapAZPGig==} - engines: {node: '>=14.0.0'} + '@mui/styled-engine@5.16.6': + resolution: {integrity: sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==} + engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.4.1 '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@emotion/react': optional: true '@emotion/styled': optional: true - '@mui/system@6.1.7': - resolution: {integrity: sha512-qbMGgcC/FodpuRSfjXlEDdbNQaW++eATh0vNBcPUv2/YXSpReoOpoT9FhogxEBNks+aQViDXBRZKh6HX2fVmwg==} - engines: {node: '>=14.0.0'} + '@mui/system@5.16.7': + resolution: {integrity: sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==} + engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@emotion/react': optional: true @@ -1841,12 +1567,12 @@ packages: '@types/react': optional: true - '@mui/utils@6.1.7': - resolution: {integrity: sha512-Gr7cRZxBoZ0BIa3Xqf/2YaUrBLyNPJvXPQH3OsD9WMZukI/TutibbQBVqLYpgqJn8pKSjbD50Yq2auG0wI1xOw==} - engines: {node: '>=14.0.0'} + '@mui/utils@5.16.6': + resolution: {integrity: sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==} + engines: {node: '>=12.0.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@types/react': optional: true @@ -2065,6 +1791,9 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@smithy/abort-controller@1.1.0': resolution: {integrity: sha512-5imgGUlZL4dW4YWdMYAKLmal9ny/tlenM81QZY7xYyb76z9Z/QOg7oM5Ak9HQl8QfFTlGVWwcMXl+54jroRgEQ==} engines: {node: '>=14.0.0'} @@ -2245,9 +1974,9 @@ packages: resolution: {integrity: sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==} engines: {node: '>=16.0.0'} - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} + '@svgr/babel-plugin-add-jsx-attribute@6.5.1': + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2263,82 +1992,85 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} + '@svgr/babel-plugin-svg-dynamic-title@6.5.1': + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} + '@svgr/babel-plugin-svg-em-dimensions@6.5.1': + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} + '@svgr/babel-plugin-transform-react-native-svg@6.5.1': + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + '@svgr/babel-plugin-transform-svg-component@6.5.1': + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} + '@svgr/babel-preset@6.5.1': + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} + '@svgr/core@6.5.1': + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} + '@svgr/hast-util-to-babel-ast@6.5.1': + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} + '@svgr/plugin-jsx@6.5.1': + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} peerDependencies: - '@svgr/core': '*' + '@svgr/core': ^6.0.0 - '@tanstack/query-core@5.60.5': - resolution: {integrity: sha512-jiS1aC3XI3BJp83ZiTuDLerTmn9P3U95r6p+6/SNauLJaYxfIC4dMuWygwnBHIZxjn2zJqEpj3nysmPieoxfPQ==} + '@tanstack/query-core@4.36.1': + resolution: {integrity: sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==} - '@tanstack/react-query@5.60.5': - resolution: {integrity: sha512-M77bOsPwj1wYE56gk7iJvxGAr4IC12NWdIDhT+Eo8ldkWRHMvIR8I/rufIvT1OXoV/bl7EECwuRuMlxxWtvW2Q==} + '@tanstack/react-query@4.36.1': + resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==} peerDependencies: - react: ^18 || ^19 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true - '@testing-library/dom@10.4.0': - resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} - engines: {node: '>=18'} + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} - '@testing-library/react@16.0.1': - resolution: {integrity: sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==} - engines: {node: '>=18'} + '@testing-library/react@14.3.1': + resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==} + engines: {node: '>=14'} peerDependencies: - '@testing-library/dom': ^10.0.0 - '@types/react': ^18.0.0 - '@types/react-dom': ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} '@trpc/client@10.45.2': resolution: {integrity: sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg==} @@ -2369,6 +2101,12 @@ packages: '@types/body-parser@1.19.2': resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + '@types/chai-subset@1.3.5': + resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} + + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + '@types/connect@3.4.35': resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} @@ -2405,20 +2143,17 @@ packages: '@types/date-arithmetic@4.1.1': resolution: {integrity: sha512-o9ILUTMSRiOC73o7h30mgLpuDwOJWqMHZfnEIwNQlfZsGY6Kw2gK5Gz6nXAjNt9zm3Qpr12pM4FDqssfdtBzGA==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - - '@types/estree@1.0.0': - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + '@types/eslint@8.56.12': + resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@5.0.1': - resolution: {integrity: sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==} + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express@5.0.0': - resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} '@types/file-saver@2.0.7': resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} @@ -2426,9 +2161,6 @@ packages: '@types/geojson@7946.0.10': resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} - '@types/json-schema@7.0.11': - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -2450,11 +2182,11 @@ packages: '@types/mime@3.0.1': resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - '@types/node@20.11.5': - resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} + '@types/node@18.19.64': + resolution: {integrity: sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==} - '@types/node@22.9.0': - resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -2501,6 +2233,9 @@ packages: '@types/reactour@1.18.5': resolution: {integrity: sha512-Pl5yh9bXeXaFcioDk6XVmUzdJGZDAKesVmwoh2KvN/1FXSd9saN8pIprLvfspnXANMcgl3AtSlD4zs0cJIhGIw==} + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -2519,62 +2254,66 @@ packages: '@types/warning@3.0.0': resolution: {integrity: sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==} - '@typescript-eslint/eslint-plugin@8.14.0': - resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/eslint-plugin@5.62.0': + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@8.14.0': - resolution: {integrity: sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/parser@5.62.0': + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@8.14.0': - resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/type-utils@8.14.0': - resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@5.62.0': + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: + eslint: '*' typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@8.14.0': - resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/typescript-estree@8.14.0': - resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@8.14.0': - resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/utils@5.62.0': + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/visitor-keys@8.14.0': - resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} '@vendia/serverless-express@4.12.6': resolution: {integrity: sha512-ePsIPk3VQwgm5nh/JGBtTKQs5ZOF7REjHxC+PKk/CHvhlKQkJuUU365uPOlxuLJhC+BAefDznDRReWxpnKjmYg==} @@ -2586,34 +2325,24 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 - '@vitest/expect@2.1.5': - resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} - - '@vitest/mocker@2.1.5': - resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true + '@vitest/expect@0.34.6': + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} - '@vitest/pretty-format@2.1.5': - resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} + '@vitest/runner@0.34.6': + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} - '@vitest/runner@2.1.5': - resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==} + '@vitest/snapshot@0.34.6': + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} - '@vitest/snapshot@2.1.5': - resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==} + '@vitest/spy@0.34.6': + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} - '@vitest/spy@2.1.5': - resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==} + '@vitest/utils@0.34.6': + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} - '@vitest/utils@2.1.5': - resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -2627,21 +2356,25 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ansi-escapes@7.0.0: - resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} - engines: {node: '>=18'} + ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -2673,15 +2406,15 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - arktype@2.0.0-rc.23: - resolution: {integrity: sha512-P0e40t3J4rc3xRHzPjzyOK1CgdgKswQJOFBgFLuehSiGcjAuRx6p/9lDVPzXZ62m7q5yRUqFiX8ovN5FjWQjMQ==} + arktype@1.0.14-alpha: + resolution: {integrity: sha512-theD5K4QrYCWMtQ52Masj169IgtMJ8Argld/MBS4lotEwR3b+GzfBvsqVJ1OIKhJDTdES02FLQTjcfRe00//mA==} array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} @@ -2694,6 +2427,10 @@ packages: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -2718,9 +2455,8 @@ packages: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -2810,13 +2546,6 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -2855,9 +2584,9 @@ packages: caniuse-lite@1.0.30001680: resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} - chai@5.1.2: - resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} - engines: {node: '>=12'} + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2871,9 +2600,8 @@ packages: resolution: {integrity: sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA==} engines: {pnpm: '>=8'} - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} @@ -2882,13 +2610,13 @@ packages: classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -2916,9 +2644,9 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} + commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} commander@3.0.2: resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} @@ -2926,11 +2654,14 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concurrently@9.1.0: - resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} - engines: {node: '>=18'} + concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} hasBin: true + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + constructs@10.4.2: resolution: {integrity: sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA==} @@ -2967,15 +2698,6 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -2995,9 +2717,9 @@ packages: css-vendor@2.0.8: resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} - cssstyle@4.1.0: - resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} - engines: {node: '>=18'} + cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} csstype@2.6.21: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} @@ -3059,9 +2781,9 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + data-urls@4.0.0: + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} @@ -3078,8 +2800,9 @@ packages: date-arithmetic@4.1.0: resolution: {integrity: sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg==} - date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -3124,10 +2847,14 @@ packages: decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -3158,18 +2885,32 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} @@ -3271,15 +3012,15 @@ packages: sqlite3: optional: true + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} electron-to-chromium@1.5.62: resolution: {integrity: sha512-t8c+zLmJHa9dJy96yBZRXGQYoiCEnHYgFwn1asvSPZSUdVxnB62A4RASd7k41ytG3ErFBA0TpHlKg9D9SQBmLg==} - emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3298,22 +3039,14 @@ packages: resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} engines: {node: '>=10.13.0'} - entities@4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} - engines: {node: '>=0.12'} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - envalid@8.0.0: - resolution: {integrity: sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==} + envalid@7.3.1: + resolution: {integrity: sha512-KL1YRwn8WcoF/Ty7t+yLLtZol01xr9ZJMTjzoGRM8NaSU+nQQjSWOQKKJhJP2P57bpdakJ9jbxqQX4fGTOicZg==} engines: {node: '>=8.12'} - environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -3329,13 +3062,13 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-iterator-helpers@1.2.0: resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -3361,30 +3094,16 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} hasBin: true - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} - hasBin: true - - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -3396,8 +3115,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + eslint-config-prettier@8.10.0: + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -3455,11 +3174,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@5.0.0: - resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==} + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 eslint-plugin-react@7.37.2: resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} @@ -3467,6 +3186,14 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.2.0: resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3479,6 +3206,12 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + eslint@9.15.0: resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3493,6 +3226,10 @@ packages: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -3506,6 +3243,10 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -3513,9 +3254,6 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3538,13 +3276,9 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - expect-type@1.1.0: - resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} - engines: {node: '>=12.0.0'} + execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} express@4.21.1: resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} @@ -3582,6 +3316,10 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -3589,10 +3327,6 @@ packages: file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -3608,6 +3342,10 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -3634,6 +3372,9 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -3662,25 +3403,21 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.3.0: - resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} - engines: {node: '>=18'} + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.6.2: - resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} - get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} @@ -3695,6 +3432,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + globalize@0.1.1: resolution: {integrity: sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==} @@ -3702,6 +3443,10 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -3710,10 +3455,9 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - goober@2.1.16: - resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} - peerDependencies: - csstype: ^3.0.10 + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -3761,9 +3505,9 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} html2canvas@1.4.1: resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} @@ -3773,21 +3517,21 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} - husky@9.1.6: - resolution: {integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==} - engines: {node: '>=18'} + husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} hasBin: true hyphenate-style-name@1.0.4: @@ -3813,10 +3557,6 @@ packages: ignore-by-default@1.0.1: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -3829,6 +3569,10 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3907,10 +3651,6 @@ packages: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} - engines: {node: '>=18'} - is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -3938,6 +3678,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -4016,11 +3760,11 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdom@25.0.1: - resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} - engines: {node: '>=18'} + jsdom@22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} peerDependencies: - canvas: ^2.11.2 + canvas: ^2.5.0 peerDependenciesMeta: canvas: optional: true @@ -4096,8 +3840,8 @@ packages: leaflet-routing-machine@3.2.12: resolution: {integrity: sha512-HLde58G1YtD9xSIzZavJ6BPABZaV1hHeGst8ouhzuxmSC3s32NVtADT+njbIUMW1maHRCrsgTk/E4hz5QH7FrA==} - leaflet.locatecontrol@0.82.0: - resolution: {integrity: sha512-+lvtZ7tfqgWoUvTYRqDggw50HUZJGvaSgSU5JYvl5H4WtlnHek2R0TsL0EqROhT3igPFwYVV87bFT/ps1SqyGA==} + leaflet.locatecontrol@0.79.0: + resolution: {integrity: sha512-h64QIHFkypYdr90lkSfjKvPvvk8/b8UnP3m9WuoWdp5p2AaCWC0T1NVwyuj4rd5U4fBW3tQt4ppmZ2LceHMIDg==} leaflet@1.9.4: resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==} @@ -4106,21 +3850,30 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.10: - resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} - engines: {node: '>=18.12.0'} + lint-staged@13.3.0: + resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true - listr2@8.2.5: - resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} - engines: {node: '>=18.0.0'} + listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + + local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -4135,19 +3888,16 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} - engines: {node: '>=18'} + log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.2: - resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4194,6 +3944,10 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -4211,24 +3965,23 @@ packages: engines: {node: '>=4'} hasBin: true + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + mnemonist@0.38.3: resolution: {integrity: sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==} @@ -4257,6 +4010,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4264,9 +4020,6 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -4278,9 +4031,9 @@ packages: node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - nodemon@3.1.7: - resolution: {integrity: sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==} - engines: {node: '>=10'} + nodemon@2.0.22: + resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} + engines: {node: '>=8.10.0'} hasBin: true nopt@1.0.10: @@ -4291,12 +4044,19 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - notistack@3.0.1: - resolution: {integrity: sha512-ntVZXXgSQH5WYfyU+3HfcXuKaapzAJ8fBLQ/G618rn3yvSzEbnOB8ZSOwhX+dAORy/lw+GC2N061JA0+gYWTVA==} - engines: {node: '>=12.0.0', npm: '>=6.0.0'} + notistack@2.0.8: + resolution: {integrity: sha512-/IY14wkFp5qjPgKNvAdfL5Jp6q90+MjgKTPh4c81r/lW70KeuX6b9pE/4f8L4FG31cNudbN9siiFS5ql1aSLRw==} peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + '@mui/material': ^5.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} @@ -4313,6 +4073,10 @@ packages: resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4351,14 +4115,14 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -4370,6 +4134,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -4396,6 +4164,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -4417,12 +4189,14 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - peterportal-api-next-types@1.0.0-rc.3: - resolution: {integrity: sha512-TlylpK4OcfxG91aze6urHv9ei7/gX/GLrR7v8ktPVX31r/xPfYS77ygi6wcawwguka6dk8/JHQukYdy5tlOYgA==} + peterportal-api-next-types@1.0.0-alpha.6: + resolution: {integrity: sha512-sbQmYiH21t6wIsgFXStJcBZWhMOCjKQspLGdpUEmpYQaR4tL1kwGQ+KNix5EwLJxHM9BnMtK1BJcwu6fOTeqMQ==} + + peterportal-api-next-types@1.0.0-rc.2.68.0: + resolution: {integrity: sha512-gq0k53abt6ea9roA+GlSgP3Rbv+0tC4rGw4gGbrahh+ZNnmTGdlZSF8ISq07DbQ7td8dBev4gMrjrZq+Xn500A==} picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -4440,6 +4214,9 @@ packages: engines: {node: '>=0.10'} hasBin: true + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + popper.js@1.16.1-lts: resolution: {integrity: sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==} @@ -4459,6 +4236,11 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + prettier@3.3.3: resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} @@ -4468,6 +4250,10 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -4478,16 +4264,15 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + psl@1.10.0: + resolution: {integrity: sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==} + pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} punycode@1.3.2: resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -4501,6 +4286,9 @@ packages: engines: {node: '>=0.4.x'} deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -4652,6 +4440,9 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} @@ -4670,9 +4461,9 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -4686,13 +4477,23 @@ packages: peerDependencies: react: '>=16.8' + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup@3.29.5: + resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + rollup@4.27.2: resolution: {integrity: sha512-KreA+PzWmk2yaFmZVwe6GB2uBD86nXl86OsDkt1bJS9p3vqWuEQ6HnJJ+j/mZi/q0920P99/MVRlB4L3crpF5w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -4727,10 +4528,18 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + hasBin: true + semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -4773,25 +4582,21 @@ packages: siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} + simple-update-notifier@1.1.0: + resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} + engines: {node: '>=8.10.0'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} - slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4807,6 +4612,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + split.js@1.6.5: resolution: {integrity: sha512-mPTnGCiS/RiuTNsVhCm9De9cCAUsrNFFviRbADdKiiV+Kk8HKp/0fWu7Kr8pi3/yBmsqLFHuXGT9UUZ+CNLwFw==} @@ -4823,6 +4631,10 @@ packages: std-env@3.8.0: resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -4831,9 +4643,9 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} @@ -4877,15 +4689,18 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - superjson@2.2.1: - resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} - engines: {node: '>=16'} + superjson@1.13.3: + resolution: {integrity: sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==} + engines: {node: '>=10'} supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -4916,6 +4731,9 @@ packages: text-segmentation@1.0.3: resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==} + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + tiny-case@1.0.3: resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} @@ -4931,28 +4749,14 @@ packages: tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} - - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} engines: {node: '>=14.0.0'} - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} - tldts-core@6.1.61: - resolution: {integrity: sha512-In7VffkDWUPgwa+c9picLUxvb0RltVwTkSgMNFgvlGSWveCzGBemBqTsgJCL4EDFWZ6WH0fKTsot6yNhzy3ZzQ==} - - tldts@6.1.61: - resolution: {integrity: sha512-rv8LUyez4Ygkopqn+M6OLItAOT9FF3REpPQDkdMx5ix8w4qkuE7Vo2o/vw1nxKQYmJDV8JpAMJQr1b+lTKf0FA==} - hasBin: true - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -4968,39 +4772,41 @@ packages: resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} hasBin: true - tough-cookie@5.0.0: - resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} - engines: {node: '>=16'} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} - engines: {node: '>=18'} + tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@1.4.0: - resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + tslib@2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.19.2: - resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} - engines: {node: '>=18.0.0'} + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + + tsx@3.14.0: + resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==} hasBin: true tunnel@0.0.6: @@ -5045,6 +4851,18 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -5069,6 +4887,11 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} @@ -5078,6 +4901,9 @@ packages: resolution: {integrity: sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==} hasBin: true + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -5102,6 +4928,10 @@ packages: universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -5115,6 +4945,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url@0.10.3: resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} @@ -5148,26 +4981,25 @@ packages: victory-vendor@36.6.8: resolution: {integrity: sha512-H3kyQ+2zgjMPvbPqAl7Vwm2FD5dU7/4bCTQakFQnpIsfDljeOMDojRsrmJfwh4oAlNnWhpAf+mbAoLh8u7dwyQ==} - vite-node@2.1.5: - resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-node@0.34.6: + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} + engines: {node: '>=v14.18.0'} hasBin: true - vite-plugin-svgr@4.3.0: - resolution: {integrity: sha512-Jy9qLB2/PyWklpYy0xk0UU3TlU0t2UMpJXZvf+hWII1lAmRHrOUKi11Uw8N3rxoNk7atZNYO3pR3vI1f7oi+6w==} + vite-plugin-svgr@2.4.0: + resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==} peerDependencies: - vite: '>=2.6.0' + vite: ^2.6.0 || 3 || 4 - vite@5.4.11: - resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} - engines: {node: ^18.0.0 || >=20.0.0} + vite@4.5.5: + resolution: {integrity: sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==} + engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 + '@types/node': '>= 14' less: '*' lightningcss: ^1.21.0 sass: '*' - sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -5180,8 +5012,6 @@ packages: optional: true sass: optional: true - sass-embedded: - optional: true stylus: optional: true sugarss: @@ -5189,22 +5019,22 @@ packages: terser: optional: true - vitest@2.1.5: - resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==} - engines: {node: ^18.0.0 || >=20.0.0} + vitest@0.34.6: + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} + engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.5 - '@vitest/ui': 2.1.5 + '@vitest/browser': '*' + '@vitest/ui': '*' happy-dom: '*' jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true - '@types/node': - optional: true '@vitest/browser': optional: true '@vitest/ui': @@ -5213,10 +5043,16 @@ packages: optional: true jsdom: optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} @@ -5239,17 +5075,17 @@ packages: websoc-fuzzy-search@1.0.1: resolution: {integrity: sha512-1UlDdT2OvMxVIczNSQzI+vSoojfagbORdwtMQiLAnG1zVLG9Po6x5+VWNysi8w5xoxE2NootQH72HzoenLygDg==} - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} + whatwg-url@12.0.1: + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -5288,9 +5124,9 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -5307,9 +5143,9 @@ packages: utf-8-validate: optional: true - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} xml2js@0.4.19: resolution: {integrity: sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==} @@ -5340,10 +5176,9 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} - hasBin: true yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} @@ -5357,17 +5192,20 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + yup@1.4.0: resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} - zustand@5.0.1: - resolution: {integrity: sha512-pRET7Lao2z+n5R/HduXMio35TncTlSW68WsYBq2Lg1ASspsNGjpwLAsij3RpouyV6+kHMwwwzP0bZPD70/Jx/w==} - engines: {node: '>=12.20.0'} + zustand@4.5.5: + resolution: {integrity: sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==} + engines: {node: '>=12.7.0'} peerDependencies: - '@types/react': '>=18.0.0' + '@types/react': '>=16.8' immer: '>=9.0.6' - react: '>=18.0.0' - use-sync-external-store: '>=1.2.0' + react: '>=16.8' peerDependenciesMeta: '@types/react': optional: true @@ -5375,8 +5213,6 @@ packages: optional: true react: optional: true - use-sync-external-store: - optional: true snapshots: @@ -5408,12 +5244,6 @@ snapshots: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.17 - '@ark/schema@0.23.0': - dependencies: - '@ark/util': 0.23.0 - - '@ark/util@0.23.0': {} - '@aws-cdk/asset-awscli-v1@2.2.211': {} '@aws-cdk/asset-kubectl-v20@2.1.3': {} @@ -6010,7 +5840,7 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.4 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6022,20 +5852,22 @@ snapshots: '@codegenie/serverless-express@4.16.0': {} + '@date-io/core@2.17.0': {} + '@date-io/core@3.0.0': {} - '@date-io/date-fns@3.0.0(date-fns@4.1.0)': + '@date-io/date-fns@2.17.0(date-fns@2.30.0)': dependencies: - '@date-io/core': 3.0.0 + '@date-io/core': 2.17.0 optionalDependencies: - date-fns: 4.1.0 + date-fns: 2.30.0 '@drizzle-team/brocli@0.10.2': {} '@emotion/babel-plugin@11.12.0': dependencies: '@babel/helper-module-imports': 7.25.9 - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.2 @@ -6104,380 +5936,233 @@ snapshots: react: 18.3.1 optionalDependencies: '@types/react': 18.3.12 - transitivePeerDependencies: - - supports-color - - '@emotion/unitless@0.10.0': {} - - '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': - dependencies: - react: 18.3.1 - - '@emotion/utils@1.4.1': {} - - '@emotion/weak-memoize@0.4.0': {} - - '@esbuild-kit/core-utils@3.1.0': - dependencies: - esbuild: 0.17.19 - source-map-support: 0.5.21 - - '@esbuild-kit/esm-loader@2.5.5': - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.6.2 - - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.23.1': - optional: true - - '@esbuild/aix-ppc64@0.24.0': - optional: true - - '@esbuild/android-arm64@0.17.19': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.23.1': - optional: true - - '@esbuild/android-arm64@0.24.0': - optional: true - - '@esbuild/android-arm@0.17.19': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-arm@0.23.1': - optional: true - - '@esbuild/android-arm@0.24.0': - optional: true - - '@esbuild/android-x64@0.17.19': - optional: true - - '@esbuild/android-x64@0.19.12': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/android-x64@0.23.1': - optional: true - - '@esbuild/android-x64@0.24.0': - optional: true - - '@esbuild/darwin-arm64@0.17.19': - optional: true - - '@esbuild/darwin-arm64@0.19.12': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.23.1': - optional: true - - '@esbuild/darwin-arm64@0.24.0': - optional: true - - '@esbuild/darwin-x64@0.17.19': - optional: true - - '@esbuild/darwin-x64@0.19.12': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.23.1': - optional: true - - '@esbuild/darwin-x64@0.24.0': - optional: true - - '@esbuild/freebsd-arm64@0.17.19': - optional: true - - '@esbuild/freebsd-arm64@0.19.12': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.23.1': - optional: true + transitivePeerDependencies: + - supports-color - '@esbuild/freebsd-arm64@0.24.0': - optional: true + '@emotion/unitless@0.10.0': {} - '@esbuild/freebsd-x64@0.17.19': - optional: true + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': + dependencies: + react: 18.3.1 - '@esbuild/freebsd-x64@0.19.12': - optional: true + '@emotion/utils@1.4.1': {} - '@esbuild/freebsd-x64@0.21.5': - optional: true + '@emotion/weak-memoize@0.4.0': {} - '@esbuild/freebsd-x64@0.23.1': - optional: true + '@esbuild-kit/core-utils@3.3.2': + dependencies: + esbuild: 0.18.20 + source-map-support: 0.5.21 - '@esbuild/freebsd-x64@0.24.0': - optional: true + '@esbuild-kit/esm-loader@2.6.5': + dependencies: + '@esbuild-kit/core-utils': 3.3.2 + get-tsconfig: 4.8.1 - '@esbuild/linux-arm64@0.17.19': + '@esbuild/aix-ppc64@0.19.12': optional: true - '@esbuild/linux-arm64@0.19.12': + '@esbuild/android-arm64@0.17.19': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/android-arm64@0.18.20': optional: true - '@esbuild/linux-arm64@0.23.1': + '@esbuild/android-arm64@0.19.12': optional: true - '@esbuild/linux-arm64@0.24.0': + '@esbuild/android-arm@0.17.19': optional: true - '@esbuild/linux-arm@0.17.19': + '@esbuild/android-arm@0.18.20': optional: true - '@esbuild/linux-arm@0.19.12': + '@esbuild/android-arm@0.19.12': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/android-x64@0.17.19': optional: true - '@esbuild/linux-arm@0.23.1': + '@esbuild/android-x64@0.18.20': optional: true - '@esbuild/linux-arm@0.24.0': + '@esbuild/android-x64@0.19.12': optional: true - '@esbuild/linux-ia32@0.17.19': + '@esbuild/darwin-arm64@0.17.19': optional: true - '@esbuild/linux-ia32@0.19.12': + '@esbuild/darwin-arm64@0.18.20': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/darwin-arm64@0.19.12': optional: true - '@esbuild/linux-ia32@0.23.1': + '@esbuild/darwin-x64@0.17.19': optional: true - '@esbuild/linux-ia32@0.24.0': + '@esbuild/darwin-x64@0.18.20': optional: true - '@esbuild/linux-loong64@0.17.19': + '@esbuild/darwin-x64@0.19.12': optional: true - '@esbuild/linux-loong64@0.19.12': + '@esbuild/freebsd-arm64@0.17.19': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/freebsd-arm64@0.18.20': optional: true - '@esbuild/linux-loong64@0.23.1': + '@esbuild/freebsd-arm64@0.19.12': optional: true - '@esbuild/linux-loong64@0.24.0': + '@esbuild/freebsd-x64@0.17.19': optional: true - '@esbuild/linux-mips64el@0.17.19': + '@esbuild/freebsd-x64@0.18.20': optional: true - '@esbuild/linux-mips64el@0.19.12': + '@esbuild/freebsd-x64@0.19.12': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/linux-arm64@0.17.19': optional: true - '@esbuild/linux-mips64el@0.23.1': + '@esbuild/linux-arm64@0.18.20': optional: true - '@esbuild/linux-mips64el@0.24.0': + '@esbuild/linux-arm64@0.19.12': optional: true - '@esbuild/linux-ppc64@0.17.19': + '@esbuild/linux-arm@0.17.19': optional: true - '@esbuild/linux-ppc64@0.19.12': + '@esbuild/linux-arm@0.18.20': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/linux-arm@0.19.12': optional: true - '@esbuild/linux-ppc64@0.23.1': + '@esbuild/linux-ia32@0.17.19': optional: true - '@esbuild/linux-ppc64@0.24.0': + '@esbuild/linux-ia32@0.18.20': optional: true - '@esbuild/linux-riscv64@0.17.19': + '@esbuild/linux-ia32@0.19.12': optional: true - '@esbuild/linux-riscv64@0.19.12': + '@esbuild/linux-loong64@0.17.19': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/linux-loong64@0.18.20': optional: true - '@esbuild/linux-riscv64@0.23.1': + '@esbuild/linux-loong64@0.19.12': optional: true - '@esbuild/linux-riscv64@0.24.0': + '@esbuild/linux-mips64el@0.17.19': optional: true - '@esbuild/linux-s390x@0.17.19': + '@esbuild/linux-mips64el@0.18.20': optional: true - '@esbuild/linux-s390x@0.19.12': + '@esbuild/linux-mips64el@0.19.12': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/linux-ppc64@0.17.19': optional: true - '@esbuild/linux-s390x@0.23.1': + '@esbuild/linux-ppc64@0.18.20': optional: true - '@esbuild/linux-s390x@0.24.0': + '@esbuild/linux-ppc64@0.19.12': optional: true - '@esbuild/linux-x64@0.17.19': + '@esbuild/linux-riscv64@0.17.19': optional: true - '@esbuild/linux-x64@0.19.12': + '@esbuild/linux-riscv64@0.18.20': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/linux-riscv64@0.19.12': optional: true - '@esbuild/linux-x64@0.23.1': + '@esbuild/linux-s390x@0.17.19': optional: true - '@esbuild/linux-x64@0.24.0': + '@esbuild/linux-s390x@0.18.20': optional: true - '@esbuild/netbsd-x64@0.17.19': + '@esbuild/linux-s390x@0.19.12': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/linux-x64@0.17.19': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/linux-x64@0.18.20': optional: true - '@esbuild/netbsd-x64@0.23.1': + '@esbuild/linux-x64@0.19.12': optional: true - '@esbuild/netbsd-x64@0.24.0': + '@esbuild/netbsd-x64@0.17.19': optional: true - '@esbuild/openbsd-arm64@0.23.1': + '@esbuild/netbsd-x64@0.18.20': optional: true - '@esbuild/openbsd-arm64@0.24.0': + '@esbuild/netbsd-x64@0.19.12': optional: true '@esbuild/openbsd-x64@0.17.19': optional: true - '@esbuild/openbsd-x64@0.19.12': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.23.1': + '@esbuild/openbsd-x64@0.18.20': optional: true - '@esbuild/openbsd-x64@0.24.0': + '@esbuild/openbsd-x64@0.19.12': optional: true '@esbuild/sunos-x64@0.17.19': optional: true - '@esbuild/sunos-x64@0.19.12': - optional: true - - '@esbuild/sunos-x64@0.21.5': + '@esbuild/sunos-x64@0.18.20': optional: true - '@esbuild/sunos-x64@0.23.1': - optional: true - - '@esbuild/sunos-x64@0.24.0': + '@esbuild/sunos-x64@0.19.12': optional: true '@esbuild/win32-arm64@0.17.19': optional: true - '@esbuild/win32-arm64@0.19.12': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.23.1': + '@esbuild/win32-arm64@0.18.20': optional: true - '@esbuild/win32-arm64@0.24.0': + '@esbuild/win32-arm64@0.19.12': optional: true '@esbuild/win32-ia32@0.17.19': optional: true - '@esbuild/win32-ia32@0.19.12': - optional: true - - '@esbuild/win32-ia32@0.21.5': + '@esbuild/win32-ia32@0.18.20': optional: true - '@esbuild/win32-ia32@0.23.1': - optional: true - - '@esbuild/win32-ia32@0.24.0': + '@esbuild/win32-ia32@0.19.12': optional: true '@esbuild/win32-x64@0.17.19': optional: true - '@esbuild/win32-x64@0.19.12': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@esbuild/win32-x64@0.23.1': + '@esbuild/win32-x64@0.18.20': optional: true - '@esbuild/win32-x64@0.24.0': + '@esbuild/win32-x64@0.19.12': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.15.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: - eslint: 9.15.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0)': @@ -6490,20 +6175,34 @@ snapshots: '@eslint/config-array@0.19.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.4 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color '@eslint/core@0.9.0': {} + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.7 espree: 10.3.0 globals: 14.0.0 - ignore: 5.2.4 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -6511,6 +6210,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/js@8.57.1': {} + '@eslint/js@9.15.0': {} '@eslint/object-schema@2.1.4': {} @@ -6545,8 +6246,18 @@ snapshots: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + '@humanwhocodes/module-importer@1.0.1': {} + '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} '@humanwhocodes/retry@0.4.1': {} @@ -6555,6 +6266,10 @@ snapshots: dependencies: react: 18.3.1 + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + '@jridgewell/gen-mapping@0.1.1': dependencies: '@jridgewell/set-array': 1.1.2 @@ -6696,12 +6411,28 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-is: 17.0.2 - '@mui/base@5.0.0-beta.61(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/base@5.0.0-beta.13(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@emotion/is-prop-valid': 1.3.1 + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.12) + '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) + '@popperjs/core': 2.11.8 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + optionalDependencies: + '@types/react': 18.3.12 + + '@mui/base@5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) '@popperjs/core': 2.11.8 clsx: 2.1.1 prop-types: 15.8.1 @@ -6710,24 +6441,24 @@ snapshots: optionalDependencies: '@types/react': 18.3.12 - '@mui/core-downloads-tracker@6.1.7': {} + '@mui/core-downloads-tracker@5.16.7': {} - '@mui/icons-material@6.1.7(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': + '@mui/icons-material@5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/material': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.12 - '@mui/lab@6.0.0-beta.15(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/lab@5.0.0-alpha.173(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/base': 5.0.0-beta.61(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/material': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/system': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@mui/base': 5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) clsx: 2.1.1 prop-types: 15.8.1 react: 18.3.1 @@ -6737,13 +6468,13 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 - '@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/core-downloads-tracker': 6.1.7 - '@mui/system': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) + '@mui/core-downloads-tracker': 5.16.7 + '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.11 clsx: 2.1.1 @@ -6758,21 +6489,19 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 - '@mui/private-theming@6.1.7(@types/react@18.3.12)(react@18.3.1)': + '@mui/private-theming@5.16.6(@types/react@18.3.12)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 optionalDependencies: '@types/react': 18.3.12 - '@mui/styled-engine@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1)': + '@mui/styled-engine@5.16.6(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@emotion/cache': 11.13.1 - '@emotion/serialize': 1.3.2 - '@emotion/sheet': 1.4.0 csstype: 3.1.3 prop-types: 15.8.1 react: 18.3.1 @@ -6780,13 +6509,13 @@ snapshots: '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) - '@mui/system@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': + '@mui/system@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/private-theming': 6.1.7(@types/react@18.3.12)(react@18.3.1) - '@mui/styled-engine': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1) + '@mui/private-theming': 5.16.6(@types/react@18.3.12)(react@18.3.1) + '@mui/styled-engine': 5.16.6(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.7(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 @@ -6800,7 +6529,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.12 - '@mui/utils@6.1.7(@types/react@18.3.12)(react@18.3.1)': + '@mui/utils@5.16.6(@types/react@18.3.12)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@mui/types': 7.2.19(@types/react@18.3.12) @@ -6992,10 +6721,12 @@ snapshots: '@rtsao/scc@1.1.0': {} + '@sinclair/typebox@0.27.8': {} + '@smithy/abort-controller@1.1.0': dependencies: '@smithy/types': 1.2.0 - tslib: 2.5.0 + tslib: 2.8.1 '@smithy/abort-controller@3.1.8': dependencies: @@ -7164,7 +6895,7 @@ snapshots: '@smithy/types@1.2.0': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 '@smithy/types@3.7.1': dependencies: @@ -7272,7 +7003,7 @@ snapshots: dependencies: '@smithy/abort-controller': 1.1.0 '@smithy/types': 1.2.0 - tslib: 2.5.0 + tslib: 2.8.1 '@smithy/util-waiter@3.1.9': dependencies: @@ -7280,7 +7011,7 @@ snapshots: '@smithy/types': 3.7.1 tslib: 2.8.1 - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -7292,91 +7023,93 @@ snapshots: dependencies: '@babel/core': 7.26.0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-preset@8.1.0(@babel/core@7.26.0)': + '@svgr/babel-preset@6.5.1(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.26.0) '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.0) '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.26.0) - '@svgr/core@8.1.0(typescript@5.6.3)': + '@svgr/core@6.5.1': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) + '@svgr/babel-preset': 6.5.1(@babel/core@7.26.0) + '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.6.3) - snake-case: 3.0.4 + cosmiconfig: 7.1.0 transitivePeerDependencies: - supports-color - - typescript - '@svgr/hast-util-to-babel-ast@8.0.0': + '@svgr/hast-util-to-babel-ast@6.5.1': dependencies: '@babel/types': 7.26.0 entities: 4.5.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))': + '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': dependencies: '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) - '@svgr/core': 8.1.0(typescript@5.6.3) - '@svgr/hast-util-to-babel-ast': 8.0.0 + '@svgr/babel-preset': 6.5.1(@babel/core@7.26.0) + '@svgr/core': 6.5.1 + '@svgr/hast-util-to-babel-ast': 6.5.1 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@tanstack/query-core@5.60.5': {} + '@tanstack/query-core@4.36.1': {} - '@tanstack/react-query@5.60.5(react@18.3.1)': + '@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.60.5 + '@tanstack/query-core': 4.36.1 react: 18.3.1 + use-sync-external-store: 1.2.2(react@18.3.1) + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) - '@testing-library/dom@10.4.0': + '@testing-library/dom@9.3.4': dependencies: '@babel/code-frame': 7.26.2 '@babel/runtime': 7.26.0 '@types/aria-query': 5.0.4 - aria-query: 5.3.0 + aria-query: 5.1.3 chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 - '@testing-library/dom': 10.4.0 + '@babel/runtime': 7.26.0 + '@testing-library/dom': 9.3.4 + '@types/react-dom': 18.3.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + + '@tootallnate/once@2.0.0': {} '@trpc/client@10.45.2(@trpc/server@10.45.2)': dependencies: @@ -7412,15 +7145,21 @@ snapshots: '@types/body-parser@1.19.2': dependencies: '@types/connect': 3.4.35 - '@types/node': 22.9.0 + '@types/node': 20.17.6 + + '@types/chai-subset@1.3.5': + dependencies: + '@types/chai': 4.3.20 + + '@types/chai@4.3.20': {} '@types/connect@3.4.35': dependencies: - '@types/node': 22.9.0 + '@types/node': 20.17.6 '@types/cors@2.8.17': dependencies: - '@types/node': 20.11.5 + '@types/node': 20.17.6 '@types/d3-array@3.0.4': {} @@ -7448,26 +7187,24 @@ snapshots: '@types/date-arithmetic@4.1.1': {} - '@types/eslint@9.6.1': + '@types/eslint@8.56.12': dependencies: - '@types/estree': 1.0.0 - '@types/json-schema': 7.0.11 - - '@types/estree@1.0.0': {} + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 '@types/estree@1.0.6': {} - '@types/express-serve-static-core@5.0.1': + '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.9.0 + '@types/node': 20.17.6 '@types/qs': 6.9.7 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express@5.0.0': + '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 5.0.1 + '@types/express-serve-static-core': 4.19.6 '@types/qs': 6.9.7 '@types/serve-static': 1.15.1 @@ -7475,8 +7212,6 @@ snapshots: '@types/geojson@7946.0.10': {} - '@types/json-schema@7.0.11': {} - '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -7497,11 +7232,11 @@ snapshots: '@types/mime@3.0.1': {} - '@types/node@20.11.5': + '@types/node@18.19.64': dependencies: undici-types: 5.26.5 - '@types/node@22.9.0': + '@types/node@20.17.6': dependencies: undici-types: 6.19.8 @@ -7559,15 +7294,17 @@ snapshots: dependencies: '@types/react': 18.3.12 + '@types/semver@7.5.8': {} + '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.9.0 + '@types/node': 20.17.6 '@types/serve-static@1.15.1': dependencies: '@types/mime': 3.0.1 - '@types/node': 22.9.0 + '@types/node': 20.17.6 '@types/styled-jsx@2.2.9': dependencies: @@ -7579,141 +7316,136 @@ snapshots: '@types/warning@3.0.0': {} - '@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.14.0(eslint@9.15.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.15.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.14.0(eslint@9.15.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.14.0 - eslint: 9.15.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + debug: 4.3.7 + eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.0(typescript@5.6.3) + natural-compare-lite: 1.4.0 + semver: 7.6.3 + tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: - typescript: 5.6.3 + typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.14.0 - debug: 4.3.4 - eslint: 9.15.0 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + debug: 4.3.7 + eslint: 8.57.1 optionalDependencies: - typescript: 5.6.3 + typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.14.0': + '@typescript-eslint/scope-manager@5.62.0': dependencies: - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/visitor-keys': 8.14.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/type-utils@8.14.0(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.14.0(eslint@9.15.0)(typescript@5.6.3) - debug: 4.3.7(supports-color@5.5.0) - ts-api-utils: 1.4.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + debug: 4.3.7 + eslint: 8.57.1 + tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: - typescript: 5.6.3 + typescript: 4.9.5 transitivePeerDependencies: - - eslint - supports-color - '@typescript-eslint/types@8.14.0': {} + '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/typescript-estree@8.14.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/visitor-keys': 8.14.0 - debug: 4.3.4 - fast-glob: 3.3.2 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.7 + globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.6.3) + tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: - typescript: 5.6.3 + typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.14.0(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) - eslint: 9.15.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + eslint: 8.57.1 + eslint-scope: 5.1.1 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.14.0': + '@typescript-eslint/visitor-keys@5.62.0': dependencies: - '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 + '@ungap/structured-clone@1.2.0': {} + '@vendia/serverless-express@4.12.6': dependencies: '@codegenie/serverless-express': 4.16.0 - '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@22.9.0))': + '@vitejs/plugin-react@4.3.3(vite@4.5.5(@types/node@18.19.64))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.11(@types/node@22.9.0) + vite: 4.5.5(@types/node@18.19.64) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.5': - dependencies: - '@vitest/spy': 2.1.5 - '@vitest/utils': 2.1.5 - chai: 5.1.2 - tinyrainbow: 1.2.0 - - '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.9.0))': - dependencies: - '@vitest/spy': 2.1.5 - estree-walker: 3.0.3 - magic-string: 0.30.12 - optionalDependencies: - vite: 5.4.11(@types/node@22.9.0) - - '@vitest/pretty-format@2.1.5': + '@vitest/expect@0.34.6': dependencies: - tinyrainbow: 1.2.0 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.5.0 - '@vitest/runner@2.1.5': + '@vitest/runner@0.34.6': dependencies: - '@vitest/utils': 2.1.5 + '@vitest/utils': 0.34.6 + p-limit: 4.0.0 pathe: 1.1.2 - '@vitest/snapshot@2.1.5': + '@vitest/snapshot@0.34.6': dependencies: - '@vitest/pretty-format': 2.1.5 magic-string: 0.30.12 pathe: 1.1.2 + pretty-format: 29.7.0 - '@vitest/spy@2.1.5': + '@vitest/spy@0.34.6': dependencies: - tinyspy: 3.0.2 + tinyspy: 2.2.1 - '@vitest/utils@2.1.5': + '@vitest/utils@0.34.6': dependencies: - '@vitest/pretty-format': 2.1.5 - loupe: 3.1.2 - tinyrainbow: 1.2.0 + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + + abab@2.0.6: {} abbrev@1.1.1: {} @@ -7726,11 +7458,15 @@ snapshots: dependencies: acorn: 8.14.0 + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.0 + acorn@8.14.0: {} - agent-base@7.1.1: + agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -7741,9 +7477,9 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ansi-escapes@7.0.0: + ansi-escapes@5.0.0: dependencies: - environment: 1.1.0 + type-fest: 1.4.0 ansi-regex@5.0.1: {} @@ -7768,16 +7504,13 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: + aria-query@5.1.3: dependencies: - dequal: 2.0.3 + deep-equal: 2.2.3 aria-query@5.3.2: {} - arktype@2.0.0-rc.23: - dependencies: - '@ark/schema': 0.23.0 - '@ark/util': 0.23.0 + arktype@1.0.14-alpha: {} array-buffer-byte-length@1.0.1: dependencies: @@ -7795,6 +7528,8 @@ snapshots: get-intrinsic: 1.2.4 is-string: 1.0.7 + array-union@2.1.0: {} + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.7 @@ -7846,7 +7581,7 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - assertion-error@2.0.1: {} + assertion-error@1.1.0: {} ast-types-flow@0.0.8: {} @@ -7909,7 +7644,7 @@ snapshots: babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 cosmiconfig: 7.1.0 resolve: 1.22.8 @@ -7947,14 +7682,6 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -7992,13 +7719,15 @@ snapshots: caniuse-lite@1.0.30001680: {} - chai@5.1.2: + chai@4.5.0: dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.2 - pathval: 2.0.0 + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 chalk@4.1.2: dependencies: @@ -8011,30 +7740,32 @@ snapshots: dependencies: '@kurkle/color': 0.3.2 - check-error@2.1.1: {} + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 chokidar@3.5.3: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 classnames@2.5.1: {} - cli-cursor@5.0.0: + cli-cursor@4.0.0: dependencies: - restore-cursor: 5.1.0 + restore-cursor: 4.0.0 - cli-truncate@4.0.0: + cli-truncate@3.1.0: dependencies: slice-ansi: 5.0.0 - string-width: 7.2.0 + string-width: 5.1.2 cliui@8.0.1: dependencies: @@ -8058,22 +7789,26 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@12.1.0: {} + commander@11.0.0: {} commander@3.0.2: {} concat-map@0.0.1: {} - concurrently@9.1.0: + concurrently@8.2.2: dependencies: chalk: 4.1.2 + date-fns: 2.30.0 lodash: 4.17.21 rxjs: 7.8.1 shell-quote: 1.8.1 + spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 yargs: 17.7.2 + confbox@0.1.8: {} + constructs@10.4.2: {} content-disposition@0.5.4: @@ -8107,15 +7842,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@8.3.6(typescript@5.6.3): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.6.3 - cross-env@7.0.3: dependencies: cross-spawn: 7.0.3 @@ -8138,12 +7864,12 @@ snapshots: css-vendor@2.0.8: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 is-in-browser: 1.1.3 - cssstyle@4.1.0: + cssstyle@3.0.0: dependencies: - rrweb-cssom: 0.7.1 + rrweb-cssom: 0.6.0 csstype@2.6.21: {} @@ -8195,10 +7921,11 @@ snapshots: data-uri-to-buffer@4.0.1: {} - data-urls@5.0.0: + data-urls@4.0.0: dependencies: - whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 data-view-buffer@1.0.1: dependencies: @@ -8220,7 +7947,9 @@ snapshots: date-arithmetic@4.1.0: {} - date-fns@4.1.0: {} + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.26.0 dayjs@1.11.13: {} @@ -8228,25 +7957,48 @@ snapshots: dependencies: ms: 2.0.0 - debug@3.2.7: + debug@3.2.7(supports-color@5.5.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 debug@4.3.4: dependencies: ms: 2.1.2 - debug@4.3.7(supports-color@5.5.0): + debug@4.3.7: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 5.5.0 decimal.js-light@2.5.1: {} decimal.js@10.4.3: {} - deep-eql@5.0.2: {} + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 deep-is@0.1.4: {} @@ -8272,28 +8024,37 @@ snapshots: destroy@1.2.0: {} + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + doctrine@2.1.0: dependencies: esutils: 2.0.3 + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + dom-accessibility-api@0.5.16: {} dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 csstype: 3.1.1 - dot-case@3.0.4: + domexception@4.0.0: dependencies: - no-case: 3.0.4 - tslib: 2.8.1 + webidl-conversions: 7.0.0 dotenv@16.4.5: {} drizzle-kit@0.28.1: dependencies: '@drizzle-team/brocli': 0.10.2 - '@esbuild-kit/esm-loader': 2.5.5 + '@esbuild-kit/esm-loader': 2.6.5 esbuild: 0.19.12 esbuild-register: 3.6.0(esbuild@0.19.12) transitivePeerDependencies: @@ -8305,12 +8066,12 @@ snapshots: postgres: 3.4.5 react: 18.3.1 + eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} electron-to-chromium@1.5.62: {} - emoji-regex@10.4.0: {} - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -8324,15 +8085,11 @@ snapshots: graceful-fs: 4.2.10 tapable: 2.2.1 - entities@4.4.0: {} - entities@4.5.0: {} - envalid@8.0.0: + envalid@7.3.1: dependencies: - tslib: 2.6.2 - - environment@1.1.0: {} + tslib: 2.3.1 error-ex@1.3.2: dependencies: @@ -8393,6 +8150,18 @@ snapshots: es-errors@1.3.0: {} + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + es-iterator-helpers@1.2.0: dependencies: call-bind: 1.0.7 @@ -8411,8 +8180,6 @@ snapshots: iterator.prototype: 1.1.3 safe-array-concat: 1.1.2 - es-module-lexer@1.5.4: {} - es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -8435,7 +8202,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.19.12): dependencies: - debug: 4.3.4 + debug: 4.3.7 esbuild: 0.19.12 transitivePeerDependencies: - supports-color @@ -8465,6 +8232,31 @@ snapshots: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 + esbuild@0.18.20: + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + esbuild@0.19.12: optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 @@ -8491,101 +8283,19 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - esbuild@0.23.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - - esbuild@0.24.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 - - escalade@3.1.1: {} - escalade@3.2.0: {} escape-html@1.0.3: {} escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.15.0): + eslint-config-prettier@8.10.0(eslint@8.57.1): dependencies: - eslint: 9.15.0 + eslint: 8.57.1 eslint-import-resolver-node@0.3.9: dependencies: - debug: 3.2.7 + debug: 3.2.7(supports-color@5.5.0) is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: @@ -8594,10 +8304,10 @@ snapshots: eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7 enhanced-resolve: 5.15.1 eslint: 9.15.0 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -8610,29 +8320,39 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@8.57.1): + dependencies: + debug: 3.2.7(supports-color@5.5.0) + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0): dependencies: - debug: 3.2.7 + debug: 3.2.7(supports-color@5.5.0) optionalDependencies: - '@typescript-eslint/parser': 8.14.0(eslint@9.15.0)(typescript@5.6.3) eslint: 9.15.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 - debug: 3.2.7 + debug: 3.2.7(supports-color@5.5.0) doctrine: 2.1.0 - eslint: 9.15.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -8644,7 +8364,7 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.14.0(eslint@9.15.0)(typescript@5.6.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -8657,11 +8377,11 @@ snapshots: array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 - debug: 3.2.7 + debug: 3.2.7(supports-color@5.5.0) doctrine: 2.1.0 eslint: 9.15.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -8676,8 +8396,9 @@ snapshots: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + optional: true - eslint-plugin-jsx-a11y@6.10.2(eslint@9.15.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -8687,7 +8408,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.15.0 + eslint: 8.57.1 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8696,11 +8417,11 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.0.0(eslint@9.15.0): + eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): dependencies: - eslint: 9.15.0 + eslint: 8.57.1 - eslint-plugin-react@7.37.2(eslint@9.15.0): + eslint-plugin-react@7.37.2(eslint@8.57.1): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -8708,7 +8429,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.0 - eslint: 9.15.0 + eslint: 8.57.1 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.3 @@ -8722,6 +8443,16 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 @@ -8731,9 +8462,52 @@ snapshots: eslint-visitor-keys@4.2.0: {} + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.5 + debug: 4.3.7 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + eslint@9.15.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.0 '@eslint/core': 0.9.0 @@ -8748,7 +8522,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.5 - debug: 4.3.4 + debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -8759,7 +8533,7 @@ snapshots: file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - ignore: 5.2.4 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 @@ -8776,6 +8550,12 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 4.2.0 + espree@9.6.1: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} esquery@1.6.0: @@ -8786,14 +8566,12 @@ snapshots: dependencies: estraverse: 5.3.0 + estraverse@4.3.0: {} + estraverse@5.3.0: {} estree-walker@2.0.2: {} - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.6 - esutils@2.0.3: {} etag@1.8.1: {} @@ -8806,20 +8584,18 @@ snapshots: events@3.3.0: {} - execa@8.0.1: + execa@7.2.0: dependencies: cross-spawn: 7.0.5 - get-stream: 8.0.1 - human-signals: 5.0.0 + get-stream: 6.0.1 + human-signals: 4.3.1 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 + signal-exit: 3.0.7 strip-final-newline: 3.0.0 - expect-type@1.1.0: {} - express@4.21.1: dependencies: accepts: 1.3.8 @@ -8889,16 +8665,16 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 file-saver@2.0.5: {} - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -8922,6 +8698,12 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + flat-cache@4.0.1: dependencies: flatted: 3.3.1 @@ -8947,6 +8729,8 @@ snapshots: fresh@0.5.2: {} + fs.realpath@1.0.0: {} + fsevents@2.3.2: optional: true @@ -8968,7 +8752,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.3.0: {} + get-func-name@2.0.2: {} get-intrinsic@1.2.4: dependencies: @@ -8978,7 +8762,7 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-stream@8.0.1: {} + get-stream@6.0.1: {} get-symbol-description@1.0.2: dependencies: @@ -8986,10 +8770,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.6.2: - dependencies: - resolve-pkg-maps: 1.0.0 - get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -9004,10 +8784,23 @@ snapshots: glob-to-regexp@0.4.1: {} + glob@7.2.3: + 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 + globalize@0.1.1: {} globals@11.12.0: {} + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + globals@14.0.0: {} globalthis@1.0.4: @@ -9015,9 +8808,14 @@ snapshots: define-properties: 1.2.1 gopd: 1.0.1 - goober@2.1.16(csstype@3.1.3): + globby@11.1.0: dependencies: - csstype: 3.1.3 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 gopd@1.0.1: dependencies: @@ -9057,9 +8855,9 @@ snapshots: dependencies: react-is: 16.13.1 - html-encoding-sniffer@4.0.0: + html-encoding-sniffer@3.0.0: dependencies: - whatwg-encoding: 3.1.1 + whatwg-encoding: 2.0.0 html2canvas@1.4.1: dependencies: @@ -9074,23 +8872,24 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@7.0.2: + http-proxy-agent@5.0.0: dependencies: - agent-base: 7.1.1 - debug: 4.3.7(supports-color@5.5.0) + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.7 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.5: + https-proxy-agent@5.0.1: dependencies: - agent-base: 7.1.1 - debug: 4.3.7(supports-color@5.5.0) + agent-base: 6.0.2 + debug: 4.3.7 transitivePeerDependencies: - supports-color - human-signals@5.0.0: {} + human-signals@4.3.1: {} - husky@9.1.6: {} + husky@8.0.3: {} hyphenate-style-name@1.0.4: {} @@ -9114,8 +8913,6 @@ snapshots: ignore-by-default@1.0.1: {} - ignore@5.2.4: {} - ignore@5.3.2: {} import-fresh@3.3.0: @@ -9125,6 +8922,11 @@ snapshots: imurmurhash@0.1.4: {} + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + inherits@2.0.4: {} internal-slot@1.0.7: @@ -9198,10 +9000,6 @@ snapshots: is-fullwidth-code-point@4.0.0: {} - is-fullwidth-code-point@5.0.0: - dependencies: - get-east-asian-width: 1.3.0 - is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.0 @@ -9222,6 +9020,8 @@ snapshots: is-number@7.0.0: {} + is-path-inside@3.0.3: {} + is-potential-custom-element-name@1.0.1: {} is-regex@1.1.4: @@ -9297,29 +9097,31 @@ snapshots: dependencies: argparse: 2.0.1 - jsdom@25.0.1: + jsdom@22.1.0: dependencies: - cssstyle: 4.1.0 - data-urls: 5.0.0 + abab: 2.0.6 + cssstyle: 3.0.0 + data-urls: 4.0.0 decimal.js: 10.4.3 + domexception: 4.0.0 form-data: 4.0.0 - html-encoding-sniffer: 4.0.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + 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.13 parse5: 7.1.2 - rrweb-cssom: 0.7.1 + rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.0.0 - w3c-xmlserializer: 5.0.0 + tough-cookie: 4.1.4 + w3c-xmlserializer: 4.0.0 webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 ws: 8.18.0 - xml-name-validator: 5.0.0 + xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil - supports-color @@ -9343,46 +9145,46 @@ snapshots: jss-plugin-camel-case@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 hyphenate-style-name: 1.0.4 jss: 10.10.0 jss-plugin-default-unit@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 jss: 10.10.0 jss-plugin-global@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 jss: 10.10.0 jss-plugin-nested@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-props-sort@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 jss: 10.10.0 jss-plugin-rule-value-function@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-vendor-prefixer@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 css-vendor: 2.0.8 jss: 10.10.0 jss@10.10.0: dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 csstype: 3.1.3 is-in-browser: 1.1.3 tiny-warning: 1.0.3 @@ -9415,7 +9217,7 @@ snapshots: '@mapbox/polyline': 0.2.0 osrm-text-instructions: 0.13.4 - leaflet.locatecontrol@0.82.0: {} + leaflet.locatecontrol@0.79.0: {} leaflet@1.9.4: {} @@ -9424,33 +9226,36 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.2: {} + lilconfig@2.1.0: {} lines-and-columns@1.2.4: {} - lint-staged@15.2.10: + lint-staged@13.3.0: dependencies: chalk: 5.3.0 - commander: 12.1.0 - debug: 4.3.7(supports-color@5.5.0) - execa: 8.0.1 - lilconfig: 3.1.2 - listr2: 8.2.5 - micromatch: 4.0.8 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 + lilconfig: 2.1.0 + listr2: 6.6.1 + micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.5.1 + yaml: 2.3.1 transitivePeerDependencies: + - enquirer - supports-color - listr2@8.2.5: + listr2@6.6.1: dependencies: - cli-truncate: 4.0.0 + cli-truncate: 3.1.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 6.1.0 + log-update: 5.0.1 rfdc: 1.4.1 - wrap-ansi: 9.0.0 + wrap-ansi: 8.1.0 + + local-pkg@0.4.3: {} locate-path@6.0.0: dependencies: @@ -9462,23 +9267,21 @@ snapshots: lodash@4.17.21: {} - log-update@6.1.0: + log-update@5.0.1: dependencies: - ansi-escapes: 7.0.0 - cli-cursor: 5.0.0 - slice-ansi: 7.1.0 + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 + wrap-ansi: 8.1.0 loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - loupe@3.1.2: {} - - lower-case@2.0.2: + loupe@2.3.7: dependencies: - tslib: 2.8.1 + get-func-name: 2.0.2 lru-cache@5.1.1: dependencies: @@ -9494,10 +9297,10 @@ snapshots: material-colors@1.2.6: {} - material-ui-popup-state@5.3.1(@mui/material@6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + material-ui-popup-state@5.3.1(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.20.13 - '@mui/material': 6.1.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/prop-types': 15.7.13 '@types/react': 18.3.12 classnames: 2.5.1 @@ -9516,6 +9319,11 @@ snapshots: methods@1.1.2: {} + micromatch@4.0.5: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -9529,20 +9337,23 @@ snapshots: mime@1.6.0: {} - mimic-fn@4.0.0: {} + mimic-fn@2.1.0: {} - mimic-function@5.0.1: {} + mimic-fn@4.0.0: {} minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - minimist@1.2.8: {} + mlly@1.7.3: + dependencies: + acorn: 8.14.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + mnemonist@0.38.3: dependencies: obliterator: 1.6.1 @@ -9563,15 +9374,12 @@ snapshots: nanoid@3.3.7: {} + natural-compare-lite@1.4.0: {} + natural-compare@1.4.0: {} negotiator@0.6.3: {} - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.8.1 - node-domexception@1.0.0: {} node-fetch@3.3.1: @@ -9582,15 +9390,15 @@ snapshots: node-releases@2.0.18: {} - nodemon@3.1.7: + nodemon@2.0.22: dependencies: chokidar: 3.5.3 - debug: 4.3.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 - semver: 7.6.3 - simple-update-notifier: 2.0.0 + semver: 5.7.2 + simple-update-notifier: 1.1.0 supports-color: 5.5.0 touch: 3.1.0 undefsafe: 2.0.5 @@ -9601,14 +9409,16 @@ snapshots: normalize-path@3.0.0: {} - notistack@3.0.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + notistack@2.0.8(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: + '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 1.2.1 - goober: 2.1.16(csstype@3.1.3) + hoist-non-react-statics: 3.3.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - csstype + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) npm-run-path@5.3.0: dependencies: @@ -9620,6 +9430,11 @@ snapshots: object-inspect@1.13.3: {} + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + object-keys@1.1.1: {} object.assign@4.1.4: @@ -9671,13 +9486,13 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@6.0.0: + onetime@5.1.2: dependencies: - mimic-fn: 4.0.0 + mimic-fn: 2.1.0 - onetime@7.0.0: + onetime@6.0.0: dependencies: - mimic-function: 5.0.1 + mimic-fn: 4.0.0 optionator@0.9.4: dependencies: @@ -9694,6 +9509,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 + p-limit@4.0.0: + dependencies: + yocto-queue: 1.1.1 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -9713,12 +9532,14 @@ snapshots: parse5@7.1.2: dependencies: - entities: 4.4.0 + entities: 4.5.0 parseurl@1.3.3: {} path-exists@4.0.0: {} + path-is-absolute@1.0.1: {} + path-key@3.1.1: {} path-key@4.0.0: {} @@ -9731,9 +9552,11 @@ snapshots: pathe@1.1.2: {} - pathval@2.0.0: {} + pathval@1.1.1: {} + + peterportal-api-next-types@1.0.0-alpha.6: {} - peterportal-api-next-types@1.0.0-rc.3: {} + peterportal-api-next-types@1.0.0-rc.2.68.0: {} picocolors@1.1.1: {} @@ -9743,6 +9566,12 @@ snapshots: pidtree@0.6.0: {} + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.3 + pathe: 1.1.2 + popper.js@1.16.1-lts: {} possible-typed-array-names@1.0.0: {} @@ -9757,6 +9586,8 @@ snapshots: prelude-ls@1.2.1: {} + prettier@2.8.8: {} + prettier@3.3.3: {} pretty-format@27.5.1: @@ -9765,6 +9596,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -9778,12 +9615,14 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + psl@1.10.0: + dependencies: + punycode: 2.3.1 + pstree.remy@1.1.8: {} punycode@1.3.2: {} - punycode@2.3.0: {} - punycode@2.3.1: {} qs@6.13.0: @@ -9792,6 +9631,8 @@ snapshots: querystring@0.2.0: {} + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} range-parser@1.2.1: {} @@ -9877,7 +9718,7 @@ snapshots: react-overlays@5.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@popperjs/core': 2.11.6 '@restart/hooks': 0.4.9(react@18.3.1) '@types/warning': 3.0.0 @@ -9980,6 +9821,8 @@ snapshots: require-directory@2.1.1: {} + requires-port@1.0.0: {} + resize-observer-polyfill@1.5.1: {} resolve-from@4.0.0: {} @@ -9998,10 +9841,10 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@5.1.0: + restore-cursor@4.0.0: dependencies: - onetime: 7.0.0 - signal-exit: 4.1.0 + onetime: 5.1.2 + signal-exit: 3.0.7 reusify@1.0.4: {} @@ -10012,6 +9855,14 @@ snapshots: '@babel/runtime': 7.22.11 react: 18.3.1 + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@3.29.5: + optionalDependencies: + fsevents: 2.3.3 + rollup@4.27.2: dependencies: '@types/estree': 1.0.6 @@ -10035,8 +9886,9 @@ snapshots: '@rollup/rollup-win32-ia32-msvc': 4.27.2 '@rollup/rollup-win32-x64-msvc': 4.27.2 fsevents: 2.3.3 + optional: true - rrweb-cssom@0.7.1: {} + rrweb-cssom@0.6.0: {} run-parallel@1.2.0: dependencies: @@ -10075,8 +9927,12 @@ snapshots: dependencies: loose-envify: 1.4.0 + semver@5.7.2: {} + semver@6.3.1: {} + semver@7.0.0: {} + semver@7.6.3: {} send@0.19.0: @@ -10141,27 +9997,19 @@ snapshots: siginfo@2.0.0: {} - signal-exit@4.1.0: {} + signal-exit@3.0.7: {} - simple-update-notifier@2.0.0: + simple-update-notifier@1.1.0: dependencies: - semver: 7.6.3 + semver: 7.0.0 + + slash@3.0.0: {} slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - slice-ansi@7.1.0: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 5.0.0 - - snake-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -10173,6 +10021,8 @@ snapshots: source-map@0.6.1: {} + spawn-command@0.0.2: {} + split.js@1.6.5: {} sprintf-js@1.0.3: {} @@ -10183,6 +10033,10 @@ snapshots: std-env@3.8.0: {} + stop-iteration-iterator@1.0.0: + dependencies: + internal-slot: 1.0.7 + string-argv@0.3.2: {} string-width@4.2.3: @@ -10191,10 +10045,10 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@7.2.0: + string-width@5.1.2: dependencies: - emoji-regex: 10.4.0 - get-east-asian-width: 1.3.0 + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 strip-ansi: 7.1.0 string.prototype.includes@2.0.1: @@ -10256,11 +10110,15 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@1.3.0: + dependencies: + acorn: 8.14.0 + strnum@1.0.5: {} stylis@4.2.0: {} - superjson@2.2.1: + superjson@1.13.3: dependencies: copy-anything: 3.0.5 @@ -10288,6 +10146,8 @@ snapshots: dependencies: utrie: 1.0.2 + text-table@0.2.0: {} + tiny-case@1.0.3: {} tiny-invariant@1.3.3: {} @@ -10298,19 +10158,9 @@ snapshots: tinycolor2@1.6.0: {} - tinyexec@0.3.1: {} - - tinypool@1.0.2: {} - - tinyrainbow@1.2.0: {} - - tinyspy@3.0.2: {} + tinypool@0.7.0: {} - tldts-core@6.1.61: {} - - tldts@6.1.61: - dependencies: - tldts-core: 6.1.61 + tinyspy@2.2.1: {} to-regex-range@5.0.1: dependencies: @@ -10324,20 +10174,19 @@ snapshots: dependencies: nopt: 1.0.10 - tough-cookie@5.0.0: + tough-cookie@4.1.4: dependencies: - tldts: 6.1.61 + psl: 1.10.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 - tr46@5.0.0: + tr46@4.1.1: dependencies: punycode: 2.3.1 tree-kill@1.2.2: {} - ts-api-utils@1.4.0(typescript@5.6.3): - dependencies: - typescript: 5.6.3 - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -10345,16 +10194,24 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@2.5.0: {} + tslib@1.14.1: {} - tslib@2.6.2: {} + tslib@2.3.1: {} + + tslib@2.5.0: {} tslib@2.8.1: {} - tsx@4.19.2: + tsutils@3.21.0(typescript@4.9.5): dependencies: - esbuild: 0.23.1 + tslib: 1.14.1 + typescript: 4.9.5 + + tsx@3.14.0: + dependencies: + esbuild: 0.18.20 get-tsconfig: 4.8.1 + source-map-support: 0.5.21 optionalDependencies: fsevents: 2.3.3 @@ -10391,6 +10248,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-detect@4.1.0: {} + + type-fest@0.20.2: {} + + type-fest@1.4.0: {} + type-fest@2.19.0: {} type-is@1.6.18: @@ -10430,10 +10293,14 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + typescript@4.9.5: {} + typescript@5.6.3: {} ua-parser-js@1.0.39: {} + ufo@1.5.4: {} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 @@ -10443,7 +10310,7 @@ snapshots: uncontrollable@7.2.1(react@18.3.1): dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@types/react': 18.3.12 invariant: 2.2.4 react: 18.3.1 @@ -10461,6 +10328,8 @@ snapshots: universal-user-agent@6.0.1: {} + universalify@0.2.0: {} + unpipe@1.0.0: {} update-browserslist-db@1.1.1(browserslist@4.24.2): @@ -10471,7 +10340,12 @@ snapshots: uri-js@4.4.1: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 url@0.10.3: dependencies: @@ -10481,7 +10355,6 @@ snapshots: use-sync-external-store@1.2.2(react@18.3.1): dependencies: react: 18.3.1 - optional: true util@0.12.5: dependencies: @@ -10520,83 +10393,91 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-node@2.1.5(@types/node@22.9.0): + vite-node@0.34.6(@types/node@20.17.6): dependencies: cac: 6.7.14 - debug: 4.3.7(supports-color@5.5.0) - es-module-lexer: 1.5.4 + debug: 4.3.7 + mlly: 1.7.3 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.9.0) + picocolors: 1.1.1 + vite: 4.5.5(@types/node@20.17.6) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass - - sass-embedded - stylus - sugarss - supports-color - terser - vite-plugin-svgr@4.3.0(rollup@4.27.2)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)): + vite-plugin-svgr@2.4.0(rollup@4.27.2)(vite@4.5.5(@types/node@18.19.64)): dependencies: '@rollup/pluginutils': 5.1.3(rollup@4.27.2) - '@svgr/core': 8.1.0(typescript@5.6.3) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3)) - vite: 5.4.11(@types/node@22.9.0) + '@svgr/core': 6.5.1 + vite: 4.5.5(@types/node@18.19.64) transitivePeerDependencies: - rollup - supports-color - - typescript - vite@5.4.11(@types/node@22.9.0): + vite@4.5.5(@types/node@18.19.64): dependencies: - esbuild: 0.21.5 + esbuild: 0.18.20 postcss: 8.4.49 - rollup: 4.27.2 + rollup: 3.29.5 + optionalDependencies: + '@types/node': 18.19.64 + fsevents: 2.3.3 + + vite@4.5.5(@types/node@20.17.6): + dependencies: + esbuild: 0.18.20 + postcss: 8.4.49 + rollup: 3.29.5 optionalDependencies: - '@types/node': 22.9.0 + '@types/node': 20.17.6 fsevents: 2.3.3 - vitest@2.1.5(@types/node@22.9.0)(jsdom@25.0.1): - dependencies: - '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.9.0)) - '@vitest/pretty-format': 2.1.5 - '@vitest/runner': 2.1.5 - '@vitest/snapshot': 2.1.5 - '@vitest/spy': 2.1.5 - '@vitest/utils': 2.1.5 - chai: 5.1.2 - debug: 4.3.7(supports-color@5.5.0) - expect-type: 1.1.0 + vitest@0.34.6(jsdom@22.1.0): + dependencies: + '@types/chai': 4.3.20 + '@types/chai-subset': 1.3.5 + '@types/node': 20.17.6 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.14.0 + acorn-walk: 8.3.4 + cac: 6.7.14 + chai: 4.5.0 + debug: 4.3.7 + local-pkg: 0.4.3 magic-string: 0.30.12 pathe: 1.1.2 + picocolors: 1.1.1 std-env: 3.8.0 + strip-literal: 1.3.0 tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.2 - tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.9.0) - vite-node: 2.1.5(@types/node@22.9.0) + tinypool: 0.7.0 + vite: 4.5.5(@types/node@20.17.6) + vite-node: 0.34.6(@types/node@20.17.6) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.9.0 - jsdom: 25.0.1 + jsdom: 22.1.0 transitivePeerDependencies: - less - lightningcss - - msw - sass - - sass-embedded - stylus - sugarss - supports-color - terser - w3c-xmlserializer@5.0.0: + w3c-xmlserializer@4.0.0: dependencies: - xml-name-validator: 5.0.0 + xml-name-validator: 4.0.0 warning@4.0.3: dependencies: @@ -10621,15 +10502,15 @@ snapshots: base64-arraybuffer: 1.0.2 pako: 2.1.0 - whatwg-encoding@3.1.1: + whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 - whatwg-mimetype@4.0.0: {} + whatwg-mimetype@3.0.0: {} - whatwg-url@14.0.0: + whatwg-url@12.0.1: dependencies: - tr46: 5.0.0 + tr46: 4.1.1 webidl-conversions: 7.0.0 which-boxed-primitive@1.0.2: @@ -10696,17 +10577,17 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@9.0.0: + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 - string-width: 7.2.0 + string-width: 5.1.2 strip-ansi: 7.1.0 wrappy@1.0.2: {} ws@8.18.0: {} - xml-name-validator@5.0.0: {} + xml-name-validator@4.0.0: {} xml2js@0.4.19: dependencies: @@ -10730,14 +10611,14 @@ snapshots: yaml@1.10.2: {} - yaml@2.5.1: {} + yaml@2.3.1: {} yargs-parser@21.1.1: {} yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -10746,6 +10627,8 @@ snapshots: yocto-queue@0.1.0: {} + yocto-queue@1.1.1: {} + yup@1.4.0: dependencies: property-expr: 2.0.6 @@ -10753,8 +10636,9 @@ snapshots: toposort: 2.0.2 type-fest: 2.19.0 - zustand@5.0.1(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)): + zustand@4.5.5(@types/react@18.3.12)(react@18.3.1): + dependencies: + use-sync-external-store: 1.2.2(react@18.3.1) optionalDependencies: '@types/react': 18.3.12 react: 18.3.1 - use-sync-external-store: 1.2.2(react@18.3.1) From 37425f048f37066245b4b9aeaa9f9247ca45a520 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:15:31 -0800 Subject: [PATCH 44/90] fix(ddb): valid user filter with id instead of name --- apps/backend/src/db/ddb.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index 4e91c11c6..9bd55d69c 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -130,7 +130,9 @@ class DDBClient>> { while(true) { const result = await this.documentClient.scan(params); + if (result.Items) { + console.log(`Scanned ${result.Items.length} items`); const users = result.Items .map((item) => UserSchema(item)) .filter( @@ -142,7 +144,7 @@ class DDBClient>> { .map((result) => result.data); yield users.filter( - (user) => user.name !== undefined + (user) => user.id !== undefined ); } From 0aa4ec30747f56aebc99730025f9e00d8cb3dfb1 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:16:00 -0800 Subject: [PATCH 45/90] fix(rds): don't insert courses for schedule with no courses --- apps/backend/src/lib/rds.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index df90b421d..b17ef80ed 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -77,10 +77,12 @@ export class RDS { lastUpdated: new Date() })); - await db.transaction(async (tx) => await tx - .insert(coursesInSchedule) - .values(dbCourses) - ); + if (dbCourses.length !== 0) { + await db.transaction(async (tx) => await tx + .insert(coursesInSchedule) + .values(dbCourses) + ); + } return scheduleId; } From b5af50b632aa21cbbd7cd892c11581efb13d6322 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:16:20 -0800 Subject: [PATCH 46/90] feat(db): import DB_URL from env --- apps/backend/src/db/index.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/db/index.ts b/apps/backend/src/db/index.ts index b8c5a01a4..91c1cf9d4 100644 --- a/apps/backend/src/db/index.ts +++ b/apps/backend/src/db/index.ts @@ -1,12 +1,14 @@ import { drizzle } from 'drizzle-orm/postgres-js'; import postgres from 'postgres'; + +import env from '../env'; import * as schema from './schema/index.js'; -const url = process.env.DB_URL; +const { DB_URL } = env; -if (!url) throw new Error("DB_URL not defined") +if (!DB_URL) throw new Error("DB_URL not defined") -export const client = postgres(url); +export const client = postgres(DB_URL); export const db = drizzle(client, { schema }); From a0d9362799c6921ed6d78f85f0649387b0f64ced Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:19:46 -0800 Subject: [PATCH 47/90] fix(RDS): transaction param type --- apps/backend/src/lib/rds.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index b17ef80ed..6733fb3b1 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -5,6 +5,8 @@ import type { Database } from "$db/index"; import { schedules, users, accounts, coursesInSchedule } from '$db/schema'; +type DatabaseOrTransaction = Omit; + export class RDS { /** * Creates a guest user if they don't already exist. @@ -13,7 +15,7 @@ export class RDS { * @param name Guest user's name, to be used as providerAccountID and username * @returns The new/existing user's ID */ - static async createGuestUserOptional(db: Database, name: string) { + static async createGuestUserOptional(db: DatabaseOrTransaction, name: string) { return db.transaction(async (tx) => { const guestAccountsWithSameName = await tx .select() @@ -36,7 +38,7 @@ export class RDS { }); } - static async upsertScheduleAndCourses(db: Database, userId: string, schedule: ShortCourseSchedule) { + static async upsertScheduleAndCourses(db: DatabaseOrTransaction, userId: string, schedule: ShortCourseSchedule) { // Add schedule const dbSchedule = { userId, @@ -98,7 +100,7 @@ export class RDS { * @returns The user's ID */ static async upsertGuestUserData( - db: Database, userData: User + db: DatabaseOrTransaction, userData: User ): Promise { return db.transaction(async (tx) => { const userId = await this.createGuestUserOptional(tx, userData.id); From 09cd5b33ef262ac3429e5cd3b0cde0723531d8fe Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:41:36 -0800 Subject: [PATCH 48/90] feat(migrate): more helpful printout --- apps/backend/scripts/ddb_to_rds.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index 67e33417e..dcba48c8c 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -39,7 +39,7 @@ async function copyUsersToPostgres() { .then((data) => { if (data) console.log( - `Successfully copied user ${data}. (${++success})` + `Successfully copied user ${ddbUser.id}. (${++success})` ); } ); From 934ba6490f69365e0974c4c0e916d95fa6e748ea Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:54:55 -0800 Subject: [PATCH 49/90] feat(RDS): deduplicate courses in schedules --- apps/backend/src/lib/rds.ts | 61 ++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index 6733fb3b1..9769f57f3 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -1,4 +1,4 @@ -import { ShortCourseSchedule, User } from '@packages/antalmanac-types'; +import { ShortCourse, ShortCourseSchedule, User } from '@packages/antalmanac-types'; import { and, eq } from 'drizzle-orm'; import type { Database } from "$db/index"; @@ -64,14 +64,31 @@ export class RDS { throw new Error(`Failed to insert schedule for ${userId}`); } - // Drop all courses in the schedule and re-add them + // Add courses + await this.upsertCourses(db, scheduleId, schedule.courses); + return scheduleId; + } + + /** + * Drops all courses in the schedule and re-add them, + * deduplicating by section code and term. + * */ + private static async upsertCourses( + db: DatabaseOrTransaction, scheduleId: string, courses: ShortCourse[] + ) { await db.transaction(async (tx) => await tx .delete(coursesInSchedule) .where(eq(coursesInSchedule.scheduleId, scheduleId)) ); + + if (courses.length === 0) { + return; + } + + const coursesUnique: Set = new Set(); - const dbCourses = schedule.courses.map((course) => ({ + const dbCourses = courses.map((course) => ({ scheduleId, sectionCode: parseInt(course.sectionCode), term: course.term, @@ -79,14 +96,19 @@ export class RDS { lastUpdated: new Date() })); - if (dbCourses.length !== 0) { - await db.transaction(async (tx) => await tx - .insert(coursesInSchedule) - .values(dbCourses) - ); - } + const dbCoursesUnique = dbCourses.filter((course) => { + const key = `${course.sectionCode}-${course.term}`; + if (coursesUnique.has(key)) { + return false; + } + coursesUnique.add(key); + return true; + }); - return scheduleId; + await db.transaction(async (tx) => await tx + .insert(coursesInSchedule) + .values(dbCoursesUnique) + ); } /** @@ -117,11 +139,20 @@ export class RDS { const scheduleIds = await Promise.all(schedulesPromises); // Update user's current schedule index - const currentScheduleId = scheduleIds[userData.userData.scheduleIndex]; - await tx - .update(users) - .set({ currentScheduleId: currentScheduleId }) - .where(eq(users.id, userId)); + const scheduleIndex = userData.userData.scheduleIndex; + + const currentScheduleId = ( + scheduleIndex === undefined || scheduleIndex >= scheduleIds.length + ? null + : scheduleIds[scheduleIndex] + ); + + if (currentScheduleId !== null) { + await tx + .update(users) + .set({ currentScheduleId: currentScheduleId }) + .where(eq(users.id, userId)); + } return userId; }) From 4db00face3ec76b99506b8c226200d1e020948b1 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:05:16 -0800 Subject: [PATCH 50/90] feat(migrate): more helpful error message --- apps/backend/scripts/ddb_to_rds.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index dcba48c8c..da8a82685 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -33,8 +33,9 @@ async function copyUsersToPostgres() { .catch((error) => { failedUsers.push(ddbUser.id); console.error( - `Failed to upsert user data for ${ddbUser.id}:`, error + `Failed to upsert user data for user=${ddbUser}:` ); + console.error(error); }) .then((data) => { if (data) From a71b17696bd755a5c724a26eb7ab337d968a1bfb Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:06:26 -0800 Subject: [PATCH 51/90] deps(package.json): update --- apps/backend/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/backend/package.json b/apps/backend/package.json index 2719fcd65..3a0d69441 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -38,7 +38,8 @@ "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "concurrently": "^8.0.1", - "drizzle-kit": "^0.21.4", + "dotenv": "^16.0.3", + "drizzle-kit": "^0.28.1", "esbuild": "^0.17.19", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", From e07e54bb2b14f7c1d6c97259accbbd9620a226b2 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:08:53 -0800 Subject: [PATCH 52/90] chore(db): new migrations --- apps/backend/drizzle/0000_init_db.sql | 22 +++---- apps/backend/drizzle/meta/0000_snapshot.json | 64 +++++++++++++++++--- apps/backend/drizzle/meta/_journal.json | 6 +- 3 files changed, 67 insertions(+), 25 deletions(-) diff --git a/apps/backend/drizzle/0000_init_db.sql b/apps/backend/drizzle/0000_init_db.sql index da3258f4a..e86a7be06 100644 --- a/apps/backend/drizzle/0000_init_db.sql +++ b/apps/backend/drizzle/0000_init_db.sql @@ -1,15 +1,5 @@ -DO $$ BEGIN - CREATE TYPE "public"."account_type" AS ENUM('GOOGLE', 'GUEST'); -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - CREATE TYPE "public"."subscription_target_status" AS ENUM('OPEN', 'WAITLISTED'); -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint +CREATE TYPE "public"."account_type" AS ENUM('GOOGLE', 'GUEST');--> statement-breakpoint +CREATE TYPE "public"."subscription_target_status" AS ENUM('OPEN', 'WAITLISTED');--> statement-breakpoint CREATE TABLE IF NOT EXISTS "accounts" ( "user_id" text NOT NULL, "account_type" "account_type" NOT NULL, @@ -29,7 +19,8 @@ CREATE TABLE IF NOT EXISTS "users" ( "phone" text, "avatar" text, "name" text, - "current_schedule_id" text + "current_schedule_id" text, + "last_updated" timestamp with time zone DEFAULT now() ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "coursesInSchedule" ( @@ -37,6 +28,7 @@ CREATE TABLE IF NOT EXISTS "coursesInSchedule" ( "sectionCode" integer NOT NULL, "term" text NOT NULL, "color" text NOT NULL, + "last_updated" timestamp with time zone DEFAULT now(), CONSTRAINT "coursesInSchedule_scheduleId_sectionCode_term_pk" PRIMARY KEY("scheduleId","sectionCode","term") ); --> statement-breakpoint @@ -44,7 +36,9 @@ CREATE TABLE IF NOT EXISTS "schedules" ( "id" text PRIMARY KEY NOT NULL, "user_id" text NOT NULL, "name" text, - "notes" text + "notes" text, + "last_updated" timestamp with time zone NOT NULL, + CONSTRAINT "schedules_user_id_name_unique" UNIQUE("user_id","name") ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "subscriptions" ( diff --git a/apps/backend/drizzle/meta/0000_snapshot.json b/apps/backend/drizzle/meta/0000_snapshot.json index e7eedb062..089f02142 100644 --- a/apps/backend/drizzle/meta/0000_snapshot.json +++ b/apps/backend/drizzle/meta/0000_snapshot.json @@ -1,7 +1,7 @@ { - "id": "4a95fb4b-e13f-4215-9166-bc18cda8dc7a", + "id": "63321c86-a3e3-42b6-a632-fe818c3e2911", "prevId": "00000000-0000-0000-0000-000000000000", - "version": "6", + "version": "7", "dialect": "postgresql", "tables": { "public.accounts": { @@ -46,7 +46,10 @@ "columns": ["user_id", "account_type"] } }, - "uniqueConstraints": {} + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false }, "public.sessions": { "name": "sessions", @@ -90,7 +93,10 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false }, "public.users": { "name": "users", @@ -125,6 +131,13 @@ "type": "text", "primaryKey": false, "notNull": false + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" } }, "indexes": {}, @@ -140,7 +153,10 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false }, "public.coursesInSchedule": { "name": "coursesInSchedule", @@ -169,6 +185,13 @@ "type": "text", "primaryKey": false, "notNull": true + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" } }, "indexes": {}, @@ -189,7 +212,10 @@ "columns": ["scheduleId", "sectionCode", "term"] } }, - "uniqueConstraints": {} + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false }, "public.schedules": { "name": "schedules", @@ -218,6 +244,12 @@ "type": "text", "primaryKey": false, "notNull": false + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true } }, "indexes": {}, @@ -233,7 +265,16 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "schedules_user_id_name_unique": { + "name": "schedules_user_id_name_unique", + "nullsNotDistinct": false, + "columns": ["user_id", "name"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false }, "public.subscriptions": { "name": "subscriptions", @@ -277,7 +318,10 @@ "columns": ["userId", "sectionCode"] } }, - "uniqueConstraints": {} + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false } }, "enums": { @@ -293,6 +337,10 @@ } }, "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, "_meta": { "columns": {}, "schemas": {}, diff --git a/apps/backend/drizzle/meta/_journal.json b/apps/backend/drizzle/meta/_journal.json index 0200ab23c..893631ba5 100644 --- a/apps/backend/drizzle/meta/_journal.json +++ b/apps/backend/drizzle/meta/_journal.json @@ -1,11 +1,11 @@ { - "version": "6", + "version": "7", "dialect": "postgresql", "entries": [ { "idx": 0, - "version": "6", - "when": 1731288052581, + "version": "7", + "when": 1731809219099, "tag": "0000_init_db", "breakpoints": true } From ba2e1a6e901f24bc59554e1b9e0a4169f06c619d Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:11:34 -0800 Subject: [PATCH 53/90] feat(pnpm): more convenenient db scripts --- apps/backend/package.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/backend/package.json b/apps/backend/package.json index 3a0d69441..3a3ea697b 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -8,11 +8,9 @@ "start": "npm run dev", "format": "prettier --write src", "lint": "eslint --fix src", - "generate": "drizzle-kit generate", "studio": "drizzle-kit studio", - "migrate": "tsx scripts/migrate.ts", - "ddb-rds": "tsx scripts/ddb_to_rds.ts", - "copy-to-pg": "tsx scripts/copy-to-pg.ts" + "migrate": "drizzle-kit generate && tsx scripts/migrate.ts", + "ddb-rds": "pnpm migrate && tsx scripts/ddb_to_rds.ts" }, "dependencies": { "@packages/antalmanac-types": "workspace:**", From 3f7f198e3792e397f8e78ed1152e80eb6f265876 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:22:10 -0800 Subject: [PATCH 54/90] chore(schema): new pgTable overload --- apps/backend/src/db/schema/schedule/course.ts | 12 +++++++----- apps/backend/src/db/schema/schedule/schedule.ts | 8 +++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/backend/src/db/schema/schedule/course.ts b/apps/backend/src/db/schema/schedule/course.ts index 50e5f3588..a1be4a36f 100644 --- a/apps/backend/src/db/schema/schedule/course.ts +++ b/apps/backend/src/db/schema/schedule/course.ts @@ -34,11 +34,13 @@ export const coursesInSchedule = pgTable( lastUpdated: timestamp('last_updated', { withTimezone: true }).defaultNow(), }, (table) => { - return { - primaryKey: primaryKey({ - columns: [table.scheduleId, table.sectionCode, table.term], - }), - }; + return [ + { + primaryKey: primaryKey({ + columns: [table.scheduleId, table.sectionCode, table.term], + }), + } + ]; } ); diff --git a/apps/backend/src/db/schema/schedule/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts index 347e7b0ea..f2ce99393 100644 --- a/apps/backend/src/db/schema/schedule/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -24,8 +24,10 @@ export const schedules = pgTable('schedules', { lastUpdated: timestamp('last_updated', { withTimezone: true }).notNull(), -}, (table) => ({ - unq: unique().on(table.userId, table.name) -})); +}, (table) => ([ + { + unq: unique().on(table.userId, table.name) + } +])); export type Schedule = typeof schedules.$inferSelect; From 6cee06bfbae223c7fccd00beaa0b0cbc326f50aa Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 21:26:25 -0800 Subject: [PATCH 55/90] feat(schema): custom events --- .../src/db/schema/schedule/custom_event.ts | 32 +++++++++++++++++++ packages/types/src/customevent.ts | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 apps/backend/src/db/schema/schedule/custom_event.ts diff --git a/apps/backend/src/db/schema/schedule/custom_event.ts b/apps/backend/src/db/schema/schedule/custom_event.ts new file mode 100644 index 000000000..e45945122 --- /dev/null +++ b/apps/backend/src/db/schema/schedule/custom_event.ts @@ -0,0 +1,32 @@ +import { pgTable, text, timestamp } from "drizzle-orm/pg-core"; +import { schedules } from "./schedule"; + +/** + * customEvents have a N:1 relation with schedules. + * + * There can be multiple custom events with the same name in a schedule. + */ +export const customEvents = pgTable( + 'customEvents', + { + id: text('id').primaryKey(), + + scheduleId: text('scheduleId') + .references(() => schedules.id, { onDelete: 'cascade' }) + .notNull(), + + title: text('title').notNull(), + + start: text('start').notNull(), + + end: text('end').notNull(), + + days: text('days').notNull(), // Boolean (1/0) string + + color: text('color'), + + building: text('building'), + + lastUpdated: timestamp('last_updated', { withTimezone: true }).defaultNow(), + } +); diff --git a/packages/types/src/customevent.ts b/packages/types/src/customevent.ts index 415e9cbf3..b4d7c76d8 100644 --- a/packages/types/src/customevent.ts +++ b/packages/types/src/customevent.ts @@ -5,7 +5,7 @@ export const RepeatingCustomEventSchema = type({ start: 'string', end: 'string', days: 'boolean[]', - customEventID: 'number | parsedNumber', + customEventID: 'number | parsedNumber', // Unique only within the schedule. 'color?': 'string', 'building?': 'string | undefined', }); From ef13911428812828c188295385dcbaf70382d9c6 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 21:35:40 -0800 Subject: [PATCH 56/90] fix(schema): custom events --- apps/backend/src/db/schema/index.ts | 3 +-- apps/backend/src/db/schema/schedule/custom_event.ts | 4 +++- apps/backend/src/db/schema/schedule/index.ts | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/db/schema/index.ts b/apps/backend/src/db/schema/index.ts index cfd518eb8..d5ff64cff 100644 --- a/apps/backend/src/db/schema/index.ts +++ b/apps/backend/src/db/schema/index.ts @@ -1,4 +1,3 @@ export * from './auth' -export * from './schedule/course' -export * from './schedule/schedule' +export * from './schedule' export * from './subscription' diff --git a/apps/backend/src/db/schema/schedule/custom_event.ts b/apps/backend/src/db/schema/schedule/custom_event.ts index e45945122..146eeb030 100644 --- a/apps/backend/src/db/schema/schedule/custom_event.ts +++ b/apps/backend/src/db/schema/schedule/custom_event.ts @@ -1,4 +1,6 @@ +import { createId } from '@paralleldrive/cuid2'; import { pgTable, text, timestamp } from "drizzle-orm/pg-core"; + import { schedules } from "./schedule"; /** @@ -9,7 +11,7 @@ import { schedules } from "./schedule"; export const customEvents = pgTable( 'customEvents', { - id: text('id').primaryKey(), + id: text('id').primaryKey().$defaultFn(createId), scheduleId: text('scheduleId') .references(() => schedules.id, { onDelete: 'cascade' }) diff --git a/apps/backend/src/db/schema/schedule/index.ts b/apps/backend/src/db/schema/schedule/index.ts index ec6a07b83..c115ff3eb 100644 --- a/apps/backend/src/db/schema/schedule/index.ts +++ b/apps/backend/src/db/schema/schedule/index.ts @@ -1,2 +1,3 @@ export * from './schedule'; export * from './course'; +export * from './custom_event'; From 96bc950a7bcf99e4bdb4563992d80ffa85cbff3e Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sat, 16 Nov 2024 21:38:06 -0800 Subject: [PATCH 57/90] feat(api): update custom events --- apps/backend/src/lib/rds.ts | 52 ++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index 9769f57f3..b3863cf6c 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -1,8 +1,8 @@ -import { ShortCourse, ShortCourseSchedule, User } from '@packages/antalmanac-types'; +import { ShortCourse, ShortCourseSchedule, User, RepeatingCustomEvent } from '@packages/antalmanac-types'; import { and, eq } from 'drizzle-orm'; import type { Database } from "$db/index"; -import { schedules, users, accounts, coursesInSchedule } from '$db/schema'; +import { schedules, users, accounts, coursesInSchedule, customEvents } from '$db/schema'; type DatabaseOrTransaction = Omit; @@ -38,7 +38,13 @@ export class RDS { }); } - static async upsertScheduleAndCourses(db: DatabaseOrTransaction, userId: string, schedule: ShortCourseSchedule) { + /** + * Creates a new schedule if one with its name doesn't already exist + * and replaces its courses and custom events with the ones provided. + */ + static async upsertScheduleAndContents( + db: DatabaseOrTransaction, userId: string, schedule: ShortCourseSchedule + ) { // Add schedule const dbSchedule = { userId, @@ -64,8 +70,12 @@ export class RDS { throw new Error(`Failed to insert schedule for ${userId}`); } - // Add courses - await this.upsertCourses(db, scheduleId, schedule.courses); + // Add courses and custom events + await Promise.all([ + this.upsertCourses(db, scheduleId, schedule.courses), + this.upsertCustomEvents(db, scheduleId, schedule.customEvents) + ]); + return scheduleId; } @@ -111,6 +121,36 @@ export class RDS { ); } + private static async upsertCustomEvents( + db: DatabaseOrTransaction, scheduleId: string, repeatingCustomEvents: RepeatingCustomEvent[] + ) { + await db.transaction(async (tx) => await tx + .delete(customEvents) + .where(eq(customEvents.scheduleId, scheduleId)) + ); + + if (repeatingCustomEvents.length === 0) { + return; + } + + const dbCustomEvents = repeatingCustomEvents.map((event) => ({ + scheduleId, + title: event.title, + start: event.start, + end: event.end, + days: event.days.map((day) => day ? '1' : '0').join(''), + color: event.color, + building: event.building, + lastUpdated: new Date() + })); + + await db.transaction(async (tx) => await tx + .insert(customEvents) + .values(dbCustomEvents) + ); + } + + /** * Creates a guest user with the username in the userData object if one * with the same name doesn't already exist. @@ -133,7 +173,7 @@ export class RDS { // Add schedules and courses const schedulesPromises = userData.userData.schedules.map( - (schedule) => this.upsertScheduleAndCourses(tx, userId, schedule) + (schedule) => this.upsertScheduleAndContents(tx, userId, schedule) ) const scheduleIds = await Promise.all(schedulesPromises); From 9d33523a5cdb11bbff8e3a93a713d7f166d8c50b Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 17 Nov 2024 12:38:06 -0800 Subject: [PATCH 58/90] chore(.gitignore): turbo --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 430533410..9d5945a50 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,6 @@ Desktop.ini ## VSCode settings. .vscode/ + +## Turbo +.turbo/ \ No newline at end of file From bf9abaaa375e06688c5cdd88f1cd25144cff26be Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 21 Nov 2024 21:14:27 -0800 Subject: [PATCH 59/90] fix(users): missing imports --- apps/backend/src/routers/users.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/backend/src/routers/users.ts b/apps/backend/src/routers/users.ts index 079ec0bc1..80352a68a 100644 --- a/apps/backend/src/routers/users.ts +++ b/apps/backend/src/routers/users.ts @@ -2,6 +2,8 @@ import { type } from 'arktype'; import { UserSchema } from '@packages/antalmanac-types'; +import { db } from 'src/db'; +import { ddbClient } from 'src/db/ddb'; import { mangleDupliateScheduleNames } from 'src/lib/formatting'; import { RDS } from 'src/lib/rds'; import { procedure, router } from '../trpc'; From de964977bd2d2f540e90e052d268f9c3dc07068d Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 21 Nov 2024 22:18:17 -0800 Subject: [PATCH 60/90] fix(schema): proper implementation of constraint array --- ...init_db.sql => 0000_rapid_speed_demon.sql} | 32 ++++- apps/backend/drizzle/meta/0000_snapshot.json | 122 ++++++++++++++---- apps/backend/drizzle/meta/_journal.json | 4 +- apps/backend/src/db/schema/auth/account.ts | 10 +- apps/backend/src/db/schema/schedule/course.ts | 14 +- .../src/db/schema/schedule/schedule.ts | 7 +- apps/backend/src/db/schema/subscription.ts | 12 +- 7 files changed, 143 insertions(+), 58 deletions(-) rename apps/backend/drizzle/{0000_init_db.sql => 0000_rapid_speed_demon.sql} (84%) diff --git a/apps/backend/drizzle/0000_init_db.sql b/apps/backend/drizzle/0000_rapid_speed_demon.sql similarity index 84% rename from apps/backend/drizzle/0000_init_db.sql rename to apps/backend/drizzle/0000_rapid_speed_demon.sql index e86a7be06..e3ff7836a 100644 --- a/apps/backend/drizzle/0000_init_db.sql +++ b/apps/backend/drizzle/0000_rapid_speed_demon.sql @@ -23,6 +23,15 @@ CREATE TABLE IF NOT EXISTS "users" ( "last_updated" timestamp with time zone DEFAULT now() ); --> statement-breakpoint +CREATE TABLE IF NOT EXISTS "schedules" ( + "id" text PRIMARY KEY NOT NULL, + "user_id" text NOT NULL, + "name" text, + "notes" text, + "last_updated" timestamp with time zone NOT NULL, + CONSTRAINT "schedules_user_id_name_unique" UNIQUE("user_id","name") +); +--> statement-breakpoint CREATE TABLE IF NOT EXISTS "coursesInSchedule" ( "scheduleId" text NOT NULL, "sectionCode" integer NOT NULL, @@ -32,13 +41,16 @@ CREATE TABLE IF NOT EXISTS "coursesInSchedule" ( CONSTRAINT "coursesInSchedule_scheduleId_sectionCode_term_pk" PRIMARY KEY("scheduleId","sectionCode","term") ); --> statement-breakpoint -CREATE TABLE IF NOT EXISTS "schedules" ( +CREATE TABLE IF NOT EXISTS "customEvents" ( "id" text PRIMARY KEY NOT NULL, - "user_id" text NOT NULL, - "name" text, - "notes" text, - "last_updated" timestamp with time zone NOT NULL, - CONSTRAINT "schedules_user_id_name_unique" UNIQUE("user_id","name") + "scheduleId" text NOT NULL, + "title" text NOT NULL, + "start" text NOT NULL, + "end" text NOT NULL, + "days" text NOT NULL, + "color" text, + "building" text, + "last_updated" timestamp with time zone DEFAULT now() ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "subscriptions" ( @@ -66,6 +78,12 @@ EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "schedules" ADD CONSTRAINT "schedules_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint DO $$ BEGIN ALTER TABLE "coursesInSchedule" ADD CONSTRAINT "coursesInSchedule_scheduleId_schedules_id_fk" FOREIGN KEY ("scheduleId") REFERENCES "public"."schedules"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION @@ -73,7 +91,7 @@ EXCEPTION END $$; --> statement-breakpoint DO $$ BEGIN - ALTER TABLE "schedules" ADD CONSTRAINT "schedules_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "customEvents" ADD CONSTRAINT "customEvents_scheduleId_schedules_id_fk" FOREIGN KEY ("scheduleId") REFERENCES "public"."schedules"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; diff --git a/apps/backend/drizzle/meta/0000_snapshot.json b/apps/backend/drizzle/meta/0000_snapshot.json index 089f02142..8a6343395 100644 --- a/apps/backend/drizzle/meta/0000_snapshot.json +++ b/apps/backend/drizzle/meta/0000_snapshot.json @@ -1,5 +1,5 @@ { - "id": "63321c86-a3e3-42b6-a632-fe818c3e2911", + "id": "fb129d47-a2f2-437e-aaf9-5df8d40efe23", "prevId": "00000000-0000-0000-0000-000000000000", "version": "7", "dialect": "postgresql", @@ -158,6 +158,65 @@ "checkConstraints": {}, "isRLSEnabled": false }, + "public.schedules": { + "name": "schedules", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "schedules_user_id_users_id_fk": { + "name": "schedules_user_id_users_id_fk", + "tableFrom": "schedules", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "schedules_user_id_name_unique": { + "name": "schedules_user_id_name_unique", + "nullsNotDistinct": false, + "columns": ["user_id", "name"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, "public.coursesInSchedule": { "name": "coursesInSchedule", "schema": "", @@ -217,8 +276,8 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "public.schedules": { - "name": "schedules", + "public.customEvents": { + "name": "customEvents", "schema": "", "columns": { "id": { @@ -227,20 +286,44 @@ "primaryKey": true, "notNull": true }, - "user_id": { - "name": "user_id", + "scheduleId": { + "name": "scheduleId", "type": "text", "primaryKey": false, "notNull": true }, - "name": { - "name": "name", + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "start": { + "name": "start", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "end": { + "name": "end", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "days": { + "name": "days", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", "type": "text", "primaryKey": false, "notNull": false }, - "notes": { - "name": "notes", + "building": { + "name": "building", "type": "text", "primaryKey": false, "notNull": false @@ -249,29 +332,24 @@ "name": "last_updated", "type": "timestamp with time zone", "primaryKey": false, - "notNull": true + "notNull": false, + "default": "now()" } }, "indexes": {}, "foreignKeys": { - "schedules_user_id_users_id_fk": { - "name": "schedules_user_id_users_id_fk", - "tableFrom": "schedules", - "tableTo": "users", - "columnsFrom": ["user_id"], + "customEvents_scheduleId_schedules_id_fk": { + "name": "customEvents_scheduleId_schedules_id_fk", + "tableFrom": "customEvents", + "tableTo": "schedules", + "columnsFrom": ["scheduleId"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": { - "schedules_user_id_name_unique": { - "name": "schedules_user_id_name_unique", - "nullsNotDistinct": false, - "columns": ["user_id", "name"] - } - }, + "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false diff --git a/apps/backend/drizzle/meta/_journal.json b/apps/backend/drizzle/meta/_journal.json index 893631ba5..b96e875e0 100644 --- a/apps/backend/drizzle/meta/_journal.json +++ b/apps/backend/drizzle/meta/_journal.json @@ -5,8 +5,8 @@ { "idx": 0, "version": "7", - "when": 1731809219099, - "tag": "0000_init_db", + "when": 1732256237070, + "tag": "0000_rapid_speed_demon", "breakpoints": true } ] diff --git a/apps/backend/src/db/schema/auth/account.ts b/apps/backend/src/db/schema/auth/account.ts index 3a5992c31..de1a4e1c0 100644 --- a/apps/backend/src/db/schema/auth/account.ts +++ b/apps/backend/src/db/schema/auth/account.ts @@ -25,13 +25,9 @@ export const accounts = pgTable( providerAccountId: text('provider_account_id').notNull(), }, - (table) => { - return { - primaryKey: primaryKey({ - columns: [table.userId, table.accountType], - }), - }; - } + (table) => ([ + primaryKey({columns: [table.userId, table.accountType], }), + ]) ); export type Account = typeof accounts.$inferSelect; diff --git a/apps/backend/src/db/schema/schedule/course.ts b/apps/backend/src/db/schema/schedule/course.ts index a1be4a36f..7b4c618b1 100644 --- a/apps/backend/src/db/schema/schedule/course.ts +++ b/apps/backend/src/db/schema/schedule/course.ts @@ -33,15 +33,11 @@ export const coursesInSchedule = pgTable( lastUpdated: timestamp('last_updated', { withTimezone: true }).defaultNow(), }, - (table) => { - return [ - { - primaryKey: primaryKey({ - columns: [table.scheduleId, table.sectionCode, table.term], - }), - } - ]; - } + (table) => [ + primaryKey({ + columns: [table.scheduleId, table.sectionCode, table.term], + }), + ] ); export type CourseInSchedule = typeof coursesInSchedule.$inferSelect; diff --git a/apps/backend/src/db/schema/schedule/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts index f2ce99393..0197d8128 100644 --- a/apps/backend/src/db/schema/schedule/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -25,9 +25,8 @@ export const schedules = pgTable('schedules', { lastUpdated: timestamp('last_updated', { withTimezone: true }).notNull(), }, (table) => ([ - { - unq: unique().on(table.userId, table.name) - } -])); + unique().on(table.userId, table.name) + ]) +); export type Schedule = typeof schedules.$inferSelect; diff --git a/apps/backend/src/db/schema/subscription.ts b/apps/backend/src/db/schema/subscription.ts index da3e95dae..918c5582a 100644 --- a/apps/backend/src/db/schema/subscription.ts +++ b/apps/backend/src/db/schema/subscription.ts @@ -26,13 +26,11 @@ export const subscriptions = pgTable( */ status: subscriptionTargetStatus('status'), }, - (table) => { - return { - primaryKey: primaryKey({ - columns: [table.userId, table.sectionCode], - }), - }; - } + (table) => [ + primaryKey({ + columns: [table.userId, table.sectionCode], + }), + ] ); export type Subscription = typeof subscriptions.$inferSelect; From 3395b1f056bcee5b0faae4e9bcc842fec3eac906 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 21 Nov 2024 22:19:22 -0800 Subject: [PATCH 61/90] fix(migration): error messages --- apps/backend/scripts/ddb_to_rds.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index da8a82685..3030322e0 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -33,7 +33,7 @@ async function copyUsersToPostgres() { .catch((error) => { failedUsers.push(ddbUser.id); console.error( - `Failed to upsert user data for user=${ddbUser}:` + `Failed to upsert user data for "${ddbUser.id}":` ); console.error(error); }) @@ -42,8 +42,7 @@ async function copyUsersToPostgres() { console.log( `Successfully copied user ${ddbUser.id}. (${++success})` ); - } - ); + }); } ); From dc63e00dee717e6cfdc011c96a4537c0189ad373 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 21 Nov 2024 22:19:38 -0800 Subject: [PATCH 62/90] feat(RDS): more specific errors --- apps/backend/src/lib/rds.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index b3863cf6c..8cb7199de 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -54,7 +54,7 @@ export class RDS { } const scheduleResult = await db.transaction( - async (tx) => ( + (tx) => ( tx.insert(schedules) .values(dbSchedule) .onConflictDoUpdate({ @@ -63,7 +63,9 @@ export class RDS { }) .returning({id: schedules.id}) ) - ); + ).catch((error) => { + throw new Error(`Failed to insert schedule for ${userId} (${schedule.scheduleName}): ${error}`) + }); const scheduleId = scheduleResult[0].id; if (scheduleId === undefined) { @@ -72,8 +74,11 @@ export class RDS { // Add courses and custom events await Promise.all([ - this.upsertCourses(db, scheduleId, schedule.courses), + this.upsertCourses(db, scheduleId, schedule.courses) + .catch((error) => {throw new Error(`Failed to insert courses for ${scheduleId}: ${error}`)}), + this.upsertCustomEvents(db, scheduleId, schedule.customEvents) + .catch((error) => {throw new Error(`Failed to insert custom events for ${scheduleId}: ${error}`)}) ]); @@ -87,7 +92,7 @@ export class RDS { private static async upsertCourses( db: DatabaseOrTransaction, scheduleId: string, courses: ShortCourse[] ) { - await db.transaction(async (tx) => await tx + await db.transaction((tx) => tx .delete(coursesInSchedule) .where(eq(coursesInSchedule.scheduleId, scheduleId)) ); @@ -115,7 +120,7 @@ export class RDS { return true; }); - await db.transaction(async (tx) => await tx + await db.transaction((tx) => tx .insert(coursesInSchedule) .values(dbCoursesUnique) ); From 68647bb4ae8dd614f9768792144b1119f64db1c1 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 21 Nov 2024 22:58:22 -0800 Subject: [PATCH 63/90] feat(RDS): more descriptive messages --- apps/backend/scripts/ddb_to_rds.ts | 12 +++++------- apps/backend/src/lib/rds.ts | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index 3030322e0..95e68fbe0 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -22,12 +22,12 @@ async function copyUsersToPostgres() { for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { console.log(`Copying ${ddbBatch.length} users...`); + let batchSuccess = 0; const transactions = ddbBatch.map( // One transaction per user async (ddbUser) => { // Mangle duplicate schedule names ddbUser.userData.schedules = mangleDupliateScheduleNames(ddbUser.userData.schedules); - console.log(`Copying user ${ddbUser.id}...`); return RDS .upsertGuestUserData(db, ddbUser) .catch((error) => { @@ -37,16 +37,14 @@ async function copyUsersToPostgres() { ); console.error(error); }) - .then((data) => { - if (data) - console.log( - `Successfully copied user ${ddbUser.id}. (${++success})` - ); - }); + .then(() => batchSuccess++); } ); await Promise.all(transactions); + + console.log(`Successfully copied ${batchSuccess} users out of ${ddbBatch.length} in batch.`); + success += batchSuccess; } if (failedUsers.length > 0) { diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index 8cb7199de..0487ad8ad 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -75,10 +75,10 @@ export class RDS { // Add courses and custom events await Promise.all([ this.upsertCourses(db, scheduleId, schedule.courses) - .catch((error) => {throw new Error(`Failed to insert courses for ${scheduleId}: ${error}`)}), + .catch((error) => {throw new Error(`Failed to insert courses for ${schedule.scheduleName}: ${error}`)}), this.upsertCustomEvents(db, scheduleId, schedule.customEvents) - .catch((error) => {throw new Error(`Failed to insert custom events for ${scheduleId}: ${error}`)}) + .catch((error) => {throw new Error(`Failed to insert custom events for ${schedule.scheduleName}: ${error}`)}) ]); From ae3a27a06e9d2f0e66abd651c215c81f15fd49e6 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 21 Nov 2024 23:09:02 -0800 Subject: [PATCH 64/90] feat(migration): always print out success totals --- apps/backend/scripts/ddb_to_rds.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index 95e68fbe0..c46d99031 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -47,8 +47,8 @@ async function copyUsersToPostgres() { success += batchSuccess; } + console.log(`Successfully copied ${success} users out of ${success + failedUsers.length}.`); if (failedUsers.length > 0) { - console.log(`Successfully copied ${success} users out of ${success + failedUsers.length}.`); console.log(`Failed users: ${failedUsers.join(', ')}`); } From 6c8255c4b0b8d5717972fc83b063f564d8baa12c Mon Sep 17 00:00:00 2001 From: Isaac Nguyen <58119262+IsaacNguyen@users.noreply.github.com> Date: Thu, 21 Nov 2024 18:46:49 -0800 Subject: [PATCH 65/90] Fixed "Error loading grades information" with advanced search (#1043) --- .../RightPane/CoursePane/CourseRenderPane.tsx | 1 + apps/antalmanac/src/lib/grades.ts | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx b/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx index 3117d4756..b787ceb5f 100644 --- a/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx +++ b/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx @@ -212,6 +212,7 @@ export default function CourseRenderPane(props: { id?: number }) { const gradesQueryParams = { department: formData.deptValue, ge: formData.ge as GE, + instructor: formData.instructor, }; try { diff --git a/apps/antalmanac/src/lib/grades.ts b/apps/antalmanac/src/lib/grades.ts index 8123daf4a..a6fcff70f 100644 --- a/apps/antalmanac/src/lib/grades.ts +++ b/apps/antalmanac/src/lib/grades.ts @@ -44,11 +44,21 @@ class _Grades { * @param courseNumber The course number of the course. * @param ge The GE filter */ - populateGradesCache = async ({ department, ge }: { department?: string; ge?: GE }): Promise => { + populateGradesCache = async ({ + department, + ge, + instructor, + }: { + department?: string; + ge?: GE; + instructor?: string; + }): Promise => { department = department != 'ALL' ? department : undefined; ge = ge != 'ANY' ? ge : undefined; + instructor = instructor != '' ? instructor : undefined; - if (!department && !ge) throw new Error('populateGradesCache: Must provide either department or ge'); + if (!department && !ge && !instructor) + throw new Error('populateGradesCache: Must provide either department, ge, or instructor'); const queryKey = `${department ?? ''}${ge ?? ''}`; From ef2ccc545d5fe559b2e6e6db7bb3783efae59e5a Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 24 Nov 2024 21:27:26 -0800 Subject: [PATCH 66/90] deps(AA): babel runtime --- apps/antalmanac/package.json | 1 + pnpm-lock.yaml | 111 ++++++++++++++--------------------- 2 files changed, 45 insertions(+), 67 deletions(-) diff --git a/apps/antalmanac/package.json b/apps/antalmanac/package.json index 7d6a8e0c6..4216b6f08 100644 --- a/apps/antalmanac/package.json +++ b/apps/antalmanac/package.json @@ -21,6 +21,7 @@ "lint": "eslint src" }, "dependencies": { + "@babel/runtime": "^7.26.0", "@date-io/date-fns": "^2.16.0", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 63a2ec555..7a103168a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,7 +34,7 @@ importers: version: 3.3.3 turbo: specifier: latest - version: 2.3.0 + version: 2.3.1 vitest: specifier: ^0.34.4 version: 0.34.6(jsdom@22.1.0) @@ -59,6 +59,9 @@ importers: apps/antalmanac: dependencies: + '@babel/runtime': + specifier: ^7.26.0 + version: 7.26.0 '@date-io/date-fns': specifier: ^2.16.0 version: 2.17.0(date-fns@2.30.0) @@ -704,14 +707,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.20.13': - resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.22.11': - resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.26.0': resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} @@ -4468,12 +4463,6 @@ packages: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - - regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -4869,38 +4858,38 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo-darwin-64@2.3.0: - resolution: {integrity: sha512-pji+D49PhFItyQjf2QVoLZw2d3oRGo8gJgKyOiRzvip78Rzie74quA8XNwSg/DuzM7xx6gJ3p2/LylTTlgZXxQ==} + turbo-darwin-64@2.3.1: + resolution: {integrity: sha512-tjHfjW/Gs8Q9IO+9gPdIsSStZ8I09QYDRT/SyhFTPLnc7O2ZlxHPBVFfjUkHUjanHNYO8CpRGt+zdp1PaMCruw==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.3.0: - resolution: {integrity: sha512-AJrGIL9BO41mwDF/IBHsNGwvtdyB911vp8f5mbNo1wG66gWTvOBg7WCtYQBvCo11XTenTfXPRSsAb7w3WAZb6w==} + turbo-darwin-arm64@2.3.1: + resolution: {integrity: sha512-At1WStnxCfrBQ4M2g6ynre8WsusGwA11okhVolBxyFUemYozDTtbZwelr+IqNggjT251vviokxOkcFzzogbiFw==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.3.0: - resolution: {integrity: sha512-jZqW6vc2sPJT3M/3ZmV1Cg4ecQVPqsbHncG/RnogHpBu783KCSXIndgxvUQNm9qfgBYbZDBnP1md63O4UTElhw==} + turbo-linux-64@2.3.1: + resolution: {integrity: sha512-COwEev7s9fsxLM2eoRCyRLPj+BXvZjFIS+GxzdAubYhoSoZit8B8QGKczyDl6448xhuFEWKrpHhcR9aBuwB4ag==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.3.0: - resolution: {integrity: sha512-HUbDLJlvd/hxuyCNO0BmEWYQj0TugRMvSQeG8vHJH+Lq8qOgDAe7J0K73bFNbZejZQxW3C3XEiZFB3pnpO78+A==} + turbo-linux-arm64@2.3.1: + resolution: {integrity: sha512-AP0uE15Rhxza2Jl+Q3gxdXRA92IIeFAYaufz6CMcZuGy9yZsBlLt9w6T47H6g7XQPzWuw8pzfjM1omcTKkkDpQ==} cpu: [arm64] os: [linux] - turbo-windows-64@2.3.0: - resolution: {integrity: sha512-c5rxrGNTYDWX9QeMzWLFE9frOXnKjHGEvQMp1SfldDlbZYsloX9UKs31TzUThzfTgTiz8NYuShaXJ2UvTMnV/g==} + turbo-windows-64@2.3.1: + resolution: {integrity: sha512-HDSneq0dNZYZch74c2eygq+OiJE/JYDs7OsGM0yRYVj336383xkUnxz6W2I7qiyMCQXzp4UVUDZXvZhUYcX3BA==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.3.0: - resolution: {integrity: sha512-7qfUuYhfIVb1AZgs89DxhXK+zZez6O2ocmixEQ4hXZK7ytnBt5vaz2zGNJJKFNYIL5HX1C3tuHolnpNgDNCUIg==} + turbo-windows-arm64@2.3.1: + resolution: {integrity: sha512-7/2/sJZiquwoT/jWBCfV0qKq4NarsJPmDRjMcR9dDMIwCYsGM8ljomkDRTCtkNeFcUvYw54MiRWHehWgbcRPsw==} cpu: [arm64] os: [win32] - turbo@2.3.0: - resolution: {integrity: sha512-/uOq5o2jwRPyaUDnwBpOR5k9mQq4c3wziBgWNWttiYQPmbhDtrKYPRBxTvA2WpgQwRIbt8UM612RMN8n/TvmHA==} + turbo@2.3.1: + resolution: {integrity: sha512-vHZe/e6k1HZVKiMQPQ1BWFn53vjVQDFKdkjUq/pBKlRWi1gw9LQO6ntH4qZCcHY1rH6TXgsRmexXdgWl96YvVQ==} hasBin: true type-check@0.4.0: @@ -5875,14 +5864,6 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/runtime@7.20.13': - dependencies: - regenerator-runtime: 0.13.11 - - '@babel/runtime@7.22.11': - dependencies: - regenerator-runtime: 0.14.0 - '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 @@ -5960,7 +5941,7 @@ snapshots: '@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.12.0 '@emotion/cache': 11.13.1 '@emotion/serialize': 1.3.2 @@ -5986,7 +5967,7 @@ snapshots: '@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.12.0 '@emotion/is-prop-valid': 1.3.1 '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) @@ -6375,7 +6356,7 @@ snapshots: '@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@material-ui/styles': 4.11.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@material-ui/system': 4.12.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@material-ui/types': 5.1.0(@types/react@18.3.12) @@ -6394,7 +6375,7 @@ snapshots: '@material-ui/icons@4.11.3(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@material-ui/core': 4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6403,7 +6384,7 @@ snapshots: '@material-ui/lab@4.0.0-alpha.61(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@material-ui/core': 4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 1.2.1 @@ -6416,7 +6397,7 @@ snapshots: '@material-ui/pickers@3.3.11(@date-io/core@3.0.0)(@material-ui/core@4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@date-io/core': 3.0.0 '@material-ui/core': 4.12.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/styled-jsx': 2.2.9 @@ -6429,7 +6410,7 @@ snapshots: '@material-ui/styles@4.11.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 '@emotion/hash': 0.8.0 '@material-ui/types': 5.1.0(@types/react@18.3.12) '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -6452,7 +6433,7 @@ snapshots: '@material-ui/system@4.12.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) csstype: 2.6.21 prop-types: 15.8.1 @@ -6467,7 +6448,7 @@ snapshots: '@material-ui/utils@4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9407,7 +9388,7 @@ snapshots: material-ui-popup-state@5.3.1(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/prop-types': 15.7.13 '@types/react': 18.3.12 @@ -9768,7 +9749,7 @@ snapshots: react-big-calendar@1.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.26.0 clsx: 1.2.1 date-arithmetic: 4.1.0 dayjs: 1.11.13 @@ -9881,7 +9862,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -9928,10 +9909,6 @@ snapshots: globalthis: 1.0.4 which-builtin-type: 1.1.4 - regenerator-runtime@0.13.11: {} - - regenerator-runtime@0.14.0: {} - regenerator-runtime@0.14.1: {} regexp.prototype.flags@1.5.3: @@ -9976,7 +9953,7 @@ snapshots: rifm@0.7.0(react@18.3.1): dependencies: - '@babel/runtime': 7.22.11 + '@babel/runtime': 7.26.0 react: 18.3.1 rimraf@3.0.2: @@ -10345,32 +10322,32 @@ snapshots: tunnel@0.0.6: {} - turbo-darwin-64@2.3.0: + turbo-darwin-64@2.3.1: optional: true - turbo-darwin-arm64@2.3.0: + turbo-darwin-arm64@2.3.1: optional: true - turbo-linux-64@2.3.0: + turbo-linux-64@2.3.1: optional: true - turbo-linux-arm64@2.3.0: + turbo-linux-arm64@2.3.1: optional: true - turbo-windows-64@2.3.0: + turbo-windows-64@2.3.1: optional: true - turbo-windows-arm64@2.3.0: + turbo-windows-arm64@2.3.1: optional: true - turbo@2.3.0: + turbo@2.3.1: optionalDependencies: - turbo-darwin-64: 2.3.0 - turbo-darwin-arm64: 2.3.0 - turbo-linux-64: 2.3.0 - turbo-linux-arm64: 2.3.0 - turbo-windows-64: 2.3.0 - turbo-windows-arm64: 2.3.0 + turbo-darwin-64: 2.3.1 + turbo-darwin-arm64: 2.3.1 + turbo-linux-64: 2.3.1 + turbo-linux-arm64: 2.3.1 + turbo-windows-64: 2.3.1 + turbo-windows-arm64: 2.3.1 type-check@0.4.0: dependencies: From aa051d4d334df4f385b60cda80c58781afde0cc1 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 24 Nov 2024 21:55:06 -0800 Subject: [PATCH 67/90] feat(PathNotes): migration warning --- apps/antalmanac/src/components/PatchNotes.tsx | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/apps/antalmanac/src/components/PatchNotes.tsx b/apps/antalmanac/src/components/PatchNotes.tsx index 54923d3e8..999f837b1 100644 --- a/apps/antalmanac/src/components/PatchNotes.tsx +++ b/apps/antalmanac/src/components/PatchNotes.tsx @@ -18,7 +18,7 @@ import { getLocalStoragePatchNotesKey, setLocalStoragePatchNotesKey } from '$lib * * @example '20230819' */ -export const latestPatchNotesUpdate = '20230819'; +export const latestPatchNotesUpdate = '20241124'; /** * Whether the user's last visited patch notes is outdated. @@ -53,30 +53,27 @@ function PatchNotes() { data-testid={dialogTestId} slots={{ backdrop: PatchNotesBackdrop }} > - {"What's New - October 2023"} + {"What's New - November 2024"} - Features + Migration
    +
  • We are migrating our database to support exciting features coming this year!
  • - You can now hover over the Zotistics button to see the Zotistics graph! On mobile, you can still - click the Zotistics button to toggle the graph. + If you experience issues with saving and retrieving schedules, please let us know by filling out + the{' '} + + feedback form + + .
- (gif of the new feature) -
- Remember to use the{' '} - - feedback form - {' '} - to let us know what you think! + + Features +
    +
  • Search now contains all new classes and will update automatically!
  • +
  • Many bug fixes and quality-of-life improvements
  • +
From ac55e1198fd86da3af6ddb2360ae99377f74aae4 Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Sun, 24 Nov 2024 21:58:33 -0800 Subject: [PATCH 68/90] feat: method for inserting guest user data --- apps/backend/src/lib/rds.ts | 230 +++++++++++++++++------------------- 1 file changed, 111 insertions(+), 119 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index 0487ad8ad..dd168e6e1 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -1,40 +1,42 @@ import { ShortCourse, ShortCourseSchedule, User, RepeatingCustomEvent } from '@packages/antalmanac-types'; import { and, eq } from 'drizzle-orm'; -import type { Database } from "$db/index"; +import type { Database } from '$db/index'; import { schedules, users, accounts, coursesInSchedule, customEvents } from '$db/schema'; - -type DatabaseOrTransaction = Omit; +type DatabaseOrTransaction = Omit; export class RDS { /** - * Creates a guest user if they don't already exist. - * + * If a guest user with the specified name exists, return their ID, otherwise return null. + */ + static async guestUserIdWithNameOrNull(db: DatabaseOrTransaction, name: string): Promise { + return db + .select({ id: accounts.userId }) + .from(accounts) + .where(and(eq(accounts.accountType, 'GUEST'), eq(accounts.providerAccountId, name))) + .limit(1) + .then((xs) => xs[0]?.id ?? null); + } + + /** + * Creates a guest user if they don't already exist. + * * @param db Database or transaction object * @param name Guest user's name, to be used as providerAccountID and username * @returns The new/existing user's ID */ static async createGuestUserOptional(db: DatabaseOrTransaction, name: string) { return db.transaction(async (tx) => { - const guestAccountsWithSameName = await tx - .select() - .from(accounts) - .where(and( - eq(accounts.accountType, "GUEST"), - eq(accounts.providerAccountId, name) - )); - - if (guestAccountsWithSameName.length > 0) { - return guestAccountsWithSameName[0].userId; - } - - return (await ( - tx - .insert(users) - .values({ name }) - .returning({ id: users.id }) - )).map((user) => user.id)[0]; + const maybeUserId = await RDS.guestUserIdWithNameOrNull(tx, name); + + return maybeUserId + ? maybeUserId + : tx + .insert(users) + .values({ name }) + .returning({ id: users.id }) + .then((users) => users[0].id); }); } @@ -42,30 +44,29 @@ export class RDS { * Creates a new schedule if one with its name doesn't already exist * and replaces its courses and custom events with the ones provided. */ - static async upsertScheduleAndContents( - db: DatabaseOrTransaction, userId: string, schedule: ShortCourseSchedule - ) { + static async upsertScheduleAndContents(db: DatabaseOrTransaction, userId: string, schedule: ShortCourseSchedule) { // Add schedule const dbSchedule = { - userId, - name: schedule.scheduleName, - notes: schedule.scheduleNote, - lastUpdated: new Date() - } - - const scheduleResult = await db.transaction( - (tx) => ( - tx.insert(schedules) + userId, + name: schedule.scheduleName, + notes: schedule.scheduleNote, + lastUpdated: new Date(), + }; + + const scheduleResult = await db + .transaction((tx) => + tx + .insert(schedules) .values(dbSchedule) - .onConflictDoUpdate({ - target: [schedules.userId, schedules.name], - set: dbSchedule + .onConflictDoUpdate({ + target: [schedules.userId, schedules.name], + set: dbSchedule, }) - .returning({id: schedules.id}) + .returning({ id: schedules.id }) ) - ).catch((error) => { - throw new Error(`Failed to insert schedule for ${userId} (${schedule.scheduleName}): ${error}`) - }); + .catch((error) => { + throw new Error(`Failed to insert schedule for ${userId} (${schedule.scheduleName}): ${error}`); + }); const scheduleId = scheduleResult[0].id; if (scheduleId === undefined) { @@ -74,29 +75,73 @@ export class RDS { // Add courses and custom events await Promise.all([ - this.upsertCourses(db, scheduleId, schedule.courses) - .catch((error) => {throw new Error(`Failed to insert courses for ${schedule.scheduleName}: ${error}`)}), + this.upsertCourses(db, scheduleId, schedule.courses).catch((error) => { + throw new Error(`Failed to insert courses for ${schedule.scheduleName}: ${error}`); + }), - this.upsertCustomEvents(db, scheduleId, schedule.customEvents) - .catch((error) => {throw new Error(`Failed to insert custom events for ${schedule.scheduleName}: ${error}`)}) + this.upsertCustomEvents(db, scheduleId, schedule.customEvents).catch((error) => { + throw new Error(`Failed to insert custom events for ${schedule.scheduleName}: ${error}`); + }), ]); - return scheduleId; } - /** + /** + * If the guest user with the username in the userData object doesn't already exist, + * create a new guest user and populate their data. Otherwise, returns null. + */ + static async insertGuestUserData(db: DatabaseOrTransaction, userData: User): Promise { + return db.transaction(async (tx) => { + const userId = await RDS.guestUserIdWithNameOrNull(tx, userData.id); + if (userId) return null; + return RDS.upsertGuestUserData(db, userData); + }); + } + + /** + * Does the same thing as `insertGuestUserData`, but also updates the user's schedules and courses if they exist. + * + * @param db The Drizzle client or transaction object + * @param userData The object of data containing the user's schedules and courses + * @returns The user's ID + */ + static async upsertGuestUserData(db: DatabaseOrTransaction, userData: User): Promise { + return db.transaction(async (tx) => { + const userId = await this.createGuestUserOptional(tx, userData.id); + + if (userId === undefined) { + throw new Error(`Failed to create guest user for ${userData.id}`); + } + + // Add schedules and courses + const schedulesPromises = userData.userData.schedules.map((schedule) => + this.upsertScheduleAndContents(tx, userId, schedule) + ); + + const scheduleIds = await Promise.all(schedulesPromises); + + // Update user's current schedule index + const scheduleIndex = userData.userData.scheduleIndex; + + const currentScheduleId = + scheduleIndex === undefined || scheduleIndex >= scheduleIds.length ? null : scheduleIds[scheduleIndex]; + + if (currentScheduleId !== null) { + await tx.update(users).set({ currentScheduleId: currentScheduleId }).where(eq(users.id, userId)); + } + + return userId; + }); + } + + /** * Drops all courses in the schedule and re-add them, * deduplicating by section code and term. * */ - private static async upsertCourses( - db: DatabaseOrTransaction, scheduleId: string, courses: ShortCourse[] - ) { - await db.transaction((tx) => tx - .delete(coursesInSchedule) - .where(eq(coursesInSchedule.scheduleId, scheduleId)) - ); - + private static async upsertCourses(db: DatabaseOrTransaction, scheduleId: string, courses: ShortCourse[]) { + await db.transaction((tx) => tx.delete(coursesInSchedule).where(eq(coursesInSchedule.scheduleId, scheduleId))); + if (courses.length === 0) { return; } @@ -108,7 +153,7 @@ export class RDS { sectionCode: parseInt(course.sectionCode), term: course.term, color: course.color, - lastUpdated: new Date() + lastUpdated: new Date(), })); const dbCoursesUnique = dbCourses.filter((course) => { @@ -120,18 +165,16 @@ export class RDS { return true; }); - await db.transaction((tx) => tx - .insert(coursesInSchedule) - .values(dbCoursesUnique) - ); + await db.transaction((tx) => tx.insert(coursesInSchedule).values(dbCoursesUnique)); } private static async upsertCustomEvents( - db: DatabaseOrTransaction, scheduleId: string, repeatingCustomEvents: RepeatingCustomEvent[] + db: DatabaseOrTransaction, + scheduleId: string, + repeatingCustomEvents: RepeatingCustomEvent[] ) { - await db.transaction(async (tx) => await tx - .delete(customEvents) - .where(eq(customEvents.scheduleId, scheduleId)) + await db.transaction( + async (tx) => await tx.delete(customEvents).where(eq(customEvents.scheduleId, scheduleId)) ); if (repeatingCustomEvents.length === 0) { @@ -143,63 +186,12 @@ export class RDS { title: event.title, start: event.start, end: event.end, - days: event.days.map((day) => day ? '1' : '0').join(''), + days: event.days.map((day) => (day ? '1' : '0')).join(''), color: event.color, building: event.building, - lastUpdated: new Date() + lastUpdated: new Date(), })); - await db.transaction(async (tx) => await tx - .insert(customEvents) - .values(dbCustomEvents) - ); - } - - - /** - * Creates a guest user with the username in the userData object if one - * with the same name doesn't already exist. - * - * If the user already exists, their schedules and courses are updated. - * - * @param db The Drizzle client or transaction object - * @param userData The object of data containing the user's schedules and courses - * @returns The user's ID - */ - static async upsertGuestUserData( - db: DatabaseOrTransaction, userData: User - ): Promise { - return db.transaction(async (tx) => { - const userId = await this.createGuestUserOptional(tx, userData.id); - - if (userId === undefined) { - throw new Error(`Failed to create guest user for ${userData.id}`); - } - - // Add schedules and courses - const schedulesPromises = userData.userData.schedules.map( - (schedule) => this.upsertScheduleAndContents(tx, userId, schedule) - ) - - const scheduleIds = await Promise.all(schedulesPromises); - - // Update user's current schedule index - const scheduleIndex = userData.userData.scheduleIndex; - - const currentScheduleId = ( - scheduleIndex === undefined || scheduleIndex >= scheduleIds.length - ? null - : scheduleIds[scheduleIndex] - ); - - if (currentScheduleId !== null) { - await tx - .update(users) - .set({ currentScheduleId: currentScheduleId }) - .where(eq(users.id, userId)); - } - - return userId; - }) + await db.transaction(async (tx) => await tx.insert(customEvents).values(dbCustomEvents)); } } From 517c3b718b8664ff5a8d26df58a60a6d4aaf4414 Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Sun, 24 Nov 2024 21:59:01 -0800 Subject: [PATCH 69/90] chore: nuke old searchData --- apps/backend/src/searchData.ts | 187 --------------------------------- 1 file changed, 187 deletions(-) delete mode 100644 apps/backend/src/searchData.ts diff --git a/apps/backend/src/searchData.ts b/apps/backend/src/searchData.ts deleted file mode 100644 index 3fc86f7de..000000000 --- a/apps/backend/src/searchData.ts +++ /dev/null @@ -1,187 +0,0 @@ -import type {DepartmentSearchResult, SearchResult} from '@packages/antalmanac-types'; - -// TODO implement codegen for this at CI time - -export const departmentKeys = ["ac eng","afam","anatomy","anthro","arabic","armn","art","art his","arts","asianam","bana","bats","biochem","bio sci","bme","cbe","cbems","chc/lat","chem","chinese","classic","clt&thy","cogs","com lit","compsci","critism","crm/law","cse","dance","data","dev bio","drama","earthss","eas","e asian","eco evo","econ","ecps","educ","eecs","ehs","english","engr","engrcee","engrmae","engrmse","epidem","euro st","fin","flm&mda","french","gdim","gen&sex","german","glblclt","glbl me","greek","hebrew","history","human","i&c sci","in4matx","inno","intl st","iran","italian","japanse","korean","latin","linguis","lit jrn","lps","lsci","math","med hum","mgmt","mgmt ep","mgmt fe","mgmt hc","mgmtmba","mgmtphd","m&mg","mol bio","mpac","mse","music","net sys","neurbio","nur sci","path","ped gen","persian","pharm","philos","phmd","phrmsci","phy sci","physics","physio","pol sci","portug","pp&d","psci","psy beh","psych","pubhlth","pub pol","rel std","rotc","russian","socecol","sociol","soc sci","spanish","spps","stats","swe","tox","ucdc","uni aff","uni stu","uppp","vietmse","vis std","womn st","writing"] as const; - -export type DepartmentKey = (typeof departmentKeys)[number]; - -export const departmentAliasKeys = ["aceng","arthis","biosci","chclat","cltthy","comlit","crmlaw","cs","devbio","easian","ecoevo","ess","eurost","flmmda","gensex","glblme","ics","inf","intlst","litjrn","medhum","mgmtep","mgmtfe","mgmthc","mmg","molbio","netsys","nursci","pedgen","physci","polsci","ppd","psybeh","pubpol","relstd","socsci","uniaff","unistu","visstd","womnst","wr"] as const; - -export type DepartmentAliasKey = (typeof departmentAliasKeys)[number]; - -export const departmentAliases: Record = { - aceng: 'ac eng', - arthis: 'art his', - biosci: 'bio sci', - chclat: 'chc/lat', - cltthy: 'clt&thy', - comlit: 'com lit', - crmlaw: 'crm/law', - cs: 'compsci', - devbio: 'dev bio', - easian: 'e asian', - ecoevo: 'eco evo', - ess: 'earthss', - eurost: 'euro st', - flmmda: 'flm&mda', - gensex: 'gen&sex', - glblme: 'glbl me', - ics: 'i&c sci', - inf: 'in4matx', - intlst: 'intl st', - litjrn: 'lit jrn', - medhum: 'med hum', - mgmtep: 'mgmt ep', - mgmtfe: 'mgmt fe', - mgmthc: 'mgmt hc', - mmg: 'm&mg', - molbio: 'mol bio', - netsys: 'net sys', - nursci: 'nur sci', - pedgen: 'ped gen', - physci: 'phy sci', - polsci: 'pol sci', - ppd: 'pp&d', - psybeh: 'psy beh', - pubpol: 'pub pol', - relstd: 'rel std', - socsci: 'soc sci', - uniaff: 'uni aff', - unistu: 'uni stu', - visstd: 'vis std', - womnst: 'womn st', - wr: 'writing', -}; - -const departments: Record = { - 'ac eng': { type: 'DEPARTMENT', name: 'Academic English' }, - afam: { type: 'DEPARTMENT', name: 'African American Studies' }, - anatomy: { type: 'DEPARTMENT', name: 'Anatomy and Neurobiology' }, - anthro: { type: 'DEPARTMENT', name: 'Anthropology' }, - arabic: { type: 'DEPARTMENT', name: 'Arabic' }, - armn: { type: 'DEPARTMENT', name: 'Armenian' }, - art: { type: 'DEPARTMENT', name: 'Art' }, - 'art his': { type: 'DEPARTMENT', name: 'Art History' }, - arts: { type: 'DEPARTMENT', name: 'Arts' }, - asianam: { type: 'DEPARTMENT', name: 'Asian American Studies' }, - bana: { type: 'DEPARTMENT', name: 'Business Analytics' }, - bats: { type: 'DEPARTMENT', name: 'Biomedical and Translational Science' }, - biochem: { type: 'DEPARTMENT', name: 'Biological Chemistry' }, - 'bio sci': { type: 'DEPARTMENT', name: 'Biological Sciences' }, - bme: { type: 'DEPARTMENT', name: 'Biomedical Engineering' }, - cbe: { type: 'DEPARTMENT', name: 'Chemical and Biomolecular Engineering' }, - cbems: { type: 'DEPARTMENT', name: 'Chemical Engineering and Materials Science' }, - 'chc/lat': { type: 'DEPARTMENT', name: 'Chicano/Latino Studies' }, - chem: { type: 'DEPARTMENT', name: 'Chemistry' }, - chinese: { type: 'DEPARTMENT', name: 'Chinese' }, - classic: { type: 'DEPARTMENT', name: 'Classics' }, - 'clt&thy': { type: 'DEPARTMENT', name: 'Culture and Theory' }, - cogs: { type: 'DEPARTMENT', name: 'Cognitive Sciences' }, - 'com lit': { type: 'DEPARTMENT', name: 'Comparative Literature' }, - compsci: { type: 'DEPARTMENT', name: 'Computer Science' }, - critism: { type: 'DEPARTMENT', name: 'Criticism' }, - 'crm/law': { type: 'DEPARTMENT', name: 'Criminology, Law and Society' }, - cse: { type: 'DEPARTMENT', name: 'Computer Science and Engineering' }, - dance: { type: 'DEPARTMENT', name: 'Dance' }, - data: { type: 'DEPARTMENT', name: 'Data Science' }, - 'dev bio': { type: 'DEPARTMENT', name: 'Developmental and Cell Biology' }, - drama: { type: 'DEPARTMENT', name: 'Drama' }, - earthss: { type: 'DEPARTMENT', name: 'Earth System Science' }, - eas: { type: 'DEPARTMENT', name: 'East Asian Studies' }, - 'e asian': { type: 'DEPARTMENT', name: 'East Asian Languages and Literatures' }, - 'eco evo': { type: 'DEPARTMENT', name: 'Ecology and Evolutionary Biology' }, - econ: { type: 'DEPARTMENT', name: 'Economics' }, - ecps: { type: 'DEPARTMENT', name: 'Embedded and Cyber-Physical Systems' }, - educ: { type: 'DEPARTMENT', name: 'Education' }, - eecs: { type: 'DEPARTMENT', name: 'Electrical Engineering & Computer Science' }, - ehs: { type: 'DEPARTMENT', name: 'Environmental Health Sciences' }, - english: { type: 'DEPARTMENT', name: 'English' }, - engr: { type: 'DEPARTMENT', name: 'Engineering' }, - engrcee: { type: 'DEPARTMENT', name: 'Civil and Environmental Engineering' }, - engrmae: { type: 'DEPARTMENT', name: 'Mechanical and Aerospace Engineering' }, - engrmse: { type: 'DEPARTMENT', name: 'Materials Science and Engineering' }, - epidem: { type: 'DEPARTMENT', name: 'Epidemiology' }, - 'euro st': { type: 'DEPARTMENT', name: 'European Studies' }, - fin: { type: 'DEPARTMENT', name: 'Finance' }, - 'flm&mda': { type: 'DEPARTMENT', name: 'Film and Media Studies' }, - french: { type: 'DEPARTMENT', name: 'French' }, - gdim: { type: 'DEPARTMENT', name: 'Game Design and Interactive Media' }, - 'gen&sex': { type: 'DEPARTMENT', name: 'Gender and Sexuality Studies' }, - german: { type: 'DEPARTMENT', name: 'German' }, - glblclt: { type: 'DEPARTMENT', name: 'Global Cultures' }, - 'glbl me': { type: 'DEPARTMENT', name: 'Global Middle East Studies' }, - greek: { type: 'DEPARTMENT', name: 'Greek' }, - hebrew: { type: 'DEPARTMENT', name: 'Hebrew' }, - history: { type: 'DEPARTMENT', name: 'History' }, - human: { type: 'DEPARTMENT', name: 'Humanities' }, - 'i&c sci': { type: 'DEPARTMENT', name: 'Information and Computer Science' }, - in4matx: { type: 'DEPARTMENT', name: 'Informatics' }, - inno: { type: 'DEPARTMENT', name: 'Innovation and Entrepreneurship' }, - 'intl st': { type: 'DEPARTMENT', name: 'International Studies' }, - iran: { type: 'DEPARTMENT', name: 'Iranian Studies' }, - italian: { type: 'DEPARTMENT', name: 'Italian' }, - japanse: { type: 'DEPARTMENT', name: 'Japanese' }, - korean: { type: 'DEPARTMENT', name: 'Korean' }, - latin: { type: 'DEPARTMENT', name: 'Latin' }, - linguis: { type: 'DEPARTMENT', name: 'Linguistics' }, - 'lit jrn': { type: 'DEPARTMENT', name: 'Literary Journalism' }, - lps: { type: 'DEPARTMENT', name: 'Logic and Philosophy of Science' }, - lsci: { type: 'DEPARTMENT', name: 'Language Science' }, - math: { type: 'DEPARTMENT', name: 'Mathematics' }, - 'med hum': { type: 'DEPARTMENT', name: 'Medical Humanities' }, - mgmt: { type: 'DEPARTMENT', name: 'Management' }, - 'mgmt ep': { type: 'DEPARTMENT', name: 'Executive MBA' }, - 'mgmt fe': { type: 'DEPARTMENT', name: 'Fully Employed MBA' }, - 'mgmt hc': { type: 'DEPARTMENT', name: 'Health Care MBA' }, - mgmtmba: { type: 'DEPARTMENT', name: 'Management MBA' }, - mgmtphd: { type: 'DEPARTMENT', name: 'Management PhD' }, - 'm&mg': { type: 'DEPARTMENT', name: 'Microbiology and Molecular Genetics' }, - 'mol bio': { type: 'DEPARTMENT', name: 'Molecular Biology and Biochemistry' }, - mpac: { type: 'DEPARTMENT', name: 'Master of Professional Accountancy' }, - mse: { type: 'DEPARTMENT', name: 'Materials Science and Engineering' }, - music: { type: 'DEPARTMENT', name: 'Music' }, - 'net sys': { type: 'DEPARTMENT', name: 'Networked Systems' }, - neurbio: { type: 'DEPARTMENT', name: 'Neurobiology and Behavior' }, - 'nur sci': { type: 'DEPARTMENT', name: 'Nursing Science' }, - path: { type: 'DEPARTMENT', name: 'Pathology and Laboratory Medicine' }, - 'ped gen': { type: 'DEPARTMENT', name: 'Pediatrics Genetics' }, - persian: { type: 'DEPARTMENT', name: 'Persian' }, - pharm: { type: 'DEPARTMENT', name: 'Medical Pharmacology' }, - philos: { type: 'DEPARTMENT', name: 'Philosophy' }, - phmd: { type: 'DEPARTMENT', name: 'Pharmacy' }, - phrmsci: { type: 'DEPARTMENT', name: 'Pharmaceutical Sciences' }, - 'phy sci': { type: 'DEPARTMENT', name: 'Physical Science' }, - physics: { type: 'DEPARTMENT', name: 'Physics' }, - physio: { type: 'DEPARTMENT', name: 'Physiology and Biophysics' }, - 'pol sci': { type: 'DEPARTMENT', name: 'Political Science' }, - portug: { type: 'DEPARTMENT', name: 'Portuguese' }, - 'pp&d': { type: 'DEPARTMENT', name: 'Planning, Policy, and Design' }, - psci: { type: 'DEPARTMENT', name: 'Psychological Science' }, - 'psy beh': { type: 'DEPARTMENT', name: 'Psychology and Social Behavior' }, - psych: { type: 'DEPARTMENT', name: 'Psychology' }, - pubhlth: { type: 'DEPARTMENT', name: 'Public Health' }, - 'pub pol': { type: 'DEPARTMENT', name: 'Public Policy' }, - 'rel std': { type: 'DEPARTMENT', name: 'Religious Studies' }, - rotc: { type: 'DEPARTMENT', name: "Reserve Officers' Training Corps" }, - russian: { type: 'DEPARTMENT', name: 'Russian' }, - socecol: { type: 'DEPARTMENT', name: 'Social Ecology' }, - sociol: { type: 'DEPARTMENT', name: 'Sociology' }, - 'soc sci': { type: 'DEPARTMENT', name: 'Social Science' }, - spanish: { type: 'DEPARTMENT', name: 'Spanish' }, - spps: { type: 'DEPARTMENT', name: 'Social Policy and Public Service' }, - stats: { type: 'DEPARTMENT', name: 'Statistics' }, - swe: { type: 'DEPARTMENT', name: 'Software Engineering' }, - tox: { type: 'DEPARTMENT', name: 'Toxicology' }, - ucdc: { type: 'DEPARTMENT', name: 'UC Washington DC' }, - 'uni aff': { type: 'DEPARTMENT', name: 'University Affairs' }, - 'uni stu': { type: 'DEPARTMENT', name: 'University Studies' }, - uppp: { type: 'DEPARTMENT', name: 'Urban Policy and Public Planning' }, - vietmse: { type: 'DEPARTMENT', name: 'Vietnamese' }, - 'vis std': { type: 'DEPARTMENT', name: 'Visual Studies' }, - 'womn st': { type: 'DEPARTMENT', name: "Women's Studies" }, - writing: { type: 'DEPARTMENT', name: 'Writing' }, -}; - -export const toDepartment = (key: DepartmentKey | DepartmentAliasKey): [string, SearchResult] => - [(departmentAliases[key as DepartmentAliasKey] ?? key).toUpperCase(), departments[departmentAliases[key as DepartmentAliasKey] ?? key]]; From f6492dfbe89a521a9bcd1cb83140401e415a5fdd Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Sun, 24 Nov 2024 22:03:08 -0800 Subject: [PATCH 70/90] feat: switch to insert, track skipped users --- apps/backend/scripts/ddb_to_rds.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index c46d99031..51f4cf376 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -17,41 +17,52 @@ import { mangleDupliateScheduleNames } from '../src/lib/formatting'; */ async function copyUsersToPostgres() { const failedUsers: string[] = []; + const skippedUsers: string[] = []; let success = 0; for await (const ddbBatch of ddbClient.getAllUserDataBatches()) { console.log(`Copying ${ddbBatch.length} users...`); let batchSuccess = 0; + let batchSkipped = 0; const transactions = ddbBatch.map( // One transaction per user async (ddbUser) => { // Mangle duplicate schedule names ddbUser.userData.schedules = mangleDupliateScheduleNames(ddbUser.userData.schedules); return RDS - .upsertGuestUserData(db, ddbUser) + .insertGuestUserData(db, ddbUser) + .then((res) => { + if (res === null) { + skippedUsers.push(ddbUser.id); + ++batchSkipped; + } else { + ++batchSuccess; + } + }) .catch((error) => { failedUsers.push(ddbUser.id); console.error( - `Failed to upsert user data for "${ddbUser.id}":` + `Failed to insert user data for "${ddbUser.id}":` ); console.error(error); }) - .then(() => batchSuccess++); } ); await Promise.all(transactions); - console.log(`Successfully copied ${batchSuccess} users out of ${ddbBatch.length} in batch.`); + console.log(`Successfully copied ${batchSuccess} users out of ${ddbBatch.length} in batch (${batchSkipped} skipped).`); success += batchSuccess; } - console.log(`Successfully copied ${success} users out of ${success + failedUsers.length}.`); + console.log(`Successfully copied ${success} users out of ${success + skippedUsers.length + failedUsers.length} (${skippedUsers.length} skipped).`); if (failedUsers.length > 0) { console.log(`Failed users: ${failedUsers.join(', ')}`); } - + if (skippedUsers.length > 0) { + console.log(`Skipped users: ${skippedUsers.join(', ')}`); + } } async function main() { From 54f75ff48335821b560c741ab562d483ff57bb4a Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 24 Nov 2024 22:22:31 -0800 Subject: [PATCH 71/90] feat(schema): support schedule ordering --- apps/backend/src/db/schema/schedule/schedule.ts | 10 ++++++++-- apps/backend/src/lib/rds.ts | 11 ++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/apps/backend/src/db/schema/schedule/schedule.ts b/apps/backend/src/db/schema/schedule/schedule.ts index 0197d8128..ab3508e7a 100644 --- a/apps/backend/src/db/schema/schedule/schedule.ts +++ b/apps/backend/src/db/schema/schedule/schedule.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2'; -import { pgTable, unique, text, timestamp } from 'drizzle-orm/pg-core'; +import { pgTable, unique, text, timestamp, integer } from 'drizzle-orm/pg-core'; import { users } from '../auth/user'; export const schedules = pgTable('schedules', { @@ -22,10 +22,16 @@ export const schedules = pgTable('schedules', { */ notes: text('notes'), + /** + * Index of the schedule in the user's list of schedules. + */ + index: integer('index').notNull(), + lastUpdated: timestamp('last_updated', { withTimezone: true }).notNull(), }, (table) => ([ - unique().on(table.userId, table.name) + unique().on(table.userId, table.name), + unique().on(table.userId, table.index), ]) ); diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index dd168e6e1..47e857312 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -43,13 +43,18 @@ export class RDS { /** * Creates a new schedule if one with its name doesn't already exist * and replaces its courses and custom events with the ones provided. + * + * @returns The ID of the new/existing schedule */ - static async upsertScheduleAndContents(db: DatabaseOrTransaction, userId: string, schedule: ShortCourseSchedule) { + static async upsertScheduleAndContents( + db: DatabaseOrTransaction, userId: string, schedule: ShortCourseSchedule, index: number + ) { // Add schedule const dbSchedule = { userId, name: schedule.scheduleName, notes: schedule.scheduleNote, + index, lastUpdated: new Date(), }; @@ -115,8 +120,8 @@ export class RDS { } // Add schedules and courses - const schedulesPromises = userData.userData.schedules.map((schedule) => - this.upsertScheduleAndContents(tx, userId, schedule) + const schedulesPromises = userData.userData.schedules.map((schedule, index) => + this.upsertScheduleAndContents(tx, userId, schedule, index) ); const scheduleIds = await Promise.all(schedulesPromises); From 91e198826002b048fb7dcda9a33b4fb2771acb51 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 24 Nov 2024 22:32:47 -0800 Subject: [PATCH 72/90] chore(db): schedule index migration --- .../drizzle/0001_powerful_tiger_shark.sql | 2 + apps/backend/drizzle/meta/0001_snapshot.json | 438 ++++++++++++++++++ apps/backend/drizzle/meta/_journal.json | 7 + 3 files changed, 447 insertions(+) create mode 100644 apps/backend/drizzle/0001_powerful_tiger_shark.sql create mode 100644 apps/backend/drizzle/meta/0001_snapshot.json diff --git a/apps/backend/drizzle/0001_powerful_tiger_shark.sql b/apps/backend/drizzle/0001_powerful_tiger_shark.sql new file mode 100644 index 000000000..e22251f7e --- /dev/null +++ b/apps/backend/drizzle/0001_powerful_tiger_shark.sql @@ -0,0 +1,2 @@ +ALTER TABLE "schedules" ADD COLUMN "index" integer NOT NULL;--> statement-breakpoint +ALTER TABLE "schedules" ADD CONSTRAINT "schedules_user_id_index_unique" UNIQUE("user_id","index"); \ No newline at end of file diff --git a/apps/backend/drizzle/meta/0001_snapshot.json b/apps/backend/drizzle/meta/0001_snapshot.json new file mode 100644 index 000000000..65c4f98b9 --- /dev/null +++ b/apps/backend/drizzle/meta/0001_snapshot.json @@ -0,0 +1,438 @@ +{ + "id": "980b5d8b-81c6-47e7-b979-90b189a98f30", + "prevId": "fb129d47-a2f2-437e-aaf9-5df8d40efe23", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.accounts": { + "name": "accounts", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "account_type": { + "name": "account_type", + "type": "account_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "accounts_user_id_users_id_fk": { + "name": "accounts_user_id_users_id_fk", + "tableFrom": "accounts", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "accounts_user_id_account_type_pk": { + "name": "accounts_user_id_account_type_pk", + "columns": ["user_id", "account_type"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.sessions": { + "name": "sessions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "sessions_user_id_users_id_fk": { + "name": "sessions_user_id_users_id_fk", + "tableFrom": "sessions", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "phone": { + "name": "phone", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "avatar": { + "name": "avatar", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "current_schedule_id": { + "name": "current_schedule_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "users_current_schedule_id_schedules_id_fk": { + "name": "users_current_schedule_id_schedules_id_fk", + "tableFrom": "users", + "tableTo": "schedules", + "columnsFrom": ["current_schedule_id"], + "columnsTo": ["id"], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.schedules": { + "name": "schedules", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "index": { + "name": "index", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "schedules_user_id_users_id_fk": { + "name": "schedules_user_id_users_id_fk", + "tableFrom": "schedules", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "schedules_user_id_name_unique": { + "name": "schedules_user_id_name_unique", + "nullsNotDistinct": false, + "columns": ["user_id", "name"] + }, + "schedules_user_id_index_unique": { + "name": "schedules_user_id_index_unique", + "nullsNotDistinct": false, + "columns": ["user_id", "index"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.coursesInSchedule": { + "name": "coursesInSchedule", + "schema": "", + "columns": { + "scheduleId": { + "name": "scheduleId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "sectionCode": { + "name": "sectionCode", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "term": { + "name": "term", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "coursesInSchedule_scheduleId_schedules_id_fk": { + "name": "coursesInSchedule_scheduleId_schedules_id_fk", + "tableFrom": "coursesInSchedule", + "tableTo": "schedules", + "columnsFrom": ["scheduleId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "coursesInSchedule_scheduleId_sectionCode_term_pk": { + "name": "coursesInSchedule_scheduleId_sectionCode_term_pk", + "columns": ["scheduleId", "sectionCode", "term"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customEvents": { + "name": "customEvents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "scheduleId": { + "name": "scheduleId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "start": { + "name": "start", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "end": { + "name": "end", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "days": { + "name": "days", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "building": { + "name": "building", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "customEvents_scheduleId_schedules_id_fk": { + "name": "customEvents_scheduleId_schedules_id_fk", + "tableFrom": "customEvents", + "tableTo": "schedules", + "columnsFrom": ["scheduleId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.subscriptions": { + "name": "subscriptions", + "schema": "", + "columns": { + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sectionCode": { + "name": "sectionCode", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "subscription_target_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "subscriptions_userId_users_id_fk": { + "name": "subscriptions_userId_users_id_fk", + "tableFrom": "subscriptions", + "tableTo": "users", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "subscriptions_userId_sectionCode_pk": { + "name": "subscriptions_userId_sectionCode_pk", + "columns": ["userId", "sectionCode"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.account_type": { + "name": "account_type", + "schema": "public", + "values": ["GOOGLE", "GUEST"] + }, + "public.subscription_target_status": { + "name": "subscription_target_status", + "schema": "public", + "values": ["OPEN", "WAITLISTED"] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} diff --git a/apps/backend/drizzle/meta/_journal.json b/apps/backend/drizzle/meta/_journal.json index b96e875e0..5cd7b0075 100644 --- a/apps/backend/drizzle/meta/_journal.json +++ b/apps/backend/drizzle/meta/_journal.json @@ -8,6 +8,13 @@ "when": 1732256237070, "tag": "0000_rapid_speed_demon", "breakpoints": true + }, + { + "idx": 1, + "version": "7", + "when": 1732515819685, + "tag": "0001_powerful_tiger_shark", + "breakpoints": true } ] } From 51f537f8d1bbd616c22d5b5f634dace007a2629d Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Sun, 24 Nov 2024 22:33:25 -0800 Subject: [PATCH 73/90] fix: db => tx (im stupid) --- apps/backend/src/lib/rds.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index 47e857312..ebe0d0522 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -100,7 +100,7 @@ export class RDS { return db.transaction(async (tx) => { const userId = await RDS.guestUserIdWithNameOrNull(tx, userData.id); if (userId) return null; - return RDS.upsertGuestUserData(db, userData); + return RDS.upsertGuestUserData(tx, userData); }); } From 74adda379cdc03a44cab29928b18844148d6f4a0 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 24 Nov 2024 23:00:30 -0800 Subject: [PATCH 74/90] fix(db): guest user account insert --- apps/backend/src/lib/rds.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index ebe0d0522..6a2330798 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -30,13 +30,25 @@ export class RDS { return db.transaction(async (tx) => { const maybeUserId = await RDS.guestUserIdWithNameOrNull(tx, name); - return maybeUserId + const userId = maybeUserId ? maybeUserId - : tx + : await tx .insert(users) .values({ name }) .returning({ id: users.id }) .then((users) => users[0].id); + + if (userId === undefined) { + throw new Error(`Failed to create guest user for ${name}`); + } + + await tx + .insert(accounts) + .values({ userId, accountType: 'GUEST', providerAccountId: name }) + .onConflictDoNothing() + .execute(); + + return userId; }); } From 6d4e7bbe619f5554ce4a859b122d92ae7b008e89 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:52:43 -0800 Subject: [PATCH 75/90] feat(migration): time profiling --- apps/backend/scripts/ddb_to_rds.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/backend/scripts/ddb_to_rds.ts b/apps/backend/scripts/ddb_to_rds.ts index 51f4cf376..93fab9a18 100644 --- a/apps/backend/scripts/ddb_to_rds.ts +++ b/apps/backend/scripts/ddb_to_rds.ts @@ -25,6 +25,7 @@ async function copyUsersToPostgres() { console.log(`Copying ${ddbBatch.length} users...`); let batchSuccess = 0; let batchSkipped = 0; + const start = Date.now(); const transactions = ddbBatch.map( // One transaction per user async (ddbUser) => { // Mangle duplicate schedule names @@ -51,8 +52,11 @@ async function copyUsersToPostgres() { ); await Promise.all(transactions); + + const timeTaken = Date.now() - start; + const msPerUser = timeTaken / ddbBatch.length; - console.log(`Successfully copied ${batchSuccess} users out of ${ddbBatch.length} in batch (${batchSkipped} skipped).`); + console.log(`Successfully copied ${batchSuccess} users out of ${ddbBatch.length} in batch (${batchSkipped} skipped) in ${timeTaken} seconds (${msPerUser}ms/user).`); success += batchSuccess; } From 14cc77bc267a5e90436732b785e15a55e6f99106 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:38:49 -0800 Subject: [PATCH 76/90] fix(api): drop all schedules before inserting --- apps/backend/src/lib/rds.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/apps/backend/src/lib/rds.ts b/apps/backend/src/lib/rds.ts index 6a2330798..868398903 100644 --- a/apps/backend/src/lib/rds.ts +++ b/apps/backend/src/lib/rds.ts @@ -75,10 +75,6 @@ export class RDS { tx .insert(schedules) .values(dbSchedule) - .onConflictDoUpdate({ - target: [schedules.userId, schedules.name], - set: dbSchedule, - }) .returning({ id: schedules.id }) ) .catch((error) => { @@ -132,11 +128,7 @@ export class RDS { } // Add schedules and courses - const schedulesPromises = userData.userData.schedules.map((schedule, index) => - this.upsertScheduleAndContents(tx, userId, schedule, index) - ); - - const scheduleIds = await Promise.all(schedulesPromises); + const scheduleIds = await this.upsertSchedulesAndContents(tx, userId, userData.userData.schedules); // Update user's current schedule index const scheduleIndex = userData.userData.scheduleIndex; @@ -152,6 +144,20 @@ export class RDS { }); } + /** Deletes and recreates all of the user's schedules and contents */ + private static async upsertSchedulesAndContents( + db: DatabaseOrTransaction, userId: string, scheduleArray: ShortCourseSchedule[] + ): Promise { + // Drop all schedules, which will cascade to courses and custom events + await db.delete(schedules).where(eq(schedules.userId, userId)); + + return Promise.all( + scheduleArray.map( + (schedule, index) => this.upsertScheduleAndContents(db, userId, schedule, index) + ) + ); + } + /** * Drops all courses in the schedule and re-add them, * deduplicating by section code and term. From 591a9e04b0397c1a63fabf71e182f6fb9fab78e0 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:50:15 -0800 Subject: [PATCH 77/90] feat(schema): set current schedule to null on delete --- .../drizzle/0002_fat_ted_forrester.sql | 7 + apps/backend/drizzle/meta/0002_snapshot.json | 438 ++++++++++++++++++ apps/backend/drizzle/meta/_journal.json | 7 + apps/backend/src/db/schema/auth/user.ts | 3 +- 4 files changed, 454 insertions(+), 1 deletion(-) create mode 100644 apps/backend/drizzle/0002_fat_ted_forrester.sql create mode 100644 apps/backend/drizzle/meta/0002_snapshot.json diff --git a/apps/backend/drizzle/0002_fat_ted_forrester.sql b/apps/backend/drizzle/0002_fat_ted_forrester.sql new file mode 100644 index 000000000..aed6916cd --- /dev/null +++ b/apps/backend/drizzle/0002_fat_ted_forrester.sql @@ -0,0 +1,7 @@ +ALTER TABLE "users" DROP CONSTRAINT "users_current_schedule_id_schedules_id_fk"; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "users" ADD CONSTRAINT "users_current_schedule_id_schedules_id_fk" FOREIGN KEY ("current_schedule_id") REFERENCES "public"."schedules"("id") ON DELETE set null ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; diff --git a/apps/backend/drizzle/meta/0002_snapshot.json b/apps/backend/drizzle/meta/0002_snapshot.json new file mode 100644 index 000000000..4c2e74399 --- /dev/null +++ b/apps/backend/drizzle/meta/0002_snapshot.json @@ -0,0 +1,438 @@ +{ + "id": "1653e3a7-93bd-4f8b-b7e5-8b6cda63fa4f", + "prevId": "980b5d8b-81c6-47e7-b979-90b189a98f30", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.accounts": { + "name": "accounts", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "account_type": { + "name": "account_type", + "type": "account_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "accounts_user_id_users_id_fk": { + "name": "accounts_user_id_users_id_fk", + "tableFrom": "accounts", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "accounts_user_id_account_type_pk": { + "name": "accounts_user_id_account_type_pk", + "columns": ["user_id", "account_type"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.sessions": { + "name": "sessions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "sessions_user_id_users_id_fk": { + "name": "sessions_user_id_users_id_fk", + "tableFrom": "sessions", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "phone": { + "name": "phone", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "avatar": { + "name": "avatar", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "current_schedule_id": { + "name": "current_schedule_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "users_current_schedule_id_schedules_id_fk": { + "name": "users_current_schedule_id_schedules_id_fk", + "tableFrom": "users", + "tableTo": "schedules", + "columnsFrom": ["current_schedule_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.schedules": { + "name": "schedules", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "index": { + "name": "index", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "schedules_user_id_users_id_fk": { + "name": "schedules_user_id_users_id_fk", + "tableFrom": "schedules", + "tableTo": "users", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "schedules_user_id_name_unique": { + "name": "schedules_user_id_name_unique", + "nullsNotDistinct": false, + "columns": ["user_id", "name"] + }, + "schedules_user_id_index_unique": { + "name": "schedules_user_id_index_unique", + "nullsNotDistinct": false, + "columns": ["user_id", "index"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.coursesInSchedule": { + "name": "coursesInSchedule", + "schema": "", + "columns": { + "scheduleId": { + "name": "scheduleId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "sectionCode": { + "name": "sectionCode", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "term": { + "name": "term", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "coursesInSchedule_scheduleId_schedules_id_fk": { + "name": "coursesInSchedule_scheduleId_schedules_id_fk", + "tableFrom": "coursesInSchedule", + "tableTo": "schedules", + "columnsFrom": ["scheduleId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "coursesInSchedule_scheduleId_sectionCode_term_pk": { + "name": "coursesInSchedule_scheduleId_sectionCode_term_pk", + "columns": ["scheduleId", "sectionCode", "term"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customEvents": { + "name": "customEvents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "scheduleId": { + "name": "scheduleId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "start": { + "name": "start", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "end": { + "name": "end", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "days": { + "name": "days", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "building": { + "name": "building", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "last_updated": { + "name": "last_updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "customEvents_scheduleId_schedules_id_fk": { + "name": "customEvents_scheduleId_schedules_id_fk", + "tableFrom": "customEvents", + "tableTo": "schedules", + "columnsFrom": ["scheduleId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.subscriptions": { + "name": "subscriptions", + "schema": "", + "columns": { + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sectionCode": { + "name": "sectionCode", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "subscription_target_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "subscriptions_userId_users_id_fk": { + "name": "subscriptions_userId_users_id_fk", + "tableFrom": "subscriptions", + "tableTo": "users", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "subscriptions_userId_sectionCode_pk": { + "name": "subscriptions_userId_sectionCode_pk", + "columns": ["userId", "sectionCode"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.account_type": { + "name": "account_type", + "schema": "public", + "values": ["GOOGLE", "GUEST"] + }, + "public.subscription_target_status": { + "name": "subscription_target_status", + "schema": "public", + "values": ["OPEN", "WAITLISTED"] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} diff --git a/apps/backend/drizzle/meta/_journal.json b/apps/backend/drizzle/meta/_journal.json index 5cd7b0075..536882b04 100644 --- a/apps/backend/drizzle/meta/_journal.json +++ b/apps/backend/drizzle/meta/_journal.json @@ -15,6 +15,13 @@ "when": 1732515819685, "tag": "0001_powerful_tiger_shark", "breakpoints": true + }, + { + "idx": 2, + "version": "7", + "when": 1732578460427, + "tag": "0002_fat_ted_forrester", + "breakpoints": true } ] } diff --git a/apps/backend/src/db/schema/auth/user.ts b/apps/backend/src/db/schema/auth/user.ts index 295c997e8..ed03ad98d 100644 --- a/apps/backend/src/db/schema/auth/user.ts +++ b/apps/backend/src/db/schema/auth/user.ts @@ -33,7 +33,8 @@ export const users = pgTable('users', { currentScheduleId: text('current_schedule_id') .references( // Necessary because this is a circular dependency. - (): AnyPgColumn => schedules.id + (): AnyPgColumn => schedules.id, + { onDelete: 'set null'} ), lastUpdated: timestamp('last_updated', { withTimezone: true }).defaultNow(), From 536d83975eb6fa5e348b0076e4cbb7c5a863ad60 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:37:37 -0800 Subject: [PATCH 78/90] feat(cdk): env join from backend --- apps/backend/src/env.ts | 2 -- apps/cdk/src/stacks/backend.ts | 33 +++++++++++++++------------------ 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index c0cc84296..c17703f5a 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -4,11 +4,9 @@ import * as dotenv from 'dotenv'; dotenv.config(); const Environment = type({ - 'NODE_ENV?': "'development' | 'production' | 'staging'", USERDATA_TABLE_NAME: 'string', AWS_REGION: 'string', MAPBOX_ACCESS_TOKEN: 'string', - 'PR_NUM?': 'number', DB_URL: 'string', STAGE: "string", }); diff --git a/apps/cdk/src/stacks/backend.ts b/apps/cdk/src/stacks/backend.ts index 40395d80a..7df64424c 100644 --- a/apps/cdk/src/stacks/backend.ts +++ b/apps/cdk/src/stacks/backend.ts @@ -8,26 +8,29 @@ import * as route53 from 'aws-cdk-lib/aws-route53'; import * as targets from 'aws-cdk-lib/aws-route53-targets'; import type { Construct } from 'constructs'; +import backendEnv from '../../../backend/src/env'; import { zoneName } from '../lib/constants'; export class BackendStack extends Stack { + static readonly CDKEnvironment = type({ + CERTIFICATE_ARN: 'string', + HOSTED_ZONE_ID: 'string', + ANTEATER_API_KEY: 'string', + 'NODE_ENV?': 'string', + 'PR_NUM?': 'string', + }); + constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); /** + * Env vars specifically for the CDK stack/deployment. + * * If {@link env.PR_NUM} is defined, then {@link env.NODE_ENV} should be 'staging'. */ - const env = type({ - CERTIFICATE_ARN: 'string', - HOSTED_ZONE_ID: 'string', - MONGODB_URI_PROD: 'string', - GOOGLE_CLIENT_ID: 'string', - GOOGLE_CLIENT_SECRET: 'string', - 'MAPBOX_ACCESS_TOKEN?': 'string', - 'NODE_ENV?': 'string', - 'PR_NUM?': 'string', - ANTEATER_API_KEY: 'string', - }).assert({ ...process.env }); + const cdkEnv = BackendStack.CDKEnvironment.assert({ ...process.env }); + + const env = { ...backendEnv, ...cdkEnv }; /** * The domain that the backend API will be hosted on. @@ -55,13 +58,7 @@ export class BackendStack extends Stack { handler: 'lambda.handler', timeout: Duration.seconds(5), memorySize: 256, - environment: { - ANTEATER_API_KEY: env.ANTEATER_API_KEY, - AA_MONGODB_URI: env.MONGODB_URI_PROD, - MAPBOX_ACCESS_TOKEN: env.MAPBOX_ACCESS_TOKEN ?? '', - STAGE: env.NODE_ENV ?? 'development', - USERDATA_TABLE_NAME: userDataDDB.tableName, - }, + environment: backendEnv, }); userDataDDB.grantReadWriteData(handler); From 7076e2fff23a5da3a23b6de9106accf226f2c959 Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:13:03 -0800 Subject: [PATCH 79/90] ci: hopefully fix deploy? --- .github/workflows/deploy_production.yml | 1 + .github/workflows/deploy_staging.yml | 1 + .github/workflows/destroy_staging.yml | 1 + apps/backend/src/env.ts | 29 ++++++++++++---------- apps/backend/src/index.ts | 3 ++- apps/cdk/package.json | 3 ++- apps/cdk/src/stacks/backend.ts | 33 +++++++++++-------------- pnpm-lock.yaml | 9 ++++--- 8 files changed, 44 insertions(+), 36 deletions(-) diff --git a/.github/workflows/deploy_production.yml b/.github/workflows/deploy_production.yml index 9be62d43a..77bbd15dc 100644 --- a/.github/workflows/deploy_production.yml +++ b/.github/workflows/deploy_production.yml @@ -45,6 +45,7 @@ env: HOSTED_ZONE_ID: ${{ secrets.HOSTED_ZONE_ID }} CERTIFICATE_ARN: ${{ secrets.CERTIFICATE_ARN }} PR_NUM: ${{ github.event.pull_request.number }} + STAGE: prod jobs: # Build production version of the frontend and upload the artifacts. diff --git a/.github/workflows/deploy_staging.yml b/.github/workflows/deploy_staging.yml index b7940602d..c6f665ff5 100644 --- a/.github/workflows/deploy_staging.yml +++ b/.github/workflows/deploy_staging.yml @@ -45,6 +45,7 @@ env: HOSTED_ZONE_ID: ${{ secrets.HOSTED_ZONE_ID }} CERTIFICATE_ARN: ${{ secrets.CERTIFICATE_ARN }} PR_NUM: ${{ github.event.pull_request.number }} + STAGE: dev jobs: get_staging_configuration: diff --git a/.github/workflows/destroy_staging.yml b/.github/workflows/destroy_staging.yml index 1a8c26a85..31e201ede 100644 --- a/.github/workflows/destroy_staging.yml +++ b/.github/workflows/destroy_staging.yml @@ -42,6 +42,7 @@ env: HOSTED_ZONE_ID: ${{ secrets.HOSTED_ZONE_ID }} CERTIFICATE_ARN: ${{ secrets.CERTIFICATE_ARN }} PR_NUM: ${{ github.event.pull_request.number }} + STAGE: dev jobs: destroy_staging_frontend: diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index c17703f5a..f6ae6d5ee 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -1,16 +1,19 @@ -import { type } from 'arktype'; -import * as dotenv from 'dotenv'; -dotenv.config(); +import {z} from "zod"; -const Environment = type({ - USERDATA_TABLE_NAME: 'string', - AWS_REGION: 'string', - MAPBOX_ACCESS_TOKEN: 'string', - DB_URL: 'string', - STAGE: "string", -}); +/** + * Environment variables required by the backend during deploy time. + */ +export const deployEnvSchema = z.object({ + DB_URL: z.string(), + STAGE: z.string() +}) -const env = Environment.assert({ ...process.env }); - -export default env; +/** + * Environment variables required by the backend during runtime. + */ +export const backendEnvSchema = z.intersection(deployEnvSchema, z.object({ + USERDATA_TABLE_NAME: z.string(), + AWS_REGION: z.string(), + MAPBOX_ACCESS_TOKEN: z.string(), +})) diff --git a/apps/backend/src/index.ts b/apps/backend/src/index.ts index 32a591b73..95134c6f0 100644 --- a/apps/backend/src/index.ts +++ b/apps/backend/src/index.ts @@ -4,7 +4,7 @@ import type { CorsOptions } from 'cors'; import { createExpressMiddleware } from '@trpc/server/adapters/express'; import AppRouter from './routers'; import createContext from './context'; -import env from './env'; +import { backendEnvSchema } from "./env"; const corsOptions: CorsOptions = { origin: ['https://antalmanac.com', 'https://www.antalmanac.com', 'https://icssc-projects.github.io/AntAlmanac'], @@ -15,6 +15,7 @@ const MAPBOX_API_URL = 'https://api.mapbox.com'; const PORT = 3000; export async function start(corsEnabled = false) { + const env = backendEnvSchema.parse(process.env) const app = express(); app.use(cors(corsEnabled ? corsOptions : undefined)); app.use(express.json()); diff --git a/apps/cdk/package.json b/apps/cdk/package.json index 36f2f503d..973ad2e54 100644 --- a/apps/cdk/package.json +++ b/apps/cdk/package.json @@ -24,7 +24,8 @@ "arktype": "1.0.14-alpha", "aws-cdk-lib": "^2.94.0", "constructs": "^10.2.70", - "dotenv": "^16.0.3" + "dotenv": "^16.0.3", + "zod": "3.23.8" }, "devDependencies": { "@types/node": "^20.11.5", diff --git a/apps/cdk/src/stacks/backend.ts b/apps/cdk/src/stacks/backend.ts index 7df64424c..d4449a609 100644 --- a/apps/cdk/src/stacks/backend.ts +++ b/apps/cdk/src/stacks/backend.ts @@ -1,4 +1,3 @@ -import { type } from 'arktype'; import { Stack, type StackProps, RemovalPolicy, Duration } from 'aws-cdk-lib'; import * as apigateway from 'aws-cdk-lib/aws-apigateway'; import * as acm from 'aws-cdk-lib/aws-certificatemanager'; @@ -7,30 +6,28 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; import * as route53 from 'aws-cdk-lib/aws-route53'; import * as targets from 'aws-cdk-lib/aws-route53-targets'; import type { Construct } from 'constructs'; +import { z } from 'zod'; -import backendEnv from '../../../backend/src/env'; +import { deployEnvSchema } from '../../../backend/src/env'; import { zoneName } from '../lib/constants'; export class BackendStack extends Stack { - static readonly CDKEnvironment = type({ - CERTIFICATE_ARN: 'string', - HOSTED_ZONE_ID: 'string', - ANTEATER_API_KEY: 'string', - 'NODE_ENV?': 'string', - 'PR_NUM?': 'string', + /** + * Env vars specifically for the CDK stack/deployment. + * + * If {@link env.PR_NUM} is defined, then {@link env.NODE_ENV} should be 'staging'. + */ + static readonly CDKEnvironment = z.object({ + CERTIFICATE_ARN: z.string(), + HOSTED_ZONE_ID: z.string(), + ANTEATER_API_KEY: z.string(), + NODE_ENV: z.string().optional(), + PR_NUM: z.string().optional(), }); constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); - - /** - * Env vars specifically for the CDK stack/deployment. - * - * If {@link env.PR_NUM} is defined, then {@link env.NODE_ENV} should be 'staging'. - */ - const cdkEnv = BackendStack.CDKEnvironment.assert({ ...process.env }); - - const env = { ...backendEnv, ...cdkEnv }; + const env = z.intersection(BackendStack.CDKEnvironment, deployEnvSchema).parse(process.env); /** * The domain that the backend API will be hosted on. @@ -58,7 +55,7 @@ export class BackendStack extends Stack { handler: 'lambda.handler', timeout: Duration.seconds(5), memorySize: 256, - environment: backendEnv, + environment: deployEnvSchema.parse(process.env), }); userDataDDB.grantReadWriteData(handler); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a103168a..adadc852a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -418,6 +418,9 @@ importers: dotenv: specifier: ^16.0.3 version: 16.4.5 + zod: + specifier: 3.23.8 + version: 3.23.8 devDependencies: '@types/node': specifier: ^20.11.5 @@ -8392,7 +8395,7 @@ snapshots: debug: 4.3.7(supports-color@9.4.0) enhanced-resolve: 5.15.1 eslint: 9.15.0 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -8416,7 +8419,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0): + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0): dependencies: debug: 3.2.7(supports-color@5.5.0) optionalDependencies: @@ -8466,7 +8469,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.15.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 From 4e182c633479d8d142559e075602a279fe639eb5 Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:27:13 -0800 Subject: [PATCH 80/90] ci: actually fix things??? --- apps/backend/drizzle.config.ts | 4 ++-- apps/backend/src/db/ddb.ts | 5 +++-- apps/backend/src/db/index.ts | 4 ++-- apps/backend/src/env.ts | 1 + apps/backend/src/lambda.ts | 3 ++- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/backend/drizzle.config.ts b/apps/backend/drizzle.config.ts index 9eb0a9a76..a923e0ef9 100644 --- a/apps/backend/drizzle.config.ts +++ b/apps/backend/drizzle.config.ts @@ -1,8 +1,8 @@ import { defineConfig } from "drizzle-kit"; -import env from "./src/env"; +import { backendEnvSchema } from "./src/env"; -const { DB_URL } = env; +const { DB_URL } = backendEnvSchema.parse(process.env); export default defineConfig({ dialect: "postgresql", diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index 9bd55d69c..92ed8e3e9 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -6,8 +6,7 @@ import { UserSchema, type ScheduleSaveState, } from '@packages/antalmanac-types'; - -import env from '../env'; +import {backendEnvSchema} from "../env"; /** * TODO: enforce this in the schema too, or just leave it as an arbitrary string? @@ -18,6 +17,8 @@ export const VISIBILITY = { OPEN: 'open', }; +const env = backendEnvSchema.parse(process.env); + class DDBClient>> { private tableName: string; diff --git a/apps/backend/src/db/index.ts b/apps/backend/src/db/index.ts index 91c1cf9d4..848c70a9d 100644 --- a/apps/backend/src/db/index.ts +++ b/apps/backend/src/db/index.ts @@ -1,10 +1,10 @@ import { drizzle } from 'drizzle-orm/postgres-js'; import postgres from 'postgres'; -import env from '../env'; +import {backendEnvSchema} from "../env"; import * as schema from './schema/index.js'; -const { DB_URL } = env; +const { DB_URL } = backendEnvSchema.parse(process.env) if (!DB_URL) throw new Error("DB_URL not defined") diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index f6ae6d5ee..07336db4a 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -16,4 +16,5 @@ export const backendEnvSchema = z.intersection(deployEnvSchema, z.object({ USERDATA_TABLE_NAME: z.string(), AWS_REGION: z.string(), MAPBOX_ACCESS_TOKEN: z.string(), + NODE_ENV: z.string().optional(), })) diff --git a/apps/backend/src/lambda.ts b/apps/backend/src/lambda.ts index 939892b8c..cff1c76d2 100644 --- a/apps/backend/src/lambda.ts +++ b/apps/backend/src/lambda.ts @@ -1,12 +1,13 @@ import serverlessExpress from '@vendia/serverless-express'; import type { Context, Handler } from 'aws-lambda'; -import env from './env'; +import {backendEnvSchema} from './env'; import { start } from '.'; let cachedHandler: Handler; export async function handler(event: any, context: Context, callback: any) { + const env = backendEnvSchema.parse(process.env) if (!cachedHandler) { const app = await start(env.NODE_ENV === 'production'); cachedHandler = serverlessExpress({ app }); From d52aa252acea636fe95a7184508c1186f71278df Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:49:36 -0800 Subject: [PATCH 81/90] fljdsahfljdsahfs --- apps/backend/src/env.ts | 4 ++-- apps/cdk/src/stacks/backend.ts | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index 07336db4a..cbca73a4a 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -6,7 +6,8 @@ import {z} from "zod"; */ export const deployEnvSchema = z.object({ DB_URL: z.string(), - STAGE: z.string() + STAGE: z.string(), + MAPBOX_ACCESS_TOKEN: z.string(), }) /** @@ -15,6 +16,5 @@ export const deployEnvSchema = z.object({ export const backendEnvSchema = z.intersection(deployEnvSchema, z.object({ USERDATA_TABLE_NAME: z.string(), AWS_REGION: z.string(), - MAPBOX_ACCESS_TOKEN: z.string(), NODE_ENV: z.string().optional(), })) diff --git a/apps/cdk/src/stacks/backend.ts b/apps/cdk/src/stacks/backend.ts index d4449a609..e0d4590aa 100644 --- a/apps/cdk/src/stacks/backend.ts +++ b/apps/cdk/src/stacks/backend.ts @@ -55,7 +55,10 @@ export class BackendStack extends Stack { handler: 'lambda.handler', timeout: Duration.seconds(5), memorySize: 256, - environment: deployEnvSchema.parse(process.env), + environment: { + ...env, + USERDATA_TABLE_NAME: userDataDDB.tableName, + }, }); userDataDDB.grantReadWriteData(handler); From b7dab83cf2370eaae4073b0b5455dfca2fdebac4 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:19:52 -0800 Subject: [PATCH 82/90] feat(dev): dotenv for backend --- apps/backend/package.json | 4 +- apps/backend/src/db/index.ts | 4 +- apps/backend/src/env.ts | 5 ++- pnpm-lock.yaml | 72 ++++++++++++++++++------------------ 4 files changed, 43 insertions(+), 42 deletions(-) diff --git a/apps/backend/package.json b/apps/backend/package.json index 9a49e9810..bce9235b9 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -24,10 +24,11 @@ "arktype": "1.0.14-alpha", "aws-lambda": "^1.0.7", "cors": "^2.8.5", + "dotenv": "^16.0.3", "drizzle-orm": "^0.36.3", - "fuzzysort": "3.1.0", "envalid": "^7.3.1", "express": "^4.18.2", + "fuzzysort": "3.1.0", "postgres": "^3.4.4", "superjson": "^1.12.3", "zod": "3.23.8" @@ -41,7 +42,6 @@ "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "concurrently": "^8.0.1", - "dotenv": "^16.0.3", "drizzle-kit": "^0.28.1", "esbuild": "^0.17.19", "eslint": "^8.34.0", diff --git a/apps/backend/src/db/index.ts b/apps/backend/src/db/index.ts index 848c70a9d..1773f4ef9 100644 --- a/apps/backend/src/db/index.ts +++ b/apps/backend/src/db/index.ts @@ -4,9 +4,7 @@ import postgres from 'postgres'; import {backendEnvSchema} from "../env"; import * as schema from './schema/index.js'; -const { DB_URL } = backendEnvSchema.parse(process.env) - -if (!DB_URL) throw new Error("DB_URL not defined") +const { DB_URL } = backendEnvSchema.parse(process.env); export const client = postgres(DB_URL); diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index cbca73a4a..c6ba9c54a 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -1,5 +1,8 @@ - import {z} from "zod"; +import * as dotenv from "dotenv"; + +dotenv.config(); + /** * Environment variables required by the backend during deploy time. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index adadc852a..e64a88656 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,7 +34,7 @@ importers: version: 3.3.3 turbo: specifier: latest - version: 2.3.1 + version: 2.3.3 vitest: specifier: ^0.34.4 version: 0.34.6(jsdom@22.1.0) @@ -315,6 +315,9 @@ importers: cors: specifier: ^2.8.5 version: 2.8.5 + dotenv: + specifier: ^16.0.3 + version: 16.4.5 drizzle-orm: specifier: ^0.36.3 version: 0.36.3(@types/react@18.3.12)(postgres@3.4.5)(react@18.3.1) @@ -361,9 +364,6 @@ importers: concurrently: specifier: ^8.0.1 version: 8.2.2 - dotenv: - specifier: ^16.0.3 - version: 16.4.5 drizzle-kit: specifier: ^0.28.1 version: 0.28.1 @@ -4861,38 +4861,38 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo-darwin-64@2.3.1: - resolution: {integrity: sha512-tjHfjW/Gs8Q9IO+9gPdIsSStZ8I09QYDRT/SyhFTPLnc7O2ZlxHPBVFfjUkHUjanHNYO8CpRGt+zdp1PaMCruw==} + turbo-darwin-64@2.3.3: + resolution: {integrity: sha512-bxX82xe6du/3rPmm4aCC5RdEilIN99VUld4HkFQuw+mvFg6darNBuQxyWSHZTtc25XgYjQrjsV05888w1grpaA==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.3.1: - resolution: {integrity: sha512-At1WStnxCfrBQ4M2g6ynre8WsusGwA11okhVolBxyFUemYozDTtbZwelr+IqNggjT251vviokxOkcFzzogbiFw==} + turbo-darwin-arm64@2.3.3: + resolution: {integrity: sha512-DYbQwa3NsAuWkCUYVzfOUBbSUBVQzH5HWUFy2Kgi3fGjIWVZOFk86ss+xsWu//rlEAfYwEmopigsPYSmW4X15A==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.3.1: - resolution: {integrity: sha512-COwEev7s9fsxLM2eoRCyRLPj+BXvZjFIS+GxzdAubYhoSoZit8B8QGKczyDl6448xhuFEWKrpHhcR9aBuwB4ag==} + turbo-linux-64@2.3.3: + resolution: {integrity: sha512-eHj9OIB0dFaP6BxB88jSuaCLsOQSYWBgmhy2ErCu6D2GG6xW3b6e2UWHl/1Ho9FsTg4uVgo4DB9wGsKa5erjUA==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.3.1: - resolution: {integrity: sha512-AP0uE15Rhxza2Jl+Q3gxdXRA92IIeFAYaufz6CMcZuGy9yZsBlLt9w6T47H6g7XQPzWuw8pzfjM1omcTKkkDpQ==} + turbo-linux-arm64@2.3.3: + resolution: {integrity: sha512-NmDE/NjZoDj1UWBhMtOPmqFLEBKhzGS61KObfrDEbXvU3lekwHeoPvAMfcovzswzch+kN2DrtbNIlz+/rp8OCg==} cpu: [arm64] os: [linux] - turbo-windows-64@2.3.1: - resolution: {integrity: sha512-HDSneq0dNZYZch74c2eygq+OiJE/JYDs7OsGM0yRYVj336383xkUnxz6W2I7qiyMCQXzp4UVUDZXvZhUYcX3BA==} + turbo-windows-64@2.3.3: + resolution: {integrity: sha512-O2+BS4QqjK3dOERscXqv7N2GXNcqHr9hXumkMxDj/oGx9oCatIwnnwx34UmzodloSnJpgSqjl8iRWiY65SmYoQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.3.1: - resolution: {integrity: sha512-7/2/sJZiquwoT/jWBCfV0qKq4NarsJPmDRjMcR9dDMIwCYsGM8ljomkDRTCtkNeFcUvYw54MiRWHehWgbcRPsw==} + turbo-windows-arm64@2.3.3: + resolution: {integrity: sha512-dW4ZK1r6XLPNYLIKjC4o87HxYidtRRcBeo/hZ9Wng2XM/MqqYkAyzJXJGgRMsc0MMEN9z4+ZIfnSNBrA0b08ag==} cpu: [arm64] os: [win32] - turbo@2.3.1: - resolution: {integrity: sha512-vHZe/e6k1HZVKiMQPQ1BWFn53vjVQDFKdkjUq/pBKlRWi1gw9LQO6ntH4qZCcHY1rH6TXgsRmexXdgWl96YvVQ==} + turbo@2.3.3: + resolution: {integrity: sha512-DUHWQAcC8BTiUZDRzAYGvpSpGLiaOQPfYXlCieQbwUvmml/LRGIe3raKdrOPOoiX0DYlzxs2nH6BoWJoZrj8hA==} hasBin: true type-check@0.4.0: @@ -7355,8 +7355,8 @@ snapshots: '@types/react@18.3.12': dependencies: - '@types/prop-types': 15.7.5 - csstype: 3.1.1 + '@types/prop-types': 15.7.13 + csstype: 3.1.3 '@types/reactcss@1.2.6': dependencies: @@ -8395,7 +8395,7 @@ snapshots: debug: 4.3.7(supports-color@9.4.0) enhanced-resolve: 5.15.1 eslint: 9.15.0 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -8419,7 +8419,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0): + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0): dependencies: debug: 3.2.7(supports-color@5.5.0) optionalDependencies: @@ -8469,7 +8469,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.15.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@9.15.0))(eslint@9.15.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -10325,32 +10325,32 @@ snapshots: tunnel@0.0.6: {} - turbo-darwin-64@2.3.1: + turbo-darwin-64@2.3.3: optional: true - turbo-darwin-arm64@2.3.1: + turbo-darwin-arm64@2.3.3: optional: true - turbo-linux-64@2.3.1: + turbo-linux-64@2.3.3: optional: true - turbo-linux-arm64@2.3.1: + turbo-linux-arm64@2.3.3: optional: true - turbo-windows-64@2.3.1: + turbo-windows-64@2.3.3: optional: true - turbo-windows-arm64@2.3.1: + turbo-windows-arm64@2.3.3: optional: true - turbo@2.3.1: + turbo@2.3.3: optionalDependencies: - turbo-darwin-64: 2.3.1 - turbo-darwin-arm64: 2.3.1 - turbo-linux-64: 2.3.1 - turbo-linux-arm64: 2.3.1 - turbo-windows-64: 2.3.1 - turbo-windows-arm64: 2.3.1 + turbo-darwin-64: 2.3.3 + turbo-darwin-arm64: 2.3.3 + turbo-linux-64: 2.3.3 + turbo-linux-arm64: 2.3.3 + turbo-windows-64: 2.3.3 + turbo-windows-arm64: 2.3.3 type-check@0.4.0: dependencies: From 84b9e3270bf1d4d9cf59d12696755678a1cd04db Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:23:10 -0800 Subject: [PATCH 83/90] fix(users router): typo --- apps/backend/src/routers/users.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/routers/users.ts b/apps/backend/src/routers/users.ts index 80352a68a..2a982b164 100644 --- a/apps/backend/src/routers/users.ts +++ b/apps/backend/src/routers/users.ts @@ -4,7 +4,7 @@ import { UserSchema } from '@packages/antalmanac-types'; import { db } from 'src/db'; import { ddbClient } from 'src/db/ddb'; -import { mangleDupliateScheduleNames } from 'src/lib/formatting'; +import { mangleDupliateScheduleNames as mangleDuplicateScheduleNames } from 'src/lib/formatting'; import { RDS } from 'src/lib/rds'; import { procedure, router } from '../trpc'; @@ -58,7 +58,7 @@ const usersRouter = router({ const data = input.data; // Mangle duplicate schedule names - data.userData.schedules = mangleDupliateScheduleNames(data.userData.schedules); + data.userData.schedules = mangleDuplicateScheduleNames(data.userData.schedules); // Don't await because the show must go on without RDS. RDS.upsertGuestUserData(db, data) From 73113ed31acf0dcc4313584853cf80bd08af264e Mon Sep 17 00:00:00 2001 From: Eddy Chen <89349085+ecxyzzy@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:54:57 -0800 Subject: [PATCH 84/90] feat: parallelize ddb/rds write --- apps/backend/src/routers/users.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/apps/backend/src/routers/users.ts b/apps/backend/src/routers/users.ts index 2a982b164..dda6f5b84 100644 --- a/apps/backend/src/routers/users.ts +++ b/apps/backend/src/routers/users.ts @@ -59,12 +59,9 @@ const usersRouter = router({ // Mangle duplicate schedule names data.userData.schedules = mangleDuplicateScheduleNames(data.userData.schedules); - - // Don't await because the show must go on without RDS. - RDS.upsertGuestUserData(db, data) - .catch((error) => console.error('Failed to upsert user data:', error)); - return ddbClient.insertItem(data); + return Promise.all([ddbClient.insertItem(data), RDS.upsertGuestUserData(db, data) + .catch((error) => console.error('Failed to upsert user data:', error))]); } ), From 282d84781bbae6f226abd812c0a1492025a6f02c Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:10:12 -0800 Subject: [PATCH 85/90] fix(ci): use default environment --- .github/workflows/deploy_production.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/deploy_production.yml b/.github/workflows/deploy_production.yml index 77bbd15dc..c3d59ee20 100644 --- a/.github/workflows/deploy_production.yml +++ b/.github/workflows/deploy_production.yml @@ -99,10 +99,6 @@ jobs: runs-on: ubuntu-latest - environment: - name: backend-production - url: https://api.antalmanac.com - steps: - name: Checkout repository uses: actions/checkout@v3 From 14bc098344da1071f1f54d16fe5cc1c46da7c890 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:15:15 -0800 Subject: [PATCH 86/90] feat(saveUserData): only throw if DDB fails to write --- apps/backend/src/routers/users.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/routers/users.ts b/apps/backend/src/routers/users.ts index dda6f5b84..d12195e64 100644 --- a/apps/backend/src/routers/users.ts +++ b/apps/backend/src/routers/users.ts @@ -60,8 +60,16 @@ const usersRouter = router({ // Mangle duplicate schedule names data.userData.schedules = mangleDuplicateScheduleNames(data.userData.schedules); - return Promise.all([ddbClient.insertItem(data), RDS.upsertGuestUserData(db, data) - .catch((error) => console.error('Failed to upsert user data:', error))]); + // Await both, but only throw if DDB save fails. + const results = await Promise.allSettled([ + ddbClient.insertItem(data), + RDS.upsertGuestUserData(db, data) + .catch((error) => console.error('Failed to upsert user data:', error)) + ]); + + if (results[0].status === 'rejected') { + throw results[0].reason; + } } ), From d7ecd1fdcba63997ddf77939dec8592b84a0005f Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:18:23 -0800 Subject: [PATCH 87/90] test(ci): (temporarily) run migration --- .github/workflows/deploy_staging.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/deploy_staging.yml b/.github/workflows/deploy_staging.yml index c6f665ff5..e02da7db2 100644 --- a/.github/workflows/deploy_staging.yml +++ b/.github/workflows/deploy_staging.yml @@ -169,6 +169,9 @@ jobs: url: ${{ needs.get_staging_configuration.outputs.backend_environment_url }} status: in_progress + - name: Run database migrations + run: pnpm --filter "antalmanac-backend" migrate + - name: Build backend run: pnpm --filter "antalmanac-backend" build env: From b49373837bbf57b25171a7764f77cce56a31952b Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:20:03 -0800 Subject: [PATCH 88/90] Revert "fix(ci): use default environment" This reverts commit 282d84781bbae6f226abd812c0a1492025a6f02c. --- .github/workflows/deploy_production.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/deploy_production.yml b/.github/workflows/deploy_production.yml index c3d59ee20..77bbd15dc 100644 --- a/.github/workflows/deploy_production.yml +++ b/.github/workflows/deploy_production.yml @@ -99,6 +99,10 @@ jobs: runs-on: ubuntu-latest + environment: + name: backend-production + url: https://api.antalmanac.com + steps: - name: Checkout repository uses: actions/checkout@v3 From e42fd7f1371f6c59f67359e5700658fd43a1621a Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:33:19 -0800 Subject: [PATCH 89/90] feat(backend): separate env schema for RDS --- apps/backend/drizzle.config.ts | 4 ++-- apps/backend/src/env.ts | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/apps/backend/drizzle.config.ts b/apps/backend/drizzle.config.ts index a923e0ef9..7e03e4481 100644 --- a/apps/backend/drizzle.config.ts +++ b/apps/backend/drizzle.config.ts @@ -1,8 +1,8 @@ import { defineConfig } from "drizzle-kit"; -import { backendEnvSchema } from "./src/env"; +import { rdsEnvSchema } from "./src/env"; -const { DB_URL } = backendEnvSchema.parse(process.env); +const { DB_URL } = rdsEnvSchema.parse(process.env); export default defineConfig({ dialect: "postgresql", diff --git a/apps/backend/src/env.ts b/apps/backend/src/env.ts index c6ba9c54a..a5b642ddf 100644 --- a/apps/backend/src/env.ts +++ b/apps/backend/src/env.ts @@ -14,10 +14,27 @@ export const deployEnvSchema = z.object({ }) /** - * Environment variables required by the backend during runtime. + * Environment variables required by the backend to connect to the RDS instance. + */ +export const rdsEnvSchema = z.object({ + DB_URL: z.string(), + NODE_ENV: z.string().optional(), +}) + +/** + * Environment variables required by the backend to connect to the DynamoDB table. + * + * This will be removed once we complete migration to RDS. */ -export const backendEnvSchema = z.intersection(deployEnvSchema, z.object({ +export const ddbEnvSchema = z.object({ USERDATA_TABLE_NAME: z.string(), AWS_REGION: z.string(), NODE_ENV: z.string().optional(), -})) +}) + +/** + * Environment variables required by the backend during runtime. + */ +export const backendEnvSchema = z.intersection( + deployEnvSchema, rdsEnvSchema, ddbEnvSchema +) From ed8682410afa9d476982a9850afe7a1434eaf2b6 Mon Sep 17 00:00:00 2001 From: MinhxNguyen7 <64875104+MinhxNguyen7@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:37:05 -0800 Subject: [PATCH 90/90] Revert "test(ci): (temporarily) run migration" This reverts commit d7ecd1fdcba63997ddf77939dec8592b84a0005f. --- .github/workflows/deploy_staging.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/deploy_staging.yml b/.github/workflows/deploy_staging.yml index e02da7db2..c6f665ff5 100644 --- a/.github/workflows/deploy_staging.yml +++ b/.github/workflows/deploy_staging.yml @@ -169,9 +169,6 @@ jobs: url: ${{ needs.get_staging_configuration.outputs.backend_environment_url }} status: in_progress - - name: Run database migrations - run: pnpm --filter "antalmanac-backend" migrate - - name: Build backend run: pnpm --filter "antalmanac-backend" build env: