From 8e41f108125c089da673b4f8649358d6344d4a64 Mon Sep 17 00:00:00 2001 From: pengap Date: Mon, 8 Jan 2024 12:33:36 +0800 Subject: [PATCH 01/10] feat: user field support filter `Me` --- .gitignore | 1 - .ncurc.yml | 13 - apps/nestjs-backend/package.json | 25 +- apps/nestjs-backend/src/bootstrap.ts | 4 + .../aggregation-function.abstract.ts | 139 + .../aggregation-function.interface.ts | 0 .../aggregation-query.abstract.ts | 92 + .../aggregation-query.interface.ts | 3 + .../postgres/aggregation-function.postgres.ts | 21 + .../postgres/aggregation-query.postgres.ts | 35 + .../multiple-value-aggregation.adapter.ts} | 57 +- .../single-value-aggregation.adapter.ts | 18 + .../sqlite/aggregation-function.sqlite.ts | 16 + .../sqlite/aggregation-query.sqlite.ts | 35 + .../multiple-value-aggregation.adapter.ts | 35 + .../single-value-aggregation.adapter.ts | 11 + .../aggregation-function.abstract.ts | 139 - .../aggregation-function.sqlite.ts | 47 - .../src/db-provider/db.provider.interface.ts | 35 +- .../filter-query/filter-query.abstract.ts | 23 +- .../src/db-provider/postgres.provider.ts | 48 +- .../sort-query/sort-query.abstract.ts} | 24 +- .../sort-query/sort-query.interface.ts | 5 + .../sort-query/sort-query.postgres.ts | 3 + .../sort-query/sort-query.sqlite.ts | 3 + .../src/db-provider/sqlite.provider.ts | 46 +- .../aggregation/aggregation.service.ts | 135 +- .../aggregation-open-api.controller.ts | 22 +- .../open-api/aggregation-open-api.service.ts | 22 +- .../actions/triggers/trigger-core.ts | 6 +- .../src/features/record/record.service.ts | 10 +- .../translator/sort-query-translator.spec.ts | 92 - .../src/filter/global-exception.filter.ts | 1 - .../src/logger/logger.module.ts | 9 + .../test/aggregation.e2e-spec.ts | 492 +--- apps/nestjs-backend/test/data-helpers/20x.ts | 238 ++ apps/nextjs-app/package.json | 26 +- docker-bake.hcl | 18 + package.json | 8 +- packages/core/package.json | 6 +- packages/core/src/auth/index.ts | 1 + packages/core/src/auth/me-tag.ts | 4 + .../models/aggregation/aggregation.schema.ts | 7 + packages/db-main-prisma/package.json | 2 +- .../prisma/postgres/schema.prisma | 3 +- .../prisma/sqlite/schema.prisma | 3 +- .../db-main-prisma/prisma/template.prisma | 3 +- packages/eslint-config-bases/package.json | 22 +- packages/icons/package.json | 2 +- packages/openapi/package.json | 4 +- packages/sdk/package.json | 14 +- .../filter/component/FilterUserSelect.tsx | 11 +- packages/ui-lib/package.json | 24 +- pnpm-lock.yaml | 2291 ++++++++++------- 54 files changed, 2575 insertions(+), 1779 deletions(-) create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-function.abstract.ts rename apps/nestjs-backend/src/db-provider/{aggregation => aggregation-query}/aggregation-function.interface.ts (100%) create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.abstract.ts create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.interface.ts create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-function.postgres.ts create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-query.postgres.ts rename apps/nestjs-backend/src/db-provider/{aggregation/aggregation-function.postgres.ts => aggregation-query/postgres/multiple-value/multiple-value-aggregation.adapter.ts} (51%) create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/postgres/single-value/single-value-aggregation.adapter.ts create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-function.sqlite.ts create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-query.sqlite.ts create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/multiple-value/multiple-value-aggregation.adapter.ts create mode 100644 apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts delete mode 100644 apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.abstract.ts delete mode 100644 apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.sqlite.ts rename apps/nestjs-backend/src/{features/record/translator/sort-query-translator.ts => db-provider/sort-query/sort-query.abstract.ts} (51%) create mode 100644 apps/nestjs-backend/src/db-provider/sort-query/sort-query.interface.ts create mode 100644 apps/nestjs-backend/src/db-provider/sort-query/sort-query.postgres.ts create mode 100644 apps/nestjs-backend/src/db-provider/sort-query/sort-query.sqlite.ts delete mode 100644 apps/nestjs-backend/src/features/record/translator/sort-query-translator.spec.ts create mode 100644 apps/nestjs-backend/test/data-helpers/20x.ts create mode 100644 docker-bake.hcl create mode 100644 packages/core/src/auth/me-tag.ts diff --git a/.gitignore b/.gitignore index bf3c0ed5f..7c525a6db 100644 --- a/.gitignore +++ b/.gitignore @@ -47,7 +47,6 @@ pnpm-debug.log* # IDE .idea/* !.idea/modules.xml -!.idea/nextjs-monorepo-example.iml .project .classpath *.launch diff --git a/.ncurc.yml b/.ncurc.yml index 7f53421f2..3c2e373e5 100644 --- a/.ncurc.yml +++ b/.ncurc.yml @@ -4,21 +4,8 @@ # Add here exclusions on packages if any reject: [ - 'vitest', - '@vitest/coverage-v8', - '@vitest/coverage-istanbul', - '@vitest/ui', - 'vite-plugin-svgr', - '@remix-run/dev', - '@remix-run/eslint-config', - '@remix-run/node', - '@remix-run/react', - '@remix-run/serve', - '@vercel/remix', - 'remix', - # Too early cause in esm 'is-port-reachable', 'nanoid', diff --git a/apps/nestjs-backend/package.json b/apps/nestjs-backend/package.json index 34ec372ab..86873ef0e 100644 --- a/apps/nestjs-backend/package.json +++ b/apps/nestjs-backend/package.json @@ -51,7 +51,6 @@ "@faker-js/faker": "8.3.1", "@nestjs/cli": "10.2.1", "@nestjs/testing": "10.3.0", - "@swc/core": "1.3.101", "@teable-group/eslint-config-bases": "workspace:^", "@types/bcrypt": "5.0.2", "@types/cookie": "0.6.0", @@ -66,7 +65,7 @@ "@types/node": "18.18.2", "@types/node-fetch": "2.6.10", "@types/nodemailer": "6.4.14", - "@types/passport-jwt": "3.0.13", + "@types/passport-jwt": "4.0.0", "@types/passport-local": "1.0.38", "@types/qs": "6.9.11", "@types/sharedb": "3.3.8", @@ -74,7 +73,7 @@ "copy-webpack-plugin": "11.0.0", "cross-env": "7.0.3", "dotenv-flow": "4.1.0", - "dotenv-flow-cli": "1.0.0", + "dotenv-flow-cli": "1.1.1", "es-check": "7.1.1", "eslint": "8.56.0", "eslint-config-next": "13.0.2", @@ -89,8 +88,8 @@ "ts-node": "10.9.2", "typescript": "5.3.3", "unplugin-swc": "1.4.4", - "vite-tsconfig-paths": "4.2.2", - "vitest": "1.1.0", + "vite-tsconfig-paths": "4.2.3", + "vitest": "1.1.3", "vitest-mock-extended": "1.3.1", "webpack": "5.89.0" }, @@ -108,14 +107,24 @@ "@nestjs/swagger": "7.1.17", "@nestjs/terminus": "10.2.0", "@nestjs/websockets": "10.3.0", + "@opentelemetry/api": "1.7.0", + "@opentelemetry/context-async-hooks": "1.19.0", + "@opentelemetry/exporter-trace-otlp-proto": "0.46.0", + "@opentelemetry/instrumentation-express": "0.34.1", + "@opentelemetry/instrumentation-http": "0.46.0", + "@opentelemetry/instrumentation-pino": "0.34.5", + "@opentelemetry/resources": "1.19.0", + "@opentelemetry/sdk-node": "0.46.0", + "@opentelemetry/semantic-conventions": "1.19.0", "@prisma/client": "5.7.1", + "@prisma/instrumentation": "5.7.1", "@teable-group/common-i18n": "workspace:^", "@teable-group/core": "workspace:^", "@teable-group/db-main-prisma": "workspace:^", "@teable-group/openapi": "workspace:^", "@teamwork/websocket-json-stream": "2.0.0", "ajv": "8.12.0", - "axios": "1.6.3", + "axios": "1.6.5", "bcrypt": "5.1.1", "class-transformer": "0.5.1", "class-validator": "0.14.0", @@ -129,7 +138,7 @@ "helmet": "7.1.0", "is-port-reachable": "3.1.0", "joi": "17.11.0", - "json-rules-engine": "6.1.2", + "json-rules-engine": "6.5.0", "jsonpath-plus": "7.2.0", "knex": "3.0.1", "lodash": "4.17.21", @@ -144,7 +153,7 @@ "nestjs-redoc": "2.2.2", "next": "13.0.2", "node-fetch": "2.7.0", - "nodemailer": "6.9.7", + "nodemailer": "6.9.8", "passport": "0.7.0", "passport-jwt": "4.0.1", "passport-local": "1.0.0", diff --git a/apps/nestjs-backend/src/bootstrap.ts b/apps/nestjs-backend/src/bootstrap.ts index e171feeb1..5aa5373a0 100644 --- a/apps/nestjs-backend/src/bootstrap.ts +++ b/apps/nestjs-backend/src/bootstrap.ts @@ -19,6 +19,8 @@ import { RedocModule } from 'nestjs-redoc'; import { AppModule } from './app.module'; import type { ISecurityWebConfig, ISwaggerConfig } from './configs/bootstrap.config'; import { GlobalExceptionFilter } from './filter/global-exception.filter'; +import otelSDK from './tracing'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any declare const module: any; @@ -62,6 +64,8 @@ export async function setUpAppMiddleware(app: INestApplication, configService: C } export async function bootstrap() { + otelSDK.start(); + const app = await NestFactory.create(AppModule, { bufferLogs: true }); const configService = app.get(ConfigService); diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-function.abstract.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-function.abstract.ts new file mode 100644 index 000000000..f01c4b10b --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-function.abstract.ts @@ -0,0 +1,139 @@ +import { InternalServerErrorException, Logger } from '@nestjs/common'; +import { StatisticsFunc } from '@teable-group/core'; +import type { Knex } from 'knex'; +import type { IFieldInstance } from '../../features/field/model/factory'; +import type { IAggregationFunctionInterface } from './aggregation-function.interface'; + +export abstract class AbstractAggregationFunction implements IAggregationFunctionInterface { + private logger = new Logger(AbstractAggregationFunction.name); + + protected tableColumnRef: string; + + constructor( + protected readonly knex: Knex, + protected readonly dbTableName: string, + protected readonly field: IFieldInstance + ) { + const { dbFieldName } = this.field; + + this.tableColumnRef = `${this.dbTableName}.${dbFieldName}`; + } + + compiler(builderClient: Knex.QueryBuilder, aggFunc: StatisticsFunc) { + const functionHandlers = { + [StatisticsFunc.Empty]: this.empty, + [StatisticsFunc.Filled]: this.filled, + [StatisticsFunc.Unique]: this.unique, + [StatisticsFunc.Max]: this.max, + [StatisticsFunc.Min]: this.min, + [StatisticsFunc.Sum]: this.sum, + [StatisticsFunc.Average]: this.average, + [StatisticsFunc.Checked]: this.checked, + [StatisticsFunc.UnChecked]: this.unChecked, + [StatisticsFunc.PercentEmpty]: this.percentEmpty, + [StatisticsFunc.PercentFilled]: this.percentFilled, + [StatisticsFunc.PercentUnique]: this.percentUnique, + [StatisticsFunc.PercentChecked]: this.percentChecked, + [StatisticsFunc.PercentUnChecked]: this.percentUnChecked, + [StatisticsFunc.EarliestDate]: this.earliestDate, + [StatisticsFunc.LatestDate]: this.latestDate, + [StatisticsFunc.DateRangeOfDays]: this.dateRangeOfDays, + [StatisticsFunc.DateRangeOfMonths]: this.dateRangeOfMonths, + [StatisticsFunc.TotalAttachmentSize]: this.totalAttachmentSize, + }; + const chosenHandler = functionHandlers[aggFunc].bind(this); + + if (!chosenHandler) { + throw new InternalServerErrorException(`Unknown function ${aggFunc} for aggregation`); + } + + const { id: fieldId, isMultipleCellValue } = this.field; + + let rawSql: string = chosenHandler(); + + if (isMultipleCellValue) { + const joinTable = `${fieldId}_mcv`; + + builderClient.with(`${fieldId}_mcv`, this.knex.raw(rawSql)); + builderClient.joinRaw(`, ${this.knex.ref(joinTable)}`); + + rawSql = `MAX(${this.knex.ref(`${joinTable}.value`)})`; + } + + return builderClient.select(this.knex.raw(`${rawSql} AS ??`, [`${fieldId}_${aggFunc}`])); + } + + empty(): string { + return this.knex.raw(`COUNT(*) - COUNT(??)`, [this.tableColumnRef]).toQuery(); + } + + filled(): string { + return this.knex.raw(`COUNT(??)`, [this.tableColumnRef]).toQuery(); + } + + unique(): string { + return this.knex.raw(`COUNT(DISTINCT ??)`, [this.tableColumnRef]).toQuery(); + } + + max(): string { + return this.knex.raw(`MAX(??)`, [this.tableColumnRef]).toQuery(); + } + + min(): string { + return this.knex.raw(`MIN(??)`, [this.tableColumnRef]).toQuery(); + } + + sum(): string { + return this.knex.raw(`SUM(??)`, [this.tableColumnRef]).toQuery(); + } + + average(): string { + return this.knex.raw(`AVG(??)`, [this.tableColumnRef]).toQuery(); + } + + checked(): string { + return this.filled(); + } + + unChecked(): string { + return this.empty(); + } + + percentEmpty(): string { + return this.knex + .raw(`((COUNT(*) - COUNT(??)) * 1.0 / COUNT(*)) * 100`, [this.tableColumnRef]) + .toQuery(); + } + + percentFilled(): string { + return this.knex.raw(`(COUNT(??) * 1.0 / COUNT(*)) * 100`, [this.tableColumnRef]).toQuery(); + } + + percentUnique(): string { + return this.knex + .raw(`(COUNT(DISTINCT ??) * 1.0 / COUNT(*)) * 100`, [this.tableColumnRef]) + .toQuery(); + } + + percentChecked(): string { + return this.percentFilled(); + } + + percentUnChecked(): string { + return this.percentEmpty(); + } + + earliestDate(): string { + return this.min(); + } + + latestDate(): string { + return this.max(); + } + + abstract dateRangeOfDays(): string; + + abstract dateRangeOfMonths(): string; + + abstract totalAttachmentSize(): string; +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.interface.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-function.interface.ts similarity index 100% rename from apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.interface.ts rename to apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-function.interface.ts diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.abstract.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.abstract.ts new file mode 100644 index 000000000..dc82ef107 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.abstract.ts @@ -0,0 +1,92 @@ +import { BadRequestException, Logger } from '@nestjs/common'; +import type { IAggregationField } from '@teable-group/core'; +import { CellValueType, DbFieldType, getValidStatisticFunc } from '@teable-group/core'; +import type { Knex } from 'knex'; +import type { IFieldInstance } from '../../features/field/model/factory'; +import type { IAggregationQueryExtra } from '../db.provider.interface'; +import type { AbstractAggregationFunction } from './aggregation-function.abstract'; +import type { IAggregationQueryInterface } from './aggregation-query.interface'; + +export abstract class AbstractAggregationQuery implements IAggregationQueryInterface { + private logger = new Logger(AbstractAggregationQuery.name); + + constructor( + protected readonly knex: Knex, + protected readonly originQueryBuilder: Knex.QueryBuilder, + protected readonly dbTableName: string, + protected readonly fields?: { [fieldId: string]: IFieldInstance }, + protected readonly aggregationFields?: IAggregationField[], + protected readonly extra?: IAggregationQueryExtra + ) {} + + toQuerySql(): string { + const queryBuilder = this.originQueryBuilder; + + if (!this.aggregationFields || !this.aggregationFields.length) { + return queryBuilder.toQuery(); + } + + this.validAggregationField(this.aggregationFields, this.extra); + + this.aggregationFields.forEach(({ fieldId, statisticFunc }) => { + const field = this.fields && this.fields[fieldId]; + if (!field) { + return queryBuilder; + } + + this.getAggregationAdapter(field).compiler(queryBuilder, statisticFunc); + }); + + const aggSql = queryBuilder.toQuery(); + this.logger.debug('toQuerySql AggSql: %s', aggSql); + return aggSql; + } + + private validAggregationField( + aggregationFields: IAggregationField[], + _extra?: IAggregationQueryExtra + ) { + aggregationFields.forEach(({ fieldId, statisticFunc }) => { + const field = this.fields && this.fields[fieldId]; + + if (!field) { + throw new BadRequestException(`field: '${fieldId}' is invalid`); + } + + const validStatisticFunc = getValidStatisticFunc(field); + if (statisticFunc && !validStatisticFunc.includes(statisticFunc)) { + throw new BadRequestException( + `field: '${fieldId}', aggregation func: '${statisticFunc}' is invalid, Only the following func are allowed: [${validStatisticFunc}]` + ); + } + }); + } + + private getAggregationAdapter(field: IFieldInstance): AbstractAggregationFunction { + const { dbFieldType } = field; + switch (field.cellValueType) { + case CellValueType.Boolean: + return this.booleanAggregation(field); + case CellValueType.Number: + return this.numberAggregation(field); + case CellValueType.DateTime: + return this.dateTimeAggregation(field); + case CellValueType.String: { + if (dbFieldType === DbFieldType.Json) { + return this.jsonAggregation(field); + } + return this.stringAggregation(field); + } + } + } + + abstract booleanAggregation(field: IFieldInstance): AbstractAggregationFunction; + + abstract numberAggregation(field: IFieldInstance): AbstractAggregationFunction; + + abstract dateTimeAggregation(field: IFieldInstance): AbstractAggregationFunction; + + abstract stringAggregation(field: IFieldInstance): AbstractAggregationFunction; + + abstract jsonAggregation(field: IFieldInstance): AbstractAggregationFunction; +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.interface.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.interface.ts new file mode 100644 index 000000000..592b7c715 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/aggregation-query.interface.ts @@ -0,0 +1,3 @@ +export interface IAggregationQueryInterface { + toQuerySql(): string; +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-function.postgres.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-function.postgres.ts new file mode 100644 index 000000000..f120b7a18 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-function.postgres.ts @@ -0,0 +1,21 @@ +import { NotImplementedException } from '@nestjs/common'; +import { AbstractAggregationFunction } from '../aggregation-function.abstract'; + +export class AggregationFunctionPostgres extends AbstractAggregationFunction { + dateRangeOfDays(): string { + throw new NotImplementedException(); + } + + dateRangeOfMonths(): string { + throw new NotImplementedException(); + } + + totalAttachmentSize(): string { + return this.knex + .raw( + `SELECT SUM(("value"::json ->> 'size')::INTEGER) AS "value" FROM ??, json_array_elements(??)`, + [this.dbTableName, this.tableColumnRef] + ) + .toQuery(); + } +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-query.postgres.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-query.postgres.ts new file mode 100644 index 000000000..d03cce07d --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/aggregation-query.postgres.ts @@ -0,0 +1,35 @@ +import type { IFieldInstance } from '../../../features/field/model/factory'; +import { AbstractAggregationQuery } from '../aggregation-query.abstract'; +import type { AggregationFunctionPostgres } from './aggregation-function.postgres'; +import { MultipleValueAggregationAdapter } from './multiple-value/multiple-value-aggregation.adapter'; +import { SingleValueAggregationAdapter } from './single-value/single-value-aggregation.adapter'; + +export class AggregationQueryPostgres extends AbstractAggregationQuery { + private coreAggregation(field: IFieldInstance): AggregationFunctionPostgres { + const { isMultipleCellValue } = field; + if (isMultipleCellValue) { + return new MultipleValueAggregationAdapter(this.knex, this.dbTableName, field); + } + return new SingleValueAggregationAdapter(this.knex, this.dbTableName, field); + } + + booleanAggregation(field: IFieldInstance): AggregationFunctionPostgres { + return this.coreAggregation(field); + } + + numberAggregation(field: IFieldInstance): AggregationFunctionPostgres { + return this.coreAggregation(field); + } + + dateTimeAggregation(field: IFieldInstance): AggregationFunctionPostgres { + return this.coreAggregation(field); + } + + stringAggregation(field: IFieldInstance): AggregationFunctionPostgres { + return this.coreAggregation(field); + } + + jsonAggregation(field: IFieldInstance): AggregationFunctionPostgres { + return this.coreAggregation(field); + } +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.postgres.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/multiple-value/multiple-value-aggregation.adapter.ts similarity index 51% rename from apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.postgres.ts rename to apps/nestjs-backend/src/db-provider/aggregation-query/postgres/multiple-value/multiple-value-aggregation.adapter.ts index 23c56e533..3ae8b7d46 100644 --- a/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.postgres.ts +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/multiple-value/multiple-value-aggregation.adapter.ts @@ -1,95 +1,74 @@ -import { AbstractAggregationFunction } from './aggregation-function.abstract'; +import { AggregationFunctionPostgres } from '../aggregation-function.postgres'; -export class AggregationFunctionPostgres extends AbstractAggregationFunction { - multipleCellValueUnique(): string { +export class MultipleValueAggregationAdapter extends AggregationFunctionPostgres { + unique(): string { return this.knex .raw(`SELECT COUNT(DISTINCT "value") AS "value" FROM ??, json_array_elements_text(??)`, [ this.dbTableName, - this.dbColumnName, + this.tableColumnRef, ]) .toQuery(); } - multipleCellValueMax(): string { + max(): string { return this.knex .raw(`SELECT MAX("value"::INTEGER) AS "value" FROM ??, json_array_elements_text(??)`, [ this.dbTableName, - this.dbColumnName, + this.tableColumnRef, ]) .toQuery(); } - multipleCellValueMin(): string { + min(): string { return this.knex .raw(`SELECT MIN("value"::INTEGER) AS "value" FROM ??, json_array_elements_text(??)`, [ this.dbTableName, - this.dbColumnName, + this.tableColumnRef, ]) .toQuery(); } - multipleCellValueSum(): string { + sum(): string { return this.knex .raw(`SELECT SUM("value"::INTEGER) AS "value" FROM ??, json_array_elements_text(??)`, [ this.dbTableName, - this.dbColumnName, + this.tableColumnRef, ]) .toQuery(); } - multipleCellValueAverage(): string { + average(): string { return this.knex .raw(`SELECT AVG("value"::INTEGER) AS "value" FROM ??, json_array_elements_text(??)`, [ this.dbTableName, - this.dbColumnName, + this.tableColumnRef, ]) .toQuery(); } - multipleCellValuePercentUnique(): string { + percentUnique(): string { return this.knex .raw( `SELECT (COUNT(DISTINCT "value") * 1.0 / COUNT(*)) * 100 AS "value" FROM ??, json_array_elements_text(??)`, - [this.dbTableName, this.dbColumnName] + [this.dbTableName, this.tableColumnRef] ) .toQuery(); } - singleCellValueDateRangeOfDays(): string { - return this.knex - .raw(`extract(DAY FROM (MAX(??) - MIN(??)))::INTEGER`, [this.dbColumnName, this.dbColumnName]) - .toQuery(); - } - - multipleCellValueDateRangeOfDays(): string { + dateRangeOfDays(): string { return this.knex .raw( `SELECT extract(DAY FROM (MAX("value"::TIMESTAMPTZ) - MIN("value"::TIMESTAMPTZ)))::INTEGER AS "value" FROM ??, json_array_elements_text(??)`, - [this.dbTableName, this.dbColumnName] + [this.dbTableName, this.tableColumnRef] ) .toQuery(); } - singleCellValueDateRangeOfMonths(): string { - return this.knex - .raw(`CONCAT(MAX(??), ',', MIN(??))`, [this.dbColumnName, this.dbColumnName]) - .toQuery(); - } - - multipleCellValueDateRangeOfMonths(): string { + dateRangeOfMonths(): string { return this.knex .raw( `SELECT CONCAT(MAX("value"::TIMESTAMPTZ), ',', MIN("value"::TIMESTAMPTZ)) AS "value" FROM ??, json_array_elements_text(??)`, - [this.dbTableName, this.dbColumnName] - ) - .toQuery(); - } - - totalAttachmentSize(): string { - return this.knex - .raw( - `SELECT SUM(("value"::json ->> 'size')::INTEGER) AS "value" FROM ??, json_array_elements(??)`, - [this.dbTableName, this.dbColumnName] + [this.dbTableName, this.tableColumnRef] ) .toQuery(); } diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/single-value/single-value-aggregation.adapter.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/single-value/single-value-aggregation.adapter.ts new file mode 100644 index 000000000..8fb7311a4 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/postgres/single-value/single-value-aggregation.adapter.ts @@ -0,0 +1,18 @@ +import { AggregationFunctionPostgres } from '../aggregation-function.postgres'; + +export class SingleValueAggregationAdapter extends AggregationFunctionPostgres { + dateRangeOfDays(): string { + return this.knex + .raw(`extract(DAY FROM (MAX(??) - MIN(??)))::INTEGER`, [ + this.tableColumnRef, + this.tableColumnRef, + ]) + .toQuery(); + } + + dateRangeOfMonths(): string { + return this.knex + .raw(`CONCAT(MAX(??), ',', MIN(??))`, [this.tableColumnRef, this.tableColumnRef]) + .toQuery(); + } +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-function.sqlite.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-function.sqlite.ts new file mode 100644 index 000000000..fa22ba496 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-function.sqlite.ts @@ -0,0 +1,16 @@ +import { NotImplementedException } from '@nestjs/common'; +import { AbstractAggregationFunction } from '../aggregation-function.abstract'; + +export class AggregationFunctionSqlite extends AbstractAggregationFunction { + dateRangeOfDays(): string { + throw new NotImplementedException(); + } + + dateRangeOfMonths(): string { + throw new NotImplementedException(); + } + + totalAttachmentSize(): string { + return `SELECT SUM(json_extract(json_each.value, '$.size')) AS value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-query.sqlite.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-query.sqlite.ts new file mode 100644 index 000000000..617ef1814 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/aggregation-query.sqlite.ts @@ -0,0 +1,35 @@ +import type { IFieldInstance } from '../../../features/field/model/factory'; +import { AbstractAggregationQuery } from '../aggregation-query.abstract'; +import type { AggregationFunctionSqlite } from './aggregation-function.sqlite'; +import { MultipleValueAggregationAdapter } from './multiple-value/multiple-value-aggregation.adapter'; +import { SingleValueAggregationAdapter } from './single-value/single-value-aggregation.adapter'; + +export class AggregationQuerySqlite extends AbstractAggregationQuery { + private coreAggregation(field: IFieldInstance): AggregationFunctionSqlite { + const { isMultipleCellValue } = field; + if (isMultipleCellValue) { + return new MultipleValueAggregationAdapter(this.knex, this.dbTableName, field); + } + return new SingleValueAggregationAdapter(this.knex, this.dbTableName, field); + } + + booleanAggregation(field: IFieldInstance): AggregationFunctionSqlite { + return this.coreAggregation(field); + } + + numberAggregation(field: IFieldInstance): AggregationFunctionSqlite { + return this.coreAggregation(field); + } + + dateTimeAggregation(field: IFieldInstance): AggregationFunctionSqlite { + return this.coreAggregation(field); + } + + stringAggregation(field: IFieldInstance): AggregationFunctionSqlite { + return this.coreAggregation(field); + } + + jsonAggregation(field: IFieldInstance): AggregationFunctionSqlite { + return this.coreAggregation(field); + } +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/multiple-value/multiple-value-aggregation.adapter.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/multiple-value/multiple-value-aggregation.adapter.ts new file mode 100644 index 000000000..3b478d8f6 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/multiple-value/multiple-value-aggregation.adapter.ts @@ -0,0 +1,35 @@ +import { AggregationFunctionSqlite } from '../aggregation-function.sqlite'; + +export class MultipleValueAggregationAdapter extends AggregationFunctionSqlite { + unique(): string { + return `SELECT COUNT(DISTINCT json_each.value) as value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } + + max(): string { + return `SELECT MAX(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } + + min(): string { + return `SELECT MIN(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } + + sum(): string { + return `SELECT SUM(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } + + average(): string { + return `SELECT AVG(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } + + percentUnique(): string { + return `SELECT (COUNT(DISTINCT json_each.value) * 1.0 / COUNT(*)) * 100 AS value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } + + dateRangeOfDays(): string { + return `SELECT CAST(julianday(MAX(json_each.value)) - julianday(MIN(json_each.value)) AS INTEGER) AS value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } + + dateRangeOfMonths(): string { + return `SELECT MAX(json_each.value) || ',' || MIN(json_each.value) AS value FROM ${this.dbTableName}, json_each(${this.tableColumnRef})`; + } +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts new file mode 100644 index 000000000..2697ac81a --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts @@ -0,0 +1,11 @@ +import { AggregationFunctionSqlite } from '../aggregation-function.sqlite'; + +export class SingleValueAggregationAdapter extends AggregationFunctionSqlite { + dateRangeOfDays(): string { + return `CAST(julianday(MAX(${this.tableColumnRef})) - julianday(MIN(${this.tableColumnRef})) as INTEGER)`; + } + + dateRangeOfMonths(): string { + return `max(${this.tableColumnRef}}) || ',' || min(${this.tableColumnRef}})`; + } +} diff --git a/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.abstract.ts b/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.abstract.ts deleted file mode 100644 index 7bbec0b9c..000000000 --- a/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.abstract.ts +++ /dev/null @@ -1,139 +0,0 @@ -import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../features/field/model/factory'; -import type { IAggregationFunctionInterface } from './aggregation-function.interface'; - -export abstract class AbstractAggregationFunction implements IAggregationFunctionInterface { - protected dbColumnName: string; - - protected isMultipleCellValue?: boolean; - constructor( - protected readonly knex: Knex, - protected readonly dbTableName: string, - protected readonly field: IFieldInstance - ) { - const { dbFieldName, isMultipleCellValue } = this.field; - - this.dbColumnName = `${this.dbTableName}.${dbFieldName}`; - this.isMultipleCellValue = isMultipleCellValue; - } - - empty(): string { - return this.knex.raw(`COUNT(*) - COUNT(??)`, [this.dbColumnName]).toQuery(); - } - - filled(): string { - return this.knex.raw(`COUNT(??)`, [this.dbColumnName]).toQuery(); - } - - unique(): string { - if (this.isMultipleCellValue) { - return this.multipleCellValueUnique(); - } - return this.knex.raw(`COUNT(DISTINCT ??)`, [this.dbColumnName]).toQuery(); - } - - max(): string { - if (this.isMultipleCellValue) { - return this.multipleCellValueMax(); - } - return this.knex.raw(`MAX(??)`, [this.dbColumnName]).toQuery(); - } - - min(): string { - if (this.isMultipleCellValue) { - return this.multipleCellValueMin(); - } - return this.knex.raw(`MIN(??)`, [this.dbColumnName]).toQuery(); - } - - sum(): string { - if (this.isMultipleCellValue) { - return this.multipleCellValueSum(); - } - return this.knex.raw(`SUM(??)`, [this.dbColumnName]).toQuery(); - } - - average(): string { - if (this.isMultipleCellValue) { - return this.multipleCellValueAverage(); - } - return this.knex.raw(`AVG(??)`, [this.dbColumnName]).toQuery(); - } - - checked(): string { - return this.filled(); - } - - unChecked(): string { - return this.empty(); - } - - percentEmpty(): string { - return this.knex - .raw(`((COUNT(*) - COUNT(??)) * 1.0 / COUNT(*)) * 100`, [this.dbColumnName]) - .toQuery(); - } - - percentFilled(): string { - return this.knex.raw(`(COUNT(??) * 1.0 / COUNT(*)) * 100`, [this.dbColumnName]).toQuery(); - } - - percentUnique(): string { - if (this.isMultipleCellValue) { - return this.multipleCellValuePercentUnique(); - } - return this.knex - .raw(`(COUNT(DISTINCT ??) * 1.0 / COUNT(*)) * 100`, [this.dbColumnName]) - .toQuery(); - } - - percentChecked(): string { - return this.percentFilled(); - } - - percentUnChecked(): string { - return this.percentEmpty(); - } - - earliestDate(): string { - return this.min(); - } - - latestDate(): string { - return this.max(); - } - - dateRangeOfDays(): string { - return this.isMultipleCellValue - ? this.multipleCellValueDateRangeOfDays() - : this.singleCellValueDateRangeOfDays(); - } - - dateRangeOfMonths(): string { - return this.isMultipleCellValue - ? this.multipleCellValueDateRangeOfMonths() - : this.singleCellValueDateRangeOfMonths(); - } - - abstract totalAttachmentSize(): string; - - abstract multipleCellValueUnique(): string; - - abstract multipleCellValueMax(): string; - - abstract multipleCellValueMin(): string; - - abstract multipleCellValueSum(): string; - - abstract multipleCellValueAverage(): string; - - abstract multipleCellValuePercentUnique(): string; - - abstract singleCellValueDateRangeOfDays(): string; - - abstract multipleCellValueDateRangeOfDays(): string; - - abstract singleCellValueDateRangeOfMonths(): string; - - abstract multipleCellValueDateRangeOfMonths(): string; -} diff --git a/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.sqlite.ts b/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.sqlite.ts deleted file mode 100644 index a49f4ffbd..000000000 --- a/apps/nestjs-backend/src/db-provider/aggregation/aggregation-function.sqlite.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { AbstractAggregationFunction } from './aggregation-function.abstract'; - -export class AggregationFunctionSqlite extends AbstractAggregationFunction { - multipleCellValueUnique(): string { - return `SELECT COUNT(DISTINCT json_each.value) as value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - multipleCellValueMax(): string { - return `SELECT MAX(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - multipleCellValueMin(): string { - return `SELECT MIN(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - multipleCellValueSum(): string { - return `SELECT SUM(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - multipleCellValueAverage(): string { - return `SELECT AVG(json_each.value) as value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - multipleCellValuePercentUnique(): string { - return `SELECT (COUNT(DISTINCT json_each.value) * 1.0 / COUNT(*)) * 100 AS value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - singleCellValueDateRangeOfDays(): string { - return `CAST(julianday(MAX(${this.dbColumnName})) - julianday(MIN(${this.dbColumnName})) as INTEGER)`; - } - - multipleCellValueDateRangeOfDays(): string { - return `SELECT CAST(julianday(MAX(json_each.value)) - julianday(MIN(json_each.value)) AS INTEGER) AS value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - singleCellValueDateRangeOfMonths(): string { - return `max(${this.dbColumnName}}) || ',' || min(${this.dbColumnName}})`; - } - - multipleCellValueDateRangeOfMonths(): string { - return `SELECT MAX(json_each.value) || ',' || MIN(json_each.value) AS value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } - - totalAttachmentSize(): string { - return `SELECT SUM(json_extract(json_each.value, '$.size')) AS value FROM ${this.dbTableName}, json_each(${this.dbColumnName})`; - } -} diff --git a/apps/nestjs-backend/src/db-provider/db.provider.interface.ts b/apps/nestjs-backend/src/db-provider/db.provider.interface.ts index 33d1b40f6..b76e357d0 100644 --- a/apps/nestjs-backend/src/db-provider/db.provider.interface.ts +++ b/apps/nestjs-backend/src/db-provider/db.provider.interface.ts @@ -1,9 +1,22 @@ -import type { DriverClient, IFilter } from '@teable-group/core'; +import type { DriverClient, IAggregationField, IFilter, ISort } from '@teable-group/core'; import type { Knex } from 'knex'; import type { IFieldInstance } from '../features/field/model/factory'; import type { SchemaType } from '../features/field/util'; -import type { IAggregationFunctionInterface } from './aggregation/aggregation-function.interface'; +import type { IAggregationQueryInterface } from './aggregation-query/aggregation-query.interface'; import type { IFilterQueryInterface } from './filter-query/filter-query.interface'; +import type { ISortQueryInterface } from './sort-query/sort-query.interface'; + +export type IFilterQueryExtra = { + withUserId?: string; + + [key: string]: unknown; +}; + +export type ISortQueryExtra = { + [key: string]: unknown; +}; + +export type IAggregationQueryExtra = { filter?: IFilter } & IFilterQueryExtra; export interface IDbProvider { driver: DriverClient; @@ -35,11 +48,25 @@ export interface IDbProvider { data: { id: string; values: { [key: string]: unknown } }[]; }): { insertTempTableSql: string; updateRecordSql: string }; - aggregationFunction(dbTableName: string, field: IFieldInstance): IAggregationFunctionInterface; + aggregationQuery( + originQueryBuilder: Knex.QueryBuilder, + dbTableName: string, + fields?: { [fieldId: string]: IFieldInstance }, + aggregationFields?: IAggregationField[], + extra?: IAggregationQueryExtra + ): IAggregationQueryInterface; filterQuery( originKnex: Knex.QueryBuilder, fields?: { [fieldId: string]: IFieldInstance }, - filter?: IFilter | null + filter?: IFilter, + extra?: IFilterQueryExtra ): IFilterQueryInterface; + + sortQuery( + originKnex: Knex.QueryBuilder, + fields?: { [fieldId: string]: IFieldInstance }, + sortObjs?: ISort['sortObjs'], + extra?: ISortQueryExtra + ): ISortQueryInterface; } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/filter-query.abstract.ts b/apps/nestjs-backend/src/db-provider/filter-query/filter-query.abstract.ts index 956cd1d3f..437d4ba39 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/filter-query.abstract.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/filter-query.abstract.ts @@ -14,31 +14,35 @@ import { getFilterOperatorMapping, getValidFilterSubOperators, isEmpty, + isMeTag, isNotEmpty, } from '@teable-group/core'; import type { Knex } from 'knex'; import { includes, invert, isObject } from 'lodash'; import type { IFieldInstance } from '../../features/field/model/factory'; +import type { IFilterQueryExtra } from '../db.provider.interface'; import type { AbstractCellValueFilter } from './cell-value-filter.abstract'; import type { IFilterQueryInterface } from './filter-query.interface'; export abstract class AbstractFilterQuery implements IFilterQueryInterface { private logger = new Logger(AbstractFilterQuery.name); + constructor( protected readonly originQueryBuilder: Knex.QueryBuilder, - protected readonly fields?: { [p: string]: IFieldInstance }, - protected readonly filter?: IFilter | null + protected readonly fields?: { [fieldId: string]: IFieldInstance }, + protected readonly filter?: IFilter, + protected readonly extra?: IFilterQueryExtra ) {} appendQueryBuilder(): Knex.QueryBuilder { - this.filterNullValues(this.filter); + this.preProcessRemoveNullAndReplaceMe(this.filter); return this.parseFilters(this.originQueryBuilder, this.filter); } private parseFilters( queryBuilder: Knex.QueryBuilder, - filter?: IFilter | null, + filter?: IFilter, parentConjunction?: IConjunction ): Knex.QueryBuilder { if (!filter || !filter.filterSet) { @@ -128,16 +132,18 @@ export abstract class AbstractFilterQuery implements IFilterQueryInterface { } } - private filterNullValues(filter?: IFilter | null) { + private preProcessRemoveNullAndReplaceMe(filter?: IFilter) { // If the filter is not defined or has no keys, exit the function if (!filter || !Object.keys(filter).length) { return; } + const replaceUserId = this.extra?.withUserId; + filter.filterSet = filter.filterSet.filter((filterItem) => { // If 'filterSet' exists in filterItem, recursively call filterNullValues // Always keep the filterItem, as we are modifying it in-place if ('filterSet' in filterItem) { - this.filterNullValues(filterItem as IFilter); + this.preProcessRemoveNullAndReplaceMe(filterItem as IFilter); return true; } const { fieldId, operator, value } = filterItem; @@ -146,6 +152,11 @@ export abstract class AbstractFilterQuery implements IFilterQueryInterface { const field = this.fields?.[fieldId]; if (!field) return false; + // Replace 'me' tag with actual user ID in case of a user field + if (field.type === FieldType.User && isMeTag(value as string) && replaceUserId) { + filterItem.value = replaceUserId; + } + // Keep the filterItem if any of the following conditions are met: // - The value is not null // - The field type is a checkbox diff --git a/apps/nestjs-backend/src/db-provider/postgres.provider.ts b/apps/nestjs-backend/src/db-provider/postgres.provider.ts index d5e9f0bfb..877c1ede9 100644 --- a/apps/nestjs-backend/src/db-provider/postgres.provider.ts +++ b/apps/nestjs-backend/src/db-provider/postgres.provider.ts @@ -1,14 +1,21 @@ import { Logger } from '@nestjs/common'; -import type { IFilter } from '@teable-group/core'; +import type { IAggregationField, IFilter, ISort } from '@teable-group/core'; import { DriverClient } from '@teable-group/core'; import type { Knex } from 'knex'; import type { IFieldInstance } from '../features/field/model/factory'; import type { SchemaType } from '../features/field/util'; -import type { IAggregationFunctionInterface } from './aggregation/aggregation-function.interface'; -import { AggregationFunctionPostgres } from './aggregation/aggregation-function.postgres'; -import type { IDbProvider } from './db.provider.interface'; +import type { IAggregationQueryInterface } from './aggregation-query/aggregation-query.interface'; +import type { + IAggregationQueryExtra, + IDbProvider, + IFilterQueryExtra, + ISortQueryExtra, +} from './db.provider.interface'; import type { IFilterQueryInterface } from './filter-query/filter-query.interface'; import { FilterQueryPostgres } from './filter-query/postgres/filter-query.postgres'; +import type { ISortQueryInterface } from './sort-query/sort-query.interface'; +import { SortQueryPostgres } from './sort-query/sort-query.postgres'; +import { AggregationQueryPostgres } from './aggregation-query/postgres/aggregation-query.postgres'; export class PostgresProvider implements IDbProvider { private readonly logger = new Logger(PostgresProvider.name); @@ -117,15 +124,38 @@ export class PostgresProvider implements IDbProvider { return { insertTempTableSql, updateRecordSql }; } - aggregationFunction(dbTableName: string, field: IFieldInstance): IAggregationFunctionInterface { - return new AggregationFunctionPostgres(this.knex, dbTableName, field); + aggregationQuery( + originQueryBuilder: Knex.QueryBuilder, + dbTableName: string, + fields?: { [fieldId: string]: IFieldInstance }, + aggregationFields?: IAggregationField[], + extra?: IAggregationQueryExtra + ): IAggregationQueryInterface { + return new AggregationQueryPostgres( + this.knex, + originQueryBuilder, + dbTableName, + fields, + aggregationFields, + extra + ); } filterQuery( originQueryBuilder: Knex.QueryBuilder, - fields?: { [p: string]: IFieldInstance }, - filter?: IFilter | null + fields?: { [fieldId: string]: IFieldInstance }, + filter?: IFilter, + extra?: IFilterQueryExtra ): IFilterQueryInterface { - return new FilterQueryPostgres(originQueryBuilder, fields, filter); + return new FilterQueryPostgres(originQueryBuilder, fields, filter, extra); + } + + sortQuery( + originQueryBuilder: Knex.QueryBuilder, + fields?: { [fieldId: string]: IFieldInstance }, + sortObjs?: ISort['sortObjs'], + extra?: ISortQueryExtra + ): ISortQueryInterface { + return new SortQueryPostgres(this.knex, originQueryBuilder, fields, sortObjs, extra); } } diff --git a/apps/nestjs-backend/src/features/record/translator/sort-query-translator.ts b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.abstract.ts similarity index 51% rename from apps/nestjs-backend/src/features/record/translator/sort-query-translator.ts rename to apps/nestjs-backend/src/db-provider/sort-query/sort-query.abstract.ts index a97014076..8f9d2d604 100644 --- a/apps/nestjs-backend/src/features/record/translator/sort-query-translator.ts +++ b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.abstract.ts @@ -1,24 +1,30 @@ +import { Logger } from '@nestjs/common'; import type { ISort } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../field/model/factory'; +import type { IFieldInstance } from '../../features/field/model/factory'; +import type { ISortQueryExtra } from '../db.provider.interface'; +import type { ISortQueryInterface } from './sort-query.interface'; + +export abstract class AbstractSortQuery implements ISortQueryInterface { + private logger = new Logger(AbstractSortQuery.name); -export class SortQueryTranslator { constructor( - private readonly knex: Knex, - private readonly queryBuilder: Knex.QueryBuilder, - private readonly fields?: { [fieldId: string]: IFieldInstance }, - private readonly sortObjs?: ISort['sortObjs'] + protected readonly knex: Knex, + protected readonly originQueryBuilder: Knex.QueryBuilder, + protected readonly fields?: { [fieldId: string]: IFieldInstance }, + protected readonly sortObjs?: ISort['sortObjs'], + protected readonly extra?: ISortQueryExtra ) {} - appendQueryBuilder(): Knex.QueryBuilder { - return this.parseSorts(this.queryBuilder, this.sortObjs); + appendSortBuilder(): Knex.QueryBuilder { + return this.parseSorts(this.originQueryBuilder, this.sortObjs); } private parseSorts( queryBuilder: Knex.QueryBuilder, sortObjs?: ISort['sortObjs'] ): Knex.QueryBuilder { - if (!sortObjs) { + if (!sortObjs || !sortObjs.length) { return queryBuilder; } diff --git a/apps/nestjs-backend/src/db-provider/sort-query/sort-query.interface.ts b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.interface.ts new file mode 100644 index 000000000..2dfe662b2 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.interface.ts @@ -0,0 +1,5 @@ +import type { Knex } from 'knex'; + +export interface ISortQueryInterface { + appendSortBuilder(): Knex.QueryBuilder; +} diff --git a/apps/nestjs-backend/src/db-provider/sort-query/sort-query.postgres.ts b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.postgres.ts new file mode 100644 index 000000000..41e206621 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.postgres.ts @@ -0,0 +1,3 @@ +import { AbstractSortQuery } from './sort-query.abstract'; + +export class SortQueryPostgres extends AbstractSortQuery {} diff --git a/apps/nestjs-backend/src/db-provider/sort-query/sort-query.sqlite.ts b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.sqlite.ts new file mode 100644 index 000000000..df4dd8224 --- /dev/null +++ b/apps/nestjs-backend/src/db-provider/sort-query/sort-query.sqlite.ts @@ -0,0 +1,3 @@ +import { AbstractSortQuery } from './sort-query.abstract'; + +export class SortQuerySqlite extends AbstractSortQuery {} diff --git a/apps/nestjs-backend/src/db-provider/sqlite.provider.ts b/apps/nestjs-backend/src/db-provider/sqlite.provider.ts index e20658033..86e4642e8 100644 --- a/apps/nestjs-backend/src/db-provider/sqlite.provider.ts +++ b/apps/nestjs-backend/src/db-provider/sqlite.provider.ts @@ -1,15 +1,22 @@ /* eslint-disable sonarjs/no-duplicate-string */ import { Logger } from '@nestjs/common'; -import type { IFilter } from '@teable-group/core'; +import type { IAggregationField, IFilter, ISort } from '@teable-group/core'; import { DriverClient } from '@teable-group/core'; import type { Knex } from 'knex'; import type { IFieldInstance } from '../features/field/model/factory'; import type { SchemaType } from '../features/field/util'; -import type { IAggregationFunctionInterface } from './aggregation/aggregation-function.interface'; -import { AggregationFunctionSqlite } from './aggregation/aggregation-function.sqlite'; -import type { IDbProvider } from './db.provider.interface'; +import type { IAggregationQueryInterface } from './aggregation-query/aggregation-query.interface'; +import { AggregationQuerySqlite } from './aggregation-query/sqlite/aggregation-query.sqlite'; +import type { + IAggregationQueryExtra, + IDbProvider, + IFilterQueryExtra, + ISortQueryExtra, +} from './db.provider.interface'; import type { IFilterQueryInterface } from './filter-query/filter-query.interface'; import { FilterQuerySqlite } from './filter-query/sqlite/filter-query.sqlite'; +import type { ISortQueryInterface } from './sort-query/sort-query.interface'; +import { SortQuerySqlite } from './sort-query/sort-query.sqlite'; export class SqliteProvider implements IDbProvider { private readonly logger = new Logger(SqliteProvider.name); @@ -107,15 +114,38 @@ export class SqliteProvider implements IDbProvider { return { insertTempTableSql, updateRecordSql }; } - aggregationFunction(dbTableName: string, field: IFieldInstance): IAggregationFunctionInterface { - return new AggregationFunctionSqlite(this.knex, dbTableName, field); + aggregationQuery( + originQueryBuilder: Knex.QueryBuilder, + dbTableName: string, + fields?: { [fieldId: string]: IFieldInstance }, + aggregationFields?: IAggregationField[], + extra?: IAggregationQueryExtra + ): IAggregationQueryInterface { + return new AggregationQuerySqlite( + this.knex, + originQueryBuilder, + dbTableName, + fields, + aggregationFields, + extra + ); } filterQuery( originQueryBuilder: Knex.QueryBuilder, fields?: { [p: string]: IFieldInstance }, - filter?: IFilter | null + filter?: IFilter, + extra?: IFilterQueryExtra ): IFilterQueryInterface { - return new FilterQuerySqlite(originQueryBuilder, fields, filter); + return new FilterQuerySqlite(originQueryBuilder, fields, filter, extra); + } + + sortQuery( + originQueryBuilder: Knex.QueryBuilder, + fields?: { [fieldId: string]: IFieldInstance }, + sortObjs?: ISort['sortObjs'], + extra?: ISortQueryExtra + ): ISortQueryInterface { + return new SortQuerySqlite(this.knex, originQueryBuilder, fields, sortObjs, extra); } } diff --git a/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts b/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts index 9995e1e89..7dd9dcb50 100644 --- a/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts +++ b/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts @@ -1,11 +1,12 @@ import { Inject, Injectable, Logger } from '@nestjs/common'; import type { + IAggregationField, + IColumnMeta, IFilter, IGetRecordsQuery, IRawAggregations, IRawAggregationValue, IRawRowCountValue, - IColumnMeta, } from '@teable-group/core'; import { mergeWithDefaultFilter, @@ -17,7 +18,7 @@ import type { Prisma } from '@teable-group/db-main-prisma'; import { PrismaService } from '@teable-group/db-main-prisma'; import dayjs from 'dayjs'; import { Knex } from 'knex'; -import { groupBy, isEmpty } from 'lodash'; +import { groupBy, isDate, isEmpty } from 'lodash'; import { InjectModel } from 'nest-knexjs'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IFieldInstance } from '../field/model/factory'; @@ -38,12 +39,7 @@ type ICustomFieldStats = { type IStatisticsData = { viewId?: string; filter?: IFilter; - statisticFields?: IStatisticField[]; -}; - -type IStatisticField = { - field: IFieldInstance; - statisticFunc: StatisticsFunc; + statisticFields?: IAggregationField[]; }; @Injectable() @@ -51,10 +47,10 @@ export class AggregationService { private logger = new Logger(AggregationService.name); constructor( - private recordService: RecordService, - private prisma: PrismaService, + private readonly recordService: RecordService, + private readonly prisma: PrismaService, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex, - @Inject('DbProvider') private dbProvider: IDbProvider + @Inject('DbProvider') private readonly dbProvider: IDbProvider ) {} async performAggregation(params: { @@ -63,7 +59,7 @@ export class AggregationService { withView?: IWithView; withUserId?: string; }): Promise { - const { tableId, withFieldIds, withView } = params; + const { tableId, withFieldIds, withView, withUserId } = params; const { statisticsData, fieldInstanceMap } = await this.fetchStatisticsParams({ tableId, @@ -80,6 +76,7 @@ export class AggregationService { fieldInstanceMap, filter, statisticFields, + withUserId, }); const aggregationResult = rawAggregationData && rawAggregationData[0]; @@ -107,8 +104,10 @@ export class AggregationService { filterLinkCellCandidate?: IGetRecordsQuery['filterLinkCellCandidate']; filterLinkCellSelected?: IGetRecordsQuery['filterLinkCellSelected']; withView?: IWithView; + withUserId?: string; }): Promise { - const { tableId, filterLinkCellCandidate, filterLinkCellSelected, withView } = params; + const { tableId, filterLinkCellCandidate, filterLinkCellSelected, withView, withUserId } = + params; const { statisticsData, fieldInstanceMap } = await this.fetchStatisticsParams({ tableId, @@ -131,6 +130,7 @@ export class AggregationService { fieldInstanceMap, filter, filterLinkCellCandidate, + withUserId, }); return { rowCount: Number(rawRowCountData[0]?.count ?? 0), @@ -245,7 +245,7 @@ export class AggregationService { columnMeta?: IColumnMeta, customFieldStats?: ICustomFieldStats[] ) { - let calculatedStatisticFields: IStatisticField[] | undefined; + let calculatedStatisticFields: IAggregationField[] | undefined; const customFieldStatsGrouped = groupBy(customFieldStats, 'fieldId'); fieldInstances.forEach((fieldInstance) => { @@ -266,7 +266,7 @@ export class AggregationService { if (hidden !== true && funcList && funcList.length) { const statisticFieldList = funcList.map((item) => { return { - field: fieldInstance, + fieldId, statisticFunc: item, }; }); @@ -281,9 +281,10 @@ export class AggregationService { dbTableName: string; fieldInstanceMap: Record; filter?: IFilter; - statisticFields?: IStatisticField[]; + statisticFields?: IAggregationField[]; + withUserId?: string; }) { - const { dbTableName, fieldInstanceMap, filter, statisticFields } = params; + const { dbTableName, fieldInstanceMap, filter, statisticFields, withUserId } = params; if (!statisticFields?.length) { return; } @@ -293,16 +294,16 @@ export class AggregationService { .with(tableAlias, (qb) => { qb.select('*').from(dbTableName); if (filter) { - this.dbProvider.filterQuery(qb, fieldInstanceMap, filter).appendQueryBuilder(); + this.dbProvider + .filterQuery(qb, fieldInstanceMap, filter, { withUserId }) + .appendQueryBuilder(); } }) .from(tableAlias); - statisticFields.forEach(({ field, statisticFunc }) => { - this.getAggregationFunc(queryBuilder, tableAlias, field, statisticFunc); - }); - - const aggSql = queryBuilder.toQuery(); + const aggSql = this.dbProvider + .aggregationQuery(queryBuilder, tableAlias, fieldInstanceMap, statisticFields) + .toQuerySql(); return this.prisma.$queryRawUnsafe<{ [field: string]: unknown }[]>(aggSql); } @@ -312,13 +313,17 @@ export class AggregationService { fieldInstanceMap: Record; filter?: IFilter; filterLinkCellCandidate?: IGetRecordsQuery['filterLinkCellCandidate']; + withUserId?: string; }) { - const { tableId, dbTableName, fieldInstanceMap, filter, filterLinkCellCandidate } = params; + const { tableId, dbTableName, fieldInstanceMap, filter, filterLinkCellCandidate, withUserId } = + params; const queryBuilder = this.knex(dbTableName); if (filter) { - this.dbProvider.filterQuery(queryBuilder, fieldInstanceMap, filter).appendQueryBuilder(); + this.dbProvider + .filterQuery(queryBuilder, fieldInstanceMap, filter, { withUserId }) + .appendQueryBuilder(); } if (filterLinkCellCandidate) { @@ -332,25 +337,32 @@ export class AggregationService { return this.getRowCount(this.prisma, queryBuilder); } + private convertValueToNumberOrString(currentValue: unknown): number | string | null { + if (typeof currentValue === 'bigint' || typeof currentValue === 'number') { + return Number(currentValue); + } + if (isDate(currentValue)) { + return currentValue.toISOString(); + } + return currentValue?.toString() ?? null; + } + + private calculateDateRangeOfMonths(currentValue: string): number { + const [maxTime, minTime] = currentValue.split(','); + return maxTime && minTime ? dayjs(maxTime).diff(minTime, 'month') : 0; + } + private formatConvertValue = (currentValue: unknown, aggFunc?: StatisticsFunc) => { - let convertValue = - typeof currentValue === 'bigint' || typeof currentValue === 'number' - ? Number(currentValue) - : currentValue?.toString() ?? null; + let convertValue = this.convertValueToNumberOrString(currentValue); if (!aggFunc) { return convertValue; } - if (aggFunc === StatisticsFunc.DateRangeOfMonths && currentValue) { - const [maxTime, minTime] = (currentValue as string).split(','); - - if (!maxTime || !minTime) { - convertValue = 0; - } else { - convertValue = dayjs(maxTime).diff(minTime, 'month'); - } + if (aggFunc === StatisticsFunc.DateRangeOfMonths && typeof currentValue === 'string') { + convertValue = this.calculateDateRangeOfMonths(currentValue); } + const defaultToZero = [ StatisticsFunc.PercentEmpty, StatisticsFunc.PercentFilled, @@ -358,48 +370,13 @@ export class AggregationService { StatisticsFunc.PercentChecked, StatisticsFunc.PercentUnChecked, ]; + if (defaultToZero.includes(aggFunc)) { convertValue = convertValue ?? 0; } return convertValue; }; - private getAggregationFunc( - kq: Knex.QueryBuilder, - dbTableName: string, - field: IFieldInstance, - func: StatisticsFunc - ) { - let rawSql: string; - - const { id: fieldId, isMultipleCellValue } = field; - - const ignoreMcvFunc = [ - StatisticsFunc.Empty, - StatisticsFunc.UnChecked, - StatisticsFunc.Filled, - StatisticsFunc.Checked, - StatisticsFunc.PercentEmpty, - StatisticsFunc.PercentUnChecked, - StatisticsFunc.PercentFilled, - StatisticsFunc.PercentChecked, - ]; - - if (isMultipleCellValue && !ignoreMcvFunc.includes(func)) { - const joinTable = `${fieldId}_mcv`; - - const withRawSql = this.getDatabaseAggFunc(this.dbProvider, dbTableName, field, func); - kq.with(`${fieldId}_mcv`, this.knex.raw(withRawSql)); - kq.joinRaw(`, ${this.knex.ref(joinTable)}`); - - rawSql = `MAX(${this.knex.ref(`${joinTable}.value`)})`; - } else { - rawSql = this.getDatabaseAggFunc(this.dbProvider, dbTableName, field, func); - } - - return kq.select(this.knex.raw(`${rawSql} AS ??`, [`${fieldId}_${func}`])); - } - private async getDbTableName(prisma: Prisma.TransactionClient, tableId: string) { const tableMeta = await prisma.tableMeta.findUniqueOrThrow({ where: { id: tableId }, @@ -421,16 +398,4 @@ export class AggregationService { return prisma.$queryRawUnsafe<{ count?: number }[]>(rowCountSql.toQuery()); } - - private getDatabaseAggFunc( - dbProvider: IDbProvider, - dbTableName: string, - field: IFieldInstance, - func: StatisticsFunc - ): string { - const funcName = func.toString(); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return (dbProvider.aggregationFunction(dbTableName, field) as any)[funcName]?.(); - } } diff --git a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts index 5c4881501..039f7c212 100644 --- a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts +++ b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts @@ -1,11 +1,13 @@ -import { Controller, Get, Param, Query, UseGuards } from '@nestjs/common'; +import { Controller, Get, Param, Query, Req, UseGuards } from '@nestjs/common'; import type { IAggregationVo, IRowCountVo } from '@teable-group/core'; import { - IAggregationRo, aggregationRoSchema, - rowCountRoSchema, + IAggregationRo, IRowCountRo, + rowCountRoSchema, } from '@teable-group/core'; +import type { User as UserModel } from '@teable-group/db-main-prisma'; +import { Request } from 'express'; import { ZodValidationPipe } from '../../../zod.validation.pipe'; import { Permissions } from '../../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../../auth/guard/permission.guard'; @@ -20,18 +22,28 @@ export class AggregationOpenApiController { @Get() @Permissions('table|read') async getAggregation( + @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(aggregationRoSchema)) query?: IAggregationRo ): Promise { - return await this.aggregationOpenApiService.getAggregation(tableId, query); + const { id: userId } = req.user as UserModel; + return await this.aggregationOpenApiService.getAggregation(tableId, { + ...query, + withUserId: userId, + }); } @Get('/rowCount') @Permissions('table|read') async getRowCount( + @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(rowCountRoSchema), RecordPipe) query?: IRowCountRo ): Promise { - return await this.aggregationOpenApiService.getRowCount(tableId, query); + const { id: userId } = req.user as UserModel; + return await this.aggregationOpenApiService.getRowCount(tableId, { + ...query, + withUserId: userId, + }); } } diff --git a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts index 082ec7a20..7c2ea7220 100644 --- a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts +++ b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts @@ -15,8 +15,11 @@ import { AggregationService } from '../aggregation.service'; export class AggregationOpenApiService { constructor(private readonly aggregationService: AggregationService) {} - async getAggregation(tableId: string, query?: IAggregationRo): Promise { - const { viewId, filter: customFilter, field: aggregationFields } = query || {}; + async getAggregation( + tableId: string, + query?: IAggregationRo & { withUserId?: string } + ): Promise { + const { viewId, filter: customFilter, field: aggregationFields, withUserId } = query || {}; let withView: IWithView = { viewId, customFilter }; @@ -36,18 +39,27 @@ export class AggregationOpenApiService { withView = { ...withView, customFieldStats: validFieldStats }; } - const result = await this.aggregationService.performAggregation({ tableId: tableId, withView }); + const result = await this.aggregationService.performAggregation({ + tableId: tableId, + withView, + withUserId, + }); return { aggregations: result?.aggregations }; } - async getRowCount(tableId: string, query?: IRowCountRo): Promise { - const { viewId, filter, filterLinkCellCandidate, filterLinkCellSelected } = query || {}; + async getRowCount( + tableId: string, + query?: IRowCountRo & { withUserId?: string } + ): Promise { + const { viewId, filter, filterLinkCellCandidate, filterLinkCellSelected, withUserId } = + query || {}; const result = await this.aggregationService.performRowCount({ tableId, filterLinkCellCandidate, filterLinkCellSelected, withView: { viewId, customFilter: filter }, + withUserId, }); return { rowCount: result.rowCount, diff --git a/apps/nestjs-backend/src/features/automation/actions/triggers/trigger-core.ts b/apps/nestjs-backend/src/features/automation/actions/triggers/trigger-core.ts index ccbbaf4e7..7d2deb349 100644 --- a/apps/nestjs-backend/src/features/automation/actions/triggers/trigger-core.ts +++ b/apps/nestjs-backend/src/features/automation/actions/triggers/trigger-core.ts @@ -1,14 +1,14 @@ import { Injectable, Logger } from '@nestjs/common'; import { identify, IdPrefix } from '@teable-group/core'; import type { TopLevelCondition } from 'json-rules-engine'; -import { findLast, omit, keyBy, head, join, tail } from 'lodash'; +import { findLast, head, join, keyBy, omit, tail } from 'lodash'; import { JsonRulesEngine } from '../../engine/json-rules-engine'; import { JsonSchemaParser } from '../../engine/json-schema/parser'; import type { TriggerTypeEnums } from '../../enums/trigger-type.enum'; import type { WorkflowActionVo } from '../../model/workflow-action.vo'; import { WorkflowService } from '../../workflow/workflow.service'; -import { ActionResponseStatus } from '../action-core'; import type { IActionInputSchema } from '../action-core'; +import { ActionResponseStatus } from '../action-core'; import type { IDecision, IDecisionGroups, IDecisionSchema } from '../decision'; @Injectable() @@ -106,7 +106,7 @@ export abstract class TriggerCore { ); const dynamicLogic = { - [`${decision.condition.logical === 'and' ? 'all' : 'any'}`]: conditions, + ...(decision.condition.logical === 'and' ? { all: conditions } : { any: conditions }), } as TopLevelCondition; resultCondition.push(dynamicLogic); diff --git a/apps/nestjs-backend/src/features/record/record.service.ts b/apps/nestjs-backend/src/features/record/record.service.ts index e16fb347e..5c7fbd82f 100644 --- a/apps/nestjs-backend/src/features/record/record.service.ts +++ b/apps/nestjs-backend/src/features/record/record.service.ts @@ -54,7 +54,6 @@ import { preservedDbFieldNames } from '../field/constant'; import type { IFieldInstance } from '../field/model/factory'; import { createFieldInstanceByRaw } from '../field/model/factory'; import { ROW_ORDER_FIELD_PREFIX } from '../view/constant'; -import { SortQueryTranslator } from './translator/sort-query-translator'; type IUserFields = { id: string; dbFieldName: string }[]; @@ -421,9 +420,14 @@ export class RecordService implements IAdapterService { await this.buildLinkCandidateQuery(queryBuilder, tableId, query.filterLinkCellCandidate); } + // TODO: testing + const withUserId = this.cls.get('user.id'); + // All `where` condition-related construction work - this.dbProvider.filterQuery(queryBuilder, fieldMap, filter).appendQueryBuilder(); - new SortQueryTranslator(this.knex, queryBuilder, fieldMap, orderBy).appendQueryBuilder(); + this.dbProvider + .filterQuery(queryBuilder, fieldMap, filter, { withUserId }) + .appendQueryBuilder(); + this.dbProvider.sortQuery(queryBuilder, fieldMap, orderBy).appendSortBuilder(); // view sorting added by default queryBuilder.orderBy(getViewOrderFieldName(query.viewId), 'asc'); diff --git a/apps/nestjs-backend/src/features/record/translator/sort-query-translator.spec.ts b/apps/nestjs-backend/src/features/record/translator/sort-query-translator.spec.ts deleted file mode 100644 index ea2b403db..000000000 --- a/apps/nestjs-backend/src/features/record/translator/sort-query-translator.spec.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import type { IFieldVo, ISortItem } from '@teable-group/core'; -import { CellValueType, DbFieldType, FieldType } from '@teable-group/core'; -import knex from 'knex'; -import { keyBy } from 'lodash'; -import type { IFieldInstance } from '../../field/model/factory'; -import { createFieldInstanceByVo } from '../../field/model/factory'; -import { SortQueryTranslator } from './sort-query-translator'; - -describe('SortQueryTranslator', () => { - let _knex: any; - let queryBuilder: any; - let fieldContext: { [fieldId: string]: IFieldInstance } = {}; - - beforeEach(() => { - _knex = knex({ client: 'sqlite3' }); - queryBuilder = _knex('table_name'); - }); - - beforeAll(() => { - const fieldsJson: IFieldVo[] = [ - { - id: 'fld1', - name: 'name', - type: FieldType.SingleLineText, - dbFieldName: 'name_fld1', - dbFieldType: DbFieldType.Text, - cellValueType: CellValueType.String, - isMultipleCellValue: false, - options: {}, - }, - { - id: 'fld2', - name: 'number', - type: FieldType.Number, - dbFieldName: 'number_fld2', - dbFieldType: DbFieldType.Real, - cellValueType: CellValueType.Number, - isMultipleCellValue: false, - options: {}, - }, - { - id: 'fld3', - name: 'tags', - type: FieldType.MultipleSelect, - dbFieldName: 'tags_fld3', - dbFieldType: DbFieldType.Json, - cellValueType: CellValueType.String, - isMultipleCellValue: true, - options: {}, - }, - ]; - - const fields = fieldsJson.map((field) => createFieldInstanceByVo(field)); - fieldContext = keyBy(fields, 'id'); - }); - - it('should return empty array, if the fields is undefined for (translateToOrderQuery)', () => { - const translatedOrderBy = new SortQueryTranslator(_knex, queryBuilder).appendQueryBuilder(); - - expect(translatedOrderBy).toBeDefined(); - expect(translatedOrderBy.toQuery()).toStrictEqual(queryBuilder.toQuery()); - }); - - it('should return correct orderBy for (translateToOrderQuery)', () => { - const orderBy: ISortItem[] = [ - { - fieldId: 'fld1', - order: 'asc', - }, - { - fieldId: 'fld2', - order: 'desc', - }, - { - fieldId: 'fld3', - order: 'desc', - }, - ]; - - const rawSql = new SortQueryTranslator( - _knex, - queryBuilder, - fieldContext, - orderBy - ).appendQueryBuilder(); - - expect(rawSql.toQuery()).toMatch(`\`name_fld1\` asc NULLS FIRST`); - expect(rawSql.toQuery()).toMatch(`\`number_fld2\` desc NULLS LAST`); - expect(rawSql.toQuery()).toMatch(`CAST(\`tags_fld3\` as text) desc NULLS LAST`); - }); -}); diff --git a/apps/nestjs-backend/src/filter/global-exception.filter.ts b/apps/nestjs-backend/src/filter/global-exception.filter.ts index 5a320ab2d..1388ce050 100644 --- a/apps/nestjs-backend/src/filter/global-exception.filter.ts +++ b/apps/nestjs-backend/src/filter/global-exception.filter.ts @@ -15,7 +15,6 @@ export class GlobalExceptionFilter implements ExceptionFilter { const shouldLogStack = !('getStatus' in exception) || exception.getStatus?.() >= 500; - console.error('exception:', exception); this.logger.error( `[${request.url}]${exception.message}\n${shouldLogStack ? exception.stack : ''}` ); diff --git a/apps/nestjs-backend/src/logger/logger.module.ts b/apps/nestjs-backend/src/logger/logger.module.ts index 52a965e25..0b14dfab7 100644 --- a/apps/nestjs-backend/src/logger/logger.module.ts +++ b/apps/nestjs-backend/src/logger/logger.module.ts @@ -1,6 +1,7 @@ import type { DynamicModule } from '@nestjs/common'; import { Module, RequestMethod } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; +import { trace, context } from '@opentelemetry/api'; import { ClsService } from 'nestjs-cls'; import { LoggerModule as BaseLoggerModule } from 'nestjs-pino'; import type { ILoggerConfig } from '../configs/logger.config'; @@ -29,6 +30,14 @@ export class LoggerModule { }, transport: process.env.NODE_ENV !== 'production' ? { target: 'pino-pretty' } : undefined, + formatters: { + log(object) { + const span = trace.getSpan(context.active()); + if (!span) return { ...object }; + const { traceId, spanId } = span.spanContext(); + return { ...object, spanId, traceId }; + }, + }, }, exclude: [ '_next/(.*)', diff --git a/apps/nestjs-backend/test/aggregation.e2e-spec.ts b/apps/nestjs-backend/test/aggregation.e2e-spec.ts index 2c2831353..42d027b7f 100644 --- a/apps/nestjs-backend/test/aggregation.e2e-spec.ts +++ b/apps/nestjs-backend/test/aggregation.e2e-spec.ts @@ -1,9 +1,9 @@ -import { faker } from '@faker-js/faker'; import type { INestApplication } from '@nestjs/common'; import type { ITableFullVo } from '@teable-group/core'; import { StatisticsFunc } from '@teable-group/core'; import { getAggregation, getRowCount } from '@teable-group/openapi'; -import { createRecords, createTable, deleteTable, initApp } from './utils/init-app'; +import { x_20 } from './data-helpers/20x'; +import { createTable, deleteTable, initApp } from './utils/init-app'; describe('OpenAPI AggregationController (e2e)', () => { let app: INestApplication; @@ -38,379 +38,137 @@ describe('OpenAPI AggregationController (e2e)', () => { describe('simple aggregation', () => { let table: ITableFullVo; - beforeEach(async () => { - table = await createTable(baseId, { name: 'table1' }); + beforeAll(async () => { + table = await createTable(baseId, { + name: 'agg_x_20', + fields: x_20.fields, + records: x_20.records, + }); }); - afterEach(async () => { + afterAll(async () => { await deleteTable(baseId, table.id); }); it('should get rowCount', async () => { - await createRecords(table.id, { - records: [ - { - fields: { - [table.fields[0].id]: faker.string.sample(), - [table.fields[1].id]: faker.number.int(), - }, - }, - ], - }); - const { rowCount } = await getViewRowCount(table.id, table.views[0].id); - expect(rowCount).toEqual(4); - }); - - it('should get empty number', async () => { - const tableId = table.id; - const viewId = table.views[0].id; - const aggFunc = StatisticsFunc.Empty; - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[0].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[0].id, - total: { - aggFunc, - value: 3, - }, - }, - ]), - }); - - await createRecords(table.id, { - records: [ - { - fields: { - [table.fields[0].id]: faker.string.sample(), - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: 4, - }, - }, - ]), - }); - }); - - it('should get filled number', async () => { - const tableId = table.id; - const viewId = table.views[0].id; - const aggFunc = StatisticsFunc.Filled; - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[0].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[0].id, - total: { - aggFunc, - value: 0, - }, - }, - ]), - }); - - await createRecords(table.id, { - records: [ - { - fields: { - [table.fields[0].id]: faker.string.sample(), - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[0].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[0].id, - total: { - aggFunc, - value: 1, - }, - }, - ]), - }); - }); - - it('should get unique number', async () => { - const tableId = table.id; - const viewId = table.views[0].id; - const aggFunc = StatisticsFunc.Unique; - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[0].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[0].id, - total: { - aggFunc, - value: 0, - }, - }, - ]), - }); - - const identicalStr = faker.string.sample(); - await createRecords(tableId, { - records: [ - { - fields: { - [table.fields[0].id]: identicalStr, - }, - }, - { - fields: { - [table.fields[0].id]: identicalStr, - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[0].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[0].id, - total: { - aggFunc, - value: 1, - }, - }, - ]), - }); - - await createRecords(table.id, { - records: [ - { - fields: { - [table.fields[0].id]: faker.string.sample(), - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[0].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[0].id, - total: { - aggFunc, - value: 2, - }, - }, - ]), - }); + expect(rowCount).toEqual(23); }); - it('should get max number', async () => { - const tableId = table.id; - const viewId = table.views[0].id; - const aggFunc = StatisticsFunc.Max; - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: null, - }, - }, - ]), - }); - - await createRecords(tableId, { - records: [ - { - fields: { - [table.fields[1].id]: 9, - }, - }, - { - fields: { - [table.fields[1].id]: 11, - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: 11, - }, - }, - ]), - }); - }); - - it('should get min number', async () => { - const tableId = table.id; - const viewId = table.views[0].id; - const aggFunc = StatisticsFunc.Min; - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: null, - }, - }, - ]), - }); - - await createRecords(tableId, { - records: [ - { - fields: { - [table.fields[1].id]: 22, - }, - }, - { - fields: { - [table.fields[1].id]: 0, - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: 0, - }, - }, - ]), - }); - }); - - it('should get sum number', async () => { - const tableId = table.id; - const viewId = table.views[0].id; - const aggFunc = StatisticsFunc.Sum; - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: null, - }, - }, - ]), - }); - - await createRecords(tableId, { - records: [ - { - fields: { - [table.fields[1].id]: 6, - }, - }, - { - fields: { - [table.fields[1].id]: 60, - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: 66, - }, - }, - ]), - }); - }); - - it('should get average number', async () => { - const tableId = table.id; - const viewId = table.views[0].id; - const aggFunc = StatisticsFunc.Average; - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: null, - }, - }, - ]), - }); - - await createRecords(tableId, { - records: [ - { - fields: { - [table.fields[1].id]: 6.6, - }, - }, - { - fields: { - [table.fields[1].id]: 9.9, - }, - }, - ], - }); - - expect( - await getViewAggregations(tableId, viewId, aggFunc, [table.fields[1].id]) - ).toMatchObject({ - aggregations: expect.objectContaining([ - { - fieldId: table.fields[1].id, - total: { - aggFunc, - value: 8.25, - }, - }, - ]), - }); - }); + const cases = [ + { + fieldIndex: 0, + aggFunc: StatisticsFunc.Empty, + expectValue: 1, + }, + { + fieldIndex: 1, + aggFunc: StatisticsFunc.Filled, + expectValue: 22, + }, + { + fieldIndex: 1, + aggFunc: StatisticsFunc.Unique, + expectValue: 21, + }, + { + fieldIndex: 1, + aggFunc: StatisticsFunc.Max, + expectValue: 20, + }, + { + fieldIndex: 1, + aggFunc: StatisticsFunc.Min, + expectValue: 0, + }, + { + fieldIndex: 1, + aggFunc: StatisticsFunc.Sum, + expectValue: 220, + }, + { + fieldIndex: 1, + aggFunc: StatisticsFunc.Average, + expectValue: 10, + }, + { + fieldIndex: 4, + aggFunc: StatisticsFunc.Checked, + expectValue: 4, + }, + { + fieldIndex: 4, + aggFunc: StatisticsFunc.UnChecked, + expectValue: 19, + }, + { + fieldIndex: 2, + aggFunc: StatisticsFunc.PercentEmpty, + expectValue: 47.826086, + }, + { + fieldIndex: 0, + aggFunc: StatisticsFunc.PercentFilled, + expectValue: 95.652173, + }, + { + fieldIndex: 2, + aggFunc: StatisticsFunc.PercentUnique, + expectValue: 13.043478, + }, + { + fieldIndex: 4, + aggFunc: StatisticsFunc.PercentChecked, + expectValue: 17.391304, + }, + { + fieldIndex: 4, + aggFunc: StatisticsFunc.PercentUnChecked, + expectValue: 82.608695, + }, + + { + fieldIndex: 3, + aggFunc: StatisticsFunc.EarliestDate, + expectValue: '2019-12-31T16:00:00.000Z', + }, + { + fieldIndex: 3, + aggFunc: StatisticsFunc.LatestDate, + expectValue: '2099-12-31T15:59:59.000Z', + }, + { + fieldIndex: 3, + aggFunc: StatisticsFunc.DateRangeOfDays, + expectValue: 29219, + }, + { + fieldIndex: 3, + aggFunc: StatisticsFunc.DateRangeOfMonths, + expectValue: 959, + }, + ]; + + test.each(cases)( + `should agg func [$aggFunc] value: $expectValue`, + async ({ fieldIndex, aggFunc, expectValue }) => { + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + + const result = await getViewAggregations(tableId, viewId, aggFunc, [fieldId]); + expect(result).toBeDefined(); + expect(result.aggregations?.length).toBeGreaterThan(0); + + const [{ total }] = result.aggregations!; + expect(total?.aggFunc).toBe(aggFunc); + + if (typeof expectValue === 'string') { + expect(total?.value).toBe(expectValue); + } else { + expect(total?.value).toBeCloseTo(expectValue, 4); + } + } + ); }); }); diff --git a/apps/nestjs-backend/test/data-helpers/20x.ts b/apps/nestjs-backend/test/data-helpers/20x.ts new file mode 100644 index 000000000..a7dfc8f0a --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/20x.ts @@ -0,0 +1,238 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +import { faker } from '@faker-js/faker'; +import { + Colors, + DateFormattingPreset, + FieldType, + generateFieldId, + NumberFormattingType, + TimeFormatting, +} from '@teable-group/core'; + +const textField = { + id: generateFieldId(), + name: 'text field', + description: 'the text field', + type: FieldType.SingleLineText, +}; + +const numberField = { + id: generateFieldId(), + name: 'Number field', + description: 'the number field', + type: FieldType.Number, + options: { + formatting: { type: NumberFormattingType.Decimal, precision: 1 }, + }, +}; + +const singleSelectField = { + id: generateFieldId(), + name: 'singleSelect field', + description: 'the singleSelect field', + type: FieldType.SingleSelect, + options: { + choices: [ + { id: 'choX', name: 'x', color: Colors.Cyan }, + { id: 'choY', name: 'y', color: Colors.Blue }, + { id: 'choZ', name: 'z', color: Colors.Gray }, + ], + }, +}; + +const dateField = { + id: generateFieldId(), + name: 'date field', + description: 'the date field', + type: FieldType.Date, + options: { + formatting: { + date: DateFormattingPreset.ISO, + time: TimeFormatting.None, + timeZone: 'utc', + }, + }, +}; + +const checkboxField = { + id: generateFieldId(), + name: 'checkbox field', + description: 'the checkbox field', + type: FieldType.Checkbox, +}; + +const userField = { + id: generateFieldId(), + name: 'user field', + description: 'the user field', + type: FieldType.User, +}; + +export const x_20 = { + fields: [textField, numberField, singleSelectField, dateField, checkboxField, userField], + + records: [ + { + fields: {}, + }, + { + fields: { + [textField.name]: 'Text Field 0', + [numberField.name]: 0, + [dateField.name]: '2019-12-31T16:00:00.000Z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 1', + [numberField.name]: 1, + [dateField.name]: faker.date.past({ years: 1 }).toISOString(), + }, + }, + { + fields: { + [textField.name]: 'Text Field 2', + [numberField.name]: 2, + [checkboxField.name]: true, + [dateField.name]: '2023-11-28T16:00:00.000Z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 3', + [numberField.name]: 3, + [singleSelectField.name]: 'x', + [dateField.name]: '2023-01-27T16:00:00.000Z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 4', + [numberField.name]: 4, + [singleSelectField.name]: 'x', + [dateField.name]: '2023-02-28T16:00:00.000Z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 5', + [numberField.name]: 5, + [singleSelectField.name]: 'x', + [dateField.name]: '2023-03-01T16:00:00.000Z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 6', + [numberField.name]: 6, + [checkboxField.name]: true, + [singleSelectField.name]: 'x', + [dateField.name]: '2023-03-11T16:00:00.000Z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 7', + [numberField.name]: 7, + [singleSelectField.name]: 'x', + [dateField.name]: '2023-05-08T16:00:00.000Z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 8', + [numberField.name]: 8, + [singleSelectField.name]: 'x', + }, + }, + { + fields: { + [textField.name]: 'Text Field 9', + [numberField.name]: 9, + [singleSelectField.name]: 'x', + }, + }, + { + fields: { + [textField.name]: 'Text Field 10', + [numberField.name]: 10, + [singleSelectField.name]: 'y', + }, + }, + { + fields: { + [textField.name]: 'Text Field 11', + [numberField.name]: 11, + [singleSelectField.name]: 'z', + [dateField.name]: faker.date.future({ years: 1 }).toISOString(), + }, + }, + { + fields: { + [textField.name]: 'Text Field 12', + [numberField.name]: 12, + [checkboxField.name]: true, + [singleSelectField.name]: 'z', + }, + }, + { + fields: { + [textField.name]: 'Text Field 13', + [numberField.name]: 13, + [singleSelectField.name]: 'y', + }, + }, + { + fields: { + [textField.name]: 'Text Field 14', + [numberField.name]: 14, + [singleSelectField.name]: 'y', + }, + }, + { + fields: { + [textField.name]: 'Text Field 15', + [numberField.name]: 15, + }, + }, + { + fields: { + [textField.name]: 'Text Field 16', + [numberField.name]: 16, + }, + }, + { + fields: { + [textField.name]: 'Text Field 17', + [numberField.name]: 17, + }, + }, + { + fields: { + [textField.name]: 'Text Field 18', + [numberField.name]: 18, + }, + }, + { + fields: { + [textField.name]: 'Text Field 19', + [numberField.name]: 19, + }, + }, + { + fields: { + [textField.name]: 'Text Field 20', + [numberField.name]: 20, + [checkboxField.name]: true, + [dateField.name]: new Date().toISOString(), + }, + }, + { + fields: { + [textField.name]: 'Text Field 10', + [numberField.name]: 10, + [dateField.name]: '2099-12-31T15:59:59.000Z', + }, + }, + ], +}; diff --git a/apps/nextjs-app/package.json b/apps/nextjs-app/package.json index 8588c078a..674c7bd6b 100644 --- a/apps/nextjs-app/package.json +++ b/apps/nextjs-app/package.json @@ -56,9 +56,9 @@ "@size-limit/file": "11.0.1", "@svgr/webpack": "8.1.0", "@testing-library/dom": "9.3.3", - "@testing-library/jest-dom": "6.1.5", + "@testing-library/jest-dom": "6.2.0", "@testing-library/react": "14.1.2", - "@testing-library/user-event": "14.5.1", + "@testing-library/user-event": "14.5.2", "@types/cors": "2.8.17", "@types/express": "4.17.21", "@types/lodash": "4.14.202", @@ -67,21 +67,21 @@ "@types/react": "18.2.45", "@types/react-dom": "18.2.18", "@types/react-grid-layout": "1.3.5", - "@types/react-syntax-highlighter": "15.5.6", + "@types/react-syntax-highlighter": "15.5.11", "@types/react-test-renderer": "18.0.7", "@types/sharedb": "3.3.8", "@vitejs/plugin-react-swc": "3.5.0", "autoprefixer": "10.4.16", "cross-env": "7.0.3", "dotenv-flow": "4.1.0", - "dotenv-flow-cli": "1.0.0", + "dotenv-flow-cli": "1.1.1", "es-check": "7.1.1", "eslint": "8.56.0", "eslint-config-next": "13.0.2", "get-tsconfig": "4.7.2", "happy-dom": "12.10.3", "npm-run-all": "4.1.5", - "postcss": "8.4.32", + "postcss": "8.4.33", "postcss-flexbugs-fixes": "5.0.2", "postcss-preset-env": "9.3.0", "prettier": "3.1.1", @@ -92,12 +92,12 @@ "ts-node": "10.9.2", "typescript": "5.3.3", "vite-plugin-svgr": "4.2.0", - "vite-tsconfig-paths": "4.2.2", - "vitest": "1.1.0" + "vite-tsconfig-paths": "4.2.3", + "vitest": "1.1.3" }, "dependencies": { "@antv/g6": "4.8.23", - "@asteasolutions/zod-to-openapi": "6.3.0", + "@asteasolutions/zod-to-openapi": "6.3.1", "@belgattitude/http-exception": "1.5.0", "@codemirror/autocomplete": "6.10.1", "@codemirror/commands": "6.3.0", @@ -110,7 +110,7 @@ "@emoji-mart/data": "1.1.2", "@emoji-mart/react": "1.1.1", "@fontsource-variable/inter": "5.0.16", - "@hookform/resolvers": "3.3.2", + "@hookform/resolvers": "3.3.4", "@nem035/gpt-3-encoder": "1.1.7", "@radix-ui/react-icons": "1.3.0", "@sentry/nextjs": "7.76.0", @@ -124,9 +124,9 @@ "@teable-group/sdk": "workspace:^", "@teable-group/ui-lib": "workspace:^", "allotment": "1.19.4", - "axios": "1.6.3", + "axios": "1.6.5", "class-variance-authority": "0.7.0", - "classnames": "2.5.0", + "classnames": "2.5.1", "dayjs": "1.11.10", "echarts": "5.4.3", "emoji-mart": "5.5.2", @@ -138,7 +138,7 @@ "knex": "3.0.1", "lodash": "4.17.21", "lru-cache": "10.1.0", - "lucide-react": "0.302.0", + "lucide-react": "0.303.0", "next": "13.0.2", "next-i18next": "14.0.3", "next-secure-headers": "2.2.0", @@ -167,7 +167,7 @@ "remark-gfm": "4.0.0", "sharedb": "4.1.2", "tailwind-scrollbar": "3.0.5", - "tailwindcss": "3.4.0", + "tailwindcss": "3.4.1", "type-fest": "4.9.0", "zod": "3.22.4", "zod-validation-error": "2.1.0", diff --git a/docker-bake.hcl b/docker-bake.hcl new file mode 100644 index 000000000..750160edf --- /dev/null +++ b/docker-bake.hcl @@ -0,0 +1,18 @@ +group "default" { + targets = ["teable"] +} + +variable "IMAGE_REGISTRY" { + default = "docker.io" +} + +variable "IMAGE_TAG" { + default = "latest" +} + +target "teable" { + context = "." + dockerfile = "dockers/teable/Dockerfile" + platforms = ["linux/amd64", "linux/arm64"] + tags = ["${IMAGE_REGISTRY}/teable:latest", "${IMAGE_REGISTRY}/teable:${IMAGE_TAG}"] +} \ No newline at end of file diff --git a/package.json b/package.json index f986f7a7f..f8c332428 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,8 @@ "devDependencies": { "@changesets/changelog-github": "0.5.0", "@changesets/cli": "2.27.1", - "@commitlint/cli": "18.4.3", - "@commitlint/config-conventional": "18.4.3", + "@commitlint/cli": "18.4.4", + "@commitlint/config-conventional": "18.4.4", "@teable-group/eslint-config-bases": "workspace:^", "@types/prettier": "2.7.3", "@types/shell-quote": "1.7.5", @@ -67,8 +67,8 @@ }, "engines": { "node": ">=18.17.0", - "pnpm": ">=8.11.0", + "pnpm": ">=8.12.1", "npm": "please-use-pnpm" }, - "packageManager": "pnpm@8.13.1" + "packageManager": "pnpm@8.14.0" } diff --git a/packages/core/package.json b/packages/core/package.json index 4b0e42eb4..19195221b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -32,7 +32,7 @@ "fix-all-files": "eslint . --ext .ts,.js,.mjs,.cjs,.mts,.cts --fix" }, "dependencies": { - "@asteasolutions/zod-to-openapi": "6.3.0", + "@asteasolutions/zod-to-openapi": "6.3.1", "@soluble/dsn-parser": "1.9.2", "antlr4ts": "0.5.0-alpha.4", "class-transformer": "0.5.1", @@ -58,7 +58,7 @@ "rimraf": "5.0.5", "size-limit": "11.0.1", "typescript": "5.3.3", - "vite-tsconfig-paths": "4.2.2", - "vitest": "1.1.0" + "vite-tsconfig-paths": "4.2.3", + "vitest": "1.1.3" } } diff --git a/packages/core/src/auth/index.ts b/packages/core/src/auth/index.ts index a7436a3f9..c70291258 100644 --- a/packages/core/src/auth/index.ts +++ b/packages/core/src/auth/index.ts @@ -2,3 +2,4 @@ export * from './actions'; export * from './role'; export * from './permission'; export * from './anonymous'; +export * from './me-tag'; diff --git a/packages/core/src/auth/me-tag.ts b/packages/core/src/auth/me-tag.ts new file mode 100644 index 000000000..a3d52a4a6 --- /dev/null +++ b/packages/core/src/auth/me-tag.ts @@ -0,0 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/naming-convention +export const Me = 'Me'; + +export const isMeTag = (str: string) => str === Me; diff --git a/packages/core/src/models/aggregation/aggregation.schema.ts b/packages/core/src/models/aggregation/aggregation.schema.ts index 5e962a654..e17f644a6 100644 --- a/packages/core/src/models/aggregation/aggregation.schema.ts +++ b/packages/core/src/models/aggregation/aggregation.schema.ts @@ -67,6 +67,13 @@ export const rowCountVoSchema = rawRowCountValueSchema; export type IRowCountVo = z.infer; +export const aggregationFieldSchema = z.object({ + fieldId: z.string(), + statisticFunc: z.nativeEnum(StatisticsFunc), +}); + +export type IAggregationField = z.infer; + export const aggregationRoSchema = z.object({ viewId: z.string().startsWith(IdPrefix.View).optional().openapi({ description: 'The id of the view.', diff --git a/packages/db-main-prisma/package.json b/packages/db-main-prisma/package.json index 56c321f0c..c6363a2cf 100644 --- a/packages/db-main-prisma/package.json +++ b/packages/db-main-prisma/package.json @@ -47,7 +47,7 @@ "@types/node": "18.18.2", "camelcase": "8.0.0", "cross-env": "7.0.3", - "dotenv-flow-cli": "1.0.0", + "dotenv-flow-cli": "1.1.1", "eslint": "8.56.0", "handlebars": "4.7.8", "is-port-reachable": "3.1.0", diff --git a/packages/db-main-prisma/prisma/postgres/schema.prisma b/packages/db-main-prisma/prisma/postgres/schema.prisma index 53ab14861..1cd2d414e 100644 --- a/packages/db-main-prisma/prisma/postgres/schema.prisma +++ b/packages/db-main-prisma/prisma/postgres/schema.prisma @@ -1,5 +1,6 @@ generator client { - provider = "prisma-client-js" + provider = "prisma-client-js" + previewFeatures = ["tracing"] } datasource db { diff --git a/packages/db-main-prisma/prisma/sqlite/schema.prisma b/packages/db-main-prisma/prisma/sqlite/schema.prisma index a42868901..91e23282d 100644 --- a/packages/db-main-prisma/prisma/sqlite/schema.prisma +++ b/packages/db-main-prisma/prisma/sqlite/schema.prisma @@ -1,5 +1,6 @@ generator client { - provider = "prisma-client-js" + provider = "prisma-client-js" + previewFeatures = ["tracing"] } datasource db { diff --git a/packages/db-main-prisma/prisma/template.prisma b/packages/db-main-prisma/prisma/template.prisma index 62955b52d..2bfb66ef3 100644 --- a/packages/db-main-prisma/prisma/template.prisma +++ b/packages/db-main-prisma/prisma/template.prisma @@ -1,5 +1,6 @@ generator client { - provider = "prisma-client-js" + provider = "prisma-client-js" + previewFeatures = ["tracing"] } datasource db { diff --git a/packages/eslint-config-bases/package.json b/packages/eslint-config-bases/package.json index c2bc7bc0c..a8345e918 100644 --- a/packages/eslint-config-bases/package.json +++ b/packages/eslint-config-bases/package.json @@ -72,28 +72,28 @@ "fix-all-files": "eslint --ext .ts,.tsx,.js,.jsx --fix" }, "dependencies": { - "@rushstack/eslint-patch": "1.5.1", + "@rushstack/eslint-patch": "1.6.1", "@tanstack/eslint-plugin-query": "4.36.1", - "@typescript-eslint/eslint-plugin": "6.13.2", - "@typescript-eslint/parser": "6.13.2", + "@typescript-eslint/eslint-plugin": "6.16.0", + "@typescript-eslint/parser": "6.16.0", "eslint-config-prettier": "9.1.0", "eslint-import-resolver-typescript": "3.6.1", - "eslint-plugin-import": "2.29.0", + "eslint-plugin-import": "2.29.1", "eslint-plugin-jest": "27.6.0", "eslint-plugin-jest-formatting": "3.1.0", "eslint-plugin-jsx-a11y": "6.8.0", - "eslint-plugin-playwright": "0.20.0", - "eslint-plugin-prettier": "5.0.1", + "eslint-plugin-playwright": "0.21.0", + "eslint-plugin-prettier": "5.1.2", "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "4.6.0 || 5.0.0-canary-7118f5dd7-20230705", - "eslint-plugin-regexp": "2.1.1", + "eslint-plugin-regexp": "2.1.2", "eslint-plugin-sonarjs": "0.23.0", "eslint-plugin-storybook": "0.6.15", "eslint-plugin-testing-library": "6.2.0" }, "peerDependencies": { "eslint": "^8.55.0", - "eslint-plugin-mdx": "^2.0.5", + "eslint-plugin-mdx": "^2.2.0 || ^3.0.0", "eslint-plugin-tailwindcss": "^3.13.0", "prettier": "^3.1.1", "react": "^18.2.0", @@ -124,7 +124,7 @@ } }, "devDependencies": { - "@testing-library/jest-dom": "6.1.5", + "@testing-library/jest-dom": "6.2.0", "@testing-library/react": "14.1.2", "@types/jest": "29.5.11", "@types/node": "18.18.2", @@ -133,11 +133,11 @@ "es-check": "7.1.1", "eslint": "8.56.0", "eslint-plugin-mdx": "3.0.0", - "eslint-plugin-tailwindcss": "3.13.0", + "eslint-plugin-tailwindcss": "3.13.1", "react": "18.2.0", "react-dom": "18.2.0", "rimraf": "5.0.5", - "tailwindcss": "3.4.0", + "tailwindcss": "3.4.1", "typescript": "5.3.3" } } diff --git a/packages/icons/package.json b/packages/icons/package.json index f6611fdff..e7e540b50 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -38,7 +38,7 @@ "@types/fs-extra": "11.0.4", "@types/node": "18.18.2", "@types/react": "18.2.45", - "axios": "1.6.3", + "axios": "1.6.5", "chalk": "5.3.0", "dotenv": "16.3.1", "eslint": "8.56.0", diff --git a/packages/openapi/package.json b/packages/openapi/package.json index 78340b7a7..81711b123 100644 --- a/packages/openapi/package.json +++ b/packages/openapi/package.json @@ -20,10 +20,10 @@ "typecheck": "tsc --project ./tsconfig.build.json --noEmit" }, "dependencies": { - "@asteasolutions/zod-to-openapi": "6.3.0", + "@asteasolutions/zod-to-openapi": "6.3.1", "@teable-group/core": "workspace:^", "@types/qs": "6.9.11", - "axios": "1.6.3", + "axios": "1.6.5", "openapi3-ts": "4.2.1", "qs": "6.11.2", "zod": "3.22.4" diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 12dd6cbb0..62507aa39 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -52,9 +52,9 @@ "@teable-group/ui-lib": "workspace:*", "@types/mousetrap": "1.6.15", "antlr4ts": "0.5.0-alpha.4", - "axios": "1.6.3", + "axios": "1.6.5", "class-transformer": "0.5.1", - "classnames": "2.5.0", + "classnames": "2.5.1", "dayjs": "1.11.10", "dequal": "2.0.3", "fuse.js": "7.0.0", @@ -62,7 +62,7 @@ "knex": "3.0.1", "lodash": "4.17.21", "lru-cache": "10.1.0", - "lucide-react": "0.302.0", + "lucide-react": "0.303.0", "mousetrap": "1.6.5", "react-day-picker": "8.10.0", "react-hammerjs": "1.0.1", @@ -81,7 +81,7 @@ }, "devDependencies": { "@teable-group/eslint-config-bases": "workspace:^", - "@testing-library/jest-dom": "6.1.5", + "@testing-library/jest-dom": "6.2.0", "@testing-library/react": "14.1.2", "@types/lodash": "4.14.202", "@types/node": "18.18.2", @@ -100,10 +100,10 @@ "react": "18.2.0", "react-dom": "18.2.0", "rimraf": "5.0.5", - "tailwindcss": "3.4.0", + "tailwindcss": "3.4.1", "typescript": "5.3.3", "vite-plugin-svgr": "4.2.0", - "vite-tsconfig-paths": "4.2.2", - "vitest": "1.1.0" + "vite-tsconfig-paths": "4.2.3", + "vitest": "1.1.3" } } diff --git a/packages/sdk/src/components/filter/component/FilterUserSelect.tsx b/packages/sdk/src/components/filter/component/FilterUserSelect.tsx index b6b84ff76..e353eecd1 100644 --- a/packages/sdk/src/components/filter/component/FilterUserSelect.tsx +++ b/packages/sdk/src/components/filter/component/FilterUserSelect.tsx @@ -1,4 +1,5 @@ import { useQuery } from '@tanstack/react-query'; +import { isMeTag, Me } from '@teable-group/core'; import { User as UserIcon } from '@teable-group/icons'; import { getBaseCollaboratorList } from '@teable-group/openapi'; import { Avatar, AvatarFallback, AvatarImage } from '@teable-group/ui-lib'; @@ -16,7 +17,7 @@ interface IFilterUserProps { onSelect: (value: string[] | string | null) => void; } -const SINGLESELECTOPERATORS = ['is', 'isNot']; +const SINGLE_SELECT_OPERATORS = ['is', 'isNot']; const FilterUserSelectBase = (props: IFilterUserProps) => { const { user: currentUser } = useSession(); @@ -41,7 +42,7 @@ const FilterUserSelectBase = (props: IFilterUserProps) => { if (currentUser) { map.unshift({ - value: 'Me', + value: Me, label: t('filter.currentUser'), avatar: null, }); @@ -57,7 +58,7 @@ const FilterUserSelectBase = (props: IFilterUserProps) => { >
- {option.value === 'Me' ? ( + {isMeTag(option.value) ? ( @@ -82,7 +83,7 @@ const FilterUserSelectBase = (props: IFilterUserProps) => { >
- {option.value === 'Me' ? ( + {isMeTag(option.value) ? ( @@ -101,7 +102,7 @@ const FilterUserSelectBase = (props: IFilterUserProps) => { return ( <> - {SINGLESELECTOPERATORS.includes(operator) ? ( + {SINGLE_SELECT_OPERATORS.includes(operator) ? ( =0.1.90'} dev: true - /@commitlint/cli@18.4.3(typescript@5.3.3): - resolution: {integrity: sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==} + /@commitlint/cli@18.4.4(@types/node@18.18.2)(typescript@5.3.3): + resolution: {integrity: sha512-Ro3wIo//fV3XiV1EkdpHog6huaEyNcUAVrSmtgKqYM5g982wOWmP4FXvEDFwRMVgz878CNBvvCc33dMZ5AQJ/g==} engines: {node: '>=v18'} hasBin: true dependencies: - '@commitlint/format': 18.4.3 - '@commitlint/lint': 18.4.3 - '@commitlint/load': 18.4.3(typescript@5.3.3) - '@commitlint/read': 18.4.3 - '@commitlint/types': 18.4.3 + '@commitlint/format': 18.4.4 + '@commitlint/lint': 18.4.4 + '@commitlint/load': 18.4.4(@types/node@18.18.2)(typescript@5.3.3) + '@commitlint/read': 18.4.4 + '@commitlint/types': 18.4.4 execa: 5.1.1 lodash.isfunction: 3.0.9 resolve-from: 5.0.0 resolve-global: 1.0.0 yargs: 17.7.2 transitivePeerDependencies: + - '@types/node' - typescript dev: true - /@commitlint/config-conventional@18.4.3: - resolution: {integrity: sha512-729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==} + /@commitlint/config-conventional@18.4.4: + resolution: {integrity: sha512-Bz3sPQSboBN+Et/KyZrR+OJ3z9PrHDw7Bls0/hv94PmuHBtMq1dCGxS9XzTGzxeMNlytCC4kxF083tbhPljl3Q==} engines: {node: '>=v18'} dependencies: conventional-changelog-conventionalcommits: 7.0.2 dev: true - /@commitlint/config-validator@18.4.3: - resolution: {integrity: sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==} + /@commitlint/config-validator@18.4.4: + resolution: {integrity: sha512-/QI8KIg/h7O0Eus36fPcEcO3QPBcdXuGfZeCF5m15k0EB2bcU8s6pHNTNEa6xz9PrAefHCL+yzRJj7w20T6Mow==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.4.3 + '@commitlint/types': 18.4.4 ajv: 8.12.0 dev: true - /@commitlint/ensure@18.4.3: - resolution: {integrity: sha512-MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==} + /@commitlint/ensure@18.4.4: + resolution: {integrity: sha512-KjD19p6julB5WrQL+Cd8p+AePwpl1XzGAjB0jnuFMKWtji9L7ucCZUKDstGjlkBZGGzH/nvdB8K+bh5K27EVUg==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.4.3 + '@commitlint/types': 18.4.4 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -3625,46 +3653,45 @@ packages: lodash.upperfirst: 4.3.1 dev: true - /@commitlint/execute-rule@18.4.3: - resolution: {integrity: sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==} + /@commitlint/execute-rule@18.4.4: + resolution: {integrity: sha512-a37Nd3bDQydtg9PCLLWM9ZC+GO7X5i4zJvrggJv5jBhaHsXeQ9ZWdO6ODYR+f0LxBXXNYK3geYXJrCWUCP8JEg==} engines: {node: '>=v18'} dev: true - /@commitlint/format@18.4.3: - resolution: {integrity: sha512-8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==} + /@commitlint/format@18.4.4: + resolution: {integrity: sha512-2v3V5hVlv0R3pe7p66IX5F7cjeVvGM5JqITRIbBCFvGHPJ/CG74rjTkAu0RBEiIhlk3eOaLjVGq3d5falPkLBA==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.4.3 + '@commitlint/types': 18.4.4 chalk: 4.1.2 dev: true - /@commitlint/is-ignored@18.4.3: - resolution: {integrity: sha512-ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==} + /@commitlint/is-ignored@18.4.4: + resolution: {integrity: sha512-rXWes9owKBTjfTr6Od7YlflRg4N+ngkOH+dUZhk0qL/XQb26mHz0EgVgdixMVBac1OsohRwJaLmVHX+5F6vfmg==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.4.3 + '@commitlint/types': 18.4.4 semver: 7.5.4 dev: true - /@commitlint/lint@18.4.3: - resolution: {integrity: sha512-18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==} + /@commitlint/lint@18.4.4: + resolution: {integrity: sha512-SoyQstVxMY5Z4GnFRtRzy+NWYb+yVseXgir+7BxnpB59oH05C9XztRrhDw6OnkNeXhjINTpi1HLnuY7So+CaAQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/is-ignored': 18.4.3 - '@commitlint/parse': 18.4.3 - '@commitlint/rules': 18.4.3 - '@commitlint/types': 18.4.3 + '@commitlint/is-ignored': 18.4.4 + '@commitlint/parse': 18.4.4 + '@commitlint/rules': 18.4.4 + '@commitlint/types': 18.4.4 dev: true - /@commitlint/load@18.4.3(typescript@5.3.3): - resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==} + /@commitlint/load@18.4.4(@types/node@18.18.2)(typescript@5.3.3): + resolution: {integrity: sha512-RaDIa9qwOw2xRJ3Jr2DBXd14rmnHJIX2XdZF4kmoF1rgsg/+7cvrExLSUNAkQUNimyjCn1b/bKX2Omm+GdY0XQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/config-validator': 18.4.3 - '@commitlint/execute-rule': 18.4.3 - '@commitlint/resolve-extends': 18.4.3 - '@commitlint/types': 18.4.3 - '@types/node': 18.18.2 + '@commitlint/config-validator': 18.4.4 + '@commitlint/execute-rule': 18.4.4 + '@commitlint/resolve-extends': 18.4.4 + '@commitlint/types': 18.4.4 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.3.3) cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.2)(cosmiconfig@8.3.6)(typescript@5.3.3) @@ -3673,71 +3700,71 @@ packages: lodash.uniq: 4.5.0 resolve-from: 5.0.0 transitivePeerDependencies: + - '@types/node' - typescript dev: true - /@commitlint/message@18.4.3: - resolution: {integrity: sha512-ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==} + /@commitlint/message@18.4.4: + resolution: {integrity: sha512-lHF95mMDYgAI1LBXveJUyg4eLaMXyOqJccCK3v55ZOEUsMPrDi8upqDjd/NmzWmESYihaOMBTAnxm+6oD1WoDQ==} engines: {node: '>=v18'} dev: true - /@commitlint/parse@18.4.3: - resolution: {integrity: sha512-eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==} + /@commitlint/parse@18.4.4: + resolution: {integrity: sha512-99G7dyn/OoyNWXJni0Ki0K3aJd01pEb/Im/Id6y4X7PN+kGOahjz2z/cXYYHn7xDdooqFVdiVrVLeChfgpWZ2g==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.4.3 + '@commitlint/types': 18.4.4 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 dev: true - /@commitlint/read@18.4.3: - resolution: {integrity: sha512-H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==} + /@commitlint/read@18.4.4: + resolution: {integrity: sha512-r58JbWky4gAFPea/CZmvlqP9Ehbs+8gSEUqhIJOojKzTc3xlxFnZUDVPcEnnaqzQEEoV6C69VW7xuzdcBlu/FQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/top-level': 18.4.3 - '@commitlint/types': 18.4.3 - fs-extra: 11.2.0 + '@commitlint/top-level': 18.4.4 + '@commitlint/types': 18.4.4 git-raw-commits: 2.0.11 minimist: 1.2.8 dev: true - /@commitlint/resolve-extends@18.4.3: - resolution: {integrity: sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==} + /@commitlint/resolve-extends@18.4.4: + resolution: {integrity: sha512-RRpIHSbRnFvmGifVk21Gqazf1QF/yeP+Kkg/e3PlkegcOKd/FGOXp/Kx9cvSO2K7ucSn4GD/oBvgasFoy+NCAw==} engines: {node: '>=v18'} dependencies: - '@commitlint/config-validator': 18.4.3 - '@commitlint/types': 18.4.3 + '@commitlint/config-validator': 18.4.4 + '@commitlint/types': 18.4.4 import-fresh: 3.3.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 resolve-global: 1.0.0 dev: true - /@commitlint/rules@18.4.3: - resolution: {integrity: sha512-8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==} + /@commitlint/rules@18.4.4: + resolution: {integrity: sha512-6Uzlsnl/GljEI+80NWjf4ThOfR8NIsbm18IfXYuCEchlwMHSxiuYG4rHSK5DNmG/+MIo8eR5VdQ0gQyt7kWzAA==} engines: {node: '>=v18'} dependencies: - '@commitlint/ensure': 18.4.3 - '@commitlint/message': 18.4.3 - '@commitlint/to-lines': 18.4.3 - '@commitlint/types': 18.4.3 + '@commitlint/ensure': 18.4.4 + '@commitlint/message': 18.4.4 + '@commitlint/to-lines': 18.4.4 + '@commitlint/types': 18.4.4 execa: 5.1.1 dev: true - /@commitlint/to-lines@18.4.3: - resolution: {integrity: sha512-fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==} + /@commitlint/to-lines@18.4.4: + resolution: {integrity: sha512-mwe2Roa59NCz/krniAdCygFabg7+fQCkIhXqBHw00XQ8Y7lw4poZLLxeGI3p3bLpcEOXdqIDrEGLwHmG5lBdwQ==} engines: {node: '>=v18'} dev: true - /@commitlint/top-level@18.4.3: - resolution: {integrity: sha512-E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==} + /@commitlint/top-level@18.4.4: + resolution: {integrity: sha512-PBwW1drgeavl9CadB7IPRUk6rkUP/O8jEkxjlC+ofuh3pw0bzJdAT+Kw7M1Yc9KtTb9xTaqUB8uvRtaybHa/tQ==} engines: {node: '>=v18'} dependencies: find-up: 5.0.0 dev: true - /@commitlint/types@18.4.3: - resolution: {integrity: sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==} + /@commitlint/types@18.4.4: + resolution: {integrity: sha512-/FykLtodD8gKs3+VNkAUwofu4LBHankclj+I8fB2jTRvG6PV7k/OUt4P+VbM7ip853qS4F0g7Z6hLNa6JeMcAQ==} engines: {node: '>=v18'} dependencies: chalk: 4.1.2 @@ -3814,18 +3841,18 @@ packages: '@csstools/css-tokenizer': 2.2.1 dev: true - /@csstools/postcss-cascade-layers@4.0.1(postcss@8.4.32): + /@csstools/postcss-cascade-layers@4.0.1(postcss@8.4.33): resolution: {integrity: sha512-UYFuFL9GgVnftg9v7tBvVEBRLaBeAD66euD+yYy5fYCUld9ZIWTJNCE30hm6STMEdt6FL5xzeVw1lAZ1tpvUEg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-color-function@3.0.7(postcss@8.4.32): + /@csstools/postcss-color-function@3.0.7(postcss@8.4.33): resolution: {integrity: sha512-/PIB20G1TPCXmQlaJLWIYzTZRZpj6csT4ijgnshIj/kcmniIRroAfDa0xSWnfuO1eNo0NptIaPU7jzUukWn55Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3834,11 +3861,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 dev: true - /@csstools/postcss-color-mix-function@2.0.7(postcss@8.4.32): + /@csstools/postcss-color-mix-function@2.0.7(postcss@8.4.33): resolution: {integrity: sha512-57/g8aGo5eKFjEeJMiRKh8Qq43K2rCyk5ZZTvJ34TNl4zUtYU5DvLkIkOnhCtL8/a4z9oMA42aOnFPddRrScUQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3847,11 +3874,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 dev: true - /@csstools/postcss-exponential-functions@1.0.1(postcss@8.4.32): + /@csstools/postcss-exponential-functions@1.0.1(postcss@8.4.33): resolution: {integrity: sha512-ZLK2iSK4DUxeypGce2PnQSdYugUqDTwxnhNiq1o6OyKMNYgYs4eKbvEhFG8JKr1sJWbeqBi5jRr0017l2EWVvg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3860,20 +3887,20 @@ packages: '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-font-format-keywords@3.0.0(postcss@8.4.32): + /@csstools/postcss-font-format-keywords@3.0.0(postcss@8.4.33): resolution: {integrity: sha512-ntkGj+1uDa/u6lpjPxnkPcjJn7ChO/Kcy08YxctOZI7vwtrdYvFhmE476dq8bj1yna306+jQ9gzXIG/SWfOaRg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-gamut-mapping@1.0.0(postcss@8.4.32): + /@csstools/postcss-gamut-mapping@1.0.0(postcss@8.4.33): resolution: {integrity: sha512-6UQyK8l9YaG5Ao5rBDcCnKHrLsHiQ1E0zeFQuqDJqEtinVzAPb/MwSw3TenZXL1Rnd7th3tb+4CBFHBXdW5tbQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3882,10 +3909,10 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-gradients-interpolation-method@4.0.7(postcss@8.4.32): + /@csstools/postcss-gradients-interpolation-method@4.0.7(postcss@8.4.33): resolution: {integrity: sha512-GT1CzE/Tyr/ei4j5BwKESkHAgg+Gzys/0mAY7W+UiR+XrcYk5hDbOrE/YJIx1rflfO/7La1bDoZtA0YnLl4qNA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3894,11 +3921,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 dev: true - /@csstools/postcss-hwb-function@3.0.6(postcss@8.4.32): + /@csstools/postcss-hwb-function@3.0.6(postcss@8.4.33): resolution: {integrity: sha512-uQgWt2Ho2yy2S6qthWY7mD5v57NKxi6dD1NB8nAybU5bJSsm+hLXRGm3/zbOH4xNrqO3Cl60DFSNlSrUME3Xjg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3907,88 +3934,88 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-ic-unit@3.0.2(postcss@8.4.32): + /@csstools/postcss-ic-unit@3.0.2(postcss@8.4.33): resolution: {integrity: sha512-n28Er7W9qc48zNjJnvTKuVHY26/+6YlA9WzJRksIHiAWOMxSH5IksXkw7FpkIOd+jLi59BMrX/BWrZMgjkLBHg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-initial@1.0.0(postcss@8.4.32): + /@csstools/postcss-initial@1.0.0(postcss@8.4.33): resolution: {integrity: sha512-1l7iHHjIl5qmVeGItugr4ZOlCREDP71mNKqoEyxlosIoiu3Os1nPWMHpuCvDLCLiWI/ONTOg3nzJh7gwHOrqUA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-is-pseudo-class@4.0.3(postcss@8.4.32): + /@csstools/postcss-is-pseudo-class@4.0.3(postcss@8.4.33): resolution: {integrity: sha512-/dt5M9Ty/x3Yiq0Nm/5PJJzwkVFchJgdjKVnryBPtoMCb9ohb/nDIJOwr/Wr3hK3FDs1EA1GE6PyRYsUmQPS8Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-logical-float-and-clear@2.0.0(postcss@8.4.32): + /@csstools/postcss-logical-float-and-clear@2.0.0(postcss@8.4.33): resolution: {integrity: sha512-Wki4vxsF6icRvRz8eF9bPpAvwaAt0RHwhVOyzfoFg52XiIMjb6jcbHkGxwpJXP4DVrnFEwpwmrz5aTRqOW82kg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-logical-overflow@1.0.0(postcss@8.4.32): + /@csstools/postcss-logical-overflow@1.0.0(postcss@8.4.33): resolution: {integrity: sha512-cIrZ8f7bGGvr+W53nEuMspcwaeaI2YTmz6LZ4yiAO5z14/PQgOOv+Pn+qjvPOPoadeY2BmpaoTzZKvdAQuM17w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-logical-overscroll-behavior@1.0.0(postcss@8.4.32): + /@csstools/postcss-logical-overscroll-behavior@1.0.0(postcss@8.4.33): resolution: {integrity: sha512-e89S2LWjnxf0SB2wNUAbqDyFb/Fow/tlOe1XqOLbNx4rf3LrQokM9qldVx7sarnddml3ORE5LDUmlKpPOOeJTA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-logical-resize@2.0.0(postcss@8.4.32): + /@csstools/postcss-logical-resize@2.0.0(postcss@8.4.33): resolution: {integrity: sha512-lCQ1aX8c5+WI4t5EoYf3alTzJNNocMqTb+u1J9CINdDhFh1fjovqK+0aHalUHsNstZmzFPNzIkU4Mb3eM9U8SA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-logical-viewport-units@2.0.3(postcss@8.4.32): + /@csstools/postcss-logical-viewport-units@2.0.3(postcss@8.4.33): resolution: {integrity: sha512-xeVxqND5rlQyqLGdH7rX34sIm/JbbQKxpKQP8oD1YQqUHHCLQR9NUS57WqJKajxKN6AcNAMWJhb5LUH5RfPcyA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-media-minmax@1.1.0(postcss@8.4.32): + /@csstools/postcss-media-minmax@1.1.0(postcss@8.4.33): resolution: {integrity: sha512-t5Li/DPC5QmW/6VFLfUvsw/4dNYYseWR0tOXDeJg/9EKUodBgNawz5tuk5vYKtNvoj+Q08odMuXcpS5YJj0AFA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3998,10 +4025,10 @@ packages: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.3(postcss@8.4.32): + /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.3(postcss@8.4.33): resolution: {integrity: sha512-IPL8AvnwMYW+cWtp+j8cW3MFN0RyXNT4hLOvs6Rf2N+NcbvXhSyKxZuE3W9Cv4KjaNoNoGx1d0UhT6tktq6tUw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -4010,30 +4037,30 @@ packages: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-nested-calc@3.0.0(postcss@8.4.32): + /@csstools/postcss-nested-calc@3.0.0(postcss@8.4.33): resolution: {integrity: sha512-HsB66aDWAouOwD/GcfDTS0a7wCuVWaTpXcjl5VKP0XvFxDiU+r0T8FG7xgb6ovZNZ+qzvGIwRM+CLHhDgXrYgQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-normalize-display-values@3.0.1(postcss@8.4.32): + /@csstools/postcss-normalize-display-values@3.0.1(postcss@8.4.33): resolution: {integrity: sha512-nUvRxI+ALJwkxZdPU4EDyuM380vP91sAGvI3jAOHs/sr3jfcCOzLkY6xKI1Mr526kZ3RivmMoYM/xq+XFyE/bw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-oklab-function@3.0.7(postcss@8.4.32): + /@csstools/postcss-oklab-function@3.0.7(postcss@8.4.33): resolution: {integrity: sha512-vBFTQD3CARB3u/XIGO44wWbcO7xG/4GsYqJlcPuUGRSK8mtxes6n4vvNFlIByyAZy2k4d4RY63nyvTbMpeNTaQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -4042,21 +4069,21 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 dev: true - /@csstools/postcss-progressive-custom-properties@3.0.2(postcss@8.4.32): + /@csstools/postcss-progressive-custom-properties@3.0.2(postcss@8.4.33): resolution: {integrity: sha512-YEvTozk1SxnV/PGL5DllBVDuLQ+jiQhyCSQiZJ6CwBMU5JQ9hFde3i1qqzZHuclZfptjrU0JjlX4ePsOhxNzHw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-relative-color-syntax@2.0.7(postcss@8.4.32): + /@csstools/postcss-relative-color-syntax@2.0.7(postcss@8.4.33): resolution: {integrity: sha512-2AiFbJSVF4EyymLxme4JzSrbXykHolx8DdZECHjYKMhoulhKLltx5ccYgtrK3BmXGd3v3nJrWFCc8JM8bjuiOg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -4065,21 +4092,21 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 dev: true - /@csstools/postcss-scope-pseudo-class@3.0.0(postcss@8.4.32): + /@csstools/postcss-scope-pseudo-class@3.0.0(postcss@8.4.33): resolution: {integrity: sha512-GFNVsD97OuEcfHmcT0/DAZWAvTM/FFBDQndIOLawNc1Wq8YqpZwBdHa063Lq+Irk7azygTT+Iinyg3Lt76p7rg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-stepped-value-functions@3.0.2(postcss@8.4.32): + /@csstools/postcss-stepped-value-functions@3.0.2(postcss@8.4.33): resolution: {integrity: sha512-I3wX44MZVv+tDuWfrd3BTvRB/YRIM2F5v1MBtTI89sxpFn47mNpTwpPYUOGPVCgKlRDfZSlxIUYhUQmqRQZZFQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -4088,21 +4115,21 @@ packages: '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-text-decoration-shorthand@3.0.3(postcss@8.4.32): + /@csstools/postcss-text-decoration-shorthand@3.0.3(postcss@8.4.33): resolution: {integrity: sha512-d5J9m49HhqXRcw1S6vTZuviHi/iknUKGjBpChiNK1ARg9sSa3b8m5lsWz5Izs8ISORZdv2bZRwbw5Z2R6gQ9kQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/color-helpers': 3.0.2 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-trigonometric-functions@3.0.2(postcss@8.4.32): + /@csstools/postcss-trigonometric-functions@3.0.2(postcss@8.4.33): resolution: {integrity: sha512-AwzNhF4QOKaLOKvMljwwFkeYXwufhRO15G+kKohHkyoNOL75xWkN+W2Y9ik9tSeAyDv+cYNlYaF+o/a79WjVjg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -4111,16 +4138,16 @@ packages: '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /@csstools/postcss-unset-value@3.0.0(postcss@8.4.32): + /@csstools/postcss-unset-value@3.0.0(postcss@8.4.33): resolution: {integrity: sha512-P0JD1WHh3avVyKKRKjd0dZIjCEeaBer8t1BbwGMUDtSZaLhXlLNBqZ8KkqHzYWXOJgHleXAny2/sx8LYl6qhEA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): @@ -4689,6 +4716,25 @@ packages: resolution: {integrity: sha512-k+BUNqksTL+AN+o+OV7ILeiE9B5M5X+/jA7LWvCwjbV9ovXTqZyKRhA/x7uYv/ml8WQ0XNLBM7cRFIx4jW0/hg==} dev: false + /@grpc/grpc-js@1.9.13: + resolution: {integrity: sha512-OEZZu9v9AA+7/tghMDE8o5DAMD5THVnwSqDWuh7PPYO5287rTyqy0xEHT6/e4pbqSrhyLPdQFsam4TwFQVVIIw==} + engines: {node: ^8.13.0 || >=10.10.0} + dependencies: + '@grpc/proto-loader': 0.7.10 + '@types/node': 18.18.2 + dev: false + + /@grpc/proto-loader@0.7.10: + resolution: {integrity: sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.2.5 + yargs: 17.7.2 + dev: false + /@hapi/address@4.1.0: resolution: {integrity: sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==} deprecated: Moved to 'npm install @sideway/address' @@ -4726,8 +4772,8 @@ packages: '@hapi/hoek': 9.3.0 dev: false - /@hookform/resolvers@3.3.2(react-hook-form@7.49.2): - resolution: {integrity: sha512-Tw+GGPnBp+5DOsSg4ek3LCPgkBOuOgS5DsDV7qsWNH9LZc433kgsWICjlsh2J9p04H2K66hsXPPb9qn9ILdUtA==} + /@hookform/resolvers@3.3.4(react-hook-form@7.49.2): + resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==} peerDependencies: react-hook-form: ^7.0.0 dependencies: @@ -5139,7 +5185,7 @@ packages: resolution: {integrity: sha512-dtOenP4ZAmsKXkobTDUCcbkQvPJbuJ6Kp/LHqWDYLK//XNgGs3Re8ymcQzyVhtph8JckdI3K8FR5Q+6mX7HnpQ==} dev: false - /@nestjs-modules/mailer@1.10.3(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(nodemailer@6.9.7): + /@nestjs-modules/mailer@1.10.3(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(nodemailer@6.9.8): resolution: {integrity: sha512-k2gs2NH8Ygq4JnETX+EDBXixLAS8DDZEI/Wbr9LGL3HwO3Qz8zVh8dBJ4ESpySuWniW+a8rARzGXtTUHC4KFlw==} peerDependencies: '@nestjs/common': '>=7.0.9' @@ -5151,7 +5197,7 @@ packages: css-inline: 0.11.2 glob: 10.3.10 mjml: 4.14.1 - nodemailer: 6.9.7 + nodemailer: 6.9.8 preview-email: 3.0.19 optionalDependencies: '@types/ejs': 3.1.5 @@ -5163,7 +5209,7 @@ packages: - encoding dev: false - /@nestjs/axios@3.0.1(@nestjs/common@10.3.0)(axios@1.6.3)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/axios@3.0.1(@nestjs/common@10.3.0)(axios@1.6.5)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ==} peerDependencies: '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 @@ -5172,7 +5218,7 @@ packages: rxjs: ^6.0.0 || ^7.0.0 dependencies: '@nestjs/common': 10.3.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - axios: 1.6.3 + axios: 1.6.5 reflect-metadata: 0.1.13 rxjs: 7.8.1 dev: false @@ -5464,7 +5510,7 @@ packages: typeorm: optional: true dependencies: - '@nestjs/axios': 3.0.1(@nestjs/common@10.3.0)(axios@1.6.3)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/axios': 3.0.1(@nestjs/common@10.3.0)(axios@1.6.5)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/common': 10.3.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(@nestjs/websockets@10.3.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@prisma/client': 5.7.1(prisma@5.7.1) @@ -5710,6 +5756,367 @@ packages: resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} dev: false + /@opentelemetry/api-logs@0.46.0: + resolution: {integrity: sha512-+9BcqfiEDGPXEIo+o3tso/aqGM5dGbGwAkGVp3FPpZ8GlkK1YlaKRd9gMVyPaeRATwvO5wYGGnCsAc/sMMM9Qw==} + engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false + + /@opentelemetry/api@1.7.0: + resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} + engines: {node: '>=8.0.0'} + dev: false + + /@opentelemetry/context-async-hooks@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-0i1ECOc9daKK3rjUgDDXf0GDD5XfCou5lXnt2DALIc2qKoruPPcesobNKE54laSVUWnC3jX26RzuOa31g0V32A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false + + /@opentelemetry/core@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/semantic-conventions': 1.18.1 + dev: false + + /@opentelemetry/core@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false + + /@opentelemetry/exporter-trace-otlp-grpc@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-kR4kehnfIhv7v/2MuNYfrlh9A/ZtQofwCzurTIplornUjdzhKDGgjui1NkNTqTfM1QkqfCiavGsf5hwocx29bA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.9.13 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-trace-otlp-http@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-vZ2pYOB+qrQ+jnKPY6Gnd58y1k/Ti//Ny6/XsSX7/jED0X77crtSVgC6N5UA0JiGJOh6QB2KE9gaH99010XHzg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-trace-otlp-proto@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-A7PftDM57w1TLiirrhi8ceAnCpYkpUBObELdn239IyYF67zwngImGfBLf5Yo3TTAOA2Oj1TL76L8zWVL8W+Suw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-proto-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-zipkin@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-TY1fy4JiOBN5a8T9fknqTMcz0DXIeFBr6sklaLCgwtj+G699a5R4CekNwpeM7DHSwC44UMX7gljO2I6dYsTS3A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false + + /@opentelemetry/instrumentation-express@0.34.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-pQBQxXpkH6imvzwCdPcw2FKjB1cphoRpmWTiGi6vtBdKXCP0hpne613ycpwhGG7C17S+mbarVmukbJKR4rmh6Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-http@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-t5cxgqfV9AcxVP00/OL1ggkOSZM57VXDpvlWaOidYyyfLKcUJ9e2fGbNwoVsGFboRDeH0iFo7gLA3EEvX13wCA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-pino@0.34.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-auYDSeFhkPFXayT/060mQRL7O88Bt5NKcV0qOfquNa9J5/qs5dlJYdTOraxPrjiGPM3tHaAJ+AvAhR0CPYgZew==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-V1Cr0g8hSg35lpW3G/GYVZurrhHrQZJdmP68WyJ83f1FDn3iru+/Vnlto9kiOSm7PHhW+pZGdb9Fbv+mkQ31CA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.4.2 + require-in-the-middle: 7.2.0 + semver: 7.5.4 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.7.1 + require-in-the-middle: 7.2.0 + semver: 7.5.4 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/otlp-exporter-base@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-hfkh7cG17l77ZSLRAogz19SIJzr0KeC7xv5PDyTFbHFpwwoxV/bEViO49CqUFH6ckXB63NrltASP9R7po+ahTQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/otlp-grpc-exporter-base@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-/KB/xfZZiWIY2JknvCoT/e9paIzQO3QCBN5gR6RyxpXM/AGx3YTAOKvB/Ts9Va19jo5aE74gB7emhFaCNy4Rmw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.9.13 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + protobufjs: 7.2.5 + dev: false + + /@opentelemetry/otlp-proto-exporter-base@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-rEJBA8U2AxfEzrdIUcyyjOweyVFkO6V1XAxwP161JkxpvNuVDdULHAfRVnGtoZhiVA1XsJKcpIIq2MEKAqq4cg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + protobufjs: 7.2.5 + dev: false + + /@opentelemetry/otlp-transformer@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Fj9hZwr6xuqgsaERn667Uf6kuDG884puWhyrai2Jen2Fq+bGf4/5BzEJp/8xvty0VSU4EfXOto/ys3KpSz2UHg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.46.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/propagator-b3@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-v7y5IBOKBm0vP3yf0DHzlw4L2gL6tZ0KeeMTaxfO5IuomMffDbrGWcvYFp0Dt4LdZctTSK523rVLBB9FBHBciQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/propagator-jaeger@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/resources@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.18.1 + dev: false + + /@opentelemetry/resources@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false + + /@opentelemetry/sdk-logs@0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Knlyk4+G72uEzNh6GRN1Fhmrj+/rkATI5/lOrevN7zRDLgp4kfyZBGGoWk7w+qQjlYvwhIIdPVxlIcipivdZIg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.8.0' + '@opentelemetry/api-logs': '>=0.39.1' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.46.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/sdk-metrics@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-FiMii40zr0Fmys4F1i8gmuCvbinBnBsDeGBr4FQemOf0iPCLytYQm5AZJ/nn4xSc71IgKBQwTFQRAGJI7JvZ4Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + lodash.merge: 4.6.2 + dev: false + + /@opentelemetry/sdk-node@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-BQhzdCRZXchhKjZaFkgxlgoowjOt/QXekJ1CZgfvFO9Yg5GV15LyJFUEyQkDyD8XbshGo3Cnj0WZMBnDWtWY1A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.46.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-http': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-zipkin': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-node': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/sdk-trace-base@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.18.1 + dev: false + + /@opentelemetry/sdk-trace-base@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false + + /@opentelemetry/sdk-trace-node@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/context-async-hooks': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-b3': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-jaeger': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + semver: 7.5.4 + dev: false + + /@opentelemetry/semantic-conventions@1.18.1: + resolution: {integrity: sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA==} + engines: {node: '>=14'} + dev: false + + /@opentelemetry/semantic-conventions@1.19.0: + resolution: {integrity: sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==} + engines: {node: '>=14'} + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -5784,6 +6191,16 @@ packages: '@prisma/debug': 5.7.1 dev: false + /@prisma/instrumentation@5.7.1: + resolution: {integrity: sha512-X7V3KbtIgWmTfVKIDua9xlhuE1CWRkT0/S+U0XQzj5CfDjwttrAzsjxvMHbNQUTsEuQDe+WHmx8PivyTT7dqBQ==} + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + /@probe.gl/env@3.6.0: resolution: {integrity: sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==} dependencies: @@ -5803,6 +6220,49 @@ packages: '@babel/runtime': 7.23.5 dev: false + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false + + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false + + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false + + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false + + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false + + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false + + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false + + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false + + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false + /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: @@ -7385,14 +7845,14 @@ packages: dev: true optional: true - /@rushstack/eslint-patch@1.5.1: - resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} - dev: false - /@rushstack/eslint-patch@1.6.0: resolution: {integrity: sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==} dev: true + /@rushstack/eslint-patch@1.6.1: + resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} + dev: false + /@selderee/plugin-htmlparser2@0.11.0: resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} dependencies: @@ -7590,10 +8050,10 @@ packages: resolution: {integrity: sha512-FgkvHHHSCzjQ1/ouW6Vtw2hy0k5/KWeu116swH5VYX267I4rx+8MCy9/6eZ60IWGIQVNgh0sektKAu0n9gtzzA==} dev: false - /@storybook/addon-actions@7.6.6: - resolution: {integrity: sha512-mLJip9Evb2Chj7ymKbpaybe5NgDy3Du7oSWeURPy/0qXJ2cBqHWnhZ8CTK2DasrstsUhQSJaZVXHhaENT+fn+g==} + /@storybook/addon-actions@7.6.7: + resolution: {integrity: sha512-+6EZvhIeKEqG/RNsU3R5DxOrd60BL5GEvmzE2w60s2eKaNNxtyilDjiO1g4z2s2zDNyr7JL/Ft03pJ0Jgo0lew==} dependencies: - '@storybook/core-events': 7.6.6 + '@storybook/core-events': 7.6.7 '@storybook/global': 5.0.0 '@types/uuid': 9.0.7 dequal: 2.0.3 @@ -7601,18 +8061,18 @@ packages: uuid: 9.0.1 dev: true - /@storybook/addon-backgrounds@7.6.6: - resolution: {integrity: sha512-w5dZ/0cOe55M2G/Lx9f+Ptk4txUPb+Ng+KqEvTaTNqHoh0Xw4QxEn/ciJwmh1u1g3aMZsOgOvwPwug7ykmLgsA==} + /@storybook/addon-backgrounds@7.6.7: + resolution: {integrity: sha512-55sBy1YUqponAVe+qL16qtWxdf63vHEnIoqFyHEwGpk7K9IhFA1BmdSpFr5VnWEwXeJXKj30db78frh2LUdk3Q==} dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 dev: true - /@storybook/addon-controls@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VAXXfPLi1M3RXhBf3uIBZ2hrD9UPDe7yvXHIlCzgj1HIJELODCFyUc+RtvN0mPc/nnlEfzhGfJtenZou5LYwIw==} + /@storybook/addon-controls@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-DJ3gfvcdCgqi7AQxu83vx0AEUKiuJrNcSATfWV3Jqi8dH6fYO2yqpemHEeWOEy+DAHxIOaqLKwb1QjIBj+vSRQ==} dependencies: - '@storybook/blocks': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -7624,27 +8084,27 @@ packages: - supports-color dev: true - /@storybook/addon-docs@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-l4gtoNTn1wHE11x44te1cDkqfm+/w+eNonHe56bwgSqETclS5z18wvM9bQZF32G6C9fpSefaJW3cxVvcuJL1fg==} + /@storybook/addon-docs@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-2dfajNhweofJ3LxjGO83UE5sBMvKtJB0Agj7q8mMtK/9PUCUcbvsFSyZnO/s6X1zAjSn5ZrirbSoTXU4IqxwSA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.6.6 - '@storybook/components': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@storybook/csf-plugin': 7.6.6 - '@storybook/csf-tools': 7.6.6 + '@storybook/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.7 + '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@storybook/csf-plugin': 7.6.7 + '@storybook/csf-tools': 7.6.7 '@storybook/global': 5.0.0 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.6 - '@storybook/postinstall': 7.6.6 - '@storybook/preview-api': 7.6.6 - '@storybook/react-dom-shim': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/node-logger': 7.6.7 + '@storybook/postinstall': 7.6.7 + '@storybook/preview-api': 7.6.7 + '@storybook/react-dom-shim': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 fs-extra: 11.2.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7658,25 +8118,25 @@ packages: - supports-color dev: true - /@storybook/addon-essentials@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OQ8A6r06mg/HvyIk/j2Gt9DK5Qtqgtwq2Ydm5IgVW6gZsuRnv1FAeUG6okf8oXowAzpYoHdsDmCVwNOAGWGO7w==} + /@storybook/addon-essentials@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nNLMrpIvc04z4XCA+kval/44eKAFJlUJeeL2pxwP7F/PSzjWe5BXv1bQHOiw8inRO5II0PzqwWnVCI9jsj7K5A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/addon-actions': 7.6.6 - '@storybook/addon-backgrounds': 7.6.6 - '@storybook/addon-controls': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-highlight': 7.6.6 - '@storybook/addon-measure': 7.6.6 - '@storybook/addon-outline': 7.6.6 - '@storybook/addon-toolbars': 7.6.6 - '@storybook/addon-viewport': 7.6.6 - '@storybook/core-common': 7.6.6 - '@storybook/manager-api': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.6.6 - '@storybook/preview-api': 7.6.6 + '@storybook/addon-actions': 7.6.7 + '@storybook/addon-backgrounds': 7.6.7 + '@storybook/addon-controls': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-highlight': 7.6.7 + '@storybook/addon-measure': 7.6.7 + '@storybook/addon-outline': 7.6.7 + '@storybook/addon-toolbars': 7.6.7 + '@storybook/addon-viewport': 7.6.7 + '@storybook/core-common': 7.6.7 + '@storybook/manager-api': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.6.7 + '@storybook/preview-api': 7.6.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 @@ -7687,14 +8147,14 @@ packages: - supports-color dev: true - /@storybook/addon-highlight@7.6.6: - resolution: {integrity: sha512-B85UaCts2uMpa0yHBSnupzy2WCdW4vfB+lfaBug9beyOyZQdel07BumblE0KwSJftYgdCNPUZ5MRlqEDzMLTWQ==} + /@storybook/addon-highlight@7.6.7: + resolution: {integrity: sha512-2F/tJdn45d4zrvf/cmE1vsczl99wK8+I+kkj0G7jLsrJR0w1zTgbgjy6T9j86HBTBvWcnysNFNIRWPAOh5Wdbw==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/addon-links@7.6.6(react@18.2.0): - resolution: {integrity: sha512-NEcqOz6zZ1dJnCcVmYdaQTAMAGIb8NFAZGnr9DU0q+t4B1fTaWUgqLtBM5V6YqIrXGSC/oKLpjWUkS5UpswlHA==} + /@storybook/addon-links@7.6.7(react@18.2.0): + resolution: {integrity: sha512-O5LekPslkAIDtXC/TCIyg/3c0htBxDYwb/s+NrZUPTNWJsngxvTAwp6aIk6aVSeSCFUMWvBFcVsuV3hv+ndK6w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -7707,15 +8167,15 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-measure@7.6.6: - resolution: {integrity: sha512-b4hyCudlhsbYN1We8pfZHZJ0i0sfC8+GJvrqZQqdSqGicUmA00mggY1GE+gEoHziQ5/4auxFRS3HfUgaQWUNjg==} + /@storybook/addon-measure@7.6.7: + resolution: {integrity: sha512-t1RnnNO4Xzgnsxu63FlZwsCTF0+9jKxr44NiJAUOxW9ppbCvs/JfSDOOvcDRtPWyjgnyzexNUUctMfxvLrU01A==} dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.1 dev: true - /@storybook/addon-outline@7.6.6: - resolution: {integrity: sha512-BMjpjzNEnN8LC7JK92WCXyWgmJwAaEQjRDinr7eD4cBt4Uas5kbciw1g8PtTnh0GbYUsImKao0nzakSVObAdzg==} + /@storybook/addon-outline@7.6.7: + resolution: {integrity: sha512-gu2y46ijjMkXlxy1f8Cctgjw5b5y8vSIqNAYlrs5/Qy+hJAWyU6lj2PFGOCCUG4L+F45fAjwWAin6qz43+WnRQ==} dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 @@ -7734,20 +8194,20 @@ packages: - webpack dev: true - /@storybook/addon-storysource@7.6.6: - resolution: {integrity: sha512-UwuPrfvnCksAfOoMk9dIUD0NBQgMMog3I83mdU/KtwvRwAMdz6v/99m9zg4xOPJ4MCfcCNy5WMoeJwjUul5Iug==} + /@storybook/addon-storysource@7.6.7: + resolution: {integrity: sha512-YFC6rgbyXzlxifKDhhDyuJhu2I8HDW2Wc9IltFBhKdbu6LwlWCvYX6+OnIbRebwNH7vjbvHa8XopSDHroV4yIw==} dependencies: - '@storybook/source-loader': 7.6.6 + '@storybook/source-loader': 7.6.7 estraverse: 5.3.0 tiny-invariant: 1.3.1 dev: true - /@storybook/addon-toolbars@7.6.6: - resolution: {integrity: sha512-sQm5+FcoSMSGn1ioXHoukO6OhUlcNZil0/fonAY50uvp6Z4DyI0FTU7BKIm/NoMqAExQk3sZRfAC/nZZ9Epb0Q==} + /@storybook/addon-toolbars@7.6.7: + resolution: {integrity: sha512-vT+YMzw8yVwndhJglI0XtELfXWq1M0HEy5ST3XPzbjmsJ54LgTf1b29UMkh0E/05qBQNFCcbT9B/tLxqWezxlg==} dev: true - /@storybook/addon-viewport@7.6.6: - resolution: {integrity: sha512-/ijbzDf1Iq30LvZW2NE8cO4TeHusw0N+jTDUK1+vhxGNMFo9DUIgRkAi6VpFEfS0aQ5d82523WSWzVso7b/Hmg==} + /@storybook/addon-viewport@7.6.7: + resolution: {integrity: sha512-Q/BKjJaKzl4RWxH45K2iIXwkicj4ReVAUIpIyd7dPBb/Bx+hEDYZxR5dDg82AMkZdA71x5ttMnuDSuVpmWAE6g==} dependencies: memoizerific: 1.11.3 dev: true @@ -7766,7 +8226,7 @@ packages: '@storybook/router': 6.5.16(react-dom@18.2.0)(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0)(react@18.2.0) '@types/webpack-env': 1.18.4 - core-js: 3.34.0 + core-js: 3.35.0 global: 4.4.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7786,7 +8246,7 @@ packages: '@storybook/router': 6.5.16(react-dom@18.2.0)(react@18.2.0) '@storybook/semver': 7.3.2 '@storybook/theming': 6.5.16(react-dom@18.2.0)(react@18.2.0) - core-js: 3.34.0 + core-js: 3.35.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -7800,23 +8260,23 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/blocks@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QLqkiSNrtGnh8RK9ipD63jVAUenkRu+72xR31DViZWRV9V8G2hzky5E/RoZWPEx+DfmBIUJ7Tcef6cCRcxEj9A==} + /@storybook/blocks@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+QEvGQ0he/YvFS3lsZORJWxhQIyqcCDWsxbJxJiByePd+Z4my3q8xwtPhHW0TKRL0xUgNE/GnTfMMqJfevTuSw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/components': 7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.6.7 '@storybook/csf': 0.1.2 - '@storybook/docs-tools': 7.6.6 + '@storybook/docs-tools': 7.6.7 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.6.6 - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/manager-api': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.6.7 + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 '@types/lodash': 4.14.202 color-convert: 2.0.1 dequal: 2.0.3 @@ -7838,8 +8298,8 @@ packages: - supports-color dev: true - /@storybook/builder-webpack5@7.6.6(esbuild@0.18.20)(typescript@5.3.3): - resolution: {integrity: sha512-V3pVdhlhqBdVhrE1M3ip07X8Ma6FXBeTtcZsT+oFVX7A+wxMfA9fhGWVjL6yOB/E+87jF5SvlvYbo+18Xw6hqg==} + /@storybook/builder-webpack5@7.6.7(esbuild@0.18.20)(typescript@5.3.3): + resolution: {integrity: sha512-b5AaWXOHwIXl5Q1iRRl6eRhljId0Zsg0ANawDoubK1y1jsBoQtWal7c4TQPMeLAd2G30fc3sW5zCdb9rCo2Vrg==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -7847,14 +8307,14 @@ packages: optional: true dependencies: '@babel/core': 7.23.5 - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/core-common': 7.6.6 - '@storybook/core-events': 7.6.6 - '@storybook/core-webpack': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/preview': 7.6.6 - '@storybook/preview-api': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/core-common': 7.6.7 + '@storybook/core-events': 7.6.7 + '@storybook/core-webpack': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/preview': 7.6.7 + '@storybook/preview-api': 7.6.7 '@swc/core': 1.3.101 '@types/node': 18.18.2 '@types/semver': 7.5.6 @@ -7899,7 +8359,7 @@ packages: '@storybook/channels': 6.5.16 '@storybook/client-logger': 6.5.16 '@storybook/core-events': 6.5.16 - core-js: 3.34.0 + core-js: 3.35.0 global: 4.4.0 qs: 6.11.2 telejson: 6.0.8 @@ -7910,7 +8370,7 @@ packages: dependencies: '@storybook/channels': 6.5.16 '@storybook/client-logger': 6.5.16 - core-js: 3.34.0 + core-js: 3.35.0 global: 4.4.0 telejson: 6.0.8 dev: true @@ -7918,16 +8378,16 @@ packages: /@storybook/channels@6.5.16: resolution: {integrity: sha512-VylzaWQZaMozEwZPJdyJoz+0jpDa8GRyaqu9TGG6QGv+KU5POoZaGLDkRE7TzWkyyP0KQLo80K99MssZCpgSeg==} dependencies: - core-js: 3.34.0 + core-js: 3.35.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 dev: true - /@storybook/channels@7.6.6: - resolution: {integrity: sha512-vvo7fBe2WffPonNNOA7Xx7jcHAto8qJYlq+VMysfheXrsRRbhHl3WQOA18Vm8hV9txtqdqk0hwQiXOWvhYVpeQ==} + /@storybook/channels@7.6.7: + resolution: {integrity: sha512-u1hURhfQHHtZyRIDUENRCp+CRRm7IQfcjQaoWI06XCevQPuhVEtFUfXHjG+J74aA/JuuTLFUtqwNm1zGqbXTAQ==} dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/global': 5.0.0 qs: 6.11.2 telejson: 7.2.0 @@ -7949,7 +8409,7 @@ packages: '@storybook/store': 6.5.16(react-dom@18.2.0)(react@18.2.0) '@types/qs': 6.9.11 '@types/webpack-env': 1.18.4 - core-js: 3.34.0 + core-js: 3.35.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -7967,12 +8427,12 @@ packages: /@storybook/client-logger@6.5.16: resolution: {integrity: sha512-pxcNaCj3ItDdicPTXTtmYJE3YC1SjxFrBmHcyrN+nffeNyiMuViJdOOZzzzucTUG0wcOOX8jaSyak+nnHg5H1Q==} dependencies: - core-js: 3.34.0 + core-js: 3.35.0 global: 4.4.0 dev: true - /@storybook/client-logger@7.6.6: - resolution: {integrity: sha512-WEvVyuQR5oNF8jcMmGA13zDjxP/l46kOBBvB6JSc8toUdtLZ/kZWSnU0ioNM8+ECpFqXHjBcF2K6uSJOEb6YEg==} + /@storybook/client-logger@7.6.7: + resolution: {integrity: sha512-A16zpWgsa0gSdXMR9P3bWVdC9u/1B1oG4H7Z1+JhNzgnL3CdyOYO0qFSiAtNBso4nOjIAJVb6/AoBzdRhmSVQg==} dependencies: '@storybook/global': 5.0.0 dev: true @@ -7986,7 +8446,7 @@ packages: '@storybook/client-logger': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/theming': 6.5.16(react-dom@18.2.0)(react@18.2.0) - core-js: 3.34.0 + core-js: 3.35.0 memoizerific: 1.11.3 qs: 6.11.2 react: 18.2.0 @@ -7995,19 +8455,19 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/components@7.6.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-FSfcRxdmV4+LJHjMk0eodGVnZdb2qrKKmbtsn0O/434z586zPA287/wJJsm4JS/Xr1WS9oTvU6mYMDChkcxgeQ==} + /@storybook/components@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1HN4p+MCI4Tx9VGZayZyqbW7SB7mXQLnS5fUbTE1gXaMYHpzFvcrRNROeV1LZPClJX6qx1jgE5ngZojhxGuxMA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.6.6 + '@storybook/client-logger': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -8041,7 +8501,7 @@ packages: '@storybook/ui': 6.5.16(react-dom@18.2.0)(react@18.2.0) airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.34.0 + core-js: 3.35.0 global: 4.4.0 lodash: 4.17.21 qs: 6.11.2 @@ -8055,11 +8515,11 @@ packages: webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) dev: true - /@storybook/core-client@7.6.6: - resolution: {integrity: sha512-P100aNf+WpvzlfULZp1NPd60/nxsppLmft2DdIyAx1j4QPMZvUJyJB+hdBMzTFiPEhIUncIMoIVf2R3UXC5DfA==} + /@storybook/core-client@7.6.7: + resolution: {integrity: sha512-ZQivyEzYsZok8vRj5Qan7LbiMUnO89rueWzTnZs4IS6JIaQtjoPI1rGVq+h6qOCM6tki478hic8FS+zwGQ6q+w==} dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/preview-api': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/preview-api': 7.6.7 dev: true /@storybook/core-common@6.5.16(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): @@ -8102,7 +8562,7 @@ packages: babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.23.5) chalk: 4.1.2 - core-js: 3.34.0 + core-js: 3.35.0 express: 4.18.2 file-system-cache: 1.1.0 find-up: 5.0.0 @@ -8133,12 +8593,12 @@ packages: - webpack-command dev: true - /@storybook/core-common@7.6.6: - resolution: {integrity: sha512-DpbFSYw8LHuwpeU2ec5uWryxrSqslFJnWTfNA7AvpzCviWXkz4kq+YYrDee9XExF6OozNwILmG6m52SnraysBA==} + /@storybook/core-common@7.6.7: + resolution: {integrity: sha512-F1fJnauVSPQtAlpicbN/O4XW38Ai8kf/IoU0Hgm9gEwurIk6MF5hiVLsaTI/5GUbrepMl9d9J+iIL4lHAT8IyA==} dependencies: - '@storybook/core-events': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/core-events': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/types': 7.6.7 '@types/find-cache-dir': 3.2.1 '@types/node': 18.18.2 '@types/node-fetch': 2.6.10 @@ -8167,21 +8627,21 @@ packages: /@storybook/core-events@6.5.16: resolution: {integrity: sha512-qMZQwmvzpH5F2uwNUllTPg6eZXr2OaYZQRRN8VZJiuorZzDNdAFmiVWMWdkThwmyLEJuQKXxqCL8lMj/7PPM+g==} dependencies: - core-js: 3.34.0 + core-js: 3.35.0 dev: true - /@storybook/core-events@7.6.6: - resolution: {integrity: sha512-7+q9HiZiLxaQcwpaSLQrLdjHNHBoOoUY9ZcZXI9iNFSopOgb/ItDnzzlpv08NC7CbKae1hVKJM/t5aSTl7tCMw==} + /@storybook/core-events@7.6.7: + resolution: {integrity: sha512-KZ5d03c47pnr5/kY26pJtWq7WpmCPXLbgyjJZDSc+TTY153BdZksvlBXRHtqM1yj2UM6QsSyIuiJaADJNAbP2w==} dependencies: ts-dedent: 2.2.0 dev: true - /@storybook/core-webpack@7.6.6: - resolution: {integrity: sha512-VQyA6nb7K5uAWp/bqntW9Dtv2mVQWOp99v52ilHI/aCR9gEIC2XKBB7PTs/l5L9PKTcES6UJTcFJmOp+s7kFOA==} + /@storybook/core-webpack@7.6.7: + resolution: {integrity: sha512-+UpjJc1fXs9KPIRbTzsBVDgsGQb+VlU3Z7w7XJM1M6ERQrvNAX3oj0iLdDK/AO1ks1qTg+meLFnVwpgKxcTTqg==} dependencies: - '@storybook/core-common': 7.6.6 - '@storybook/node-logger': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/core-common': 7.6.7 + '@storybook/node-logger': 7.6.7 + '@storybook/types': 7.6.7 '@types/node': 18.18.2 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -8189,24 +8649,24 @@ packages: - supports-color dev: true - /@storybook/csf-plugin@7.6.6: - resolution: {integrity: sha512-SqdffT14+XNpf+7vA29Elur28VArXtFv4cXMlsCbswbRuY+a0A8vYNwVIfCUy9u4WHTcQX1/tUkDAMh80lrVRQ==} + /@storybook/csf-plugin@7.6.7: + resolution: {integrity: sha512-YL7e6H4iVcsDI0UpgpdQX2IiGDrlbgaQMHQgDLWXmZyKxBcy0ONROAX5zoT1ml44EHkL60TMaG4f7SinviJCog==} dependencies: - '@storybook/csf-tools': 7.6.6 + '@storybook/csf-tools': 7.6.7 unplugin: 1.5.1 transitivePeerDependencies: - supports-color dev: true - /@storybook/csf-tools@7.6.6: - resolution: {integrity: sha512-VXOZCzfSVJL832u17pPhFu1x3PPaAN9d8VXNFX+t/2raga7tK3T7Qhe7lWfP7EZcrVvSCEEp0aMRz2EzzDGVtw==} + /@storybook/csf-tools@7.6.7: + resolution: {integrity: sha512-hyRbUGa2Uxvz3U09BjcOfMNf/5IYgRum1L6XszqK2O8tK9DGte1r6hArCIAcqiEmFMC40d0kalPzqu6WMNn7sg==} dependencies: '@babel/generator': 7.23.5 '@babel/parser': 7.23.5 '@babel/traverse': 7.23.5 '@babel/types': 7.23.5 '@storybook/csf': 0.1.2 - '@storybook/types': 7.6.6 + '@storybook/types': 7.6.7 fs-extra: 11.2.0 recast: 0.23.4 ts-dedent: 2.2.0 @@ -8232,12 +8692,12 @@ packages: type-fest: 2.19.0 dev: true - /@storybook/docs-tools@7.6.6: - resolution: {integrity: sha512-nc5ZjN2s8SC2PtsZoFf9Wm6gD8TcSlkYbF/mjtyLCGN+Fi+k5B5iudqoa65H19hwiLlzBdcnpQ8C89AiK33J9Q==} + /@storybook/docs-tools@7.6.7: + resolution: {integrity: sha512-enTO/xVjBqwUraGCYTwdyjMvug3OSAM7TPPUEJ3KPieJNwAzcYkww/qNDMIAR4S39zPMrkAmtS3STvVadlJz7g==} dependencies: - '@storybook/core-common': 7.6.6 - '@storybook/preview-api': 7.6.6 - '@storybook/types': 7.6.6 + '@storybook/core-common': 7.6.7 + '@storybook/preview-api': 7.6.7 + '@storybook/types': 7.6.7 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 @@ -8251,21 +8711,20 @@ packages: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true - /@storybook/manager-api@7.6.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-euRAbSZAUzHDt6z1Pq/g45N/RNqta9RaQAym18zt/oLWiYOIrkLmdf7kCuFYsmuA5XQBytiJqwkAD7uF1aLe0g==} + /@storybook/manager-api@7.6.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3Wk/BvuGUlw/X05s57zZO7gJbzfUeE9Xe+CSIvuH7RY5jx9PYnNwqNlTXPXhJ5LPvwMthae7WJVn3SuBpbptoQ==} dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/router': 7.6.6 - '@storybook/theming': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/router': 7.6.7 + '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - semver: 7.5.4 store2: 2.14.2 telejson: 7.2.0 ts-dedent: 2.2.0 @@ -8297,7 +8756,7 @@ packages: babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.34.0 + core-js: 3.35.0 css-loader: 5.2.7(webpack@5.89.0) express: 4.18.2 find-up: 5.0.0 @@ -8340,28 +8799,28 @@ packages: dependencies: '@types/npmlog': 4.1.6 chalk: 4.1.2 - core-js: 3.34.0 + core-js: 3.35.0 npmlog: 5.0.1 pretty-hrtime: 1.0.3 dev: true - /@storybook/node-logger@7.6.6: - resolution: {integrity: sha512-b2OF9GRNI01MlBlnDGS8S6/yOpBNl8eH/0ONafuMPzFEZs5PouHGsFflJvQwwcdVTknMjF5uVS2eSmnLZ8spvA==} + /@storybook/node-logger@7.6.7: + resolution: {integrity: sha512-XLih8MxylkpZG9+8tgp8sPGc2tldlWF+DpuAkUv6J3Mc81mPyc3cQKQWZ7Hb+m1LpRGqKV4wyOQj1rC+leVMoQ==} dev: true - /@storybook/postinstall@7.6.6: - resolution: {integrity: sha512-jamn7QNTJPZiu22nu25LqfSTJohugFhCu4b48yqP+pdMdkQ3qVd3NdDYhBlgkH/Btar+kppiJP1gRtoiJF761w==} + /@storybook/postinstall@7.6.7: + resolution: {integrity: sha512-mrpRmcwFd9FcvtHPXA9x6vOrHLVCKScZX/Xx2QPWgAvB3W6uzP8G+8QNb1u834iToxrWeuszUMB9UXZK4Qj5yg==} dev: true - /@storybook/preview-api@7.6.6: - resolution: {integrity: sha512-Bt6xIAR5yZ/JWc90X4BbLOA97iL65glZ1SOBgFFv2mHrdZ1lcdKhAlQr2aeJAf1mLvBtalPjvKzi9EuVY3FZ4w==} + /@storybook/preview-api@7.6.7: + resolution: {integrity: sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==} dependencies: - '@storybook/channels': 7.6.6 - '@storybook/client-logger': 7.6.6 - '@storybook/core-events': 7.6.6 + '@storybook/channels': 7.6.7 + '@storybook/client-logger': 7.6.7 + '@storybook/core-events': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/types': 7.6.6 + '@storybook/types': 7.6.7 '@types/qs': 6.9.11 dequal: 2.0.3 lodash: 4.17.21 @@ -8385,7 +8844,7 @@ packages: '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/store': 6.5.16(react-dom@18.2.0)(react@18.2.0) ansi-to-html: 0.6.15 - core-js: 3.34.0 + core-js: 3.35.0 global: 4.4.0 lodash: 4.17.21 qs: 6.11.2 @@ -8398,12 +8857,12 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/preview@7.6.6: - resolution: {integrity: sha512-Rl+Pom2bNwzc0MdlbFALmvxsbCkbIwlpTZlRZZTh5Ah8JViV9htQgP9e8uwo3NZA2BhjbDLkmnZeloWxQnI5Ig==} + /@storybook/preview@7.6.7: + resolution: {integrity: sha512-/ddKIyT+6b8CKGJAma1wood4nwCAoi/E1olCqgpCmviMeUtAiMzgK0xzPwvq5Mxkz/cPeXVi8CQgaQZCa4yvNA==} dev: true - /@storybook/react-dom-shim@7.6.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-WWNlXtCVoBWXX/kLNulUeMgzmlAEHi2aBrdIv2jz0DScPf0YxeWAkWmgK7F0zMot9mdwYncr+pk1AILbTBJSyg==} + /@storybook/react-dom-shim@7.6.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-b/rmy/YzVrwP+ifyZG4yXVIdeFVdTbmziodHUlbrWiUNsqtTZZur9kqkKRUH/7ofji9MFe81nd0MRlcTNFomqg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -8412,8 +8871,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/react@7.6.6(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): - resolution: {integrity: sha512-pE6GJ4hPGJIsX6AREjW6HibshwZE6rFhWRtjeX5MV0eKMmQgoRWRgiRfg9/YB6Z0tRtuptI83Uaszimmif1BKg==} + /@storybook/react@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-uT9IBPDM1SQg6FglWqb7IemOJ1Z8kYB5rehIDEDToi0u5INihSY8rHd003TxG4Wx4REp6J+rfbDJO2aVui/gxA==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -8423,13 +8882,13 @@ packages: typescript: optional: true dependencies: - '@storybook/client-logger': 7.6.6 - '@storybook/core-client': 7.6.6 - '@storybook/docs-tools': 7.6.6 + '@storybook/client-logger': 7.6.7 + '@storybook/core-client': 7.6.7 + '@storybook/docs-tools': 7.6.7 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.6 - '@storybook/react-dom-shim': 7.6.6(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.6 + '@storybook/preview-api': 7.6.7 + '@storybook/react-dom-shim': 7.6.7(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.7 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 '@types/node': 18.18.2 @@ -8459,7 +8918,7 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@storybook/client-logger': 6.5.16 - core-js: 3.34.0 + core-js: 3.35.0 memoizerific: 1.11.3 qs: 6.11.2 react: 18.2.0 @@ -8467,10 +8926,10 @@ packages: regenerator-runtime: 0.13.11 dev: true - /@storybook/router@7.6.6: - resolution: {integrity: sha512-dkn81MtxrG7JMDbOHEcVZkTDVKsneg72CyqJ8ELZfC81iKQcDMQkV9mdmnMl45aKn6UrscudI4K23OxQmsevkw==} + /@storybook/router@7.6.7: + resolution: {integrity: sha512-kkhNSdC3fXaQxILg8a26RKk4/ZbF/AUVrepUEyO8lwvbJ6LItTyWSE/4I9Ih4qV2Mjx33ncc8vLqM9p8r5qnMA==} dependencies: - '@storybook/client-logger': 7.6.6 + '@storybook/client-logger': 7.6.7 memoizerific: 1.11.3 qs: 6.11.2 dev: true @@ -8480,15 +8939,15 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - core-js: 3.34.0 + core-js: 3.35.0 find-up: 4.1.0 dev: true - /@storybook/source-loader@7.6.6: - resolution: {integrity: sha512-u0Vo/im74W2YoQ5vrX0+Wuuhq0SxCvXgcNzlPMf57PdKV7crVdxUZfe85HXmgb/f2ldkS2YRwcJMHfMPQCIrrQ==} + /@storybook/source-loader@7.6.7: + resolution: {integrity: sha512-11uWYZwHyOMtC1vTh9AHDTh1ab1uUTeg1ZuqWJVSNSIfKNzDzeiWeqoWluzv6v3nQ5zNoMLqy8QOxbKeLiBDVw==} dependencies: '@storybook/csf': 0.1.2 - '@storybook/types': 7.6.6 + '@storybook/types': 7.6.7 estraverse: 5.3.0 lodash: 4.17.21 prettier: 2.8.8 @@ -8504,7 +8963,7 @@ packages: '@storybook/client-logger': 6.5.16 '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.34.0 + core-js: 3.35.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -8526,31 +8985,31 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@storybook/client-logger': 6.5.16 - core-js: 3.34.0 + core-js: 3.35.0 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) regenerator-runtime: 0.13.11 dev: true - /@storybook/theming@7.6.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-hNZOOxaF55iAGUEM0dvAIP6LfGMgPKCJQIk/qyotFk+SKkg3PBqzph89XfFl9yCD3KiX5cryqarULgVuNawLJg==} + /@storybook/theming@7.6.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+42rfC4rZtWVAXJ7JBUQKnQ6vWBXJVHZ9HtNUWzQLPR9sJSMmHnnSMV6y5tizGgZqmBnAIkuoYk+Tt6NfwUmSA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@storybook/client-logger': 7.6.6 + '@storybook/client-logger': 7.6.7 '@storybook/global': 5.0.0 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/types@7.6.6: - resolution: {integrity: sha512-77vbQp3GX93OD8UzFkY4a0fAmkZrqLe61XVo6yABrwbVDY0EcAwaCF5gcXRhOHldlH7KYbLfEQkDkkKTBjX7ow==} + /@storybook/types@7.6.7: + resolution: {integrity: sha512-VcGwrI4AkBENxkoAUJ+Z7SyMK73hpoY0TTtw2J7tc05/xdiXhkQTX15Qa12IBWIkoXCyNrtaU+q7KR8Tjzi+uw==} dependencies: - '@storybook/channels': 7.6.6 + '@storybook/channels': 7.6.7 '@types/babel__core': 7.20.5 '@types/express': 4.17.21 file-system-cache: 2.3.0 @@ -8571,7 +9030,7 @@ packages: '@storybook/router': 6.5.16(react-dom@18.2.0)(react@18.2.0) '@storybook/semver': 7.3.2 '@storybook/theming': 6.5.16(react-dom@18.2.0)(react@18.2.0) - core-js: 3.34.0 + core-js: 3.35.0 memoizerific: 1.11.3 qs: 6.11.2 react: 18.2.0 @@ -8873,20 +9332,20 @@ packages: /@swc/types@0.1.5: resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - /@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.0): + /@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.1): resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} peerDependencies: tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' dependencies: - tailwindcss: 3.4.0(ts-node@10.9.2) + tailwindcss: 3.4.1(ts-node@10.9.2) dev: true - /@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.0): + /@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.1): resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} peerDependencies: tailwindcss: '>=3.2.0' dependencies: - tailwindcss: 3.4.0(ts-node@10.9.2) + tailwindcss: 3.4.1(ts-node@10.9.2) dev: false /@tanstack/eslint-plugin-query@4.36.1(eslint@8.56.0): @@ -8937,8 +9396,8 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.1.5(@types/jest@29.5.11): - resolution: {integrity: sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g==} + /@testing-library/jest-dom@6.2.0(@types/jest@29.5.11): + resolution: {integrity: sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: '@jest/globals': '>= 28' @@ -8961,13 +9420,13 @@ packages: aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 - dom-accessibility-api: 0.5.16 + dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 dev: true - /@testing-library/jest-dom@6.1.5(vitest@1.1.0): - resolution: {integrity: sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g==} + /@testing-library/jest-dom@6.2.0(vitest@1.1.3): + resolution: {integrity: sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: '@jest/globals': '>= 28' @@ -8989,10 +9448,10 @@ packages: aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 - dom-accessibility-api: 0.5.16 + dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) + vitest: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) dev: true /@testing-library/react@14.1.2(react-dom@18.2.0)(react@18.2.0): @@ -9009,8 +9468,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event@14.5.1(@testing-library/dom@9.3.3): - resolution: {integrity: sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg==} + /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.3): + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' @@ -9452,10 +9911,9 @@ packages: resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} dev: true - /@types/passport-jwt@3.0.13: - resolution: {integrity: sha512-fjHaC6Bv8EpMMqzTnHP32SXlZGaNfBPC/Po5dmRGYi2Ky7ljXPbGnOy+SxZqa6iZvFgVhoJ1915Re3m93zmcfA==} + /@types/passport-jwt@4.0.0: + resolution: {integrity: sha512-m32144UaQENieShQDWVQ8w+CVAzCV/pDahICUlQvmqLOePGglQaMRQ28I7fKnRMFLNwVP4eWssOtcQ0kLe1vww==} dependencies: - '@types/express': 4.17.21 '@types/jsonwebtoken': 9.0.5 '@types/passport-strategy': 0.2.38 dev: true @@ -9523,8 +9981,8 @@ packages: '@types/react': 18.2.45 dev: true - /@types/react-syntax-highlighter@15.5.6: - resolution: {integrity: sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg==} + /@types/react-syntax-highlighter@15.5.11: + resolution: {integrity: sha512-ZqIJl+Pg8kD+47kxUjvrlElrraSUrYa4h0dauY/U/FTUuprSCqvUj+9PNQNQzVc6AJgIWUUxn87/gqsMHNbRjw==} dependencies: '@types/react': 18.2.45 dev: true @@ -9581,6 +10039,10 @@ packages: resolution: {integrity: sha512-+UE8GAGRPbJVQDdxi16dgadcBfQ+KG2vgZhV1+3A1XmHbmwcdwhCUwIdy+d3pAGrbvgRoVSjeI9vOWyq376Yzw==} dev: true + /@types/shimmer@1.0.5: + resolution: {integrity: sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==} + dev: false + /@types/stack-utils@2.0.3: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} dev: true @@ -9626,8 +10088,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -9638,11 +10100,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.2(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/type-utils': 6.13.2(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.2(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -9675,8 +10137,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.13.2(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} + /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -9685,10 +10147,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -9702,15 +10164,15 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - /@typescript-eslint/scope-manager@6.13.2: - resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} + /@typescript-eslint/scope-manager@6.16.0: + resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 - /@typescript-eslint/type-utils@6.13.2(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} + /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -9719,8 +10181,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -9733,8 +10195,8 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@typescript-eslint/types@6.13.2: - resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} + /@typescript-eslint/types@6.16.0: + resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} engines: {node: ^16.0.0 || >=18.0.0} /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): @@ -9757,8 +10219,8 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.3): - resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} + /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): + resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -9766,11 +10228,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 @@ -9797,8 +10260,8 @@ packages: - typescript dev: false - /@typescript-eslint/utils@6.13.2(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} + /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -9806,9 +10269,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -9823,11 +10286,11 @@ packages: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - /@typescript-eslint/visitor-keys@6.13.2: - resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} + /@typescript-eslint/visitor-keys@6.16.0: + resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/types': 6.16.0 eslint-visitor-keys: 3.4.3 /@ungap/structured-clone@1.2.0: @@ -9844,40 +10307,41 @@ packages: - '@swc/helpers' dev: true - /@vitest/expect@1.1.0: - resolution: {integrity: sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==} + /@vitest/expect@1.1.3: + resolution: {integrity: sha512-MnJqsKc1Ko04lksF9XoRJza0bGGwTtqfbyrsYv5on4rcEkdo+QgUdITenBQBUltKzdxW7K3rWh+nXRULwsdaVg==} dependencies: - '@vitest/spy': 1.1.0 - '@vitest/utils': 1.1.0 + '@vitest/spy': 1.1.3 + '@vitest/utils': 1.1.3 chai: 4.3.10 dev: true - /@vitest/runner@1.1.0: - resolution: {integrity: sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==} + /@vitest/runner@1.1.3: + resolution: {integrity: sha512-Va2XbWMnhSdDEh/OFxyUltgQuuDRxnarK1hW5QNN4URpQrqq6jtt8cfww/pQQ4i0LjoYxh/3bYWvDFlR9tU73g==} dependencies: - '@vitest/utils': 1.1.0 + '@vitest/utils': 1.1.3 p-limit: 5.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@1.1.0: - resolution: {integrity: sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==} + /@vitest/snapshot@1.1.3: + resolution: {integrity: sha512-U0r8pRXsLAdxSVAyGNcqOU2H3Z4Y2dAAGGelL50O0QRMdi1WWeYHdrH/QWpN1e8juWfVKsb8B+pyJwTC+4Gy9w==} dependencies: magic-string: 0.30.5 pathe: 1.1.1 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.1.0: - resolution: {integrity: sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==} + /@vitest/spy@1.1.3: + resolution: {integrity: sha512-Ec0qWyGS5LhATFQtldvChPTAHv08yHIOZfiNcjwRQbFPHpkih0md9KAbs7TfeIfL7OFKoe7B/6ukBTqByubXkQ==} dependencies: tinyspy: 2.2.0 dev: true - /@vitest/utils@1.1.0: - resolution: {integrity: sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==} + /@vitest/utils@1.1.3: + resolution: {integrity: sha512-Dyt3UMcdElTll2H75vhxfpZu03uFpXRCHxWnzcrFjZxT1kTbq8ALUYIeBgGolo1gldVdI0YSlQRacsqxTwNqwg==} dependencies: diff-sequences: 29.6.3 + estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 dev: true @@ -10170,7 +10634,6 @@ packages: acorn: ^8 dependencies: acorn: 8.11.2 - dev: true /acorn-jsx@5.3.2(acorn@7.4.1): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -10196,6 +10659,11 @@ packages: resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@6.4.2: resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} engines: {node: '>=0.4.0'} @@ -10324,7 +10792,7 @@ packages: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 dependencies: - classnames: 2.5.0 + classnames: 2.5.1 eventemitter3: 5.0.1 lodash.clamp: 4.0.3 lodash.debounce: 4.0.8 @@ -10717,7 +11185,7 @@ packages: engines: {node: '>=8.0.0'} dev: false - /autoprefixer@10.4.16(postcss@8.4.32): + /autoprefixer@10.4.16(postcss@8.4.33): resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -10729,7 +11197,7 @@ packages: fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true @@ -10744,15 +11212,15 @@ packages: /axios@0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.3 + follow-redirects: 1.15.4 transitivePeerDependencies: - debug dev: true - /axios@1.6.3: - resolution: {integrity: sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==} + /axios@1.6.5: + resolution: {integrity: sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==} dependencies: - follow-redirects: 1.15.3 + follow-redirects: 1.15.4 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -11557,6 +12025,10 @@ packages: safe-buffer: 5.2.1 dev: true + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: false + /class-transformer@0.5.1: resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} @@ -11583,8 +12055,8 @@ packages: clsx: 2.0.0 dev: false - /classnames@2.5.0: - resolution: {integrity: sha512-FQuRlyKinxrb5gwJlfVASbSrDlikDJ07426TrfPsdGLvtochowmkbnSFdQGJ2aoXrSetq5KqGV9emvWpy+91xA==} + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} dev: false /clean-css@4.2.4: @@ -11704,6 +12176,11 @@ packages: engines: {node: '>=6'} dev: false + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + dev: false + /cmdk@0.2.0(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-JQpKvEOb86SnvMZbYaFKYhvzFntWBeSZdyii0rZPhKJj9uwJBxu4DaVYDrRN7r3mPop56oPhRw+JYWTKs66TYw==} peerDependencies: @@ -12053,8 +12530,8 @@ packages: requiresBuild: true dev: false - /core-js@3.34.0: - resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} + /core-js@3.35.0: + resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} requiresBuild: true dev: true @@ -12216,33 +12693,33 @@ packages: randomfill: 1.0.4 dev: true - /css-blank-pseudo@6.0.0(postcss@8.4.32): + /css-blank-pseudo@6.0.0(postcss@8.4.33): resolution: {integrity: sha512-VbfLlOWO7sBHBTn6pwDQzc07Z0SDydgDBfNfCE0nvrehdBNv9RKsuupIRa/qal0+fBZhAALyQDPMKz5lnvcchw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /css-declaration-sorter@6.4.1(postcss@8.4.32): + /css-declaration-sorter@6.4.1(postcss@8.4.33): resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /css-has-pseudo@6.0.0(postcss@8.4.32): + /css-has-pseudo@6.0.0(postcss@8.4.33): resolution: {integrity: sha512-X+r+JBuoO37FBOWVNhVJhxtSBUFHgHbrcc0CjFT28JEdOw1qaDwABv/uunyodUuSy2hMPe9j/HjssxSlvUmKjg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true @@ -12285,13 +12762,13 @@ packages: peerDependencies: webpack: ^4.27.0 || ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.32) + icss-utils: 5.1.0(postcss@8.4.33) loader-utils: 2.0.4 - postcss: 8.4.32 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.32) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.32) - postcss-modules-scope: 3.0.0(postcss@8.4.32) - postcss-modules-values: 4.0.0(postcss@8.4.32) + postcss: 8.4.33 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.33) + postcss-modules-scope: 3.0.0(postcss@8.4.33) + postcss-modules-values: 4.0.0(postcss@8.4.33) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.5.4 @@ -12304,24 +12781,24 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.32) - postcss: 8.4.32 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.32) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.32) - postcss-modules-scope: 3.0.0(postcss@8.4.32) - postcss-modules-values: 4.0.0(postcss@8.4.32) + icss-utils: 5.1.0(postcss@8.4.33) + postcss: 8.4.33 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.33) + postcss-modules-scope: 3.0.0(postcss@8.4.33) + postcss-modules-values: 4.0.0(postcss@8.4.33) postcss-value-parser: 4.2.0 semver: 7.5.4 webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) dev: true - /css-prefers-color-scheme@9.0.0(postcss@8.4.32): + /css-prefers-color-scheme@9.0.0(postcss@8.4.33): resolution: {integrity: sha512-03QGAk/FXIRseDdLb7XAiu6gidQ0Nd8945xuM7VFVPpc6goJsG9uIO8xQjTxwbPdPIIV4o4AJoOJyt8gwDl67g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true /css-select@4.3.0: @@ -12383,62 +12860,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default@5.2.14(postcss@8.4.32): + /cssnano-preset-default@5.2.14(postcss@8.4.33): resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.32) - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 - postcss-calc: 8.2.4(postcss@8.4.32) - postcss-colormin: 5.3.1(postcss@8.4.32) - postcss-convert-values: 5.1.3(postcss@8.4.32) - postcss-discard-comments: 5.1.2(postcss@8.4.32) - postcss-discard-duplicates: 5.1.0(postcss@8.4.32) - postcss-discard-empty: 5.1.1(postcss@8.4.32) - postcss-discard-overridden: 5.1.0(postcss@8.4.32) - postcss-merge-longhand: 5.1.7(postcss@8.4.32) - postcss-merge-rules: 5.1.4(postcss@8.4.32) - postcss-minify-font-values: 5.1.0(postcss@8.4.32) - postcss-minify-gradients: 5.1.1(postcss@8.4.32) - postcss-minify-params: 5.1.4(postcss@8.4.32) - postcss-minify-selectors: 5.2.1(postcss@8.4.32) - postcss-normalize-charset: 5.1.0(postcss@8.4.32) - postcss-normalize-display-values: 5.1.0(postcss@8.4.32) - postcss-normalize-positions: 5.1.1(postcss@8.4.32) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.32) - postcss-normalize-string: 5.1.0(postcss@8.4.32) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.32) - postcss-normalize-unicode: 5.1.1(postcss@8.4.32) - postcss-normalize-url: 5.1.0(postcss@8.4.32) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.32) - postcss-ordered-values: 5.1.3(postcss@8.4.32) - postcss-reduce-initial: 5.1.2(postcss@8.4.32) - postcss-reduce-transforms: 5.1.0(postcss@8.4.32) - postcss-svgo: 5.1.0(postcss@8.4.32) - postcss-unique-selectors: 5.1.1(postcss@8.4.32) - dev: true - - /cssnano-utils@3.1.0(postcss@8.4.32): + css-declaration-sorter: 6.4.1(postcss@8.4.33) + cssnano-utils: 3.1.0(postcss@8.4.33) + postcss: 8.4.33 + postcss-calc: 8.2.4(postcss@8.4.33) + postcss-colormin: 5.3.1(postcss@8.4.33) + postcss-convert-values: 5.1.3(postcss@8.4.33) + postcss-discard-comments: 5.1.2(postcss@8.4.33) + postcss-discard-duplicates: 5.1.0(postcss@8.4.33) + postcss-discard-empty: 5.1.1(postcss@8.4.33) + postcss-discard-overridden: 5.1.0(postcss@8.4.33) + postcss-merge-longhand: 5.1.7(postcss@8.4.33) + postcss-merge-rules: 5.1.4(postcss@8.4.33) + postcss-minify-font-values: 5.1.0(postcss@8.4.33) + postcss-minify-gradients: 5.1.1(postcss@8.4.33) + postcss-minify-params: 5.1.4(postcss@8.4.33) + postcss-minify-selectors: 5.2.1(postcss@8.4.33) + postcss-normalize-charset: 5.1.0(postcss@8.4.33) + postcss-normalize-display-values: 5.1.0(postcss@8.4.33) + postcss-normalize-positions: 5.1.1(postcss@8.4.33) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.33) + postcss-normalize-string: 5.1.0(postcss@8.4.33) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.33) + postcss-normalize-unicode: 5.1.1(postcss@8.4.33) + postcss-normalize-url: 5.1.0(postcss@8.4.33) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.33) + postcss-ordered-values: 5.1.3(postcss@8.4.33) + postcss-reduce-initial: 5.1.2(postcss@8.4.33) + postcss-reduce-transforms: 5.1.0(postcss@8.4.33) + postcss-svgo: 5.1.0(postcss@8.4.33) + postcss-unique-selectors: 5.1.1(postcss@8.4.33) + dev: true + + /cssnano-utils@3.1.0(postcss@8.4.33): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /cssnano@5.1.15(postcss@8.4.32): + /cssnano@5.1.15(postcss@8.4.33): resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.32) + cssnano-preset-default: 5.2.14(postcss@8.4.33) lilconfig: 2.1.0 - postcss: 8.4.32 + postcss: 8.4.33 yaml: 1.10.2 dev: true @@ -12925,6 +13402,10 @@ packages: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dev: true + /dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dev: true + /dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} dependencies: @@ -13018,11 +13499,12 @@ packages: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} dev: true - /dotenv-flow-cli@1.0.0: - resolution: {integrity: sha512-VlQoHyFUlg3Z5uS/hfk6Diu85Wjt7A4sPNBmd/fv7rxLUgGB5Kh8f7admim6C+O90/SIT46ybJXp6dQBtYE4dg==} + /dotenv-flow-cli@1.1.1: + resolution: {integrity: sha512-r2Ij1fAqHSownUugXAmdqtgJ6pyXTuPIJFY+y4sWnwSoelBkdCEgttaremc5gdjwXjdUQqNOzonIYl/Wx69OOg==} hasBin: true dependencies: cross-spawn: 7.0.3 + dotenv-expand: 10.0.0 dotenv-flow: 4.1.0 minimist: 1.2.8 dev: true @@ -13509,7 +13991,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-import@2.29.0)(eslint@8.56.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -13519,8 +14001,8 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -13556,7 +14038,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -13577,11 +14059,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-import@2.29.0)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) transitivePeerDependencies: - supports-color @@ -13604,7 +14086,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -13620,8 +14102,8 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -13630,7 +14112,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -13639,7 +14121,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -13648,7 +14130,7 @@ packages: object.groupby: 1.0.1 object.values: 1.1.7 semver: 6.3.1 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13663,7 +14145,7 @@ packages: eslint: 8.56.0 dev: false - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -13676,7 +14158,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 transitivePeerDependencies: @@ -13739,8 +14221,8 @@ packages: - supports-color dev: true - /eslint-plugin-playwright@0.20.0(eslint-plugin-jest@27.6.0)(eslint@8.56.0): - resolution: {integrity: sha512-JWTSwUyPPipSOm6AK8z78bQXtKRCykvhSGUewcmZuxstSZ5oGsykW2JaRXJQ2IIfzKJToCBeKD2ISc8Li8qVEQ==} + /eslint-plugin-playwright@0.21.0(eslint-plugin-jest@27.6.0)(eslint@8.56.0): + resolution: {integrity: sha512-Y6qwguE9L6LB1JCsnPKaHbo+Z4X8/MngD82N0NkwiZ0ch0UVc4Oc2ZqmxanFxftIddnvwtNNlzUezglLlzUzKA==} peerDependencies: eslint: '>=7' eslint-plugin-jest: '>=25' @@ -13749,12 +14231,12 @@ packages: optional: true dependencies: eslint: 8.56.0 - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3) globals: 13.23.0 dev: false - /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): - resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): + resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -13806,8 +14288,8 @@ packages: semver: 6.3.1 string.prototype.matchall: 4.0.10 - /eslint-plugin-regexp@2.1.1(eslint@8.56.0): - resolution: {integrity: sha512-FGa/idrL5tzMCnGylyx8DCWTX3vDuEtE/CVqTx+yYwe5qY3JRppbNVkOVGIkQF0klVlrG+LxwAXRXTUr5yU5uA==} + /eslint-plugin-regexp@2.1.2(eslint@8.56.0): + resolution: {integrity: sha512-nnhNqHblaD8YTJiEHfyVRhiw8sm0eFQ9h+ee3rMqJhf2R9sJWbSXkjrLxIeCNZSNqitUOdaYFfrPVyvS9i72AA==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' @@ -13847,15 +14329,15 @@ packages: - typescript dev: false - /eslint-plugin-tailwindcss@3.13.0(tailwindcss@3.4.0): - resolution: {integrity: sha512-Fcep4KDRLWaK3KmkQbdyKHG0P4GdXFmXdDaweTIPcgOP60OOuWFbh1++dufRT28Q4zpKTKaHwTsXPJ4O/EjU2Q==} + /eslint-plugin-tailwindcss@3.13.1(tailwindcss@3.4.1): + resolution: {integrity: sha512-2Nlgr9doO6vFAG9w4iGU0sspWXuzypfng10HTF+dFS2NterhweWtgdRvf/f7aaoOUUxVZM8wMIXzazrZ7CxyeA==} engines: {node: '>=12.13.0'} peerDependencies: tailwindcss: ^3.3.2 dependencies: fast-glob: 3.3.2 - postcss: 8.4.32 - tailwindcss: 3.4.0(ts-node@10.9.2) + postcss: 8.4.33 + tailwindcss: 3.4.1(ts-node@10.9.2) dev: true /eslint-plugin-testing-library@6.2.0(eslint@8.56.0)(typescript@5.3.3): @@ -14014,6 +14496,12 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -14539,8 +15027,8 @@ packages: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: true - /follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + /follow-redirects@1.15.4: + resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -15259,8 +15747,8 @@ packages: safe-buffer: 5.2.1 dev: true - /hash-it@5.0.2: - resolution: {integrity: sha512-csU3E/a9QEmEgPPxoShVuMcFWM329IGioEPRvYVBv3r5BFrU8pCfnk3jGEVvriAcwqd+nl6KsNhPPjg8MUzkhQ==} + /hash-it@6.0.0: + resolution: {integrity: sha512-KHzmSFx1KwyMPw0kXeeUD752q/Kfbzhy6dAZrjXV9kAIXGqzGvv8vhkUqj+2MGZldTo0IBpw6v7iWE7uxsvH0w==} dev: false /hash.js@1.1.7: @@ -15562,13 +16050,13 @@ packages: postcss: 7.0.39 dev: true - /icss-utils@5.1.0(postcss@8.4.32): + /icss-utils@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true /ieee754@1.2.1: @@ -15611,6 +16099,24 @@ packages: resolve-from: 5.0.0 dev: true + /import-in-the-middle@1.4.2: + resolution: {integrity: sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==} + dependencies: + acorn: 8.11.2 + acorn-import-assertions: 1.9.0(acorn@8.11.2) + cjs-module-lexer: 1.2.3 + module-details-from-path: 1.0.3 + dev: false + + /import-in-the-middle@1.7.1: + resolution: {integrity: sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==} + dependencies: + acorn: 8.11.2 + acorn-import-assertions: 1.9.0(acorn@8.11.2) + cjs-module-lexer: 1.2.3 + module-details-from-path: 1.0.3 + dev: false + /import-meta-resolve@4.0.0: resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} dev: true @@ -16468,13 +16974,13 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /json-rules-engine@6.1.2: - resolution: {integrity: sha512-+rtKuJ33HAvFywL9broh42FA9hkZNmS0l1DmgjP7nfGJ9E2i2IsfNH0BcXjyXianp/bXAyYlsSv308AfTuvBwQ==} + /json-rules-engine@6.5.0: + resolution: {integrity: sha512-W8SLmnfQRDNG1Nh3Agz3c9AZzhiZ/cUtjAhyfhujFzVFNBv7cSHm9WaLoRjOdRr/9je7RgLtmbYXFViL3CekPA==} dependencies: clone: 2.1.2 eventemitter2: 6.4.9 - hash-it: 5.0.2 - jsonpath-plus: 5.1.0 + hash-it: 6.0.0 + jsonpath-plus: 7.2.0 lodash.isobjectlike: 4.0.0 dev: false @@ -16520,11 +17026,6 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsonpath-plus@5.1.0: - resolution: {integrity: sha512-890w2Pjtj0iswAxalRlt2kHthi6HKrXEfZcn+ZNZptv7F3rUGIeDuZo+C+h4vXBHLEsVjJrHeCm35nYeZLzSBQ==} - engines: {node: '>=10.0.0'} - dev: false - /jsonpath-plus@7.2.0: resolution: {integrity: sha512-zBfiUPM5nD0YZSBT/o/fbCUlCcepMIdP0CJZxM1+KgA4f2T206f6VAg9e7mX35+KlMaIc5qXW34f3BnwJ3w+RA==} engines: {node: '>=12.0.0'} @@ -16696,7 +17197,7 @@ packages: dependencies: '@babel/runtime': 7.23.5 app-root-dir: 1.0.2 - core-js: 3.34.0 + core-js: 3.35.0 dotenv: 8.6.0 dotenv-expand: 5.1.0 dev: true @@ -16929,7 +17430,6 @@ packages: /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - dev: true /lodash.clamp@4.0.3: resolution: {integrity: sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==} @@ -17050,6 +17550,10 @@ packages: triple-beam: 1.4.1 dev: true + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false + /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -17104,8 +17608,8 @@ packages: dependencies: yallist: 4.0.0 - /lucide-react@0.302.0(react@18.2.0): - resolution: {integrity: sha512-JZX+1fjpqxvQmEgItvPOAwRlqf0Eg9dSZMxljA2/V2M6dluOhQCPBhewIlSJWgkNu0M36kViOgmTAMnDaAMOFw==} + /lucide-react@0.303.0(react@18.2.0): + resolution: {integrity: sha512-B0B9T3dLEFBYPCUlnUS1mvAhW1craSbF9HO+JfBjAtpFUJ7gMIqmEwNSclikY3RiN2OnCkj/V1ReAQpaHae8Bg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: @@ -17625,7 +18129,7 @@ packages: '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 asyncro: 3.0.0 - autoprefixer: 10.4.16(postcss@8.4.32) + autoprefixer: 10.4.16(postcss@8.4.33) babel-plugin-macros: 3.1.0 babel-plugin-transform-async-to-promises: 0.8.18 babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.23.5) @@ -17637,11 +18141,11 @@ packages: gzip-size: 6.0.0 kleur: 4.1.5 lodash.merge: 4.6.2 - postcss: 8.4.32 + postcss: 8.4.33 pretty-bytes: 5.6.0 rollup: 2.79.1 rollup-plugin-bundle-size: 1.0.3 - rollup-plugin-postcss: 4.0.2(postcss@8.4.32) + rollup-plugin-postcss: 4.0.2(postcss@8.4.33) rollup-plugin-terser: 7.0.2(rollup@2.79.1) rollup-plugin-typescript2: 0.32.1(rollup@2.79.1)(typescript@4.9.5) rollup-plugin-visualizer: 5.10.0(rollup@2.79.1) @@ -18598,6 +19102,10 @@ packages: ufo: 1.3.2 dev: true + /module-details-from-path@1.0.3: + resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} + dev: false + /mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} dev: false @@ -18991,8 +19499,8 @@ packages: engines: {node: '>=6.0.0'} dev: false - /nodemailer@6.9.7: - resolution: {integrity: sha512-rUtR77ksqex/eZRLmQ21LKVH5nAAsVicAtAYudK7JgwenEDZ0UIQ1adUGqErz7sMkWYxWTTU1aeP2Jga6WQyJw==} + /nodemailer@6.9.8: + resolution: {integrity: sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==} engines: {node: '>=6.0.0'} dev: false @@ -19291,12 +19799,6 @@ packages: yargs-parser: 21.1.1 dev: true - /openapi3-ts@4.1.2: - resolution: {integrity: sha512-B7gOkwsYMZO7BZXwJzXCuVagym2xhqsrilVvV0dnq2Di4+iLUXKVX9gOK23ZqaAHZOwABXN0QTdW8QnkUTX6DA==} - dependencies: - yaml: 2.3.4 - dev: false - /openapi3-ts@4.2.1: resolution: {integrity: sha512-KL1mKwkZii5ce+tb24KCUmQHyWB/oanG5fzUY35UB+wenWJv4Kr/IWBntpn5R8ODiJcxx13ZDophcpHnLGeIOw==} dependencies: @@ -19921,68 +20423,68 @@ packages: engines: {node: '>=0.10.0'} dev: true - /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.32): + /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-calc@8.2.4(postcss@8.4.32): + /postcss-calc@8.2.4(postcss@8.4.33): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-clamp@4.1.0(postcss@8.4.32): + /postcss-clamp@4.1.0(postcss@8.4.33): resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: postcss: ^8.4.6 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-color-functional-notation@6.0.2(postcss@8.4.32): + /postcss-color-functional-notation@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-FsjSmlSufuiFBsIqQ++VxFmvX7zKndZpBkHmfXr4wqhvzM92FTEkAh703iqWTl1U3faTgqioIqCbfqdWiFVwtw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-color-hex-alpha@9.0.2(postcss@8.4.32): + /postcss-color-hex-alpha@9.0.2(postcss@8.4.33): resolution: {integrity: sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-color-rebeccapurple@9.0.1(postcss@8.4.32): + /postcss-color-rebeccapurple@9.0.1(postcss@8.4.33): resolution: {integrity: sha512-ds4cq5BjRieizVb2PnvbJ0omg9VCo2/KzluvoFZbxuGpsGJ5BQSD93CHBooinEtangCM5YqUOerGDl4xGmOb6Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@5.3.1(postcss@8.4.32): + /postcss-colormin@5.3.1(postcss@8.4.33): resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -19991,22 +20493,22 @@ packages: browserslist: 4.22.2 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@5.1.3(postcss@8.4.32): + /postcss-convert-values@5.1.3(postcss@8.4.33): resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.22.2 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-media@10.0.2(postcss@8.4.32): + /postcss-custom-media@10.0.2(postcss@8.4.33): resolution: {integrity: sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -20016,10 +20518,10 @@ packages: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-custom-properties@13.3.2(postcss@8.4.32): + /postcss-custom-properties@13.3.2(postcss@8.4.33): resolution: {integrity: sha512-2Coszybpo8lpLY24vy2CYv9AasiZ39/bs8Imv0pWMq55Gl8NWzfc24OAo3zIX7rc6uUJAqESnVOMZ6V6lpMjJA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -20028,11 +20530,11 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-selectors@7.1.6(postcss@8.4.32): + /postcss-custom-selectors@7.1.6(postcss@8.4.33): resolution: {integrity: sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -20041,143 +20543,143 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-dir-pseudo-class@8.0.0(postcss@8.4.32): + /postcss-dir-pseudo-class@8.0.0(postcss@8.4.33): resolution: {integrity: sha512-Oy5BBi0dWPwij/IA+yDYj+/OBMQ9EPqAzTHeSNUYrUWdll/PRJmcbiUj0MNcsBi681I1gcSTLvMERPaXzdbvJg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-discard-comments@5.1.2(postcss@8.4.32): + /postcss-discard-comments@5.1.2(postcss@8.4.33): resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-discard-duplicates@5.1.0(postcss@8.4.32): + /postcss-discard-duplicates@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-discard-empty@5.1.1(postcss@8.4.32): + /postcss-discard-empty@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-discard-overridden@5.1.0(postcss@8.4.32): + /postcss-discard-overridden@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-double-position-gradients@5.0.2(postcss@8.4.32): + /postcss-double-position-gradients@5.0.2(postcss@8.4.33): resolution: {integrity: sha512-KTbvdOOy8z8zb0BTkEg4/1vqlRlApdvjw8/pFoehgQl0WVO+fezDGlvo0B8xRA+XccA7ohkQCULKNsiNOx70Cw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-flexbugs-fixes@5.0.2(postcss@8.4.32): + /postcss-flexbugs-fixes@5.0.2(postcss@8.4.33): resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==} peerDependencies: postcss: ^8.1.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-focus-visible@9.0.0(postcss@8.4.32): + /postcss-focus-visible@9.0.0(postcss@8.4.33): resolution: {integrity: sha512-zA4TbVaIaT8npZBEROhZmlc+GBKE8AELPHXE7i4TmIUEQhw/P/mSJfY9t6tBzpQ1rABeGtEOHYrW4SboQeONMQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-focus-within@8.0.0(postcss@8.4.32): + /postcss-focus-within@8.0.0(postcss@8.4.33): resolution: {integrity: sha512-E7+J9nuQzZaA37D/MUZMX1K817RZGDab8qw6pFwzAkDd/QtlWJ9/WTKmzewNiuxzeq6WWY7ATiRePVoDKp+DnA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-font-variant@5.0.0(postcss@8.4.32): + /postcss-font-variant@5.0.0(postcss@8.4.33): resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-gap-properties@5.0.0(postcss@8.4.32): + /postcss-gap-properties@5.0.0(postcss@8.4.33): resolution: {integrity: sha512-YjsEEL6890P7MCv6fch6Am1yq0EhQCJMXyT4LBohiu87+4/WqR7y5W3RIv53WdA901hhytgRvjlrAhibhW4qsA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-image-set-function@6.0.1(postcss@8.4.32): + /postcss-image-set-function@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-VlZncC9hhZ5tg0JllY4g6Z28BeoPO8DIkelioEEkXL0AA0IORlqYpTi2L8TUnl4YQrlwvBgxVy+mdZJw5R/cIQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-import@15.1.0(postcss@8.4.32): + /postcss-import@15.1.0(postcss@8.4.33): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - /postcss-js@4.0.1(postcss@8.4.32): + /postcss-js@4.0.1(postcss@8.4.33): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.32 + postcss: 8.4.33 - /postcss-lab-function@6.0.7(postcss@8.4.32): + /postcss-lab-function@6.0.7(postcss@8.4.33): resolution: {integrity: sha512-4d1lhDVPukHFqkMv4G5vVcK+tgY52vwb5uR1SWKOaO5389r2q8fMxBWuXSW+YtbCOEGP0/X9KERi9E9le2pJuw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -20186,11 +20688,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + postcss: 8.4.33 dev: true - /postcss-load-config@3.1.4(postcss@8.4.32): + /postcss-load-config@3.1.4(postcss@8.4.33): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -20203,11 +20705,11 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.32 + postcss: 8.4.33 yaml: 1.10.2 dev: true - /postcss-load-config@4.0.2(postcss@8.4.32)(ts-node@10.9.2): + /postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.2): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -20220,7 +20722,7 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - postcss: 8.4.32 + postcss: 8.4.33 ts-node: 10.9.2(@swc/core@1.3.101)(@types/node@18.18.2)(typescript@5.3.3) yaml: 2.3.4 @@ -20240,28 +20742,28 @@ packages: webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) dev: true - /postcss-logical@7.0.0(postcss@8.4.32): + /postcss-logical@7.0.0(postcss@8.4.33): resolution: {integrity: sha512-zYf3vHkoW82f5UZTEXChTJvH49Yl9X37axTZsJGxrCG2kOUwtaAoz9E7tqYg0lsIoJLybaL8fk/2mOi81zVIUw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-merge-longhand@5.1.7(postcss@8.4.32): + /postcss-merge-longhand@5.1.7(postcss@8.4.33): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.32) + stylehacks: 5.1.1(postcss@8.4.33) dev: true - /postcss-merge-rules@5.1.4(postcss@8.4.32): + /postcss-merge-rules@5.1.4(postcss@8.4.33): resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -20269,52 +20771,52 @@ packages: dependencies: browserslist: 4.22.2 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.33) + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-minify-font-values@5.1.0(postcss@8.4.32): + /postcss-minify-font-values@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@5.1.1(postcss@8.4.32): + /postcss-minify-gradients@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.33) + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@5.1.4(postcss@8.4.32): + /postcss-minify-params@5.1.4(postcss@8.4.33): resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.22.2 - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.33) + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@5.2.1(postcss@8.4.32): + /postcss-minify-selectors@5.2.1(postcss@8.4.33): resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true @@ -20325,13 +20827,13 @@ packages: postcss: 7.0.39 dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.32): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.33): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true /postcss-modules-local-by-default@3.0.3: @@ -20344,14 +20846,14 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-modules-local-by-default@4.0.3(postcss@8.4.32): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.33): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.32) - postcss: 8.4.32 + icss-utils: 5.1.0(postcss@8.4.33) + postcss: 8.4.33 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true @@ -20364,13 +20866,13 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.32): + /postcss-modules-scope@3.0.0(postcss@8.4.33): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true @@ -20381,17 +20883,17 @@ packages: postcss: 7.0.39 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.32): + /postcss-modules-values@4.0.0(postcss@8.4.33): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.32) - postcss: 8.4.32 + icss-utils: 5.1.0(postcss@8.4.33) + postcss: 8.4.33 dev: true - /postcss-modules@4.3.1(postcss@8.4.32): + /postcss-modules@4.3.1(postcss@8.4.33): resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} peerDependencies: postcss: ^8.0.0 @@ -20399,253 +20901,253 @@ packages: generic-names: 4.0.0 icss-replace-symbols: 1.1.0 lodash.camelcase: 4.3.0 - postcss: 8.4.32 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.32) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.32) - postcss-modules-scope: 3.0.0(postcss@8.4.32) - postcss-modules-values: 4.0.0(postcss@8.4.32) + postcss: 8.4.33 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.33) + postcss-modules-scope: 3.0.0(postcss@8.4.33) + postcss-modules-values: 4.0.0(postcss@8.4.33) string-hash: 1.1.3 dev: true - /postcss-nested@6.0.1(postcss@8.4.32): + /postcss-nested@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 - /postcss-nesting@12.0.1(postcss@8.4.32): + /postcss-nesting@12.0.1(postcss@8.4.33): resolution: {integrity: sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.32): + /postcss-normalize-charset@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-normalize-display-values@5.1.0(postcss@8.4.32): + /postcss-normalize-display-values@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@5.1.1(postcss@8.4.32): + /postcss-normalize-positions@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.32): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@5.1.0(postcss@8.4.32): + /postcss-normalize-string@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.32): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@5.1.1(postcss@8.4.32): + /postcss-normalize-unicode@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.22.2 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@5.1.0(postcss@8.4.32): + /postcss-normalize-url@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@5.1.1(postcss@8.4.32): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-opacity-percentage@2.0.0(postcss@8.4.32): + /postcss-opacity-percentage@2.0.0(postcss@8.4.33): resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-ordered-values@5.1.3(postcss@8.4.32): + /postcss-ordered-values@5.1.3(postcss@8.4.33): resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.33) + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-overflow-shorthand@5.0.0(postcss@8.4.32): + /postcss-overflow-shorthand@5.0.0(postcss@8.4.33): resolution: {integrity: sha512-2rlxDyeSics/hC2FuMdPnWiP9WUPZ5x7FTuArXLFVpaSQ2woPSfZS4RD59HuEokbZhs/wPUQJ1E3MT6zVv94MQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-page-break@3.0.4(postcss@8.4.32): + /postcss-page-break@3.0.4(postcss@8.4.33): resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: postcss: ^8 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-place@9.0.0(postcss@8.4.32): + /postcss-place@9.0.0(postcss@8.4.33): resolution: {integrity: sha512-qLEPD9VPH5opDVemwmRaujODF9nExn24VOC3ghgVLEvfYN7VZLwJHes0q/C9YR5hI2UC3VgBE8Wkdp1TxCXhtg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-preset-env@9.3.0(postcss@8.4.32): + /postcss-preset-env@9.3.0(postcss@8.4.33): resolution: {integrity: sha512-ycw6doPrqV6QxDCtgiyGDef61bEfiSc59HGM4gOw/wxQxmKnhuEery61oOC/5ViENz/ycpRsuhTexs1kUBTvVw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-cascade-layers': 4.0.1(postcss@8.4.32) - '@csstools/postcss-color-function': 3.0.7(postcss@8.4.32) - '@csstools/postcss-color-mix-function': 2.0.7(postcss@8.4.32) - '@csstools/postcss-exponential-functions': 1.0.1(postcss@8.4.32) - '@csstools/postcss-font-format-keywords': 3.0.0(postcss@8.4.32) - '@csstools/postcss-gamut-mapping': 1.0.0(postcss@8.4.32) - '@csstools/postcss-gradients-interpolation-method': 4.0.7(postcss@8.4.32) - '@csstools/postcss-hwb-function': 3.0.6(postcss@8.4.32) - '@csstools/postcss-ic-unit': 3.0.2(postcss@8.4.32) - '@csstools/postcss-initial': 1.0.0(postcss@8.4.32) - '@csstools/postcss-is-pseudo-class': 4.0.3(postcss@8.4.32) - '@csstools/postcss-logical-float-and-clear': 2.0.0(postcss@8.4.32) - '@csstools/postcss-logical-overflow': 1.0.0(postcss@8.4.32) - '@csstools/postcss-logical-overscroll-behavior': 1.0.0(postcss@8.4.32) - '@csstools/postcss-logical-resize': 2.0.0(postcss@8.4.32) - '@csstools/postcss-logical-viewport-units': 2.0.3(postcss@8.4.32) - '@csstools/postcss-media-minmax': 1.1.0(postcss@8.4.32) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.3(postcss@8.4.32) - '@csstools/postcss-nested-calc': 3.0.0(postcss@8.4.32) - '@csstools/postcss-normalize-display-values': 3.0.1(postcss@8.4.32) - '@csstools/postcss-oklab-function': 3.0.7(postcss@8.4.32) - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.32) - '@csstools/postcss-relative-color-syntax': 2.0.7(postcss@8.4.32) - '@csstools/postcss-scope-pseudo-class': 3.0.0(postcss@8.4.32) - '@csstools/postcss-stepped-value-functions': 3.0.2(postcss@8.4.32) - '@csstools/postcss-text-decoration-shorthand': 3.0.3(postcss@8.4.32) - '@csstools/postcss-trigonometric-functions': 3.0.2(postcss@8.4.32) - '@csstools/postcss-unset-value': 3.0.0(postcss@8.4.32) - autoprefixer: 10.4.16(postcss@8.4.32) + '@csstools/postcss-cascade-layers': 4.0.1(postcss@8.4.33) + '@csstools/postcss-color-function': 3.0.7(postcss@8.4.33) + '@csstools/postcss-color-mix-function': 2.0.7(postcss@8.4.33) + '@csstools/postcss-exponential-functions': 1.0.1(postcss@8.4.33) + '@csstools/postcss-font-format-keywords': 3.0.0(postcss@8.4.33) + '@csstools/postcss-gamut-mapping': 1.0.0(postcss@8.4.33) + '@csstools/postcss-gradients-interpolation-method': 4.0.7(postcss@8.4.33) + '@csstools/postcss-hwb-function': 3.0.6(postcss@8.4.33) + '@csstools/postcss-ic-unit': 3.0.2(postcss@8.4.33) + '@csstools/postcss-initial': 1.0.0(postcss@8.4.33) + '@csstools/postcss-is-pseudo-class': 4.0.3(postcss@8.4.33) + '@csstools/postcss-logical-float-and-clear': 2.0.0(postcss@8.4.33) + '@csstools/postcss-logical-overflow': 1.0.0(postcss@8.4.33) + '@csstools/postcss-logical-overscroll-behavior': 1.0.0(postcss@8.4.33) + '@csstools/postcss-logical-resize': 2.0.0(postcss@8.4.33) + '@csstools/postcss-logical-viewport-units': 2.0.3(postcss@8.4.33) + '@csstools/postcss-media-minmax': 1.1.0(postcss@8.4.33) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.3(postcss@8.4.33) + '@csstools/postcss-nested-calc': 3.0.0(postcss@8.4.33) + '@csstools/postcss-normalize-display-values': 3.0.1(postcss@8.4.33) + '@csstools/postcss-oklab-function': 3.0.7(postcss@8.4.33) + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/postcss-relative-color-syntax': 2.0.7(postcss@8.4.33) + '@csstools/postcss-scope-pseudo-class': 3.0.0(postcss@8.4.33) + '@csstools/postcss-stepped-value-functions': 3.0.2(postcss@8.4.33) + '@csstools/postcss-text-decoration-shorthand': 3.0.3(postcss@8.4.33) + '@csstools/postcss-trigonometric-functions': 3.0.2(postcss@8.4.33) + '@csstools/postcss-unset-value': 3.0.0(postcss@8.4.33) + autoprefixer: 10.4.16(postcss@8.4.33) browserslist: 4.22.2 - css-blank-pseudo: 6.0.0(postcss@8.4.32) - css-has-pseudo: 6.0.0(postcss@8.4.32) - css-prefers-color-scheme: 9.0.0(postcss@8.4.32) + css-blank-pseudo: 6.0.0(postcss@8.4.33) + css-has-pseudo: 6.0.0(postcss@8.4.33) + css-prefers-color-scheme: 9.0.0(postcss@8.4.33) cssdb: 7.9.0 - postcss: 8.4.32 - postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.32) - postcss-clamp: 4.1.0(postcss@8.4.32) - postcss-color-functional-notation: 6.0.2(postcss@8.4.32) - postcss-color-hex-alpha: 9.0.2(postcss@8.4.32) - postcss-color-rebeccapurple: 9.0.1(postcss@8.4.32) - postcss-custom-media: 10.0.2(postcss@8.4.32) - postcss-custom-properties: 13.3.2(postcss@8.4.32) - postcss-custom-selectors: 7.1.6(postcss@8.4.32) - postcss-dir-pseudo-class: 8.0.0(postcss@8.4.32) - postcss-double-position-gradients: 5.0.2(postcss@8.4.32) - postcss-focus-visible: 9.0.0(postcss@8.4.32) - postcss-focus-within: 8.0.0(postcss@8.4.32) - postcss-font-variant: 5.0.0(postcss@8.4.32) - postcss-gap-properties: 5.0.0(postcss@8.4.32) - postcss-image-set-function: 6.0.1(postcss@8.4.32) - postcss-lab-function: 6.0.7(postcss@8.4.32) - postcss-logical: 7.0.0(postcss@8.4.32) - postcss-nesting: 12.0.1(postcss@8.4.32) - postcss-opacity-percentage: 2.0.0(postcss@8.4.32) - postcss-overflow-shorthand: 5.0.0(postcss@8.4.32) - postcss-page-break: 3.0.4(postcss@8.4.32) - postcss-place: 9.0.0(postcss@8.4.32) - postcss-pseudo-class-any-link: 9.0.0(postcss@8.4.32) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.32) - postcss-selector-not: 7.0.1(postcss@8.4.32) + postcss: 8.4.33 + postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.33) + postcss-clamp: 4.1.0(postcss@8.4.33) + postcss-color-functional-notation: 6.0.2(postcss@8.4.33) + postcss-color-hex-alpha: 9.0.2(postcss@8.4.33) + postcss-color-rebeccapurple: 9.0.1(postcss@8.4.33) + postcss-custom-media: 10.0.2(postcss@8.4.33) + postcss-custom-properties: 13.3.2(postcss@8.4.33) + postcss-custom-selectors: 7.1.6(postcss@8.4.33) + postcss-dir-pseudo-class: 8.0.0(postcss@8.4.33) + postcss-double-position-gradients: 5.0.2(postcss@8.4.33) + postcss-focus-visible: 9.0.0(postcss@8.4.33) + postcss-focus-within: 8.0.0(postcss@8.4.33) + postcss-font-variant: 5.0.0(postcss@8.4.33) + postcss-gap-properties: 5.0.0(postcss@8.4.33) + postcss-image-set-function: 6.0.1(postcss@8.4.33) + postcss-lab-function: 6.0.7(postcss@8.4.33) + postcss-logical: 7.0.0(postcss@8.4.33) + postcss-nesting: 12.0.1(postcss@8.4.33) + postcss-opacity-percentage: 2.0.0(postcss@8.4.33) + postcss-overflow-shorthand: 5.0.0(postcss@8.4.33) + postcss-page-break: 3.0.4(postcss@8.4.33) + postcss-place: 9.0.0(postcss@8.4.33) + postcss-pseudo-class-any-link: 9.0.0(postcss@8.4.33) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.33) + postcss-selector-not: 7.0.1(postcss@8.4.33) postcss-value-parser: 4.2.0 dev: true - /postcss-pseudo-class-any-link@9.0.0(postcss@8.4.32): + /postcss-pseudo-class-any-link@9.0.0(postcss@8.4.33): resolution: {integrity: sha512-QNCYIL98VKFKY6HGDEJpF6+K/sg9bxcUYnOmNHJxZS5wsFDFaVoPeG68WAuhsqwbIBSo/b9fjEnTwY2mTSD+uA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true - /postcss-reduce-initial@5.1.2(postcss@8.4.32): + /postcss-reduce-initial@5.1.2(postcss@8.4.33): resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -20653,34 +21155,34 @@ packages: dependencies: browserslist: 4.22.2 caniuse-api: 3.0.0 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-reduce-transforms@5.1.0(postcss@8.4.32): + /postcss-reduce-transforms@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.32): + /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.33): resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: postcss: ^8.0.3 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-selector-not@7.0.1(postcss@8.4.32): + /postcss-selector-not@7.0.1(postcss@8.4.33): resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true @@ -20691,24 +21193,24 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-svgo@5.1.0(postcss@8.4.32): + /postcss-svgo@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-unique-selectors@5.1.1(postcss@8.4.32): + /postcss-unique-selectors@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true @@ -20732,8 +21234,8 @@ packages: source-map-js: 1.0.2 dev: false - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -20823,7 +21325,7 @@ packages: fixpack: 4.0.0 get-port: 5.1.1 mailparser: 3.6.5 - nodemailer: 6.9.7 + nodemailer: 6.9.8 open: 7.4.2 p-event: 4.2.0 p-wait-for: 3.2.0 @@ -20959,6 +21461,25 @@ packages: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: false + /protobufjs@7.2.5: + resolution: {integrity: sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 18.18.2 + long: 5.2.3 + dev: false + /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -21471,7 +21992,7 @@ packages: /react-responsive-carousel@3.2.23: resolution: {integrity: sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==} dependencies: - classnames: 2.5.0 + classnames: 2.5.1 prop-types: 15.8.1 react-easy-swipe: 0.0.21 dev: false @@ -21990,6 +22511,17 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + /require-in-the-middle@7.2.0: + resolution: {integrity: sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==} + engines: {node: '>=8.6.0'} + dependencies: + debug: 4.3.4 + module-details-from-path: 1.0.3 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: false + /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true @@ -22114,7 +22646,7 @@ packages: maxmin: 2.1.0 dev: true - /rollup-plugin-postcss@4.0.2(postcss@8.4.32): + /rollup-plugin-postcss@4.0.2(postcss@8.4.33): resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} engines: {node: '>=10'} peerDependencies: @@ -22122,13 +22654,13 @@ packages: dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 - cssnano: 5.1.15(postcss@8.4.32) + cssnano: 5.1.15(postcss@8.4.33) import-cwd: 3.0.0 p-queue: 6.6.2 pify: 5.0.0 - postcss: 8.4.32 - postcss-load-config: 3.1.4(postcss@8.4.32) - postcss-modules: 4.3.1(postcss@8.4.32) + postcss: 8.4.33 + postcss-load-config: 3.1.4(postcss@8.4.33) + postcss-modules: 4.3.1(postcss@8.4.33) promise.series: 0.2.0 resolve: 1.22.8 rollup-pluginutils: 2.8.2 @@ -22608,6 +23140,10 @@ packages: rechoir: 0.6.2 dev: true + /shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + dev: false + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -23248,14 +23784,14 @@ packages: react: 18.2.0 dev: false - /stylehacks@5.1.1(postcss@8.4.32): + /stylehacks@5.1.1(postcss@8.4.33): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.22.2 - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true @@ -23407,25 +23943,25 @@ packages: '@babel/runtime': 7.23.5 dev: false - /tailwind-scrollbar@3.0.5(tailwindcss@3.4.0): + /tailwind-scrollbar@3.0.5(tailwindcss@3.4.1): resolution: {integrity: sha512-0ZwxTivevqq9BY9fRP9zDjHl7Tu+J5giBGbln+0O1R/7nHtBUKnjQcA1aTIhK7Oyjp6Uc/Dj6/dn8Dq58k5Uww==} engines: {node: '>=12.13.0'} peerDependencies: tailwindcss: 3.x dependencies: - tailwindcss: 3.4.0(ts-node@10.9.2) + tailwindcss: 3.4.1(ts-node@10.9.2) dev: false - /tailwindcss-animate@1.0.7(tailwindcss@3.4.0): + /tailwindcss-animate@1.0.7(tailwindcss@3.4.1): resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: - tailwindcss: 3.4.0(ts-node@10.9.2) + tailwindcss: 3.4.1(ts-node@10.9.2) dev: false - /tailwindcss@3.4.0(ts-node@10.9.2): - resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + /tailwindcss@3.4.1(ts-node@10.9.2): + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -23443,11 +23979,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.32 - postcss-import: 15.1.0(postcss@8.4.32) - postcss-js: 4.0.1(postcss@8.4.32) - postcss-load-config: 4.0.2(postcss@8.4.32)(ts-node@10.9.2) - postcss-nested: 6.0.1(postcss@8.4.32) + postcss: 8.4.33 + postcss-import: 15.1.0(postcss@8.4.33) + postcss-js: 4.0.1(postcss@8.4.33) + postcss-load-config: 4.0.2(postcss@8.4.33)(ts-node@10.9.2) + postcss-nested: 6.0.1(postcss@8.4.33) postcss-selector-parser: 6.0.13 resolve: 1.22.8 sucrase: 3.34.0 @@ -23944,6 +24480,15 @@ packages: json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 /tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} @@ -24639,8 +25184,8 @@ packages: d3-timer: 3.0.1 dev: false - /vite-node@1.1.0(@types/node@18.18.2): - resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} + /vite-node@1.1.3(@types/node@18.18.2): + resolution: {integrity: sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -24675,8 +25220,8 @@ packages: - typescript dev: true - /vite-tsconfig-paths@4.2.2(typescript@5.3.3)(vite@5.0.10): - resolution: {integrity: sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==} + /vite-tsconfig-paths@4.2.3(typescript@5.3.3)(vite@5.0.10): + resolution: {integrity: sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==} peerDependencies: vite: '*' peerDependenciesMeta: @@ -24722,13 +25267,13 @@ packages: dependencies: '@types/node': 18.18.2 esbuild: 0.19.10 - postcss: 8.4.32 + postcss: 8.4.33 rollup: 4.9.1 optionalDependencies: fsevents: 2.3.3 dev: true - /vitest-mock-extended@1.3.1(typescript@5.3.3)(vitest@1.1.0): + /vitest-mock-extended@1.3.1(typescript@5.3.3)(vitest@1.1.3): resolution: {integrity: sha512-OpghYjh4BDuQ/Mzs3lFMQ1QRk9D8/2O9T47MLUA5eLn7K4RWIy+MfIivYOWEyxjTENjsBnzgMihDjyNalN/K0Q==} peerDependencies: typescript: 3.x || 4.x || 5.x @@ -24736,11 +25281,11 @@ packages: dependencies: ts-essentials: 9.4.1(typescript@5.3.3) typescript: 5.3.3 - vitest: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) + vitest: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) dev: true - /vitest@1.1.0(@types/node@18.18.2)(happy-dom@12.10.3): - resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} + /vitest@1.1.3(@types/node@18.18.2)(happy-dom@12.10.3): + resolution: {integrity: sha512-2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -24765,12 +25310,12 @@ packages: optional: true dependencies: '@types/node': 18.18.2 - '@vitest/expect': 1.1.0 - '@vitest/runner': 1.1.0 - '@vitest/snapshot': 1.1.0 - '@vitest/spy': 1.1.0 - '@vitest/utils': 1.1.0 - acorn-walk: 8.3.0 + '@vitest/expect': 1.1.3 + '@vitest/runner': 1.1.3 + '@vitest/snapshot': 1.1.3 + '@vitest/spy': 1.1.3 + '@vitest/utils': 1.1.3 + acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.3.10 debug: 4.3.4 @@ -24785,7 +25330,7 @@ packages: tinybench: 2.5.1 tinypool: 0.8.1 vite: 5.0.10(@types/node@18.18.2) - vite-node: 1.1.0(@types/node@18.18.2) + vite-node: 1.1.3(@types/node@18.18.2) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From 64911b595c245efbe5a3a3d9de95ecb3467a9858 Mon Sep 17 00:00:00 2001 From: pengap Date: Mon, 8 Jan 2024 21:05:56 +0800 Subject: [PATCH 02/10] fix: selection filter user 'Me' --- apps/nestjs-backend/package.json | 10 +- .../src/db-provider/db.provider.interface.ts | 4 +- .../src/db-provider/db.provider.ts | 7 +- .../src/db-provider/postgres.provider.ts | 6 +- .../src/db-provider/sqlite.provider.ts | 4 +- .../aggregation/aggregation.service.ts | 5 +- .../src/features/base/base.service.ts | 5 +- .../features/base/db-connection.service.ts | 5 +- .../src/features/calculation/batch.service.ts | 7 +- .../field-supplement.service.ts | 43 +- .../src/features/field/field.service.ts | 5 +- .../open-api/record-open-api.controller.ts | 7 +- .../src/features/record/record.service.ts | 56 +- .../selection/selection.controller.ts | 18 +- .../features/selection/selection.module.ts | 2 + .../selection/selection.service.spec.ts | 14 +- .../features/selection/selection.service.ts | 92 +- .../open-api/table-open-api.controller.ts | 12 +- .../table/open-api/table-open-api.service.ts | 19 +- .../src/features/table/table.service.ts | 9 +- .../src/share-db/share-db.adapter.ts | 61 +- .../src/share-db/share-db.service.ts | 18 + apps/nestjs-backend/src/tracing.ts | 8 +- .../src/tracing/decorators/span.ts | 49 + apps/nestjs-backend/src/utils/metadata.ts | 13 + apps/nestjs-backend/src/utils/timing.ts | 6 +- apps/nextjs-app/.env.test | 2 +- apps/nextjs-app/package.json | 4 +- packages/ui-lib/package.json | 2 +- pnpm-lock.yaml | 3609 +++++++++-------- 30 files changed, 2211 insertions(+), 1891 deletions(-) create mode 100644 apps/nestjs-backend/src/tracing/decorators/span.ts create mode 100644 apps/nestjs-backend/src/utils/metadata.ts diff --git a/apps/nestjs-backend/package.json b/apps/nestjs-backend/package.json index f163bcb24..db258b342 100644 --- a/apps/nestjs-backend/package.json +++ b/apps/nestjs-backend/package.json @@ -49,7 +49,7 @@ }, "devDependencies": { "@faker-js/faker": "8.3.1", - "@nestjs/cli": "10.2.1", + "@nestjs/cli": "10.3.0", "@nestjs/testing": "10.3.0", "@teable-group/eslint-config-bases": "workspace:^", "@types/bcrypt": "5.0.2", @@ -61,7 +61,7 @@ "@types/lodash": "4.14.202", "@types/markdown-it": "13.0.7", "@types/mime-types": "2.1.4", - "@types/minio": "^7.1.1", + "@types/minio": "7.1.1", "@types/multer": "1.4.11", "@types/node": "18.18.2", "@types/node-fetch": "2.6.10", @@ -97,7 +97,7 @@ "dependencies": { "@nestjs-modules/mailer": "1.10.3", "@nestjs/axios": "3.0.1", - "@nestjs/cache-manager": "^2.1.1", + "@nestjs/cache-manager": "2.2.0", "@nestjs/common": "10.3.0", "@nestjs/config": "3.1.1", "@nestjs/core": "10.3.0", @@ -128,7 +128,7 @@ "ajv": "8.12.0", "axios": "1.6.5", "bcrypt": "5.1.1", - "cache-manager": "^5.3.2", + "cache-manager": "5.3.2", "class-transformer": "0.5.1", "class-validator": "0.14.0", "cookie": "0.6.0", @@ -148,7 +148,7 @@ "markdown-it": "14.0.0", "markdown-it-sanitizer": "0.4.3", "mime-types": "2.1.35", - "minio": "^7.1.3", + "minio": "7.1.3", "multer": "1.4.5-lts.1", "nanoid": "3.3.6", "nest-knexjs": "0.0.19", diff --git a/apps/nestjs-backend/src/db-provider/db.provider.interface.ts b/apps/nestjs-backend/src/db-provider/db.provider.interface.ts index b76e357d0..3735afe51 100644 --- a/apps/nestjs-backend/src/db-provider/db.provider.interface.ts +++ b/apps/nestjs-backend/src/db-provider/db.provider.interface.ts @@ -1,4 +1,4 @@ -import type { DriverClient, IAggregationField, IFilter, ISort } from '@teable-group/core'; +import type { DriverClient, IAggregationField, IFilter, ISortItem } from '@teable-group/core'; import type { Knex } from 'knex'; import type { IFieldInstance } from '../features/field/model/factory'; import type { SchemaType } from '../features/field/util'; @@ -66,7 +66,7 @@ export interface IDbProvider { sortQuery( originKnex: Knex.QueryBuilder, fields?: { [fieldId: string]: IFieldInstance }, - sortObjs?: ISort['sortObjs'], + sortObjs?: ISortItem[], extra?: ISortQueryExtra ): ISortQueryInterface; } diff --git a/apps/nestjs-backend/src/db-provider/db.provider.ts b/apps/nestjs-backend/src/db-provider/db.provider.ts index 89db72059..e40752cde 100644 --- a/apps/nestjs-backend/src/db-provider/db.provider.ts +++ b/apps/nestjs-backend/src/db-provider/db.provider.ts @@ -1,13 +1,18 @@ /* eslint-disable @typescript-eslint/naming-convention */ import type { Provider } from '@nestjs/common'; +import { Inject } from '@nestjs/common'; import { DriverClient } from '@teable-group/core'; import type { Knex } from 'knex'; import { getDriverName } from '../utils/db-helpers'; import { PostgresProvider } from './postgres.provider'; import { SqliteProvider } from './sqlite.provider'; +export const DB_PROVIDER_SYMBOL = Symbol('DB_PROVIDER'); + +export const InjectDbProvider = () => Inject(DB_PROVIDER_SYMBOL); + export const DbProvider: Provider = { - provide: 'DbProvider', + provide: DB_PROVIDER_SYMBOL, useFactory: (knex: Knex) => { const driverClient = getDriverName(knex); diff --git a/apps/nestjs-backend/src/db-provider/postgres.provider.ts b/apps/nestjs-backend/src/db-provider/postgres.provider.ts index 877c1ede9..9a8dc7803 100644 --- a/apps/nestjs-backend/src/db-provider/postgres.provider.ts +++ b/apps/nestjs-backend/src/db-provider/postgres.provider.ts @@ -1,10 +1,11 @@ import { Logger } from '@nestjs/common'; -import type { IAggregationField, IFilter, ISort } from '@teable-group/core'; +import type { IAggregationField, IFilter, ISortItem } from '@teable-group/core'; import { DriverClient } from '@teable-group/core'; import type { Knex } from 'knex'; import type { IFieldInstance } from '../features/field/model/factory'; import type { SchemaType } from '../features/field/util'; import type { IAggregationQueryInterface } from './aggregation-query/aggregation-query.interface'; +import { AggregationQueryPostgres } from './aggregation-query/postgres/aggregation-query.postgres'; import type { IAggregationQueryExtra, IDbProvider, @@ -15,7 +16,6 @@ import type { IFilterQueryInterface } from './filter-query/filter-query.interfac import { FilterQueryPostgres } from './filter-query/postgres/filter-query.postgres'; import type { ISortQueryInterface } from './sort-query/sort-query.interface'; import { SortQueryPostgres } from './sort-query/sort-query.postgres'; -import { AggregationQueryPostgres } from './aggregation-query/postgres/aggregation-query.postgres'; export class PostgresProvider implements IDbProvider { private readonly logger = new Logger(PostgresProvider.name); @@ -153,7 +153,7 @@ export class PostgresProvider implements IDbProvider { sortQuery( originQueryBuilder: Knex.QueryBuilder, fields?: { [fieldId: string]: IFieldInstance }, - sortObjs?: ISort['sortObjs'], + sortObjs?: ISortItem[], extra?: ISortQueryExtra ): ISortQueryInterface { return new SortQueryPostgres(this.knex, originQueryBuilder, fields, sortObjs, extra); diff --git a/apps/nestjs-backend/src/db-provider/sqlite.provider.ts b/apps/nestjs-backend/src/db-provider/sqlite.provider.ts index 86e4642e8..95e20f00c 100644 --- a/apps/nestjs-backend/src/db-provider/sqlite.provider.ts +++ b/apps/nestjs-backend/src/db-provider/sqlite.provider.ts @@ -1,6 +1,6 @@ /* eslint-disable sonarjs/no-duplicate-string */ import { Logger } from '@nestjs/common'; -import type { IAggregationField, IFilter, ISort } from '@teable-group/core'; +import type { IAggregationField, IFilter, ISortItem } from '@teable-group/core'; import { DriverClient } from '@teable-group/core'; import type { Knex } from 'knex'; import type { IFieldInstance } from '../features/field/model/factory'; @@ -143,7 +143,7 @@ export class SqliteProvider implements IDbProvider { sortQuery( originQueryBuilder: Knex.QueryBuilder, fields?: { [fieldId: string]: IFieldInstance }, - sortObjs?: ISort['sortObjs'], + sortObjs?: ISortItem[], extra?: ISortQueryExtra ): ISortQueryInterface { return new SortQuerySqlite(this.knex, originQueryBuilder, fields, sortObjs, extra); diff --git a/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts b/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts index 7dd9dcb50..93d3e062e 100644 --- a/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts +++ b/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts @@ -1,4 +1,4 @@ -import { Inject, Injectable, Logger } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import type { IAggregationField, IColumnMeta, @@ -20,6 +20,7 @@ import dayjs from 'dayjs'; import { Knex } from 'knex'; import { groupBy, isDate, isEmpty } from 'lodash'; import { InjectModel } from 'nest-knexjs'; +import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IFieldInstance } from '../field/model/factory'; import { createFieldInstanceByRaw } from '../field/model/factory'; @@ -50,7 +51,7 @@ export class AggregationService { private readonly recordService: RecordService, private readonly prisma: PrismaService, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex, - @Inject('DbProvider') private readonly dbProvider: IDbProvider + @InjectDbProvider() private readonly dbProvider: IDbProvider ) {} async performAggregation(params: { diff --git a/apps/nestjs-backend/src/features/base/base.service.ts b/apps/nestjs-backend/src/features/base/base.service.ts index 181621d7d..66f86c373 100644 --- a/apps/nestjs-backend/src/features/base/base.service.ts +++ b/apps/nestjs-backend/src/features/base/base.service.ts @@ -1,8 +1,9 @@ -import { Inject, Injectable, NotFoundException } from '@nestjs/common'; +import { Injectable, NotFoundException } from '@nestjs/common'; import { generateBaseId } from '@teable-group/core'; import { PrismaService } from '@teable-group/db-main-prisma'; import type { ICreateBaseRo, IUpdateBaseRo } from '@teable-group/openapi'; import { ClsService } from 'nestjs-cls'; +import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IClsStore } from '../../types/cls'; import { CollaboratorService } from '../collaborator/collaborator.service'; @@ -13,7 +14,7 @@ export class BaseService { private readonly prismaService: PrismaService, private readonly cls: ClsService, private readonly collaboratorService: CollaboratorService, - @Inject('DbProvider') private dbProvider: IDbProvider + @InjectDbProvider() private readonly dbProvider: IDbProvider ) {} async getBaseById(baseId: string) { diff --git a/apps/nestjs-backend/src/features/base/db-connection.service.ts b/apps/nestjs-backend/src/features/base/db-connection.service.ts index b7c883226..32f012bac 100644 --- a/apps/nestjs-backend/src/features/base/db-connection.service.ts +++ b/apps/nestjs-backend/src/features/base/db-connection.service.ts @@ -1,6 +1,5 @@ import { BadRequestException, - Inject, Injectable, InternalServerErrorException, NotFoundException, @@ -12,17 +11,19 @@ import { PrismaService } from '@teable-group/db-main-prisma'; import { nanoid } from 'nanoid'; import { ClsService } from 'nestjs-cls'; import type { IBaseConfig } from '../../configs/base.config'; +import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IClsStore } from '../../types/cls'; @Injectable() export class DbConnectionService { private readonly baseConfig: IBaseConfig; + constructor( private readonly prismaService: PrismaService, private readonly cls: ClsService, private readonly configService: ConfigService, - @Inject('DbProvider') private dbProvider: IDbProvider + @InjectDbProvider() private readonly dbProvider: IDbProvider ) { this.baseConfig = this.configService.get('base')!; } diff --git a/apps/nestjs-backend/src/features/calculation/batch.service.ts b/apps/nestjs-backend/src/features/calculation/batch.service.ts index 37df22023..0cf17f263 100644 --- a/apps/nestjs-backend/src/features/calculation/batch.service.ts +++ b/apps/nestjs-backend/src/features/calculation/batch.service.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { Inject, Injectable } from '@nestjs/common'; +import { Injectable } from '@nestjs/common'; import type { IOtOperation } from '@teable-group/core'; import { IdPrefix, RecordOpBuilder } from '@teable-group/core'; import { PrismaService } from '@teable-group/db-main-prisma'; @@ -8,6 +8,7 @@ import { groupBy, isEmpty, keyBy, merge } from 'lodash'; import { customAlphabet } from 'nanoid'; import { InjectModel } from 'nest-knexjs'; import { ClsService } from 'nestjs-cls'; +import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IRawOp, IRawOpMap } from '../../share-db/interface'; import { RawOpType } from '../../share-db/interface'; @@ -15,7 +16,7 @@ import type { IClsStore } from '../../types/cls'; import { Timing } from '../../utils/timing'; import type { IFieldInstance } from '../field/model/factory'; import { createFieldInstanceByRaw } from '../field/model/factory'; -import { SchemaType, dbType2knexFormat } from '../field/util'; +import { dbType2knexFormat, SchemaType } from '../field/util'; import { IOpsMap } from './reference.service'; export interface IOpsData { @@ -34,7 +35,7 @@ export class BatchService { private readonly cls: ClsService, private readonly prismaService: PrismaService, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex, - @Inject('DbProvider') private dbProvider: IDbProvider + @InjectDbProvider() private readonly dbProvider: IDbProvider ) {} private async completeMissingCtx( diff --git a/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts b/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts index 82217780a..ceeaf6d0f 100644 --- a/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts +++ b/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts @@ -1,5 +1,5 @@ /* eslint-disable sonarjs/no-duplicate-string */ -import { BadRequestException, Inject, Injectable } from '@nestjs/common'; +import { BadRequestException, Injectable } from '@nestjs/common'; import type { IFieldRo, IFieldVo, @@ -14,31 +14,31 @@ import type { IUserFieldOptions, } from '@teable-group/core'; import { + assertNever, + AttachmentFieldCore, + AutoNumberFieldCore, + CellValueType, + CheckboxFieldCore, ColorUtils, + CreatedTimeFieldCore, + DateFieldCore, + DbFieldType, + FieldType, generateChoiceId, + generateFieldId, + getDefaultFormatting, getFormattingSchema, + getRandomString, getShowAsSchema, - CellValueType, - getDefaultFormatting, - FieldType, - generateFieldId, + isMultiValueLink, + LastModifiedTimeFieldCore, + LongTextFieldCore, + NumberFieldCore, + RatingFieldCore, Relationship, RelationshipRevert, - DbFieldType, - assertNever, - SingleLineTextFieldCore, - NumberFieldCore, SelectFieldCore, - AttachmentFieldCore, - DateFieldCore, - CheckboxFieldCore, - RatingFieldCore, - LongTextFieldCore, - CreatedTimeFieldCore, - AutoNumberFieldCore, - LastModifiedTimeFieldCore, - isMultiValueLink, - getRandomString, + SingleLineTextFieldCore, UserFieldCore, } from '@teable-group/core'; import { PrismaService } from '@teable-group/db-main-prisma'; @@ -47,12 +47,13 @@ import { keyBy, merge } from 'lodash'; import { InjectModel } from 'nest-knexjs'; import type { z } from 'zod'; import { fromZodError } from 'zod-validation-error'; +import { InjectDbProvider } from '../../../db-provider/db.provider'; import { IDbProvider } from '../../../db-provider/db.provider.interface'; import { ReferenceService } from '../../calculation/reference.service'; import { hasCycle } from '../../calculation/utils/dfs'; import { FieldService } from '../field.service'; -import { createFieldInstanceByRaw, createFieldInstanceByVo } from '../model/factory'; import type { IFieldInstance } from '../model/factory'; +import { createFieldInstanceByRaw, createFieldInstanceByVo } from '../model/factory'; import { FormulaFieldDto } from '../model/field-dto/formula-field.dto'; import type { LinkFieldDto } from '../model/field-dto/link-field.dto'; import { RollupFieldDto } from '../model/field-dto/rollup-field.dto'; @@ -63,7 +64,7 @@ export class FieldSupplementService { private readonly fieldService: FieldService, private readonly prismaService: PrismaService, private readonly referenceService: ReferenceService, - @Inject('DbProvider') private dbProvider: IDbProvider, + @InjectDbProvider() private readonly dbProvider: IDbProvider, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex ) {} diff --git a/apps/nestjs-backend/src/features/field/field.service.ts b/apps/nestjs-backend/src/features/field/field.service.ts index 03506a3c4..33d76511b 100644 --- a/apps/nestjs-backend/src/features/field/field.service.ts +++ b/apps/nestjs-backend/src/features/field/field.service.ts @@ -1,4 +1,4 @@ -import { BadRequestException, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common'; +import { BadRequestException, Injectable, Logger, NotFoundException } from '@nestjs/common'; import type { IFieldVo, IGetFieldsQuery, @@ -16,6 +16,7 @@ import { Knex } from 'knex'; import { keyBy, sortBy } from 'lodash'; import { InjectModel } from 'nest-knexjs'; import { ClsService } from 'nestjs-cls'; +import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IAdapterService } from '../../share-db/interface'; import { RawOpType } from '../../share-db/interface'; @@ -39,7 +40,7 @@ export class FieldService implements IAdapterService { private readonly prismaService: PrismaService, private readonly attachmentService: AttachmentsTableService, private readonly cls: ClsService, - @Inject('DbProvider') private dbProvider: IDbProvider, + @InjectDbProvider() private readonly dbProvider: IDbProvider, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex ) {} diff --git a/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts b/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts index ae57cc2cd..764a5eae8 100644 --- a/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts +++ b/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts @@ -7,6 +7,7 @@ import { Patch, Post, Query, + Req, UseGuards, } from '@nestjs/common'; import type { ICreateRecordsVo, IRecord, IRecordsVo } from '@teable-group/core'; @@ -22,7 +23,9 @@ import { IUpdateRecordByIndexRo, IUpdateRecordRo, } from '@teable-group/core'; +import type { User as UserModel } from '@teable-group/db-main-prisma'; import { deleteRecordsQuerySchema, IDeleteRecordsQuery } from '@teable-group/openapi'; +import { Request } from 'express'; import { ZodValidationPipe } from '../../../zod.validation.pipe'; import { Permissions } from '../../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../../auth/guard/permission.guard'; @@ -41,10 +44,12 @@ export class RecordOpenApiController { @Permissions('record|read') @Get() async getRecords( + @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(getRecordsQuerySchema), RecordPipe) query: IGetRecordsQuery ): Promise { - return await this.recordService.getRecords(tableId, query); + const { id: queryUserId } = req.user as UserModel; + return await this.recordService.getRecords(tableId, { ...query, queryUserId }); } @Permissions('record|read') diff --git a/apps/nestjs-backend/src/features/record/record.service.ts b/apps/nestjs-backend/src/features/record/record.service.ts index 9dbb6c670..39a4d10c2 100644 --- a/apps/nestjs-backend/src/features/record/record.service.ts +++ b/apps/nestjs-backend/src/features/record/record.service.ts @@ -1,6 +1,5 @@ import { BadRequestException, - Inject, Injectable, InternalServerErrorException, Logger, @@ -24,6 +23,7 @@ import type { ISortItem, } from '@teable-group/core'; import { + CellFormat, FieldKeyType, FieldType, generateRecordId, @@ -32,7 +32,6 @@ import { mergeWithDefaultFilter, mergeWithDefaultSort, OpName, - CellFormat, Relationship, } from '@teable-group/core'; import type { Field, Prisma } from '@teable-group/db-main-prisma'; @@ -42,6 +41,7 @@ import { Knex } from 'knex'; import { keyBy } from 'lodash'; import { InjectModel } from 'nest-knexjs'; import { ClsService } from 'nestjs-cls'; +import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IAdapterService } from '../../share-db/interface'; import { RawOpType } from '../../share-db/interface'; @@ -70,7 +70,7 @@ export class RecordService implements IAdapterService { private readonly attachmentService: AttachmentsTableService, private readonly attachmentStorageService: AttachmentsStorageService, private readonly cls: ClsService, - @Inject('DbProvider') private dbProvider: IDbProvider, + @InjectDbProvider() private readonly dbProvider: IDbProvider, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex ) {} @@ -126,8 +126,7 @@ export class RecordService implements IAdapterService { return fields.reduce((acc, field) => { const fieldNameOrId = fieldKeyType === FieldKeyType.Name ? field.name : field.id; const dbCellValue = record[field.dbFieldName]; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const cellValue = field.convertDBValue2CellValue(dbCellValue as any); + const cellValue = field.convertDBValue2CellValue(dbCellValue); if (cellValue != null) { acc[fieldNameOrId] = cellFormat === CellFormat.Text ? field.cellValue2String(cellValue) : cellValue; @@ -136,7 +135,7 @@ export class RecordService implements IAdapterService { }, {}); } - async getAllRecordCount(dbTableName: string) { + private async getAllRecordCount(dbTableName: string) { const sqlNative = this.knex(dbTableName).count({ count: '*' }).toSQL().toNative(); const queryResult = await this.prismaService @@ -416,7 +415,9 @@ export class RecordService implements IAdapterService { async buildFilterSortQuery( tableId: string, - query: Pick + query: Pick & { + queryUserId?: string; + } ): Promise { const { queryBuilder, filter, orderBy, fieldMap } = await this.prepareQuery(tableId, query); @@ -424,18 +425,16 @@ export class RecordService implements IAdapterService { await this.buildLinkCandidateQuery(queryBuilder, tableId, query.filterLinkCellCandidate); } - // TODO: testing - const withUserId = this.cls.get('user.id'); - // All `where` condition-related construction work this.dbProvider - .filterQuery(queryBuilder, fieldMap, filter, { withUserId }) + .filterQuery(queryBuilder, fieldMap, filter, { withUserId: query.queryUserId }) .appendQueryBuilder(); this.dbProvider.sortQuery(queryBuilder, fieldMap, orderBy).appendSortBuilder(); // view sorting added by default queryBuilder.orderBy(getViewOrderFieldName(query.viewId), 'asc'); + this.logger.debug('buildFilterSortQuery: %s', queryBuilder.toQuery()); // If you return `queryBuilder` directly and use `await` to receive it, // it will perform a query DB operation, which we obviously don't want to see here return { queryBuilder }; @@ -530,33 +529,10 @@ export class RecordService implements IAdapterService { }, []); } - async getRowCount( + async getRecords( tableId: string, - _viewId: string, - filterQueryBuilder?: Knex.QueryBuilder - ): Promise { - if (filterQueryBuilder) { - filterQueryBuilder - .clearSelect() - .clearCounters() - .clearGroup() - .clearHaving() - .clearOrder() - .clear('limit') - .clear('offset'); - const rowCountSql = filterQueryBuilder.count({ count: '*' }); - - const result = await this.prismaService - .txClient() - .$queryRawUnsafe<{ count?: number }[]>(rowCountSql.toQuery()); - return Number(result[0]?.count ?? 0); - } - - const dbTableName = await this.getDbTableName(tableId); - return await this.getAllRecordCount(dbTableName); - } - - async getRecords(tableId: string, query: IGetRecordsQuery): Promise { + query: IGetRecordsQuery & { queryUserId?: string } + ): Promise { const defaultView = await this.prismaService.txClient().view.findFirstOrThrow({ select: { id: true, filter: true, sort: true }, where: { @@ -576,6 +552,7 @@ export class RecordService implements IAdapterService { orderBy: query.orderBy, filterLinkCellCandidate: query.filterLinkCellCandidate, filterLinkCellSelected: query.filterLinkCellSelected, + queryUserId: query.queryUserId, }); const recordSnapshot = await this.getSnapshotBulk( @@ -993,7 +970,7 @@ export class RecordService implements IAdapterService { async getDocIdsByQuery( tableId: string, - query: IGetRecordsQuery + query: IGetRecordsQuery & { queryUserId?: string } ): Promise<{ ids: string[]; extra?: IExtraResult }> { const viewId = await this.shareWithViewId(tableId, query.viewId); @@ -1031,7 +1008,7 @@ export class RecordService implements IAdapterService { async getRecordsFields( tableId: string, - query: IMakeRequired + query: IMakeRequired & { queryUserId?: string } ): Promise[]> { if (identify(tableId) !== IdPrefix.Table) { throw new InternalServerErrorException('query collection must be table id'); @@ -1046,6 +1023,7 @@ export class RecordService implements IAdapterService { viewId: viewId, filter, orderBy, + queryUserId: query.queryUserId, }); queryBuilder.select(fieldNames.concat('__id')); queryBuilder.offset(skip); diff --git a/apps/nestjs-backend/src/features/selection/selection.controller.ts b/apps/nestjs-backend/src/features/selection/selection.controller.ts index e74914886..162329e37 100644 --- a/apps/nestjs-backend/src/features/selection/selection.controller.ts +++ b/apps/nestjs-backend/src/features/selection/selection.controller.ts @@ -1,4 +1,5 @@ -import { Body, Controller, Get, Param, Patch, Query, UseGuards } from '@nestjs/common'; +import { Body, Controller, Get, Param, Patch, Query, Req, UseGuards } from '@nestjs/common'; +import type { User as UserModel } from '@teable-group/db-main-prisma'; import type { ICopyVo, IRangesToIdVo, PasteVo } from '@teable-group/openapi'; import { IRangesToIdRo, @@ -10,6 +11,7 @@ import { PasteRo, pasteRoSchema, } from '@teable-group/openapi'; +import { Request } from 'express'; import { ZodValidationPipe } from '../../zod.validation.pipe'; import { Permissions } from '../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../auth/guard/permission.guard'; @@ -23,43 +25,51 @@ export class SelectionController { @Permissions('view|read') @Get('/rangeToId') async getIdsFromRanges( + @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Query(new ZodValidationPipe(rangesToIdRoSchema)) query: IRangesToIdRo ): Promise { - return this.selectionService.getIdsFromRanges(tableId, viewId, query); + const { id: queryUserId } = req.user as UserModel; + return this.selectionService.getIdsFromRanges(tableId, viewId, { ...query, queryUserId }); } @Permissions('view|read') @Get('/copy') async copy( + @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Query(new ZodValidationPipe(rangesSchema)) query: ICopyRo ): Promise { - return this.selectionService.copy(tableId, viewId, query); + const { id: queryUserId } = req.user as UserModel; + return this.selectionService.copy(tableId, viewId, { ...query, queryUserId }); } @Permissions('record|update') @Patch('/paste') async paste( + @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Body(new ZodValidationPipe(pasteRoSchema)) pasteRo: PasteRo ): Promise { - const ranges = await this.selectionService.paste(tableId, viewId, pasteRo); + const { id: queryUserId } = req.user as UserModel; + const ranges = await this.selectionService.paste(tableId, viewId, { ...pasteRo, queryUserId }); return { ranges }; } @Permissions('record|update') @Patch('/clear') async clear( + @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Body(new ZodValidationPipe(clearRoSchema)) clearRo: ClearRo ) { + const { id: queryUserId } = req.user as UserModel; await this.selectionService.clear(tableId, viewId, clearRo); return null; } diff --git a/apps/nestjs-backend/src/features/selection/selection.module.ts b/apps/nestjs-backend/src/features/selection/selection.module.ts index 4453928d3..5d77b7be0 100644 --- a/apps/nestjs-backend/src/features/selection/selection.module.ts +++ b/apps/nestjs-backend/src/features/selection/selection.module.ts @@ -1,4 +1,5 @@ import { Module } from '@nestjs/common'; +import { AggregationModule } from '../aggregation/aggregation.module'; import { CollaboratorModule } from '../collaborator/collaborator.module'; import { FieldCalculateModule } from '../field/field-calculate/field-calculate.module'; import { FieldModule } from '../field/field.module'; @@ -14,6 +15,7 @@ import { SelectionService } from './selection.service'; RecordOpenApiModule, FieldCalculateModule, CollaboratorModule, + AggregationModule, ], controllers: [SelectionController], providers: [SelectionService], diff --git a/apps/nestjs-backend/src/features/selection/selection.service.spec.ts b/apps/nestjs-backend/src/features/selection/selection.service.spec.ts index 0b5b51751..d7e983a5d 100644 --- a/apps/nestjs-backend/src/features/selection/selection.service.spec.ts +++ b/apps/nestjs-backend/src/features/selection/selection.service.spec.ts @@ -7,9 +7,9 @@ import { DbFieldType, FieldKeyType, FieldType, - SpaceRole, getPermissions, nullsToUndefined, + SpaceRole, } from '@teable-group/core'; import { PrismaService } from '@teable-group/db-main-prisma'; import { RangeType } from '@teable-group/openapi'; @@ -19,6 +19,7 @@ import type { DeepMockProxy } from 'vitest-mock-extended'; import { mockDeep, mockReset } from 'vitest-mock-extended'; import { GlobalModule } from '../../global/global.module'; import type { IClsStore } from '../../types/cls'; +import { AggregationService } from '../aggregation/aggregation.service'; import { FieldCreatingService } from '../field/field-calculate/field-creating.service'; import { FieldService } from '../field/field.service'; import type { IFieldInstance } from '../field/model/factory'; @@ -36,6 +37,7 @@ describe('selectionService', () => { let recordOpenApiService: RecordOpenApiService; let fieldCreatingService: FieldCreatingService; let clsService: ClsService; + let aggregationService: AggregationService; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ @@ -51,6 +53,7 @@ describe('selectionService', () => { recordOpenApiService = module.get(RecordOpenApiService); fieldCreatingService = module.get(FieldCreatingService); clsService = module.get>(ClsService); + aggregationService = module.get(AggregationService); prismaService = module.get( PrismaService @@ -535,7 +538,9 @@ describe('selectionService', () => { vi.spyOn(selectionService as any, 'parseCopyContent').mockReturnValue(tableData); - vi.spyOn(recordService, 'getRowCount').mockResolvedValue(mockRecords.length); + vi.spyOn(aggregationService, 'performRowCount').mockResolvedValue({ + rowCount: mockRecords.length, + }); vi.spyOn(recordService, 'getRecordsFields').mockResolvedValue( mockRecords.slice(pasteRo.range[0][1]) ); @@ -565,7 +570,10 @@ describe('selectionService', () => { // Assertions expect(selectionService['parseCopyContent']).toHaveBeenCalledWith(content); - expect(recordService.getRowCount).toHaveBeenCalledWith(tableId, viewId); + expect(aggregationService.performRowCount).toHaveBeenCalledWith({ + tableId, + withView: { viewId }, + }); expect(recordService.getRecordsFields).toHaveBeenCalledWith(tableId, { viewId, skip: 1, diff --git a/apps/nestjs-backend/src/features/selection/selection.service.ts b/apps/nestjs-backend/src/features/selection/selection.service.ts index 072d10519..4d7596c74 100644 --- a/apps/nestjs-backend/src/features/selection/selection.service.ts +++ b/apps/nestjs-backend/src/features/selection/selection.service.ts @@ -20,6 +20,7 @@ import { IdReturnType, RangeType } from '@teable-group/openapi'; import { isNumber, isString, map, omit } from 'lodash'; import { ClsService } from 'nestjs-cls'; import type { IClsStore } from '../../types/cls'; +import { AggregationService } from '../aggregation/aggregation.service'; import { CollaboratorService } from '../collaborator/collaborator.service'; import { FieldCreatingService } from '../field/field-calculate/field-creating.service'; import { FieldSupplementService } from '../field/field-calculate/field-supplement.service'; @@ -33,26 +34,27 @@ import { RecordService } from '../record/record.service'; @Injectable() export class SelectionService { constructor( - private recordService: RecordService, - private fieldService: FieldService, - private prismaService: PrismaService, - private recordOpenApiService: RecordOpenApiService, - private fieldCreatingService: FieldCreatingService, - private fieldSupplementService: FieldSupplementService, + private readonly recordService: RecordService, + private readonly fieldService: FieldService, + private readonly prismaService: PrismaService, + private readonly recordOpenApiService: RecordOpenApiService, + private readonly fieldCreatingService: FieldCreatingService, + private readonly fieldSupplementService: FieldSupplementService, private readonly collaboratorService: CollaboratorService, - private cls: ClsService + private readonly cls: ClsService, + private readonly aggregationService: AggregationService ) {} async getIdsFromRanges( tableId: string, viewId: string, - query: IRangesToIdRo + query: IRangesToIdRo & { queryUserId?: string } ): Promise { const ranges = JSON.parse(query.ranges) as [number, number][]; - const { returnType, type } = query; + const { returnType, type, queryUserId } = query; if (returnType === IdReturnType.RecordId) { return { - recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type), + recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type, queryUserId), }; } @@ -65,7 +67,7 @@ export class SelectionService { if (returnType === IdReturnType.All) { return { fieldIds: await this.columnSelectionToIds(tableId, viewId, ranges, type), - recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type), + recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type, queryUserId), }; } @@ -101,11 +103,13 @@ export class SelectionService { tableId: string, viewId: string, ranges: [number, number][], - type: RangeType | undefined + type: RangeType | undefined, + queryUserId?: string ): Promise { if (type === RangeType.Columns) { const result = await this.recordService.getDocIdsByQuery(tableId, { viewId, + queryUserId, skip: 0, take: -1, }); @@ -117,6 +121,7 @@ export class SelectionService { for (const [start, end] of ranges) { const result = await this.recordService.getDocIdsByQuery(tableId, { viewId, + queryUserId, skip: start, take: end + 1 - start, }); @@ -131,6 +136,7 @@ export class SelectionService { const [start, end] = ranges; const result = await this.recordService.getDocIdsByQuery(tableId, { viewId, + queryUserId, skip: start[1], take: end[1] + 1 - start[1], }); @@ -148,13 +154,19 @@ export class SelectionService { ); } - private async columnsSelectionCtx(tableId: string, viewId: string, ranges: [number, number][]) { + private async columnsSelectionCtx( + tableId: string, + viewId: string, + ranges: [number, number][], + queryUserId?: string + ) { const fields = await this.fieldService.getFieldsByQuery(tableId, { viewId, filterHidden: true, }); const records = await this.recordService.getRecordsFields(tableId, { viewId, + queryUserId, skip: 0, take: -1, fieldKeyType: FieldKeyType.Id, @@ -169,7 +181,12 @@ export class SelectionService { }; } - private async rowsSelectionCtx(tableId: string, viewId: string, ranges: [number, number][]) { + private async rowsSelectionCtx( + tableId: string, + viewId: string, + ranges: [number, number][], + queryUserId?: string + ) { const fields = await this.fieldService.getFieldsByQuery(tableId, { viewId, filterHidden: true, @@ -178,6 +195,7 @@ export class SelectionService { for (const [start, end] of ranges) { const recordsFields = await this.recordService.getRecordsFields(tableId, { viewId, + queryUserId, skip: start, take: end + 1 - start, fieldKeyType: FieldKeyType.Id, @@ -192,7 +210,12 @@ export class SelectionService { }; } - private async defaultSelectionCtx(tableId: string, viewId: string, ranges: [number, number][]) { + private async defaultSelectionCtx( + tableId: string, + viewId: string, + ranges: [number, number][], + queryUserId?: string + ) { const [start, end] = ranges; const fields = await this.fieldService.getFieldInstances(tableId, { viewId, @@ -200,6 +223,7 @@ export class SelectionService { }); const records = await this.recordService.getRecordsFields(tableId, { viewId, + queryUserId, skip: start[1], take: end[1] + 1 - start[1], fieldKeyType: FieldKeyType.Id, @@ -212,17 +236,18 @@ export class SelectionService { tableId: string, viewId: string, ranges: [number, number][], - type?: RangeType + type?: RangeType, + queryUserId?: string ) { switch (type) { case RangeType.Columns: { - return await this.columnsSelectionCtx(tableId, viewId, ranges); + return await this.columnsSelectionCtx(tableId, viewId, ranges, queryUserId); } case RangeType.Rows: { - return await this.rowsSelectionCtx(tableId, viewId, ranges); + return await this.rowsSelectionCtx(tableId, viewId, ranges, queryUserId); } default: - return await this.defaultSelectionCtx(tableId, viewId, ranges); + return await this.defaultSelectionCtx(tableId, viewId, ranges, queryUserId); } } @@ -425,14 +450,15 @@ export class SelectionService { }; } - async copy(tableId: string, viewId: string, query: ICopyRo) { - const { ranges, type } = query; + async copy(tableId: string, viewId: string, query: ICopyRo & { queryUserId?: string }) { + const { ranges, type, queryUserId } = query; const rangesArray = JSON.parse(ranges) as [number, number][]; const { fields, records } = await this.getSelectionCtxByRange( tableId, viewId, rangesArray, - type + type, + queryUserId ); const fieldInstances = fields.map(createFieldInstanceByVo); const rectangleData = records.map((record) => @@ -495,10 +521,14 @@ export class SelectionService { return [range[0], range[1]]; } - async paste(tableId: string, viewId: string, pasteRo: PasteRo) { - const { range, type, content, header = [] } = pasteRo; + async paste(tableId: string, viewId: string, pasteRo: PasteRo & { queryUserId?: string }) { + const { range, type, content, header = [], queryUserId } = pasteRo; - const rowCountInView = await this.recordService.getRowCount(tableId, viewId); + const { rowCount: rowCountInView } = await this.aggregationService.performRowCount({ + tableId, + withView: { viewId }, + withUserId: queryUserId, + }); const fields = await this.fieldService.getFieldInstances(tableId, { viewId, filterHidden: true, @@ -565,9 +595,15 @@ export class SelectionService { return updateRange; } - async clear(tableId: string, viewId: string, clearRo: ClearRo) { - const { ranges, type } = clearRo; - const { fields, records } = await this.getSelectionCtxByRange(tableId, viewId, ranges, type); + async clear(tableId: string, viewId: string, clearRo: ClearRo & { queryUserId?: string }) { + const { ranges, type, queryUserId } = clearRo; + const { fields, records } = await this.getSelectionCtxByRange( + tableId, + viewId, + ranges, + type, + queryUserId + ); const fieldInstances = fields.map(createFieldInstanceByVo); const updateRecordsRo = await this.fillCells({ tableId, diff --git a/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts b/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts index adbc5b9d8..68e788691 100644 --- a/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts +++ b/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts @@ -1,5 +1,5 @@ /* eslint-disable sonarjs/no-duplicate-string */ -import { Body, Controller, Delete, Get, Param, Post, Query, UseGuards } from '@nestjs/common'; +import { Body, Controller, Delete, Get, Param, Post, Query, Req, UseGuards } from '@nestjs/common'; import type { ITableFullVo, ITableListVo, ITableVo } from '@teable-group/core'; import { getTableQuerySchema, @@ -7,12 +7,14 @@ import { IGetTableQuery, tableRoSchema, } from '@teable-group/core'; +import type { User as UserModel } from '@teable-group/db-main-prisma'; import { IGetGraphRo, ISqlQuerySchema, getGraphRoSchema, sqlQuerySchema, } from '@teable-group/openapi'; +import { Request } from 'express'; import { ZodValidationPipe } from '../../../zod.validation.pipe'; import { Permissions } from '../../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../../auth/guard/permission.guard'; @@ -37,11 +39,13 @@ export class TableController { @Permissions('table|read') @Get(':tableId') async getTable( + @Req() req: Request, @Param('baseId') baseId: string, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(getTableQuerySchema)) query: IGetTableQuery ): Promise { - return await this.tableOpenApiService.getTable(baseId, tableId, query); + const { id: queryUserId } = req.user as UserModel; + return await this.tableOpenApiService.getTable(baseId, tableId, { ...query, queryUserId }); } @Permissions('table|read') @@ -83,9 +87,11 @@ export class TableController { @Permissions('table|read') @Post(':tableId/sqlQuery') async sqlQuery( + @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(sqlQuerySchema)) query: ISqlQuerySchema ) { - return await this.tableOpenApiService.sqlQuery(tableId, query.viewId, query.sql); + const { id: queryUserId } = req.user as UserModel; + return await this.tableOpenApiService.sqlQuery(tableId, query.viewId, query.sql, queryUserId); } } diff --git a/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts b/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts index 5c6f3383f..366025141 100644 --- a/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts +++ b/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts @@ -116,10 +116,20 @@ export class TableOpenApiService { return await this.tableService.createTable(baseId, tableRo); } - async getTable(baseId: string, tableId: string, query: IGetTableQuery): Promise { - const { viewId, fieldKeyType, includeContent } = query; + async getTable( + baseId: string, + tableId: string, + query: IGetTableQuery & { queryUserId?: string } + ): Promise { + const { viewId, fieldKeyType, includeContent, queryUserId } = query; if (includeContent) { - return await this.tableService.getFullTable(baseId, tableId, viewId, fieldKeyType); + return await this.tableService.getFullTable( + baseId, + tableId, + viewId, + queryUserId, + fieldKeyType + ); } return await this.tableService.getTableMeta(baseId, tableId); } @@ -180,10 +190,11 @@ export class TableOpenApiService { ); } - async sqlQuery(tableId: string, viewId: string, sql: string) { + async sqlQuery(tableId: string, viewId: string, sql: string, queryUserId?: string) { this.logger.log('sqlQuery:sql: ' + sql); const { queryBuilder } = await this.recordService.buildFilterSortQuery(tableId, { viewId, + queryUserId, }); const baseQuery = queryBuilder.toString(); diff --git a/apps/nestjs-backend/src/features/table/table.service.ts b/apps/nestjs-backend/src/features/table/table.service.ts index 6fc690b04..596b71f66 100644 --- a/apps/nestjs-backend/src/features/table/table.service.ts +++ b/apps/nestjs-backend/src/features/table/table.service.ts @@ -1,4 +1,4 @@ -import { BadRequestException, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common'; +import { BadRequestException, Injectable, Logger, NotFoundException } from '@nestjs/common'; import type { ICreateTableRo, IOtOperation, @@ -10,11 +10,11 @@ import type { import { FieldKeyType, generateTableId, + getRandomString, getUniqName, IdPrefix, nullsToUndefined, tablePropertyKeySchema, - getRandomString, } from '@teable-group/core'; import type { Prisma } from '@teable-group/db-main-prisma'; import { PrismaService } from '@teable-group/db-main-prisma'; @@ -22,6 +22,7 @@ import { Knex } from 'knex'; import { InjectModel } from 'nest-knexjs'; import { ClsService } from 'nestjs-cls'; import { fromZodError } from 'zod-validation-error'; +import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; import type { IAdapterService } from '../../share-db/interface'; import { RawOpType } from '../../share-db/interface'; @@ -46,7 +47,7 @@ export class TableService implements IAdapterService { private readonly fieldService: FieldService, private readonly recordService: RecordService, private readonly attachmentService: AttachmentsTableService, - @Inject('DbProvider') private dbProvider: IDbProvider, + @InjectDbProvider() private readonly dbProvider: IDbProvider, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex ) {} @@ -214,6 +215,7 @@ export class TableService implements IAdapterService { baseId: string, tableId: string, viewId?: string, + queryUserId?: string, fieldKeyType: FieldKeyType = FieldKeyType.Name ): Promise { const tableMeta = await this.getTableMeta(baseId, tableId); @@ -224,6 +226,7 @@ export class TableService implements IAdapterService { skip: 0, take: 50, fieldKeyType, + queryUserId, }); return { diff --git a/apps/nestjs-backend/src/share-db/share-db.adapter.ts b/apps/nestjs-backend/src/share-db/share-db.adapter.ts index cbdfad0da..096a6d5da 100644 --- a/apps/nestjs-backend/src/share-db/share-db.adapter.ts +++ b/apps/nestjs-backend/src/share-db/share-db.adapter.ts @@ -19,6 +19,7 @@ import { FieldService } from '../features/field/field.service'; import { RecordService } from '../features/record/record.service'; import { TableService } from '../features/table/table.service'; import { ViewService } from '../features/view/view.service'; +import type { IClsStore } from '../types/cls'; import type { IAdapterService } from './interface'; export interface ICollectionSnapshot { @@ -34,7 +35,7 @@ export class ShareDbAdapter extends ShareDb.DB { closed: boolean; constructor( - private readonly clsService: ClsService, + private readonly cls: ClsService, private readonly tableService: TableService, private readonly recordService: RecordService, private readonly fieldService: FieldService, @@ -69,30 +70,37 @@ export class ShareDbAdapter extends ShareDb.DB { callback: (err: any, snapshots: Snapshot[], extra?: any) => void ) => { // console.log(`query: ${collection} ${JSON.stringify(query)}`); - this.queryPoll(collection, query, options, (error, results, extra) => { - // console.log('query pull result: ', ids); - if (error) { - return callback(error, []); - } - if (!results.length) { - return callback(undefined, []); - } - - this.getSnapshotBulk( - collection, - results as string[], - projection, - undefined, - (error, snapshots) => { - callback( - error, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - results.map((id) => snapshots![id]), - extra - ); + const userId = this.cls.get('user.id'); + + this.queryPoll( + collection, + { ...(query ?? {}), queryUserId: userId }, + options, + (error, results, extra) => { + // console.log('query pull result: ', ids); + if (error) { + return callback(error, []); } - ); - }); + if (!results.length) { + return callback(undefined, []); + } + + this.getSnapshotBulk( + collection, + results as string[], + projection, + undefined, + (error, snapshots) => { + callback( + error, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + results.map((id) => snapshots![id]), + extra + ); + } + ); + } + ); }; async queryPoll( @@ -103,11 +111,12 @@ export class ShareDbAdapter extends ShareDb.DB { callback: (error: ShareDb.Error | null, ids: string[], extra?: any) => void ) { try { + const userId = this.cls.get('user.id'); const [docType, collectionId] = collection.split('_'); const queryResult = await this.getService(docType as IdPrefix).getDocIdsByQuery( collectionId, - query + { ...(query ?? {}), queryUserId: userId } ); // console.log('queryPollResult:', collection, ids); callback(null, queryResult.ids, queryResult.extra); @@ -230,7 +239,7 @@ export class ShareDbAdapter extends ShareDb.DB { collection: collectionId, version: rawOp.v, operation: JSON.stringify(rawOp), - createdBy: this.clsService.get('user.id'), + createdBy: this.cls.get('user.id'), }, }); diff --git a/apps/nestjs-backend/src/share-db/share-db.service.ts b/apps/nestjs-backend/src/share-db/share-db.service.ts index acf6e48d0..1cb67edc8 100644 --- a/apps/nestjs-backend/src/share-db/share-db.service.ts +++ b/apps/nestjs-backend/src/share-db/share-db.service.ts @@ -1,4 +1,5 @@ import { Injectable, Logger } from '@nestjs/common'; +import { context as otelContext, trace as otelTrace } from '@opentelemetry/api'; import { IdPrefix, ViewOpBuilder } from '@teable-group/core'; import { PrismaService } from '@teable-group/db-main-prisma'; import { noop } from 'lodash'; @@ -35,6 +36,7 @@ export class ShareDbService extends ShareDBClass { authMiddleware(this, this.shareDbPermissionService); derivateMiddleware(this, this.cls, this.wsDerivateService); + // this.use('submit', this.onSubmit); this.use('commit', this.onCommit); // broadcast raw op events to client @@ -105,4 +107,20 @@ export class ShareDbService extends ShareDBClass { next(); }; + + private onSubmit = ( + _context: ShareDBClass.middleware.SubmitContext, + next: (err?: unknown) => void + ) => { + const tracer = otelTrace.getTracer('default'); + const currentSpan = tracer.startSpan('Submit Op'); + + // console.log('onSubmit start'); + + otelContext.with(otelTrace.setSpan(otelContext.active(), currentSpan), () => { + next(); + }); + + // console.log('onSubmit end'); + }; } diff --git a/apps/nestjs-backend/src/tracing.ts b/apps/nestjs-backend/src/tracing.ts index f80c7cded..647492a17 100644 --- a/apps/nestjs-backend/src/tracing.ts +++ b/apps/nestjs-backend/src/tracing.ts @@ -10,11 +10,9 @@ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions' import { PrismaInstrumentation } from '@prisma/instrumentation'; const otelSDK = new NodeSDK({ - traceExporter: new OTLPTraceExporter({ - url: 'http://localhost:4318/v1/traces', - // url: 'http://tracing-analysis-dc-sz.aliyuncs.com:8090', - // metadata, - }), + // traceExporter: new OTLPTraceExporter({ + // url: 'http://localhost:4318/v1/traces', + // }), contextManager: new AsyncLocalStorageContextManager(), instrumentations: [ new HttpInstrumentation(), diff --git a/apps/nestjs-backend/src/tracing/decorators/span.ts b/apps/nestjs-backend/src/tracing/decorators/span.ts new file mode 100644 index 000000000..8b475d953 --- /dev/null +++ b/apps/nestjs-backend/src/tracing/decorators/span.ts @@ -0,0 +1,49 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/naming-convention */ +import type { Span as ApiSpan, SpanOptions } from '@opentelemetry/api'; +import { SpanStatusCode, trace } from '@opentelemetry/api'; +import { copyDecoratorMetadata } from '../../utils/metadata'; + +const recordException = (span: ApiSpan, error: any) => { + span.recordException(error); + span.setStatus({ code: SpanStatusCode.ERROR, message: error.message }); +}; + +export function Span(name?: string, options: SpanOptions = {}): MethodDecorator { + return (target: any, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor) => { + const originalFunction = descriptor.value; + const wrappedFunction = function (this: any, ...args: any[]) { + const spanName = name || `${target.constructor.name}.${String(propertyKey)}`; + const tracer = trace.getTracer('default'); + + return tracer.startActiveSpan(spanName, options, (span) => { + if (originalFunction.constructor.name === 'AsyncFunction') { + return originalFunction + .apply(this, args) + .catch((error: any) => { + recordException(span, error); + // Throw error to propagate it further + throw error; + }) + .finally(() => { + span.end(); + }); + } + + try { + return originalFunction.apply(this, args); + } catch (error) { + recordException(span, error); + // Throw error to propagate it further + throw error; + } finally { + span.end(); + } + }); + }; + + descriptor.value = wrappedFunction; + + copyDecoratorMetadata(originalFunction, wrappedFunction); + }; +} diff --git a/apps/nestjs-backend/src/utils/metadata.ts b/apps/nestjs-backend/src/utils/metadata.ts new file mode 100644 index 000000000..0f98e0f87 --- /dev/null +++ b/apps/nestjs-backend/src/utils/metadata.ts @@ -0,0 +1,13 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +export const copyDecoratorMetadata = (originalFunction: any, newFunction: any): void => { + // Get the current metadata and set onto the wrapper + // to ensure other decorators ( ie: NestJS EventPattern / RolesGuard ) + // won't be affected by the use of this instrumentation + Reflect.getMetadataKeys(originalFunction).forEach((metadataKey) => { + Reflect.defineMetadata( + metadataKey, + Reflect.getMetadata(metadataKey, originalFunction), + newFunction + ); + }); +}; diff --git a/apps/nestjs-backend/src/utils/timing.ts b/apps/nestjs-backend/src/utils/timing.ts index 1ec923658..0d3897dab 100644 --- a/apps/nestjs-backend/src/utils/timing.ts +++ b/apps/nestjs-backend/src/utils/timing.ts @@ -1,8 +1,9 @@ /* eslint-disable @typescript-eslint/ban-types */ /* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/naming-convention */ import { Logger } from '@nestjs/common'; +import { Span } from '../tracing/decorators/span'; -// eslint-disable-next-line @typescript-eslint/naming-convention export function Timing(customLoggerKey?: string): MethodDecorator { const logger = new Logger('Timing'); return ( @@ -10,6 +11,9 @@ export function Timing(customLoggerKey?: string): MethodDecorator { propertyKey: string | symbol, descriptor: TypedPropertyDescriptor ) => { + // Enhancements to the current decorator can be reported to the link tracking system + Span()(target, propertyKey, descriptor); + const originalMethod = descriptor.value; descriptor.value = function (...args: any[]) { const start = process.hrtime.bigint(); diff --git a/apps/nextjs-app/.env.test b/apps/nextjs-app/.env.test index f211bd387..39c38bcbd 100644 --- a/apps/nextjs-app/.env.test +++ b/apps/nextjs-app/.env.test @@ -17,7 +17,7 @@ STORAGE_PREFIX=http://127.0.0.1:3000 # DATABASE_URL # @see https://www.prisma.io/docs/reference/database-reference/connection-urls#examples -PRISMA_DATABASE_URL=file:../../db/main.db +PRISMA_DATABASE_URL=postgresql://teable:teable@127.0.0.1:5432/teable?schema=public PUBLIC_DATABASE_ADDRESS=${PRISMA_DATABASE_URL} SWAGGER_ENABLED=false diff --git a/apps/nextjs-app/package.json b/apps/nextjs-app/package.json index 22b087dea..7c45b098c 100644 --- a/apps/nextjs-app/package.json +++ b/apps/nextjs-app/package.json @@ -123,7 +123,7 @@ "@teable-group/openapi": "workspace:^", "@teable-group/sdk": "workspace:^", "@teable-group/ui-lib": "workspace:^", - "allotment": "1.19.4", + "allotment": "1.19.5", "axios": "1.6.5", "class-variance-authority": "0.7.0", "classnames": "2.5.1", @@ -153,7 +153,7 @@ "react-error-boundary": "4.0.12", "react-grid-layout": "1.4.4", "react-hook-form": "7.49.2", - "react-hotkeys-hook": "4.4.1", + "react-hotkeys-hook": "4.4.3", "react-i18next": "13.3.0", "react-markdown": "9.0.1", "react-resizable": "3.0.5", diff --git a/packages/ui-lib/package.json b/packages/ui-lib/package.json index d2e2d2ea1..eb5842044 100644 --- a/packages/ui-lib/package.json +++ b/packages/ui-lib/package.json @@ -116,7 +116,7 @@ "next-themes": "0.2.1", "react-day-picker": "8.10.0", "react-hook-form": "7.49.2", - "react-resizable-panels": "1.0.5", + "react-resizable-panels": "1.0.7", "sonner": "1.3.1", "tailwind-merge": "2.2.0", "tailwindcss-animate": "1.0.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2b30dc02..c0426e1ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,6 +72,9 @@ importers: '@nestjs/axios': specifier: 3.0.1 version: 3.0.1(@nestjs/common@10.3.0)(axios@1.6.5)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/cache-manager': + specifier: 2.2.0 + version: 2.2.0(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(cache-manager@5.3.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/common': specifier: 10.3.0 version: 10.3.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -162,6 +165,9 @@ importers: bcrypt: specifier: 5.1.1 version: 5.1.1 + cache-manager: + specifier: 5.3.2 + version: 5.3.2 class-transformer: specifier: 0.5.1 version: 0.5.1 @@ -219,6 +225,9 @@ importers: mime-types: specifier: 2.1.35 version: 2.1.35 + minio: + specifier: 7.1.3 + version: 7.1.3 multer: specifier: 1.4.5-lts.1 version: 1.4.5-lts.1 @@ -239,7 +248,7 @@ importers: version: 2.2.2(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(@nestjs/swagger@7.1.17)(reflect-metadata@0.1.13) next: specifier: 13.0.2 - version: 13.0.2(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + version: 13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) node-fetch: specifier: 2.7.0 version: 2.7.0 @@ -290,8 +299,8 @@ importers: specifier: 8.3.1 version: 8.3.1 '@nestjs/cli': - specifier: 10.2.1 - version: 10.2.1(@swc/core@1.3.101) + specifier: 10.3.0 + version: 10.3.0(@swc/core@1.3.102) '@nestjs/testing': specifier: 10.3.0 version: 10.3.0(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(@nestjs/platform-express@10.3.0) @@ -325,6 +334,9 @@ importers: '@types/mime-types': specifier: 2.1.4 version: 2.1.4 + '@types/minio': + specifier: 7.1.1 + version: 7.1.1 '@types/multer': specifier: 1.4.11 version: 1.4.11 @@ -399,16 +411,16 @@ importers: version: 9.5.1(typescript@5.3.3)(webpack@5.89.0) ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.3.101)(@types/node@18.18.2)(typescript@5.3.3) + version: 10.9.2(@swc/core@1.3.102)(@types/node@18.18.2)(typescript@5.3.3) typescript: specifier: 5.3.3 version: 5.3.3 unplugin-swc: specifier: 1.4.4 - version: 1.4.4(@swc/core@1.3.101) + version: 1.4.4(@swc/core@1.3.102) vite-tsconfig-paths: specifier: 4.2.3 - version: 4.2.3(typescript@5.3.3)(vite@5.0.10) + version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: specifier: 1.1.3 version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) @@ -417,13 +429,13 @@ importers: version: 1.3.1(typescript@5.3.3)(vitest@1.1.3) webpack: specifier: 5.89.0 - version: 5.89.0(@swc/core@1.3.101) + version: 5.89.0(@swc/core@1.3.102) apps/nextjs-app: dependencies: '@antv/g6': - specifier: 4.8.23 - version: 4.8.23 + specifier: 4.8.24 + version: 4.8.24 '@asteasolutions/zod-to-openapi': specifier: 6.3.1 version: 6.3.1(zod@3.22.4) @@ -432,7 +444,7 @@ importers: version: 1.5.0 '@codemirror/autocomplete': specifier: 6.10.1 - version: 6.10.1(@codemirror/language@6.9.1)(@codemirror/state@6.3.0)(@codemirror/view@6.21.3)(@lezer/common@1.1.1) + version: 6.10.1(@codemirror/language@6.9.1)(@codemirror/state@6.3.0)(@codemirror/view@6.21.3)(@lezer/common@1.2.0) '@codemirror/commands': specifier: 6.3.0 version: 6.3.0 @@ -503,8 +515,8 @@ importers: specifier: workspace:^ version: link:../../packages/ui-lib allotment: - specifier: 1.19.4 - version: 1.19.4(react-dom@18.2.0)(react@18.2.0) + specifier: 1.19.5 + version: 1.19.5(react-dom@18.2.0)(react@18.2.0) axios: specifier: 1.6.5 version: 1.6.5 @@ -552,7 +564,7 @@ importers: version: 0.303.0(react@18.2.0) next: specifier: 13.0.2 - version: 13.0.2(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + version: 13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) next-i18next: specifier: 14.0.3 version: 14.0.3(i18next@23.5.1)(next@13.0.2)(react-i18next@13.3.0)(react@18.2.0) @@ -579,7 +591,7 @@ importers: version: 6.1.0(react@18.2.0) react-day-picker: specifier: 8.10.0 - version: 8.10.0(date-fns@2.30.0)(react@18.2.0) + version: 8.10.0(date-fns@3.1.0)(react@18.2.0) react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) @@ -592,6 +604,9 @@ importers: react-hook-form: specifier: 7.49.2 version: 7.49.2(react@18.2.0) + react-hotkeys-hook: + specifier: 4.4.3 + version: 4.4.3(react-dom@18.2.0)(react@18.2.0) react-i18next: specifier: 13.3.0 version: 13.3.0(i18next@23.5.1)(react-dom@18.2.0)(react@18.2.0) @@ -712,7 +727,7 @@ importers: version: 3.3.8 '@vitejs/plugin-react-swc': specifier: 3.5.0 - version: 3.5.0(vite@5.0.10) + version: 3.5.0(vite@5.0.11) autoprefixer: specifier: 10.4.16 version: 10.4.16(postcss@8.4.33) @@ -769,16 +784,16 @@ importers: version: 6.0.5 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.3.101)(@types/node@18.18.2)(typescript@5.3.3) + version: 10.9.2(@swc/core@1.3.102)(@types/node@18.18.2)(typescript@5.3.3) typescript: specifier: 5.3.3 version: 5.3.3 vite-plugin-svgr: specifier: 4.2.0 - version: 4.2.0(rollup@2.79.1)(typescript@5.3.3)(vite@5.0.10) + version: 4.2.0(rollup@2.79.1)(typescript@5.3.3)(vite@5.0.11) vite-tsconfig-paths: specifier: 4.2.3 - version: 4.2.3(typescript@5.3.3)(vite@5.0.10) + version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: specifier: 1.1.3 version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) @@ -815,12 +830,18 @@ importers: '@soluble/dsn-parser': specifier: 1.9.2 version: 1.9.2 + '@types/color': + specifier: 3.0.6 + version: 3.0.6 antlr4ts: specifier: 0.5.0-alpha.4 version: 0.5.0-alpha.4 class-transformer: specifier: 0.5.1 version: 0.5.1 + color: + specifier: 4.2.3 + version: 4.2.3 dayjs: specifier: 1.11.10 version: 1.11.10 @@ -884,7 +905,7 @@ importers: version: 5.3.3 vite-tsconfig-paths: specifier: 4.2.3 - version: 4.2.3(typescript@5.3.3)(vite@5.0.10) + version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: specifier: 1.1.3 version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) @@ -1161,7 +1182,7 @@ importers: version: 1.5.0 '@codemirror/autocomplete': specifier: 6.10.1 - version: 6.10.1(@codemirror/language@6.9.1)(@codemirror/state@6.3.0)(@codemirror/view@6.21.3)(@lezer/common@1.1.1) + version: 6.10.1(@codemirror/language@6.9.1)(@codemirror/state@6.3.0)(@codemirror/view@6.21.3)(@lezer/common@1.2.0) '@codemirror/commands': specifier: 6.3.0 version: 6.3.0 @@ -1251,7 +1272,7 @@ importers: version: 1.6.5 react-day-picker: specifier: 8.10.0 - version: 8.10.0(date-fns@2.30.0)(react@18.2.0) + version: 8.10.0(date-fns@3.1.0)(react@18.2.0) react-hammerjs: specifier: 1.0.1 version: 1.0.1(react@18.2.0) @@ -1312,7 +1333,7 @@ importers: version: 3.3.8 '@vitejs/plugin-react-swc': specifier: 3.5.0 - version: 3.5.0(vite@5.0.10) + version: 3.5.0(vite@5.0.11) cross-env: specifier: 7.0.3 version: 7.0.3 @@ -1348,10 +1369,10 @@ importers: version: 5.3.3 vite-plugin-svgr: specifier: 4.2.0 - version: 4.2.0(rollup@2.79.1)(typescript@5.3.3)(vite@5.0.10) + version: 4.2.0(rollup@2.79.1)(typescript@5.3.3)(vite@5.0.11) vite-tsconfig-paths: specifier: 4.2.3 - version: 4.2.3(typescript@5.3.3)(vite@5.0.10) + version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: specifier: 1.1.3 version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) @@ -1365,17 +1386,17 @@ importers: specifier: 1.0.5 version: 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-avatar': - specifier: 1.0.3 - version: 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-checkbox': specifier: 1.0.4 version: 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-dialog': + '@radix-ui/react-checkbox': specifier: 1.0.4 version: 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': + specifier: 1.0.5 + version: 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': - specifier: 2.0.5 - version: 2.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + specifier: 2.0.6 + version: 2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-hover-card': specifier: 1.0.7 version: 1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -1386,8 +1407,8 @@ importers: specifier: 2.0.2 version: 2.0.2(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': - specifier: 1.0.6 - version: 1.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + specifier: 1.0.7 + version: 1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-progress': specifier: 1.0.3 version: 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -1395,11 +1416,11 @@ importers: specifier: 1.1.3 version: 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-scroll-area': - specifier: 1.0.4 - version: 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + specifier: 1.0.5 + version: 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-select': - specifier: 1.2.2 - version: 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + specifier: 2.0.0 + version: 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-separator': specifier: 1.0.3 version: 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -1413,11 +1434,11 @@ importers: specifier: 1.0.4 version: 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-toast': - specifier: 1.1.4 - version: 1.1.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + specifier: 1.1.5 + version: 1.1.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': - specifier: 1.0.6 - version: 1.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + specifier: 1.0.7 + version: 1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@teable-group/icons': specifier: workspace:^ version: link:../icons @@ -1433,12 +1454,21 @@ importers: deepmerge: specifier: 4.3.1 version: 4.3.1 + next-themes: + specifier: 0.2.1 + version: 0.2.1(next@13.0.2)(react-dom@18.2.0)(react@18.2.0) react-day-picker: specifier: 8.10.0 - version: 8.10.0(date-fns@2.30.0)(react@18.2.0) + version: 8.10.0(date-fns@3.1.0)(react@18.2.0) react-hook-form: specifier: 7.49.2 version: 7.49.2(react@18.2.0) + react-resizable-panels: + specifier: 1.0.7 + version: 1.0.7(react-dom@18.2.0)(react@18.2.0) + sonner: + specifier: 1.3.1 + version: 1.3.1(react-dom@18.2.0)(react@18.2.0) tailwind-merge: specifier: 2.2.0 version: 2.2.0 @@ -1475,7 +1505,7 @@ importers: version: 7.6.7(esbuild@0.18.20)(typescript@5.3.3) '@storybook/manager-webpack5': specifier: 6.5.16 - version: 6.5.16(@swc/core@1.3.101)(esbuild@0.18.20)(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + version: 6.5.16(@swc/core@1.3.102)(esbuild@0.18.20)(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@storybook/react': specifier: 7.6.7 version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) @@ -1537,8 +1567,8 @@ importers: specifier: 5.0.5 version: 5.0.5 shadcn-ui: - specifier: 0.2.2 - version: 0.2.2(typescript@5.3.3) + specifier: 0.6.0 + version: 0.6.0(typescript@5.3.3) sirv: specifier: 2.0.4 version: 2.0.4 @@ -1556,7 +1586,7 @@ importers: version: 5.3.3 webpack: specifier: 5.89.0 - version: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + version: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) packages: @@ -1597,15 +1627,33 @@ packages: source-map: 0.7.4 dev: true - /@angular-devkit/schematics-cli@16.2.8(chokidar@3.5.3): - resolution: {integrity: sha512-EXURJCzWTVYCipiTT4vxQQOrF63asOUDbeOy3OtiSh7EwIUvxm3BPG6hquJqngEnI/N6bA75NJ1fBhU6Hrh7eA==} - engines: {node: ^16.14.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/core@17.0.9(chokidar@3.5.3): + resolution: {integrity: sha512-r5jqwpWOgowqe9KSDqJ3iSbmsEt2XPjSvRG4DSI2T9s31bReoMtreo8b7wkRa2B3hbcDnstFbn8q27VvJDqRaQ==} + engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + chokidar: 3.5.3 + jsonc-parser: 3.2.0 + picomatch: 3.0.1 + rxjs: 7.8.1 + source-map: 0.7.4 + dev: true + + /@angular-devkit/schematics-cli@17.0.9(chokidar@3.5.3): + resolution: {integrity: sha512-tznzzB26sy8jVUlV9HhXcbFYZcIIFMAiDMOuyLko2LZFjfoqW+OPvwa1mwAQwvVVSQZVAKvdndFhzwyl/axwFQ==} + engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true dependencies: - '@angular-devkit/core': 16.2.8(chokidar@3.5.3) - '@angular-devkit/schematics': 16.2.8(chokidar@3.5.3) + '@angular-devkit/core': 17.0.9(chokidar@3.5.3) + '@angular-devkit/schematics': 17.0.9(chokidar@3.5.3) ansi-colors: 4.1.3 - inquirer: 8.2.4 + inquirer: 9.2.11 symbol-observable: 4.0.0 yargs-parser: 21.1.1 transitivePeerDependencies: @@ -1625,6 +1673,19 @@ packages: - chokidar dev: true + /@angular-devkit/schematics@17.0.9(chokidar@3.5.3): + resolution: {integrity: sha512-5ti7g45F2KjDJS0DbgnOGI1GyKxGpn4XsKTYJFJrSAWj6VpuvPy/DINRrXNuRVo09VPEkqA+IW7QwaG9icptQg==} + engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': 17.0.9(chokidar@3.5.3) + jsonc-parser: 3.2.0 + magic-string: 0.30.5 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + dev: true + /@ant-design/colors@4.0.5: resolution: {integrity: sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==} dependencies: @@ -1726,8 +1787,8 @@ packages: lodash: 4.17.21 dev: false - /@antv/g6-core@0.8.23: - resolution: {integrity: sha512-JWdnba5Bx4/hLhbIQeyvdgh68SDYZisveukuBifxLKODCNJNKTopmWf1w6tU+RxAT2k5ByXkTGWQE1IkIL8O+Q==} + /@antv/g6-core@0.8.24: + resolution: {integrity: sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==} dependencies: '@antv/algorithm': 0.1.26 '@antv/dom-util': 2.0.4 @@ -1741,16 +1802,20 @@ packages: tslib: 2.6.2 dev: false - /@antv/g6-element@0.8.23: - resolution: {integrity: sha512-KdJOiu4D7UExsYjKOJUcd7YCD/gCfxqHOlS01zkyOqsaindWVLdshBAZWXc2zgzVwHS/fadxwUI+DcllsRkH0g==} + /@antv/g6-element@0.8.24(@antv/g6@4.8.24): + resolution: {integrity: sha512-61FXkt9LY+6EOUtSam1iFTOW2AM59sPVcV1BuPj4dXiD0dluLE+R7d8B/94g1tKDw9tsjhfUQGC7hTXscJRJFw==} + peerDependencies: + '@antv/g6': 4.8.24 dependencies: '@antv/g-base': 0.5.15 - '@antv/g6-core': 0.8.23 + '@antv/g6': 4.8.24 + '@antv/g6-core': 0.8.24 '@antv/util': 2.0.17 + tslib: 2.6.2 dev: false - /@antv/g6-pc@0.8.23: - resolution: {integrity: sha512-8H5n1U8T4pyBcoaEKB8g4TRKycHtONSA+qOeFMq7XIDh1DCn0tUF1uLvwj096Zp+/bUXtAfaRvg+n1KKyCVZ0w==} + /@antv/g6-pc@0.8.24(@antv/g6@4.8.24): + resolution: {integrity: sha512-nf0y1lrp8J5DotqRryXd2S/J30COW8spVcLF9gUqywGqQAHfE00Ywkqr+PZBnsfCZXsXCi9o0+CE9NrkWs4SBQ==} dependencies: '@ant-design/colors': 4.0.5 '@antv/algorithm': 0.1.26 @@ -1760,9 +1825,9 @@ packages: '@antv/g-canvas': 0.5.14 '@antv/g-math': 0.1.9 '@antv/g-svg': 0.5.7 - '@antv/g6-core': 0.8.23 - '@antv/g6-element': 0.8.23 - '@antv/g6-plugin': 0.8.23 + '@antv/g6-core': 0.8.24 + '@antv/g6-element': 0.8.24(@antv/g6@4.8.24) + '@antv/g6-plugin': 0.8.24(@antv/g6@4.8.24) '@antv/hierarchy': 0.6.11 '@antv/layout': 0.3.25(dagre@0.8.5) '@antv/matrix-util': 3.1.0-beta.3 @@ -1773,17 +1838,23 @@ packages: dagre: 0.8.5 insert-css: 2.0.0 ml-matrix: 6.11.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@antv/g6' dev: false - /@antv/g6-plugin@0.8.23: - resolution: {integrity: sha512-DwhSuUc0a0foIM4nrhXR/+ooZafkVve0IEErldhsygKWLDSz/c9HRLON66OEdzQX7Ed1uE0SMcBUsIDe+wPQrw==} + /@antv/g6-plugin@0.8.24(@antv/g6@4.8.24): + resolution: {integrity: sha512-ZIOnwLTC7SM2bFiJZ3vYFWnkyOCWKqnU96i/fBh1qAoY5slDS3hatenZWEXUtOcqaKw1h+5A5f72MRXqBBVn0g==} + peerDependencies: + '@antv/g6': 4.8.24 dependencies: '@antv/dom-util': 2.0.4 '@antv/g-base': 0.5.15 '@antv/g-canvas': 0.5.14 '@antv/g-svg': 0.5.7 - '@antv/g6-core': 0.8.23 - '@antv/g6-element': 0.8.23 + '@antv/g6': 4.8.24 + '@antv/g6-core': 0.8.24 + '@antv/g6-element': 0.8.24(@antv/g6@4.8.24) '@antv/matrix-util': 3.1.0-beta.3 '@antv/path-util': 2.0.15 '@antv/scale': 0.3.18 @@ -1791,10 +1862,10 @@ packages: insert-css: 2.0.0 dev: false - /@antv/g6@4.8.23: - resolution: {integrity: sha512-tsnJzlZCiOKvwAULGom6ppARutRmoAgV1wZzkOmDRm8ZdokUkpEYfb3faV6802VMs82DLP0zZ0KavapoK1q8hQ==} + /@antv/g6@4.8.24: + resolution: {integrity: sha512-bgj7sZ+z45JmOngIpYpwmSIg7SboMLZBoAlX0+RoAETZB3/xvZO0MXT3lCSyAhIgm5Sb68pekKi7OStuo04NyQ==} dependencies: - '@antv/g6-pc': 0.8.23 + '@antv/g6-pc': 0.8.24(@antv/g6@4.8.24) dev: false /@antv/graphlib@1.2.0: @@ -1856,7 +1927,7 @@ packages: /@antv/util@2.0.17: resolution: {integrity: sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==} dependencies: - csstype: 3.1.2 + csstype: 3.1.3 tslib: 2.6.2 dev: false @@ -1889,20 +1960,20 @@ packages: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - /@babel/core@7.23.5: - resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) - '@babel/helpers': 7.23.5 - '@babel/parser': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.7 + '@babel/parser': 7.23.6 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1911,11 +1982,11 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.23.5: - resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -1924,18 +1995,18 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/compat-data': 7.23.5 @@ -1944,46 +2015,46 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==} + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.5): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.1.5(@babel/core@7.23.5): + /@babel/helper-define-polyfill-provider@0.1.5(@babel/core@7.23.7): resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/traverse': 7.23.5 + '@babel/traverse': 7.23.7 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -1992,13 +2063,13 @@ packages: - supports-color dev: true - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.5): - resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7): + resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -2016,34 +2087,34 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -2054,7 +2125,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -2062,25 +2133,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.5): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.5): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -2090,20 +2161,20 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 /@babel/helper-string-parser@7.23.4: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} @@ -2123,16 +2194,16 @@ packages: dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true - /@babel/helpers@7.23.5: - resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color @@ -2144,107 +2215,105 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.23.5: - resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.5): - resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.23.5): + /@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.23.7): resolution: {integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.5): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-decorators@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-6IsY8jOeWibsengGlWIezp7cuZEFzNlAghFpzh9wiZwhQ42/hRcPnY/QV9HJoKTlujupinSlnQPiEy/u2C1ZfQ==} + /@babel/plugin-proposal-decorators@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.23.5): + /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.5): + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.5): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.7): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. @@ -2252,1041 +2321,1042 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.5): + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.7): resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.5): + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.23.5): + /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.23.7): resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.5): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} + /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.5): + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.5): - resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.5): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.5): + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) - '@babel/types': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/types': 7.23.6 dev: true - /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==} + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==} + /@babel/preset-env@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.5) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.5) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.5) - babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.5) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.5) - core-js-compat: 3.33.3 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) + core-js-compat: 3.35.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-flow@7.23.3(@babel/core@7.23.5): + /@babel/preset-flow@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.5): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 esutils: 2.0.3 dev: true - /@babel/preset-react@7.23.3(@babel/core@7.23.5): + /@babel/preset-react@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.5) - '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/preset-typescript@7.23.3(@babel/core@7.23.5): + /@babel/preset-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.5) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) dev: true - /@babel/register@7.22.15(@babel/core@7.23.5): - resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} + /@babel/register@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -3298,39 +3368,39 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime@7.23.5: - resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} + /@babel/runtime@7.23.7: + resolution: {integrity: sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 - /@babel/traverse@7.23.5: - resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 + '@babel/generator': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.23.5: - resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -3349,7 +3419,7 @@ packages: /@changesets/apply-release-plan@7.0.0: resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/config': 3.0.0 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 @@ -3367,7 +3437,7 @@ packages: /@changesets/assemble-release-plan@6.0.0: resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.0.0 '@changesets/types': 6.0.0 @@ -3395,7 +3465,7 @@ packages: resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/apply-release-plan': 7.0.0 '@changesets/assemble-release-plan': 6.0.0 '@changesets/changelog-git': 0.2.0 @@ -3469,7 +3539,7 @@ packages: /@changesets/get-release-plan@4.0.0: resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/assemble-release-plan': 6.0.0 '@changesets/config': 3.0.0 '@changesets/pre': 2.0.0 @@ -3485,7 +3555,7 @@ packages: /@changesets/git@3.0.0: resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -3510,7 +3580,7 @@ packages: /@changesets/pre@2.0.0: resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -3520,7 +3590,7 @@ packages: /@changesets/read@0.6.0: resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 @@ -3541,14 +3611,14 @@ packages: /@changesets/write@0.3.0: resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 dev: true - /@codemirror/autocomplete@6.10.1(@codemirror/language@6.9.1)(@codemirror/state@6.3.0)(@codemirror/view@6.21.3)(@lezer/common@1.1.1): + /@codemirror/autocomplete@6.10.1(@codemirror/language@6.9.1)(@codemirror/state@6.3.0)(@codemirror/view@6.21.3)(@lezer/common@1.2.0): resolution: {integrity: sha512-wKfeYuf4Dsz0r/jvhIoN9k9KrFAhK8x+YZ0E9HfbgJ0ZJ+AmoNbmjSDv6HQ/tBSjgb3H00wn1XrdmhRkOQxsew==} peerDependencies: '@codemirror/language': ^6.0.0 @@ -3559,7 +3629,7 @@ packages: '@codemirror/language': 6.9.1 '@codemirror/state': 6.3.0 '@codemirror/view': 6.21.3 - '@lezer/common': 1.1.1 + '@lezer/common': 1.2.0 dev: false /@codemirror/commands@6.3.0: @@ -3568,7 +3638,7 @@ packages: '@codemirror/language': 6.9.1 '@codemirror/state': 6.3.0 '@codemirror/view': 6.21.3 - '@lezer/common': 1.1.1 + '@lezer/common': 1.2.0 dev: false /@codemirror/language@6.9.1: @@ -3576,7 +3646,7 @@ packages: dependencies: '@codemirror/state': 6.3.0 '@codemirror/view': 6.21.3 - '@lezer/common': 1.1.1 + '@lezer/common': 1.2.0 '@lezer/highlight': 1.2.0 '@lezer/lr': 1.3.14 style-mod: 4.1.0 @@ -3776,122 +3846,122 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.9 - /@csstools/cascade-layer-name-parser@1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): - resolution: {integrity: sha512-v/5ODKNBMfBl0us/WQjlfsvSlYxfZLhNMVIsuCPib2ulTwGKYbKJbwqw671+qH9Y4wvWVnu7LBChvml/wBKjFg==} + /@csstools/cascade-layer-name-parser@1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-9J4aMRJ7A2WRjaRLvsMeWrL69FmEuijtiW1XlK/sG+V0UJiHVYUyvj9mY4WAXfU/hGIiGOgL8e0jJcRyaZTjDQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.3.2 - '@csstools/css-tokenizer': ^2.2.1 + '@csstools/css-parser-algorithms': ^2.5.0 + '@csstools/css-tokenizer': ^2.2.3 dependencies: - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 dev: true - /@csstools/color-helpers@3.0.2: - resolution: {integrity: sha512-NMVs/l7Y9eIKL5XjbCHEgGcG8LOUT2qVcRjX6EzkCdlvftHVKr2tHIPzHavfrULRZ5Q2gxrJ9f44dAlj6fX97Q==} + /@csstools/color-helpers@4.0.0: + resolution: {integrity: sha512-wjyXB22/h2OvxAr3jldPB7R7kjTUEzopvjitS8jWtyd8fN6xJ8vy1HnHu0ZNfEkqpBJgQ76Q+sBDshWcMvTa/w==} engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/css-calc@1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): - resolution: {integrity: sha512-ZV1TSmToiNcQL1P3hfzlzZzA02mmVkVmXGaUDUqpYUG84PmLhVSZpKX+KfxAuOcK7de04UXSQPBrAvaya6iiGg==} + /@csstools/css-calc@1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-YHPAuFg5iA4qZGzMzvrQwzkvJpesXXyIUyaONflQrjtHB+BcFFbgltJkIkb31dMGO4SE9iZFA4HYpdk7+hnYew==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.3.2 - '@csstools/css-tokenizer': ^2.2.1 + '@csstools/css-parser-algorithms': ^2.5.0 + '@csstools/css-tokenizer': ^2.2.3 dependencies: - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 dev: true - /@csstools/css-color-parser@1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): - resolution: {integrity: sha512-SlGd8E6ron24JYQPQAIzu5tvmWi1H4sDKTdA7UDnwF45oJv7AVESbOlOO1YjfBhrQFuvLWUgKiOY9DwGoAxwTA==} + /@csstools/css-color-parser@1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-x+SajGB2paGrTjPOUorGi8iCztF008YMKXTn+XzGVDBEIVJ/W1121pPerpneJYGOe1m6zWLPLnzOPaznmQxKFw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.3.2 - '@csstools/css-tokenizer': ^2.2.1 + '@csstools/css-parser-algorithms': ^2.5.0 + '@csstools/css-tokenizer': ^2.2.3 dependencies: - '@csstools/color-helpers': 3.0.2 - '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/color-helpers': 4.0.0 + '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 dev: true - /@csstools/css-parser-algorithms@2.3.2(@csstools/css-tokenizer@2.2.1): - resolution: {integrity: sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==} + /@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.2.1 + '@csstools/css-tokenizer': ^2.2.3 dependencies: - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-tokenizer': 2.2.3 dev: true - /@csstools/css-tokenizer@2.2.1: - resolution: {integrity: sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==} + /@csstools/css-tokenizer@2.2.3: + resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==} engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/media-query-list-parser@2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): - resolution: {integrity: sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==} + /@csstools/media-query-list-parser@2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.3.2 - '@csstools/css-tokenizer': ^2.2.1 + '@csstools/css-parser-algorithms': ^2.5.0 + '@csstools/css-tokenizer': ^2.2.3 dependencies: - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 dev: true - /@csstools/postcss-cascade-layers@4.0.1(postcss@8.4.33): - resolution: {integrity: sha512-UYFuFL9GgVnftg9v7tBvVEBRLaBeAD66euD+yYy5fYCUld9ZIWTJNCE30hm6STMEdt6FL5xzeVw1lAZ1tpvUEg==} + /@csstools/postcss-cascade-layers@4.0.2(postcss@8.4.33): + resolution: {integrity: sha512-PqM+jvg5T2tB4FHX+akrMGNWAygLupD4FNUjcv4PSvtVuWZ6ISxuo37m4jFGU7Jg3rCfloGzKd0+xfr5Ec3vZQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) + '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /@csstools/postcss-color-function@3.0.7(postcss@8.4.33): - resolution: {integrity: sha512-/PIB20G1TPCXmQlaJLWIYzTZRZpj6csT4ijgnshIj/kcmniIRroAfDa0xSWnfuO1eNo0NptIaPU7jzUukWn55Q==} + /@csstools/postcss-color-function@3.0.9(postcss@8.4.33): + resolution: {integrity: sha512-6Hbkw/4k73UH121l4LG+LNLKSvrfHqk3GHHH0A6/iFlD0xGmsWAr80Jd0VqXjfYbUTOGmJTOMMoxv3jvNxt1uw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 dev: true - /@csstools/postcss-color-mix-function@2.0.7(postcss@8.4.33): - resolution: {integrity: sha512-57/g8aGo5eKFjEeJMiRKh8Qq43K2rCyk5ZZTvJ34TNl4zUtYU5DvLkIkOnhCtL8/a4z9oMA42aOnFPddRrScUQ==} + /@csstools/postcss-color-mix-function@2.0.9(postcss@8.4.33): + resolution: {integrity: sha512-fs1SOWJ/44DQSsDeJP+rxAkP2MYkCg6K4ZB8qJwFku2EjurgCAPiPZJvC6w94T1hBBinJwuMfT9qvvvniXyVgw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 dev: true - /@csstools/postcss-exponential-functions@1.0.1(postcss@8.4.33): - resolution: {integrity: sha512-ZLK2iSK4DUxeypGce2PnQSdYugUqDTwxnhNiq1o6OyKMNYgYs4eKbvEhFG8JKr1sJWbeqBi5jRr0017l2EWVvg==} + /@csstools/postcss-exponential-functions@1.0.3(postcss@8.4.33): + resolution: {integrity: sha512-IfGtEg3eC4b8Nd/kPgO3SxgKb33YwhHVsL0eJ3UYihx6fzzAiZwNbWmVW9MZTQjZ5GacgKxa4iAHikGvpwuIjw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 dev: true - /@csstools/postcss-font-format-keywords@3.0.0(postcss@8.4.33): - resolution: {integrity: sha512-ntkGj+1uDa/u6lpjPxnkPcjJn7ChO/Kcy08YxctOZI7vwtrdYvFhmE476dq8bj1yna306+jQ9gzXIG/SWfOaRg==} + /@csstools/postcss-font-format-keywords@3.0.1(postcss@8.4.33): + resolution: {integrity: sha512-D1lcG2sfotTq6yBEOMV3myFxJLT10F3DLYZJMbiny5YToqzHWodZen8WId3UTimm0mEHitXqAUNL5jdd6RzVdA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -3900,56 +3970,56 @@ packages: postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-gamut-mapping@1.0.0(postcss@8.4.33): - resolution: {integrity: sha512-6UQyK8l9YaG5Ao5rBDcCnKHrLsHiQ1E0zeFQuqDJqEtinVzAPb/MwSw3TenZXL1Rnd7th3tb+4CBFHBXdW5tbQ==} + /@csstools/postcss-gamut-mapping@1.0.2(postcss@8.4.33): + resolution: {integrity: sha512-zf9KHGM2PTuJEm4ZYg4DTmzCir38EbZBzlMPMbA4jbhLDqXHkqwnQ+Z5+UNrU8y6seVu5B4vzZmZarTFQwe+Ig==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 dev: true - /@csstools/postcss-gradients-interpolation-method@4.0.7(postcss@8.4.33): - resolution: {integrity: sha512-GT1CzE/Tyr/ei4j5BwKESkHAgg+Gzys/0mAY7W+UiR+XrcYk5hDbOrE/YJIx1rflfO/7La1bDoZtA0YnLl4qNA==} + /@csstools/postcss-gradients-interpolation-method@4.0.9(postcss@8.4.33): + resolution: {integrity: sha512-PSqR6QH7h3ggOl8TsoH73kbwYTKVQjAJauGg6nDKwaGfi5IL5StV//ehrv1C7HuPsHixMTc9YoAuuv1ocT20EQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 dev: true - /@csstools/postcss-hwb-function@3.0.6(postcss@8.4.33): - resolution: {integrity: sha512-uQgWt2Ho2yy2S6qthWY7mD5v57NKxi6dD1NB8nAybU5bJSsm+hLXRGm3/zbOH4xNrqO3Cl60DFSNlSrUME3Xjg==} + /@csstools/postcss-hwb-function@3.0.8(postcss@8.4.33): + resolution: {integrity: sha512-CRQEG372Hivmt17rm/Ho22hBQI9K/a6grzGQ21Zwc7dyspmyG0ibmPIW8hn15vJmXqWGeNq7S+L2b8/OrU7O5A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 dev: true - /@csstools/postcss-ic-unit@3.0.2(postcss@8.4.33): - resolution: {integrity: sha512-n28Er7W9qc48zNjJnvTKuVHY26/+6YlA9WzJRksIHiAWOMxSH5IksXkw7FpkIOd+jLi59BMrX/BWrZMgjkLBHg==} + /@csstools/postcss-ic-unit@3.0.3(postcss@8.4.33): + resolution: {integrity: sha512-MpcmIL0/uMm/cFWh5V/9nbKKJ7jRr2qTYW5Q6zoE6HZ6uzOBJr2KRERv5/x8xzEBQ1MthDT7iP1EBp9luSQy7g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-initial@1.0.0(postcss@8.4.33): - resolution: {integrity: sha512-1l7iHHjIl5qmVeGItugr4ZOlCREDP71mNKqoEyxlosIoiu3Os1nPWMHpuCvDLCLiWI/ONTOg3nzJh7gwHOrqUA==} + /@csstools/postcss-initial@1.0.1(postcss@8.4.33): + resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -3957,19 +4027,19 @@ packages: postcss: 8.4.33 dev: true - /@csstools/postcss-is-pseudo-class@4.0.3(postcss@8.4.33): - resolution: {integrity: sha512-/dt5M9Ty/x3Yiq0Nm/5PJJzwkVFchJgdjKVnryBPtoMCb9ohb/nDIJOwr/Wr3hK3FDs1EA1GE6PyRYsUmQPS8Q==} + /@csstools/postcss-is-pseudo-class@4.0.4(postcss@8.4.33): + resolution: {integrity: sha512-vTVO/uZixpTVAOQt3qZRUFJ/K1L03OfNkeJ8sFNDVNdVy/zW0h1L5WT7HIPMDUkvSrxQkFaCCybTZkUP7UESlQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) + '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /@csstools/postcss-logical-float-and-clear@2.0.0(postcss@8.4.33): - resolution: {integrity: sha512-Wki4vxsF6icRvRz8eF9bPpAvwaAt0RHwhVOyzfoFg52XiIMjb6jcbHkGxwpJXP4DVrnFEwpwmrz5aTRqOW82kg==} + /@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.33): + resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -3977,8 +4047,8 @@ packages: postcss: 8.4.33 dev: true - /@csstools/postcss-logical-overflow@1.0.0(postcss@8.4.33): - resolution: {integrity: sha512-cIrZ8f7bGGvr+W53nEuMspcwaeaI2YTmz6LZ4yiAO5z14/PQgOOv+Pn+qjvPOPoadeY2BmpaoTzZKvdAQuM17w==} + /@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.33): + resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -3986,8 +4056,8 @@ packages: postcss: 8.4.33 dev: true - /@csstools/postcss-logical-overscroll-behavior@1.0.0(postcss@8.4.33): - resolution: {integrity: sha512-e89S2LWjnxf0SB2wNUAbqDyFb/Fow/tlOe1XqOLbNx4rf3LrQokM9qldVx7sarnddml3ORE5LDUmlKpPOOeJTA==} + /@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.33): + resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -3995,8 +4065,8 @@ packages: postcss: 8.4.33 dev: true - /@csstools/postcss-logical-resize@2.0.0(postcss@8.4.33): - resolution: {integrity: sha512-lCQ1aX8c5+WI4t5EoYf3alTzJNNocMqTb+u1J9CINdDhFh1fjovqK+0aHalUHsNstZmzFPNzIkU4Mb3eM9U8SA==} + /@csstools/postcss-logical-resize@2.0.1(postcss@8.4.33): + resolution: {integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -4005,43 +4075,43 @@ packages: postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-logical-viewport-units@2.0.3(postcss@8.4.33): - resolution: {integrity: sha512-xeVxqND5rlQyqLGdH7rX34sIm/JbbQKxpKQP8oD1YQqUHHCLQR9NUS57WqJKajxKN6AcNAMWJhb5LUH5RfPcyA==} + /@csstools/postcss-logical-viewport-units@2.0.5(postcss@8.4.33): + resolution: {integrity: sha512-2fjSamKN635DSW6fEoyNd2Bkpv3FVblUpgk5cpghIgPW1aDHZE2SYfZK5xQALvjMYZVjfqsD5EbXA7uDVBQVQA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 dev: true - /@csstools/postcss-media-minmax@1.1.0(postcss@8.4.33): - resolution: {integrity: sha512-t5Li/DPC5QmW/6VFLfUvsw/4dNYYseWR0tOXDeJg/9EKUodBgNawz5tuk5vYKtNvoj+Q08odMuXcpS5YJj0AFA==} + /@csstools/postcss-media-minmax@1.1.2(postcss@8.4.33): + resolution: {integrity: sha512-7qTRTJxW96u2yiEaTep1+8nto1O/rEDacewKqH+Riq5E6EsHTOmGHxkB4Se5Ic5xgDC4I05lLZxzzxnlnSypxA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) postcss: 8.4.33 dev: true - /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.3(postcss@8.4.33): - resolution: {integrity: sha512-IPL8AvnwMYW+cWtp+j8cW3MFN0RyXNT4hLOvs6Rf2N+NcbvXhSyKxZuE3W9Cv4KjaNoNoGx1d0UhT6tktq6tUw==} + /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.5(postcss@8.4.33): + resolution: {integrity: sha512-XHMPasWYPWa9XaUHXU6Iq0RLfoAI+nvGTPj51hOizNsHaAyFiq2SL4JvF1DU8lM6B70+HVzKM09Isbyrr755Bw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) postcss: 8.4.33 dev: true - /@csstools/postcss-nested-calc@3.0.0(postcss@8.4.33): - resolution: {integrity: sha512-HsB66aDWAouOwD/GcfDTS0a7wCuVWaTpXcjl5VKP0XvFxDiU+r0T8FG7xgb6ovZNZ+qzvGIwRM+CLHhDgXrYgQ==} + /@csstools/postcss-nested-calc@3.0.1(postcss@8.4.33): + resolution: {integrity: sha512-bwwababZpWRm0ByHaWBxTsDGTMhZKmtUNl3Wt0Eom8AY7ORgXx5qF9SSk1vEFrCi+HOfJT6M6W5KPgzXuQNRwQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -4050,8 +4120,8 @@ packages: postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-normalize-display-values@3.0.1(postcss@8.4.33): - resolution: {integrity: sha512-nUvRxI+ALJwkxZdPU4EDyuM380vP91sAGvI3jAOHs/sr3jfcCOzLkY6xKI1Mr526kZ3RivmMoYM/xq+XFyE/bw==} + /@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.33): + resolution: {integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -4060,21 +4130,21 @@ packages: postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-oklab-function@3.0.7(postcss@8.4.33): - resolution: {integrity: sha512-vBFTQD3CARB3u/XIGO44wWbcO7xG/4GsYqJlcPuUGRSK8mtxes6n4vvNFlIByyAZy2k4d4RY63nyvTbMpeNTaQ==} + /@csstools/postcss-oklab-function@3.0.9(postcss@8.4.33): + resolution: {integrity: sha512-l639gpcBfL3ogJe+og1M5FixQn8iGX8+29V7VtTSCUB37VzpzOC05URfde7INIdiJT65DkHzgdJ64/QeYggU8A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 dev: true - /@csstools/postcss-progressive-custom-properties@3.0.2(postcss@8.4.33): - resolution: {integrity: sha512-YEvTozk1SxnV/PGL5DllBVDuLQ+jiQhyCSQiZJ6CwBMU5JQ9hFde3i1qqzZHuclZfptjrU0JjlX4ePsOhxNzHw==} + /@csstools/postcss-progressive-custom-properties@3.0.3(postcss@8.4.33): + resolution: {integrity: sha512-WipTVh6JTMQfeIrzDV4wEPsV9NTzMK2jwXxyH6CGBktuWdivHnkioP/smp1x/0QDPQyx7NTS14RB+GV3zZZYEw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -4083,66 +4153,66 @@ packages: postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-relative-color-syntax@2.0.7(postcss@8.4.33): - resolution: {integrity: sha512-2AiFbJSVF4EyymLxme4JzSrbXykHolx8DdZECHjYKMhoulhKLltx5ccYgtrK3BmXGd3v3nJrWFCc8JM8bjuiOg==} + /@csstools/postcss-relative-color-syntax@2.0.9(postcss@8.4.33): + resolution: {integrity: sha512-2UoaRd2iIuzUGtYgteN5fJ0s+OfCiV7PvCnw8MCh3om8+SeVinfG8D5sqBOvImxFVfrp6k60XF5RFlH6oc//fg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 dev: true - /@csstools/postcss-scope-pseudo-class@3.0.0(postcss@8.4.33): - resolution: {integrity: sha512-GFNVsD97OuEcfHmcT0/DAZWAvTM/FFBDQndIOLawNc1Wq8YqpZwBdHa063Lq+Irk7azygTT+Iinyg3Lt76p7rg==} + /@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.33): + resolution: {integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /@csstools/postcss-stepped-value-functions@3.0.2(postcss@8.4.33): - resolution: {integrity: sha512-I3wX44MZVv+tDuWfrd3BTvRB/YRIM2F5v1MBtTI89sxpFn47mNpTwpPYUOGPVCgKlRDfZSlxIUYhUQmqRQZZFQ==} + /@csstools/postcss-stepped-value-functions@3.0.4(postcss@8.4.33): + resolution: {integrity: sha512-gyNQ2YaOVXPqLR737XtReRPVu7DGKBr9JBDLoiH1T+N1ggV3r4HotRCOC1l6rxVC0zOuU1KiOzUn9Z5W838/rg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 dev: true - /@csstools/postcss-text-decoration-shorthand@3.0.3(postcss@8.4.33): - resolution: {integrity: sha512-d5J9m49HhqXRcw1S6vTZuviHi/iknUKGjBpChiNK1ARg9sSa3b8m5lsWz5Izs8ISORZdv2bZRwbw5Z2R6gQ9kQ==} + /@csstools/postcss-text-decoration-shorthand@3.0.4(postcss@8.4.33): + resolution: {integrity: sha512-yUZmbnUemgQmja7SpOZeU45+P49wNEgQguRdyTktFkZsHf7Gof+ZIYfvF6Cm+LsU1PwSupy4yUeEKKjX5+k6cQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/color-helpers': 3.0.2 + '@csstools/color-helpers': 4.0.0 postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-trigonometric-functions@3.0.2(postcss@8.4.33): - resolution: {integrity: sha512-AwzNhF4QOKaLOKvMljwwFkeYXwufhRO15G+kKohHkyoNOL75xWkN+W2Y9ik9tSeAyDv+cYNlYaF+o/a79WjVjg==} + /@csstools/postcss-trigonometric-functions@3.0.4(postcss@8.4.33): + resolution: {integrity: sha512-qj4Cxth6c38iNYzfJJWAxt8jsLrZaMVmbfGDDLOlI2YJeZoC3A5Su6/Kr7oXaPFRuspUu+4EQHngOktqVHWfVg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 dev: true - /@csstools/postcss-unset-value@3.0.0(postcss@8.4.33): - resolution: {integrity: sha512-P0JD1WHh3avVyKKRKjd0dZIjCEeaBer8t1BbwGMUDtSZaLhXlLNBqZ8KkqHzYWXOJgHleXAny2/sx8LYl6qhEA==} + /@csstools/postcss-unset-value@3.0.1(postcss@8.4.33): + resolution: {integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -4150,13 +4220,13 @@ packages: postcss: 8.4.33 dev: true - /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): - resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==} + /@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.15): + resolution: {integrity: sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 dependencies: - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /@dabh/diagnostics@2.0.3: @@ -4240,8 +4310,8 @@ packages: react: 18.2.0 dev: true - /@esbuild/aix-ppc64@0.19.10: - resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -4258,8 +4328,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.19.10: - resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -4276,8 +4346,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.10: - resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -4294,8 +4364,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.10: - resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -4312,8 +4382,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.10: - resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -4330,8 +4400,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.10: - resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -4348,8 +4418,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.10: - resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -4366,8 +4436,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.10: - resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -4384,8 +4454,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.10: - resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -4402,8 +4472,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.10: - resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -4420,8 +4490,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.10: - resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -4438,8 +4508,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.10: - resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -4456,8 +4526,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.10: - resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -4474,8 +4544,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.10: - resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -4492,8 +4562,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.10: - resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -4510,8 +4580,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.10: - resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -4528,8 +4598,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.10: - resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -4546,8 +4616,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.10: - resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -4564,8 +4634,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.10: - resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -4582,8 +4652,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.10: - resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -4600,8 +4670,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.10: - resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -4618,8 +4688,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.10: - resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -4636,8 +4706,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.10: - resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -4665,7 +4735,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.23.0 + globals: 13.24.0 ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -4688,29 +4758,29 @@ packages: engines: {node: '>=14'} dev: true - /@floating-ui/core@1.5.1: - resolution: {integrity: sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==} + /@floating-ui/core@1.5.3: + resolution: {integrity: sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==} dependencies: - '@floating-ui/utils': 0.1.6 + '@floating-ui/utils': 0.2.1 - /@floating-ui/dom@1.5.3: - resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==} + /@floating-ui/dom@1.5.4: + resolution: {integrity: sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==} dependencies: - '@floating-ui/core': 1.5.1 - '@floating-ui/utils': 0.1.6 + '@floating-ui/core': 1.5.3 + '@floating-ui/utils': 0.2.1 - /@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==} + /@floating-ui/react-dom@2.0.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UsBK30Bg+s6+nsgblXtZmwHhgS2vmbuQK22qgt2pTQM6M3X6H1+cQcLXqgRY3ihVLcZJE6IvqDQozhsnIVqK/Q==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/dom': 1.5.3 + '@floating-ui/dom': 1.5.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@floating-ui/utils@0.1.6: - resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} /@fontsource-variable/inter@5.0.16: resolution: {integrity: sha512-k+BUNqksTL+AN+o+OV7ILeiE9B5M5X+/jA7LWvCwjbV9ovXTqZyKRhA/x7uYv/ml8WQ0XNLBM7cRFIx4jW0/hg==} @@ -5030,7 +5100,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 @@ -5102,22 +5172,29 @@ packages: /@juggle/resize-observer@3.4.0: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - /@lezer/common@1.1.1: - resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==} + /@lezer/common@1.2.0: + resolution: {integrity: sha512-Wmvlm4q6tRpwiy20TnB3yyLTZim38Tkc50dPY8biQRwqE+ati/wD84rm3N15hikvdT4uSg9phs9ubjvcLmkpKg==} dev: false /@lezer/highlight@1.2.0: resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} dependencies: - '@lezer/common': 1.1.1 + '@lezer/common': 1.2.0 dev: false /@lezer/lr@1.3.14: resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==} dependencies: - '@lezer/common': 1.1.1 + '@lezer/common': 1.2.0 dev: false + /@ljharb/through@2.3.11: + resolution: {integrity: sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + dev: true + /@lukeed/csprng@1.1.0: resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} engines: {node: '>=8'} @@ -5125,7 +5202,7 @@ packages: /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -5134,7 +5211,7 @@ packages: /@manypkg/get-packages@1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -5223,8 +5300,24 @@ packages: rxjs: 7.8.1 dev: false - /@nestjs/cli@10.2.1(@swc/core@1.3.101): - resolution: {integrity: sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==} + /@nestjs/cache-manager@2.2.0(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(cache-manager@5.3.2)(reflect-metadata@0.1.13)(rxjs@7.8.1): + resolution: {integrity: sha512-hAcX1f5moiK7B8KnPZVfV/up4nrZnaeN6w0o3M+UzNJNlw6bsIH6bn7jpGqzySAWPD9iYE/rg5IxTe1vSWyWZg==} + peerDependencies: + '@nestjs/common': ^9.0.0 || ^10.0.0 + '@nestjs/core': ^9.0.0 || ^10.0.0 + cache-manager: <=5 + reflect-metadata: ^0.1.12 + rxjs: ^7.0.0 + dependencies: + '@nestjs/common': 10.3.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(@nestjs/websockets@10.3.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + cache-manager: 5.3.2 + reflect-metadata: 0.1.13 + rxjs: 7.8.1 + dev: false + + /@nestjs/cli@10.3.0(@swc/core@1.3.102): + resolution: {integrity: sha512-37h+wSDItY0NE/x3a/M9yb2cXzfsD4qoE26rHgFn592XXLelDN12wdnfn7dTIaiRZT7WOCdQ+BYP9mQikR4AsA==} engines: {node: '>= 16.14'} hasBin: true peerDependencies: @@ -5236,29 +5329,28 @@ packages: '@swc/core': optional: true dependencies: - '@angular-devkit/core': 16.2.8(chokidar@3.5.3) - '@angular-devkit/schematics': 16.2.8(chokidar@3.5.3) - '@angular-devkit/schematics-cli': 16.2.8(chokidar@3.5.3) - '@nestjs/schematics': 10.0.3(chokidar@3.5.3)(typescript@5.2.2) - '@swc/core': 1.3.101 + '@angular-devkit/core': 17.0.9(chokidar@3.5.3) + '@angular-devkit/schematics': 17.0.9(chokidar@3.5.3) + '@angular-devkit/schematics-cli': 17.0.9(chokidar@3.5.3) + '@nestjs/schematics': 10.0.3(chokidar@3.5.3)(typescript@5.3.3) + '@swc/core': 1.3.102 chalk: 4.1.2 chokidar: 3.5.3 cli-table3: 0.6.3 commander: 4.1.1 - fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.2.2)(webpack@5.89.0) + fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.89.0) glob: 10.3.10 inquirer: 8.2.6 node-emoji: 1.11.0 ora: 5.4.1 - os-name: 4.0.1 rimraf: 4.4.1 shelljs: 0.8.5 source-map-support: 0.5.21 tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.1.0 - typescript: 5.2.2 - webpack: 5.89.0(@swc/core@1.3.101) + typescript: 5.3.3 + webpack: 5.89.0(@swc/core@1.3.102) webpack-node-externals: 3.0.0 transitivePeerDependencies: - esbuild @@ -5418,7 +5510,7 @@ packages: - utf-8-validate dev: false - /@nestjs/schematics@10.0.3(chokidar@3.5.3)(typescript@5.2.2): + /@nestjs/schematics@10.0.3(chokidar@3.5.3)(typescript@5.3.3): resolution: {integrity: sha512-2BRujK0GqGQ7j1Zpz+obVfskDnnOeVKt5aXoSaVngKo8Oczy8uYCY+R547TQB+Kf35epdfFER2pVnQrX3/It5A==} peerDependencies: typescript: '>=4.8.2' @@ -5428,7 +5520,7 @@ packages: comment-json: 4.2.3 jsonc-parser: 3.2.0 pluralize: 8.0.0 - typescript: 5.2.2 + typescript: 5.3.3 transitivePeerDependencies: - chokidar dev: true @@ -5710,7 +5802,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.16.0 /@npmcli/config@8.0.3: resolution: {integrity: sha512-rqRX7/UORvm2YRImY67kyfwD9rpi5+KXXb1j/cpTUKRcUqvpJ9/PMMc7Vv57JVqmrFj8siBBFEmXI3Gg7/TonQ==} @@ -6123,16 +6215,9 @@ packages: requiresBuild: true optional: true - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + /@pkgr/core@0.1.0: + resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.2 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 /@playwright/test@1.40.1: resolution: {integrity: sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==} @@ -6204,20 +6289,20 @@ packages: /@probe.gl/env@3.6.0: resolution: {integrity: sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /@probe.gl/log@3.6.0: resolution: {integrity: sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@probe.gl/env': 3.6.0 dev: false /@probe.gl/stats@3.6.0: resolution: {integrity: sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /@protobufjs/aspromise@1.1.2: @@ -6266,18 +6351,18 @@ packages: /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 /@radix-ui/primitive@1.0.0: resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /@radix-ui/primitive@1.0.1: resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==} @@ -6292,7 +6377,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6318,15 +6403,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.45 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-avatar@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9ToF7YNex3Ste45LrAeTlKtONI9yVRt/zOS158iilIkW5K/Apeyb/TUQlcEFTEFvWr8Kzdi2ZYrm1/suiXPajQ==} + /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6338,7 +6423,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6362,7 +6447,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6390,7 +6475,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -6405,7 +6490,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 dev: false @@ -6418,7 +6503,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/react': 18.2.45 react: 18.2.0 @@ -6427,7 +6512,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 dev: false @@ -6440,7 +6525,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/react': 18.2.45 react: 18.2.0 @@ -6450,7 +6535,7 @@ packages: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) @@ -6471,40 +6556,6 @@ packages: - '@types/react' dev: false - /@radix-ui/react-dialog@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 - '@types/react-dom': 18.2.18 - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.45)(react@18.2.0) - dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: @@ -6518,7 +6569,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6548,7 +6599,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/react': 18.2.45 react: 18.2.0 @@ -6558,7 +6609,7 @@ packages: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) @@ -6581,7 +6632,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -6591,6 +6642,7 @@ packages: '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + dev: true /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} @@ -6605,7 +6657,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -6617,8 +6669,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-dropdown-menu@2.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xdOrZzOTocqqkCkYo8yRPCib5OkTkqN7lqNCdxwPOdE466DOaNl4N8PkUIlsXthQvW5Wwkd+aEmWpfWlBoDPEw==} + /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6630,12 +6682,12 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-menu': 2.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 @@ -6649,7 +6701,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 dev: false @@ -6662,7 +6714,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/react': 18.2.45 react: 18.2.0 @@ -6672,7 +6724,7 @@ packages: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) @@ -6693,7 +6745,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6701,6 +6753,7 @@ packages: '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + dev: true /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} @@ -6715,7 +6768,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6738,7 +6791,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6767,7 +6820,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) react: 18.2.0 dev: false @@ -6781,7 +6834,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 react: 18.2.0 @@ -6799,7 +6852,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.45 '@types/react-dom': 18.2.18 @@ -6807,8 +6860,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-menu@2.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Gw4f9pwdH+w5w+49k0gLjN0PfRDHvxmAgG16AbyJZ7zhwZ6PBHKtWohvnSwfusfnK3L68dpBREHpVkj8wEM7ZA==} + /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6820,18 +6873,18 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -6845,8 +6898,8 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.2.45)(react@18.2.0) dev: false - /@radix-ui/react-popover@1.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-cZ4defGpkZ0qTRtlIBzJLSzL6ht7ofhhW4i1+pkemjV1IKXm0wgCRnee154qlV6r9Ttunmh2TNZhMfV2bavUyA==} + /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6858,16 +6911,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.45)(react@18.2.0) @@ -6893,8 +6946,8 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.23.7 + '@floating-ui/react-dom': 2.0.5(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6908,6 +6961,7 @@ packages: '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + dev: true /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} @@ -6922,8 +6976,8 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.23.7 + '@floating-ui/react-dom': 2.0.5(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -6945,7 +6999,7 @@ packages: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6964,12 +7018,13 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.45 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + dev: true /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} @@ -6984,7 +7039,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.45 '@types/react-dom': 18.2.18 @@ -6998,7 +7053,7 @@ packages: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) react: 18.2.0 @@ -7018,7 +7073,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 @@ -7033,7 +7088,7 @@ packages: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-slot': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7052,7 +7107,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 '@types/react-dom': 18.2.18 @@ -7072,7 +7127,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.45 @@ -7094,7 +7149,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7124,7 +7179,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7139,8 +7194,8 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-scroll-area@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OIClwBkwPG+FKvC4OMTRaa/3cfD069nkKFFL/TQzRzaO42Ce5ivKU9VMKgT7UU6UIkjcQqKBrDOIzWtPGw6e6w==} + /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7152,7 +7207,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7181,7 +7236,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -7207,6 +7262,48 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.45)(react@18.2.0) + dev: true + + /@radix-ui/react-select@2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.23.7 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.45)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.45 + '@types/react-dom': 18.2.18 + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.45)(react@18.2.0) + dev: false /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} @@ -7221,7 +7318,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.45 '@types/react-dom': 18.2.18 @@ -7233,7 +7330,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) react: 18.2.0 dev: false @@ -7247,7 +7344,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 react: 18.2.0 @@ -7265,7 +7362,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7292,7 +7389,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7307,8 +7404,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-toast@1.1.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-wf+fc8DOywrpRK3jlPlWVe+ELYGHdKDaaARJZNuUTWyWYq7+ANCFLp4rTjZ/mcGkJJQ/vZ949Zis9xxEpfq9OA==} + /@radix-ui/react-toast@1.1.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7320,13 +7417,13 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7352,7 +7449,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7379,7 +7476,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7402,7 +7499,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.45)(react@18.2.0) @@ -7416,8 +7513,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-tooltip@1.0.6(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg==} + /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7429,14 +7526,14 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.45)(react@18.2.0) @@ -7453,7 +7550,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 dev: false @@ -7466,7 +7563,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/react': 18.2.45 react: 18.2.0 @@ -7475,7 +7572,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 dev: false @@ -7489,7 +7586,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 react: 18.2.0 @@ -7499,7 +7596,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 dev: false @@ -7513,7 +7610,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 react: 18.2.0 @@ -7523,7 +7620,7 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 dev: false @@ -7536,7 +7633,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/react': 18.2.45 react: 18.2.0 @@ -7549,7 +7646,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/react': 18.2.45 react: 18.2.0 @@ -7562,7 +7659,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/rect': 1.0.1 '@types/react': 18.2.45 react: 18.2.0 @@ -7576,7 +7673,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) '@types/react': 18.2.45 react: 18.2.0 @@ -7594,7 +7691,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.45 '@types/react-dom': 18.2.18 @@ -7604,7 +7701,7 @@ packages: /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 /@rollup/plugin-alias@3.1.9(rollup@2.79.1): resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} @@ -7616,7 +7713,7 @@ packages: slash: 3.0.0 dev: true - /@rollup/plugin-babel@5.3.1(@babel/core@7.23.5)(rollup@2.79.1): + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.7)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -7627,7 +7724,7 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 @@ -7741,117 +7838,112 @@ packages: rollup: 2.79.1 dev: true - /@rollup/rollup-android-arm-eabi@4.9.1: - resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} + /@rollup/rollup-android-arm-eabi@4.9.4: + resolution: {integrity: sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.1: - resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} + /@rollup/rollup-android-arm64@4.9.4: + resolution: {integrity: sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.1: - resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} + /@rollup/rollup-darwin-arm64@4.9.4: + resolution: {integrity: sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.1: - resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} + /@rollup/rollup-darwin-x64@4.9.4: + resolution: {integrity: sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.1: - resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.4: + resolution: {integrity: sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.1: - resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} + /@rollup/rollup-linux-arm64-gnu@4.9.4: + resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.1: - resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} + /@rollup/rollup-linux-arm64-musl@4.9.4: + resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.1: - resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.4: + resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.1: - resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} + /@rollup/rollup-linux-x64-gnu@4.9.4: + resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.1: - resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} + /@rollup/rollup-linux-x64-musl@4.9.4: + resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.1: - resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} + /@rollup/rollup-win32-arm64-msvc@4.9.4: + resolution: {integrity: sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.1: - resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} + /@rollup/rollup-win32-ia32-msvc@4.9.4: + resolution: {integrity: sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.1: - resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} + /@rollup/rollup-win32-x64-msvc@4.9.4: + resolution: {integrity: sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@rushstack/eslint-patch@1.6.0: - resolution: {integrity: sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==} - dev: true - /@rushstack/eslint-patch@1.6.1: resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} - dev: false /@selderee/plugin-htmlparser2@0.11.0: resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} @@ -7936,7 +8028,7 @@ packages: '@sentry/vercel-edge': 7.76.0 '@sentry/webpack-plugin': 1.20.0 chalk: 3.0.0 - next: 13.0.2(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + next: 13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 resolve: 1.22.8 rollup: 2.78.0 @@ -8281,14 +8373,14 @@ packages: color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.3.2(react@18.2.0) + markdown-to-jsx: 7.4.0(react@18.2.0) memoizerific: 1.11.3 polished: 4.2.2 react: 18.2.0 react-colorful: 5.6.1(react-dom@18.2.0)(react@18.2.0) react-dom: 18.2.0(react@18.2.0) telejson: 7.2.0 - tocbot: 4.23.0 + tocbot: 4.25.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 transitivePeerDependencies: @@ -8306,7 +8398,7 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@storybook/channels': 7.6.7 '@storybook/client-logger': 7.6.7 '@storybook/core-common': 7.6.7 @@ -8315,10 +8407,10 @@ packages: '@storybook/node-logger': 7.6.7 '@storybook/preview': 7.6.7 '@storybook/preview-api': 7.6.7 - '@swc/core': 1.3.101 + '@swc/core': 1.3.102 '@types/node': 18.18.2 '@types/semver': 7.5.6 - babel-loader: 9.1.3(@babel/core@7.23.5)(webpack@5.89.0) + babel-loader: 9.1.3(@babel/core@7.23.7)(webpack@5.89.0) browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 constants-browserify: 1.0.0 @@ -8327,24 +8419,25 @@ packages: express: 4.18.2 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.3.3)(webpack@5.89.0) fs-extra: 11.2.0 - html-webpack-plugin: 5.5.3(webpack@5.89.0) + html-webpack-plugin: 5.6.0(webpack@5.89.0) magic-string: 0.30.5 path-browserify: 1.0.1 process: 0.11.10 semver: 7.5.4 style-loader: 3.3.3(webpack@5.89.0) - swc-loader: 0.2.3(@swc/core@1.3.101)(webpack@5.89.0) - terser-webpack-plugin: 5.3.9(@swc/core@1.3.101)(esbuild@0.18.20)(webpack@5.89.0) + swc-loader: 0.2.3(@swc/core@1.3.102)(webpack@5.89.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.102)(esbuild@0.18.20)(webpack@5.89.0) ts-dedent: 2.2.0 typescript: 5.3.3 url: 0.11.3 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) webpack-dev-middleware: 6.1.1(webpack@5.89.0) - webpack-hot-middleware: 2.25.4 + webpack-hot-middleware: 2.26.0 webpack-virtual-modules: 0.5.0 transitivePeerDependencies: + - '@rspack/core' - '@swc/helpers' - encoding - esbuild @@ -8512,7 +8605,7 @@ packages: typescript: 5.3.3 unfetch: 4.2.0 util-deprecate: 1.0.2 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /@storybook/core-client@7.6.7: @@ -8532,35 +8625,35 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-decorators': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.5) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.5) - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) - '@babel/preset-react': 7.23.3(@babel/core@7.23.5) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.5) - '@babel/register': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-decorators': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.7) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.7) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-react': 7.23.3(@babel/core@7.23.7) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/register': 7.23.7(@babel/core@7.23.7) '@storybook/node-logger': 6.5.16 '@storybook/semver': 7.3.2 - '@types/node': 16.18.67 + '@types/node': 16.18.70 '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@4.47.0) + babel-loader: 8.3.0(@babel/core@7.23.7)(webpack@4.47.0) babel-plugin-macros: 3.1.0 - babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.23.5) + babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.23.7) chalk: 4.1.2 core-js: 3.35.0 express: 4.18.2 @@ -8653,7 +8746,7 @@ packages: resolution: {integrity: sha512-YL7e6H4iVcsDI0UpgpdQX2IiGDrlbgaQMHQgDLWXmZyKxBcy0ONROAX5zoT1ml44EHkL60TMaG4f7SinviJCog==} dependencies: '@storybook/csf-tools': 7.6.7 - unplugin: 1.5.1 + unplugin: 1.6.0 transitivePeerDependencies: - supports-color dev: true @@ -8661,10 +8754,10 @@ packages: /@storybook/csf-tools@7.6.7: resolution: {integrity: sha512-hyRbUGa2Uxvz3U09BjcOfMNf/5IYgRum1L6XszqK2O8tK9DGte1r6hArCIAcqiEmFMC40d0kalPzqu6WMNn7sg==} dependencies: - '@babel/generator': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 '@storybook/csf': 0.1.2 '@storybook/types': 7.6.7 fs-extra: 11.2.0 @@ -8733,7 +8826,7 @@ packages: - react-dom dev: true - /@storybook/manager-webpack5@6.5.16(@swc/core@1.3.101)(esbuild@0.18.20)(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + /@storybook/manager-webpack5@6.5.16(@swc/core@1.3.102)(esbuild@0.18.20)(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): resolution: {integrity: sha512-OtxXv8JCe0r/0rE5HxaFicsNsXA+fqZxzokxquFFgrYf/1Jg4d7QX6/pG5wINF+5qInJfVkRG6xhPzv1s5bk9Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -8743,17 +8836,17 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.5) - '@babel/preset-react': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/preset-react': 7.23.3(@babel/core@7.23.7) '@storybook/addons': 6.5.16(react-dom@18.2.0)(react@18.2.0) '@storybook/core-client': 6.5.16(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.89.0) '@storybook/core-common': 6.5.16(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0)(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0)(react@18.2.0) - '@types/node': 16.18.67 - babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0) + '@types/node': 16.18.70 + babel-loader: 8.3.0(@babel/core@7.23.7)(webpack@5.89.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 core-js: 3.35.0 @@ -8761,7 +8854,7 @@ packages: express: 4.18.2 find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 5.5.3(webpack@5.89.0) + html-webpack-plugin: 5.6.0(webpack@5.89.0) node-fetch: 2.7.0 process: 0.11.10 react: 18.2.0 @@ -8771,14 +8864,15 @@ packages: resolve-from: 5.0.0 style-loader: 2.0.0(webpack@5.89.0) telejson: 6.0.8 - terser-webpack-plugin: 5.3.9(@swc/core@1.3.101)(esbuild@0.18.20)(webpack@5.89.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.102)(esbuild@0.18.20)(webpack@5.89.0) ts-dedent: 2.2.0 typescript: 5.3.3 util-deprecate: 1.0.2 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) webpack-dev-middleware: 4.3.0(webpack@5.89.0) webpack-virtual-modules: 0.4.6 transitivePeerDependencies: + - '@rspack/core' - '@swc/core' - encoding - esbuild @@ -9048,101 +9142,101 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.23.5): + /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.23.7): resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 dev: true - /@svgr/babel-preset@8.1.0(@babel/core@7.23.5): + /@svgr/babel-preset@8.1.0(@babel/core@7.23.7): resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.23.5) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.23.7) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.23.7) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.23.7) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.23.7) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.23.7) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.23.7) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.23.7) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.23.7) dev: true /@svgr/core@8.1.0(typescript@5.3.3): resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.23.5 - '@svgr/babel-preset': 8.1.0(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.23.7) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.3.3) snake-case: 3.0.4 @@ -9155,7 +9249,7 @@ packages: resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} engines: {node: '>=14'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 entities: 4.5.0 dev: true @@ -9165,8 +9259,8 @@ packages: peerDependencies: '@svgr/core': '*' dependencies: - '@babel/core': 7.23.5 - '@svgr/babel-preset': 8.1.0(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.23.7) '@svgr/core': 8.1.0(typescript@5.3.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -9194,7 +9288,7 @@ packages: '@svgr/core': 8.1.0(typescript@5.3.3) cosmiconfig: 8.3.6(typescript@5.3.3) deepmerge: 4.3.1 - svgo: 3.0.5 + svgo: 3.2.0 transitivePeerDependencies: - typescript dev: true @@ -9203,11 +9297,11 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.23.5) - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) - '@babel/preset-react': 7.23.3(@babel/core@7.23.5) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.23.7) + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-react': 7.23.3(@babel/core@7.23.7) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) '@svgr/core': 8.1.0(typescript@5.3.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.3.3) @@ -9216,88 +9310,88 @@ packages: - typescript dev: true - /@swc/core-darwin-arm64@1.3.101: - resolution: {integrity: sha512-mNFK+uHNPRXSnfTOG34zJOeMl2waM4hF4a2NY7dkMXrPqw9CoJn4MwTXJcyMiSz1/BnNjjTCHF3Yhj0jPxmkzQ==} + /@swc/core-darwin-arm64@1.3.102: + resolution: {integrity: sha512-CJDxA5Wd2cUMULj3bjx4GEoiYyyiyL8oIOu4Nhrs9X+tlg8DnkCm4nI57RJGP8Mf6BaXPIJkHX8yjcefK2RlDA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@swc/core-darwin-x64@1.3.101: - resolution: {integrity: sha512-B085j8XOx73Fg15KsHvzYWG262bRweGr3JooO1aW5ec5pYbz5Ew9VS5JKYS03w2UBSxf2maWdbPz2UFAxg0whw==} + /@swc/core-darwin-x64@1.3.102: + resolution: {integrity: sha512-X5akDkHwk6oAer49oER0qZMjNMkLH3IOZaV1m98uXIasAGyjo5WH1MKPeMLY1sY6V6TrufzwiSwD4ds571ytcg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@swc/core-linux-arm-gnueabihf@1.3.101: - resolution: {integrity: sha512-9xLKRb6zSzRGPqdz52Hy5GuB1lSjmLqa0lST6MTFads3apmx4Vgs8Y5NuGhx/h2I8QM4jXdLbpqQlifpzTlSSw==} + /@swc/core-linux-arm-gnueabihf@1.3.102: + resolution: {integrity: sha512-kJH3XtZP9YQdjq/wYVBeFuiVQl4HaC4WwRrIxAHwe2OyvrwUI43dpW3LpxSggBnxXcVCXYWf36sTnv8S75o2Gw==} engines: {node: '>=10'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-arm64-gnu@1.3.101: - resolution: {integrity: sha512-oE+r1lo7g/vs96Weh2R5l971dt+ZLuhaUX+n3BfDdPxNHfObXgKMjO7E+QS5RbGjv/AwiPCxQmbdCp/xN5ICJA==} + /@swc/core-linux-arm64-gnu@1.3.102: + resolution: {integrity: sha512-flQP2WDyCgO24WmKA1wjjTx+xfCmavUete2Kp6yrM+631IHLGnr17eu7rYJ/d4EnDBId/ytMyrnWbTVkaVrpbQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-arm64-musl@1.3.101: - resolution: {integrity: sha512-OGjYG3H4BMOTnJWJyBIovCez6KiHF30zMIu4+lGJTCrxRI2fAjGLml3PEXj8tC3FMcud7U2WUn6TdG0/te2k6g==} + /@swc/core-linux-arm64-musl@1.3.102: + resolution: {integrity: sha512-bQEQSnC44DyoIGLw1+fNXKVGoCHi7eJOHr8BdH0y1ooy9ArskMjwobBFae3GX4T1AfnrTaejyr0FvLYIb0Zkog==} engines: {node: '>=10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-x64-gnu@1.3.101: - resolution: {integrity: sha512-/kBMcoF12PRO/lwa8Z7w4YyiKDcXQEiLvM+S3G9EvkoKYGgkkz4Q6PSNhF5rwg/E3+Hq5/9D2R+6nrkF287ihg==} + /@swc/core-linux-x64-gnu@1.3.102: + resolution: {integrity: sha512-dFvnhpI478svQSxqISMt00MKTDS0e4YtIr+ioZDG/uJ/q+RpcNy3QI2KMm05Fsc8Y0d4krVtvCKWgfUMsJZXAg==} engines: {node: '>=10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-x64-musl@1.3.101: - resolution: {integrity: sha512-kDN8lm4Eew0u1p+h1l3JzoeGgZPQ05qDE0czngnjmfpsH2sOZxVj1hdiCwS5lArpy7ktaLu5JdRnx70MkUzhXw==} + /@swc/core-linux-x64-musl@1.3.102: + resolution: {integrity: sha512-+a0M3CvjeIRNA/jTCzWEDh2V+mhKGvLreHOL7J97oULZy5yg4gf7h8lQX9J8t9QLbf6fsk+0F8bVH1Ie/PbXjA==} engines: {node: '>=10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@swc/core-win32-arm64-msvc@1.3.101: - resolution: {integrity: sha512-9Wn8TTLWwJKw63K/S+jjrZb9yoJfJwCE2RV5vPCCWmlMf3U1AXj5XuWOLUX+Rp2sGKau7wZKsvywhheWm+qndQ==} + /@swc/core-win32-arm64-msvc@1.3.102: + resolution: {integrity: sha512-w76JWLjkZNOfkB25nqdWUNCbt0zJ41CnWrJPZ+LxEai3zAnb2YtgB/cCIrwxDebRuMgE9EJXRj7gDDaTEAMOOQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@swc/core-win32-ia32-msvc@1.3.101: - resolution: {integrity: sha512-onO5KvICRVlu2xmr4//V2je9O2XgS1SGKpbX206KmmjcJhXN5EYLSxW9qgg+kgV5mip+sKTHTAu7IkzkAtElYA==} + /@swc/core-win32-ia32-msvc@1.3.102: + resolution: {integrity: sha512-vlDb09HiGqKwz+2cxDS9T5/461ipUQBplvuhW+cCbzzGuPq8lll2xeyZU0N1E4Sz3MVdSPx1tJREuRvlQjrwNg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@swc/core-win32-x64-msvc@1.3.101: - resolution: {integrity: sha512-T3GeJtNQV00YmiVw/88/nxJ/H43CJvFnpvBHCVn17xbahiVUOPOduh3rc9LgAkKiNt/aV8vU3OJR+6PhfMR7UQ==} + /@swc/core-win32-x64-msvc@1.3.102: + resolution: {integrity: sha512-E/jfSD7sShllxBwwgDPeXp1UxvIqehj/ShSUqq1pjR/IDRXngcRSXKJK92mJkNFY7suH6BcCWwzrxZgkO7sWmw==} engines: {node: '>=10'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@swc/core@1.3.101: - resolution: {integrity: sha512-w5aQ9qYsd/IYmXADAnkXPGDMTqkQalIi+kfFf/MHRKTpaOL7DHjMXwPp/n8hJ0qNjRvchzmPtOqtPBiER50d8A==} + /@swc/core@1.3.102: + resolution: {integrity: sha512-OAjNLY/f6QWKSDzaM3bk31A+OYHu6cPa9P/rFIx8X5d24tHXUpRiiq6/PYI6SQRjUPlB72GjsjoEU8F+ALadHg==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -9309,16 +9403,16 @@ packages: '@swc/counter': 0.1.2 '@swc/types': 0.1.5 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.101 - '@swc/core-darwin-x64': 1.3.101 - '@swc/core-linux-arm-gnueabihf': 1.3.101 - '@swc/core-linux-arm64-gnu': 1.3.101 - '@swc/core-linux-arm64-musl': 1.3.101 - '@swc/core-linux-x64-gnu': 1.3.101 - '@swc/core-linux-x64-musl': 1.3.101 - '@swc/core-win32-arm64-msvc': 1.3.101 - '@swc/core-win32-ia32-msvc': 1.3.101 - '@swc/core-win32-x64-msvc': 1.3.101 + '@swc/core-darwin-arm64': 1.3.102 + '@swc/core-darwin-x64': 1.3.102 + '@swc/core-linux-arm-gnueabihf': 1.3.102 + '@swc/core-linux-arm64-gnu': 1.3.102 + '@swc/core-linux-arm64-musl': 1.3.102 + '@swc/core-linux-x64-gnu': 1.3.102 + '@swc/core-linux-x64-musl': 1.3.102 + '@swc/core-win32-arm64-msvc': 1.3.102 + '@swc/core-win32-ia32-msvc': 1.3.102 + '@swc/core-win32-x64-msvc': 1.3.102 /@swc/counter@0.1.2: resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} @@ -9387,7 +9481,7 @@ packages: engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -9415,7 +9509,7 @@ packages: optional: true dependencies: '@adobe/css-tools': 4.3.2 - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/jest': 29.5.11 aria-query: 5.3.0 chalk: 3.0.0 @@ -9444,7 +9538,7 @@ packages: optional: true dependencies: '@adobe/css-tools': 4.3.2 - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 @@ -9461,7 +9555,7 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@testing-library/dom': 9.3.3 '@types/react-dom': 18.2.18 react: 18.2.0 @@ -9516,30 +9610,30 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 - '@types/babel__generator': 7.6.7 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 dev: true - /@types/babel__generator@7.6.7: - resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 dev: true - /@types/babel__traverse@7.20.4: - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@types/bcrypt@5.0.2: @@ -9555,6 +9649,22 @@ packages: '@types/node': 18.18.2 dev: true + /@types/color-convert@2.0.3: + resolution: {integrity: sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==} + dependencies: + '@types/color-name': 1.1.3 + dev: false + + /@types/color-name@1.1.3: + resolution: {integrity: sha512-87W6MJCKZYDhLAx/J1ikW8niMvmGRyY+rpUxWpL1cO7F8Uu5CHuQoFv+R0/L5pgNdW4jTyda42kv60uwVIPjLw==} + dev: false + + /@types/color@3.0.6: + resolution: {integrity: sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==} + dependencies: + '@types/color-convert': 2.0.3 + dev: false + /@types/concat-stream@2.0.3: resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==} dependencies: @@ -9650,12 +9760,12 @@ packages: /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 8.44.8 + '@types/eslint': 8.56.1 '@types/estree': 1.0.5 dev: true - /@types/eslint@8.44.8: - resolution: {integrity: sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==} + /@types/eslint@8.56.1: + resolution: {integrity: sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -9716,8 +9826,8 @@ packages: resolution: {integrity: sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ==} dev: true - /@types/hast@2.3.8: - resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} + /@types/hast@2.3.9: + resolution: {integrity: sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw==} dependencies: '@types/unist': 2.0.10 dev: false @@ -9844,6 +9954,13 @@ packages: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true + /@types/minio@7.1.1: + resolution: {integrity: sha512-B7OWB7JwIxVBxypiS3gA96gaK4yo2UknGdqmuQsTccZZ/ABiQ2F3fTe9lZIXL6ZuN23l+mWIC3J4CefKNyWjxA==} + deprecated: This is a stub types definition. minio provides its own type definitions, so you do not need this installed. + dependencies: + minio: 7.1.3 + dev: true + /@types/mousetrap@1.6.15: resolution: {integrity: sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==} dev: false @@ -9868,15 +9985,15 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@16.18.67: - resolution: {integrity: sha512-gUa0tDO9oxyAYO9V9tqxDJguVMDpqUwH5I5Q9ASYBCso+8CUdJlKPKDYS1YSS9kyZWIduDafZvucGM0zGNKFjg==} + /@types/node@16.18.70: + resolution: {integrity: sha512-8eIk20G5VVVQNZNouHjLA2b8utE2NvGybLjMaF4lyhA9uhGwnmXF8o+icdXKGSQSNANJewXva/sFUoZLwAaYAg==} dev: true /@types/node@18.18.2: resolution: {integrity: sha512-u1cis+7wLZMPI62EozwsqvgMZyauczyiqRRu/vcqZKI5N5yidrJHqOFxEg5seT8adc96Q6Yczg1c0DlqGtMJMw==} - /@types/node@20.10.5: - resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + /@types/node@20.10.7: + resolution: {integrity: sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==} dependencies: undici-types: 5.26.5 dev: true @@ -9952,7 +10069,6 @@ packages: /@types/pug@2.0.10: resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - requiresBuild: true dev: false optional: true @@ -9998,7 +10114,7 @@ packages: dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 - csstype: 3.1.2 + csstype: 3.1.3 /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} @@ -10296,13 +10412,13 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vitejs/plugin-react-swc@3.5.0(vite@5.0.10): + /@vitejs/plugin-react-swc@3.5.0(vite@5.0.11): resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==} peerDependencies: vite: ^4 || ^5 dependencies: - '@swc/core': 1.3.101 - vite: 5.0.10(@types/node@18.18.2) + '@swc/core': 1.3.102 + vite: 5.0.11(@types/node@18.18.2) transitivePeerDependencies: - '@swc/helpers' dev: true @@ -10312,7 +10428,7 @@ packages: dependencies: '@vitest/spy': 1.1.3 '@vitest/utils': 1.1.3 - chai: 4.3.10 + chai: 4.4.0 dev: true /@vitest/runner@1.1.3: @@ -10598,6 +10714,11 @@ packages: rimraf: 3.0.2 dev: true + /@zxing/text-encoding@0.9.0: + resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + requiresBuild: true + optional: true + /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -10628,12 +10749,12 @@ packages: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-import-assertions@1.9.0(acorn@8.11.2): + /acorn-import-assertions@1.9.0(acorn@8.11.3): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.11.2 + acorn: 8.11.3 /acorn-jsx@5.3.2(acorn@7.4.1): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -10643,26 +10764,21 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx@5.3.2(acorn@8.11.2): + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.2 + acorn: 8.11.3 /acorn-walk@7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} dev: true - /acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} - engines: {node: '>=0.4.0'} - /acorn-walk@8.3.1: resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} - dev: true /acorn@6.4.2: resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} @@ -10675,8 +10791,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true @@ -10786,8 +10902,8 @@ packages: estraverse: 1.9.3 dev: false - /allotment@1.19.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-F5fl7NsAsxsoKB1AO/vKjm8X93SxjH0ZqJBDqEDhYHZdePYwk6qV6MtpQzlhk71fAd4nB6cnE9JeIWtVAXsYAg==} + /allotment@1.19.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lQDeuqMkEEzITT56NAXNOWxRXycqVyV62w3X7jVZQS9n+cznDx6RLJMD1cnWcRMfCdPUmAj07FAIR69ueytxDQ==} peerDependencies: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 @@ -11193,7 +11309,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001566 + caniuse-lite: 1.0.30001576 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -11231,14 +11347,14 @@ packages: dependencies: dequal: 2.0.3 - /babel-loader@8.3.0(@babel/core@7.23.5)(webpack@4.47.0): + /babel-loader@8.3.0(@babel/core@7.23.7)(webpack@4.47.0): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 @@ -11246,32 +11362,32 @@ packages: webpack: 4.47.0 dev: true - /babel-loader@8.3.0(@babel/core@7.23.5)(webpack@5.89.0): + /babel-loader@8.3.0(@babel/core@7.23.7)(webpack@5.89.0): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true - /babel-loader@9.1.3(@babel/core@7.23.5)(webpack@5.89.0): + /babel-loader@9.1.3(@babel/core@7.23.7)(webpack@5.89.0): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /babel-plugin-istanbul@6.1.1: @@ -11291,55 +11407,55 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 cosmiconfig: 7.1.0 resolve: 1.22.8 dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.5): - resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.1.7(@babel/core@7.23.5): + /babel-plugin-polyfill-corejs3@0.1.7(@babel/core@7.23.7): resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.1.5(@babel/core@7.23.5) - core-js-compat: 3.33.3 + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.1.5(@babel/core@7.23.7) + core-js-compat: 3.35.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.5): - resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): + resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) - core-js-compat: 3.33.3 + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + core-js-compat: 3.35.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.5): - resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): + resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) transitivePeerDependencies: - supports-color dev: true @@ -11348,13 +11464,13 @@ packages: resolution: {integrity: sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==} dev: true - /babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.23.5): + /babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.23.7): resolution: {integrity: sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.23.5 + '@babel/core': 7.23.7 + '@babel/parser': 7.23.6 dev: true /babel-walk@3.0.0-canary-5: @@ -11362,7 +11478,7 @@ packages: engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: false /bail@2.0.2: @@ -11413,10 +11529,6 @@ packages: is-windows: 1.0.2 dev: true - /big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: true @@ -11456,6 +11568,11 @@ packages: readable-stream: 3.6.2 dev: true + /block-stream2@2.1.0: + resolution: {integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==} + dependencies: + readable-stream: 3.6.2 + /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true @@ -11523,12 +11640,6 @@ packages: wrap-ansi: 7.0.0 dev: false - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.52 - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -11585,6 +11696,9 @@ packages: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} dev: true + /browser-or-node@2.1.1: + resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} + /browserify-aes@1.2.0: resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} dependencies: @@ -11646,8 +11760,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001566 - electron-to-chromium: 1.4.603 + caniuse-lite: 1.0.30001576 + electron-to-chromium: 1.4.623 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) @@ -11657,6 +11771,9 @@ packages: node-int64: 0.4.0 dev: true + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + /buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} dev: false @@ -11698,12 +11815,6 @@ packages: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} dev: true - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - dependencies: - run-applescript: 5.0.0 - /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -11759,6 +11870,14 @@ packages: unset-value: 1.0.0 dev: true + /cache-manager@5.3.2: + resolution: {integrity: sha512-MBpwYqCqf8LFSso5CjMs5Kj2i3RYYUP0fLwjMSnxyspYx0y8uT1SZbWiOk33fw5r+Sbpe5ERfk1+pgXEJ/omEw==} + dependencies: + lodash.clonedeep: 4.5.0 + lru-cache: 10.1.0 + promise-coalesce: 1.1.2 + dev: false + /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -11819,13 +11938,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001566 + caniuse-lite: 1.0.30001576 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001566: - resolution: {integrity: sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==} + /caniuse-lite@1.0.30001576: + resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==} /case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -11835,8 +11954,8 @@ packages: /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + /chai@4.4.0: + resolution: {integrity: sha512-x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -12046,7 +12165,7 @@ packages: resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==} dependencies: '@types/validator': 13.11.7 - libphonenumber-js: 1.10.51 + libphonenumber-js: 1.10.53 validator: 13.11.0 /class-variance-authority@0.7.0: @@ -12119,6 +12238,11 @@ packages: engines: {node: '>= 10'} dev: true + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + dev: true + /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} dev: false @@ -12411,8 +12535,8 @@ packages: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} requiresBuild: true dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 dev: false /constants-browserify@1.0.0: @@ -12516,24 +12640,18 @@ packages: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.1 - webpack: 5.89.0(@swc/core@1.3.101) + webpack: 5.89.0(@swc/core@1.3.102) dev: true - /core-js-compat@3.33.3: - resolution: {integrity: sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==} + /core-js-compat@3.35.0: + resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==} dependencies: browserslist: 4.22.2 dev: true - /core-js@3.33.2: - resolution: {integrity: sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==} - requiresBuild: true - dev: false - /core-js@3.35.0: resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} requiresBuild: true - dev: true /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -12581,22 +12699,6 @@ packages: yaml: 1.10.2 dev: true - /cosmiconfig@8.3.6(typescript@5.2.2): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.2.2 - dev: true - /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -12693,14 +12795,14 @@ packages: randomfill: 1.0.4 dev: true - /css-blank-pseudo@6.0.0(postcss@8.4.33): - resolution: {integrity: sha512-VbfLlOWO7sBHBTn6pwDQzc07Z0SDydgDBfNfCE0nvrehdBNv9RKsuupIRa/qal0+fBZhAALyQDPMKz5lnvcchw==} + /css-blank-pseudo@6.0.1(postcss@8.4.33): + resolution: {integrity: sha512-goSnEITByxTzU4Oh5oJZrEWudxTqk7L6IXj1UW69pO6Hv0UdX+Vsrt02FFu5DweRh2bLu6WpX/+zsQCu5O1gKw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /css-declaration-sorter@6.4.1(postcss@8.4.33): @@ -12712,15 +12814,15 @@ packages: postcss: 8.4.33 dev: true - /css-has-pseudo@6.0.0(postcss@8.4.33): - resolution: {integrity: sha512-X+r+JBuoO37FBOWVNhVJhxtSBUFHgHbrcc0CjFT28JEdOw1qaDwABv/uunyodUuSy2hMPe9j/HjssxSlvUmKjg==} + /css-has-pseudo@6.0.1(postcss@8.4.33): + resolution: {integrity: sha512-WwoVKqNxApfEI7dWFyaHoeFCcUPD+lPyjL6lNpRUNX7IyIUuVpawOTwwA5D0ZR6V2xQZonNPVj8kEcxzEaAQfQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) + '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true @@ -12753,7 +12855,7 @@ packages: postcss-value-parser: 4.2.0 schema-utils: 2.7.1 semver: 6.3.1 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /css-loader@5.2.7(webpack@5.89.0): @@ -12767,12 +12869,12 @@ packages: postcss: 8.4.33 postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) postcss-modules-local-by-default: 4.0.3(postcss@8.4.33) - postcss-modules-scope: 3.0.0(postcss@8.4.33) + postcss-modules-scope: 3.1.0(postcss@8.4.33) postcss-modules-values: 4.0.0(postcss@8.4.33) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.5.4 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /css-loader@6.8.1(webpack@5.89.0): @@ -12785,15 +12887,15 @@ packages: postcss: 8.4.33 postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) postcss-modules-local-by-default: 4.0.3(postcss@8.4.33) - postcss-modules-scope: 3.0.0(postcss@8.4.33) + postcss-modules-scope: 3.1.0(postcss@8.4.33) postcss-modules-values: 4.0.0(postcss@8.4.33) postcss-value-parser: 4.2.0 semver: 7.5.4 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true - /css-prefers-color-scheme@9.0.0(postcss@8.4.33): - resolution: {integrity: sha512-03QGAk/FXIRseDdLb7XAiu6gidQ0Nd8945xuM7VFVPpc6goJsG9uIO8xQjTxwbPdPIIV4o4AJoOJyt8gwDl67g==} + /css-prefers-color-scheme@9.0.1(postcss@8.4.33): + resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -12851,8 +12953,8 @@ packages: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true - /cssdb@7.9.0: - resolution: {integrity: sha512-WPMT9seTQq6fPAa1yN4zjgZZeoTriSN2LqW9C+otjar12DQIWA4LuSfFrvFJiKp4oD0xIk1vumDLw8K9ur4NBw==} + /cssdb@7.10.0: + resolution: {integrity: sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA==} dev: true /cssesc@3.0.0: @@ -12933,8 +13035,8 @@ packages: css-tree: 2.2.1 dev: true - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} /csv-generate@3.4.3: resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} @@ -13094,11 +13196,8 @@ packages: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} dev: true - /date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - dependencies: - '@babel/runtime': 7.23.5 + /date-fns@3.1.0: + resolution: {integrity: sha512-ZO7yefXV/wCWzd3I9haCHmfzlfA3i1a2HHO7ZXjtJrRjXt8FULKJ2Vl8wji3XYF4dQ0ZJ/tokXDZeYlFvgms9Q==} dev: false /dateformat@4.6.3: @@ -13165,7 +13264,6 @@ packages: /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} - dev: true /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} @@ -13210,22 +13308,6 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: @@ -13245,10 +13327,6 @@ packages: engines: {node: '>=8'} dev: true - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -13415,7 +13493,7 @@ packages: /dom-helpers@3.4.0: resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /dom-serializer@1.4.1: @@ -13579,8 +13657,8 @@ packages: dependencies: jake: 10.8.7 - /electron-to-chromium@1.4.603: - resolution: {integrity: sha512-Dvo5OGjnl7AZTU632dFJtWj0uJK835eeOVQIuRcmBmsFsTNn3cL05FqOyHAfGQDIoHfLhyJ1Tya3PJ0ceMz54g==} + /electron-to-chromium@1.4.623: + resolution: {integrity: sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==} /elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} @@ -13852,35 +13930,35 @@ packages: '@esbuild/win32-x64': 0.18.20 dev: true - /esbuild@0.19.10: - resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.19.10 - '@esbuild/android-arm': 0.19.10 - '@esbuild/android-arm64': 0.19.10 - '@esbuild/android-x64': 0.19.10 - '@esbuild/darwin-arm64': 0.19.10 - '@esbuild/darwin-x64': 0.19.10 - '@esbuild/freebsd-arm64': 0.19.10 - '@esbuild/freebsd-x64': 0.19.10 - '@esbuild/linux-arm': 0.19.10 - '@esbuild/linux-arm64': 0.19.10 - '@esbuild/linux-ia32': 0.19.10 - '@esbuild/linux-loong64': 0.19.10 - '@esbuild/linux-mips64el': 0.19.10 - '@esbuild/linux-ppc64': 0.19.10 - '@esbuild/linux-riscv64': 0.19.10 - '@esbuild/linux-s390x': 0.19.10 - '@esbuild/linux-x64': 0.19.10 - '@esbuild/netbsd-x64': 0.19.10 - '@esbuild/openbsd-x64': 0.19.10 - '@esbuild/sunos-x64': 0.19.10 - '@esbuild/win32-arm64': 0.19.10 - '@esbuild/win32-ia32': 0.19.10 - '@esbuild/win32-x64': 0.19.10 + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 dev: true /escalade@3.1.1: @@ -13916,7 +13994,6 @@ packages: /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - dev: false /escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} @@ -13940,12 +14017,12 @@ packages: optional: true dependencies: '@next/eslint-plugin-next': 13.0.2 - '@rushstack/eslint-patch': 1.6.0 + '@rushstack/eslint-patch': 1.6.1 '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.0)(eslint@8.56.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-react: 7.33.2(eslint@8.56.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) @@ -13973,7 +14050,7 @@ packages: transitivePeerDependencies: - supports-color - /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.29.0)(eslint@8.56.0): + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} engines: {node: '>=4'} peerDependencies: @@ -13982,11 +14059,11 @@ packages: dependencies: debug: 4.3.4 eslint: 8.56.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0) glob: 7.2.3 is-glob: 4.0.3 resolve: 1.22.8 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - supports-color dev: true @@ -14013,21 +14090,21 @@ packages: - eslint-import-resolver-webpack - supports-color - /eslint-mdx@3.0.0(eslint@8.56.0): - resolution: {integrity: sha512-vhRMspKg40avafPts17WXocCXnFCXERkOmEPi1P8XL2Iq3jjpLQoO/CXeYXdt04TNlGOyYkHdJ7F0M4Bjb+/Lg==} + /eslint-mdx@3.1.3(eslint@8.56.0): + resolution: {integrity: sha512-de+3AErxMIxAm16sl/YPraDT9lUK4qJC/MX23i1LnXBocDYwypzBHAZH7EFSDlFHdemeKv1RXn68jKa/CdhmAg==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.0.0' dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint: 8.56.0 espree: 9.6.1 estree-util-visit: 2.0.0 remark-mdx: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 - synckit: 0.8.6 + synckit: 0.9.0 tslib: 2.6.2 unified: 11.0.4 unified-engine: 11.2.0 @@ -14067,8 +14144,8 @@ packages: transitivePeerDependencies: - supports-color - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -14095,7 +14172,7 @@ packages: object.groupby: 1.0.1 object.values: 1.1.7 semver: 6.3.1 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -14172,7 +14249,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 aria-query: 5.3.0 array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 @@ -14209,7 +14286,7 @@ packages: eslint: '>=8.0.0' dependencies: eslint: 8.56.0 - eslint-mdx: 3.0.0(eslint@8.56.0) + eslint-mdx: 3.1.3(eslint@8.56.0) eslint-plugin-markdown: 3.0.1(eslint@8.56.0) remark-mdx: 3.0.0 remark-parse: 11.0.0 @@ -14232,7 +14309,7 @@ packages: dependencies: eslint: 8.56.0 eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - globals: 13.23.0 + globals: 13.24.0 dev: false /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): @@ -14253,7 +14330,7 @@ packages: eslint-config-prettier: 9.1.0(eslint@8.56.0) prettier: 3.1.1 prettier-linter-helpers: 1.0.0 - synckit: 0.8.6 + synckit: 0.8.8 dev: false /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): @@ -14407,7 +14484,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.23.0 + globals: 13.24.0 graphemer: 1.4.0 ignore: 5.3.0 imurmurhash: 0.1.4 @@ -14434,8 +14511,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 /esprima@1.2.5: @@ -14554,21 +14631,6 @@ packages: strip-eof: 1.0.0 dev: false - /execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -14582,6 +14644,7 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true /execa@7.2.0: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} @@ -14592,10 +14655,11 @@ packages: human-signals: 4.3.1 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.2.0 onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 + dev: true /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} @@ -14606,7 +14670,7 @@ packages: 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.2.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 @@ -14798,12 +14862,18 @@ packages: resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} dev: false + /fast-xml-parser@4.3.2: + resolution: {integrity: sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==} + hasBin: true + dependencies: + strnum: 1.0.5 + /fastest-stable-stringify@2.0.2: resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} dev: false - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: reusify: 1.0.4 @@ -14827,11 +14897,12 @@ packages: engines: {node: ^12.20 || >= 14.13} dependencies: node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 + web-streams-polyfill: 3.3.2 dev: true /figgy-pudding@3.5.2: resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} + deprecated: This module is no longer supported. dev: true /figma-js@1.16.0: @@ -14858,6 +14929,14 @@ packages: escape-string-regexp: 1.0.5 dev: true + /figures@5.0.0: + resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} + engines: {node: '>=14'} + dependencies: + escape-string-regexp: 5.0.0 + is-unicode-supported: 1.3.0 + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -14886,7 +14965,6 @@ packages: /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - requiresBuild: true dependencies: minimatch: 5.1.6 @@ -14911,6 +14989,10 @@ packages: dependencies: to-regex-range: 5.0.1 + /filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + /finalhandler@1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -15105,10 +15187,10 @@ packages: semver: 7.5.4 tapable: 2.2.1 typescript: 5.3.3 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true - /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.2.2)(webpack@5.89.0): + /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -15118,7 +15200,7 @@ packages: '@babel/code-frame': 7.23.5 chalk: 4.1.2 chokidar: 3.5.3 - cosmiconfig: 8.3.6(typescript@5.2.2) + cosmiconfig: 8.3.6(typescript@5.3.3) deepmerge: 4.3.1 fs-extra: 10.1.0 memfs: 3.5.3 @@ -15127,8 +15209,8 @@ packages: schema-utils: 3.3.0 semver: 7.5.4 tapable: 2.2.1 - typescript: 5.2.2 - webpack: 5.89.0(@swc/core@1.3.101) + typescript: 5.3.3 + webpack: 5.89.0(@swc/core@1.3.102) dev: true /form-data@4.0.0: @@ -15369,16 +15451,10 @@ packages: engines: {node: '>=4'} dev: false - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: true - /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: true /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} @@ -15470,16 +15546,6 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 - /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - 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@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: @@ -15540,8 +15606,8 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -15799,7 +15865,7 @@ packages: /hastscript@6.0.0: resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} dependencies: - '@types/hast': 2.3.8 + '@types/hast': 2.3.9 comma-separated-tokens: 1.0.8 hast-util-parse-selector: 2.2.5 property-information: 5.6.0 @@ -15867,7 +15933,7 @@ packages: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.25.0 + terser: 5.26.0 dev: true /html-minifier@4.0.0: @@ -15910,18 +15976,24 @@ packages: resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} dev: false - /html-webpack-plugin@5.5.3(webpack@5.89.0): - resolution: {integrity: sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==} + /html-webpack-plugin@5.6.0(webpack@5.89.0): + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} peerDependencies: + '@rspack/core': 0.x || 1.x webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /htmlparser2@5.0.1: @@ -15989,18 +16061,15 @@ packages: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: true - /human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - dev: true - /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + dev: true /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} + dev: true /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -16017,14 +16086,14 @@ packages: resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} dev: false - /i18next-fs-backend@2.3.0: - resolution: {integrity: sha512-N0SS2WojoVIh2x/QkajSps8RPKzXqryZsQh12VoFY4cLZgkD+62EPY2fY+ZjkNADu8xA5I5EadQQXa8TXBKN3w==} + /i18next-fs-backend@2.3.1: + resolution: {integrity: sha512-tvfXskmG/9o+TJ5Fxu54sSO5OkY6d+uMn+K6JiUGLJrwxAVfer+8V3nU8jq3ts9Pe5lXJv4b1N7foIjJ8Iy2Gg==} dev: false /i18next@23.5.1: resolution: {integrity: sha512-JelYzcaCoFDaa+Ysbfz2JsGAKkrHiMG6S61+HLBUEIPaF40WMwW9hCPymlQGrP+wWawKxKPuSuD71WZscCsWHg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /iconv-lite@0.4.24: @@ -16102,8 +16171,8 @@ packages: /import-in-the-middle@1.4.2: resolution: {integrity: sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==} dependencies: - acorn: 8.11.2 - acorn-import-assertions: 1.9.0(acorn@8.11.2) + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) cjs-module-lexer: 1.2.3 module-details-from-path: 1.0.3 dev: false @@ -16111,8 +16180,8 @@ packages: /import-in-the-middle@1.7.1: resolution: {integrity: sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==} dependencies: - acorn: 8.11.2 - acorn-import-assertions: 1.9.0(acorn@8.11.2) + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) cjs-module-lexer: 1.2.3 module-details-from-path: 1.0.3 dev: false @@ -16166,8 +16235,8 @@ packages: fast-loops: 1.1.3 dev: false - /inquirer@8.2.4: - resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} + /inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 @@ -16184,27 +16253,27 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 6.2.0 dev: true - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + /inquirer@9.2.11: + resolution: {integrity: sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==} + engines: {node: '>=14.18.0'} dependencies: + '@ljharb/through': 2.3.11 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.3.0 cli-cursor: 3.1.0 - cli-width: 3.0.0 + cli-width: 4.1.0 external-editor: 3.1.0 - figures: 3.2.0 + figures: 5.0.0 lodash: 4.17.21 - mute-stream: 0.0.8 + mute-stream: 1.0.0 ora: 5.4.1 - run-async: 2.4.1 + run-async: 3.0.0 rxjs: 7.8.1 string-width: 4.2.3 strip-ansi: 6.0.1 - through: 2.3.8 wrap-ansi: 6.2.0 dev: true @@ -16243,6 +16312,10 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + /is-absolute-url@3.0.3: resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} engines: {node: '>=8'} @@ -16291,7 +16364,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -16400,11 +16472,6 @@ packages: engines: {node: '>=8'} hasBin: true - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - /is-empty@1.2.0: resolution: {integrity: sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==} dev: true @@ -16485,13 +16552,6 @@ packages: /is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -16612,10 +16672,12 @@ packages: /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + dev: true /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -16731,8 +16793,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.23.5 + '@babel/core': 7.23.7 + '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -16776,7 +16838,6 @@ packages: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} engines: {node: '>=10'} hasBin: true - requiresBuild: true dependencies: async: 3.2.5 chalk: 4.1.2 @@ -16993,6 +17054,9 @@ packages: /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + /json-stream@1.0.0: + resolution: {integrity: sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==} + /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -17195,7 +17259,7 @@ packages: resolution: {integrity: sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==} engines: {node: '>=6.0.0', npm: '>=6.0.0', yarn: '>=1.0.0'} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 app-root-dir: 1.0.2 core-js: 3.35.0 dotenv: 8.6.0 @@ -17244,8 +17308,8 @@ packages: libqp: 2.0.1 dev: false - /libphonenumber-js@1.10.51: - resolution: {integrity: sha512-vY2I+rQwrDQzoPds0JeTEpeWzbUJgqoV0O4v31PauHBb/e+1KCXKylHcDnBMgJZ9fH9mErsEbROJY3Z3JtqEmg==} + /libphonenumber-js@1.10.53: + resolution: {integrity: sha512-sDTnnqlWK4vH4AlDQuswz3n4Hx7bIQWTpIcScJX+Sp7St3LXHmfiax/ZFfyYxHmkdCvydOLSuvtAO/XpXiSySw==} /libqp@2.0.1: resolution: {integrity: sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==} @@ -17273,12 +17337,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /linkify-it@4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} - dependencies: - uc.micro: 1.0.6 - dev: false - /linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} dependencies: @@ -17428,6 +17486,10 @@ packages: p-locate: 6.0.0 dev: true + /lodash._reinterpolate@3.0.0: + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + dev: true + /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -17435,6 +17497,10 @@ packages: resolution: {integrity: sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==} dev: false + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: false + /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} @@ -17500,6 +17566,19 @@ packages: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true + /lodash.template@4.5.0: + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.2.0 + dev: true + + /lodash.templatesettings@4.2.0: + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + dependencies: + lodash._reinterpolate: 3.0.0 + dev: true + /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: true @@ -17621,11 +17700,6 @@ packages: hasBin: true dev: true - /macos-release@2.5.1: - resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==} - engines: {node: '>=6'} - dev: true - /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: @@ -17653,18 +17727,18 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /mailparser@3.6.5: - resolution: {integrity: sha512-nteTpF0Khm5JLOnt4sigmzNdUH/6mO7PZ4KEnvxf4mckyXYFFhrtAWZzbq/V5aQMH+049gA7ZjfLdh+QiX2Uqg==} + /mailparser@3.6.6: + resolution: {integrity: sha512-noCjBl3FToxmqTP2fp7z17hQsiCroWNntfTd8O+UejOAF59xeN5WGZK27ilexXV2e2X/cbUhG3L8sfEKaz0/sw==} dependencies: encoding-japanese: 2.0.0 he: 1.2.0 html-to-text: 9.0.5 iconv-lite: 0.6.3 libmime: 5.2.1 - linkify-it: 4.0.1 + linkify-it: 5.0.0 mailsplit: 5.4.0 - nodemailer: 6.9.3 - tlds: 1.240.0 + nodemailer: 6.9.8 + tlds: 1.248.0 dev: false /mailsplit@5.4.0: @@ -17751,8 +17825,8 @@ packages: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} dev: false - /markdown-to-jsx@7.3.2(react@18.2.0): - resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} + /markdown-to-jsx@7.4.0(react@18.2.0): + resolution: {integrity: sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' @@ -18099,6 +18173,7 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -18112,18 +18187,18 @@ packages: resolution: {integrity: sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==} hasBin: true dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.5) - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) - '@babel/preset-flow': 7.23.3(@babel/core@7.23.5) - '@babel/preset-react': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.7 + '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-flow': 7.23.3(@babel/core@7.23.7) + '@babel/preset-react': 7.23.3(@babel/core@7.23.7) '@rollup/plugin-alias': 3.1.9(rollup@2.79.1) - '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.5)(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.7)(rollup@2.79.1) '@rollup/plugin-commonjs': 17.1.0(rollup@2.79.1) '@rollup/plugin-json': 4.1.0(rollup@2.79.1) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) @@ -18132,7 +18207,7 @@ packages: autoprefixer: 10.4.16(postcss@8.4.33) babel-plugin-macros: 3.1.0 babel-plugin-transform-async-to-promises: 0.8.18 - babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.23.5) + babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.23.7) brotli-size: 4.0.0 builtin-modules: 3.3.0 camelcase: 6.3.0 @@ -18148,9 +18223,9 @@ packages: rollup-plugin-postcss: 4.0.2(postcss@8.4.33) rollup-plugin-terser: 7.0.2(rollup@2.79.1) rollup-plugin-typescript2: 0.32.1(rollup@2.79.1)(typescript@4.9.5) - rollup-plugin-visualizer: 5.10.0(rollup@2.79.1) + rollup-plugin-visualizer: 5.12.0(rollup@2.79.1) sade: 1.8.1 - terser: 5.25.0 + terser: 5.26.0 tiny-glob: 0.2.9 tslib: 2.6.2 typescript: 4.9.5 @@ -18303,8 +18378,8 @@ packages: /micromark-extension-mdxjs@3.0.0: resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -18542,6 +18617,7 @@ packages: /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + dev: true /mimic-fn@3.1.0: resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} @@ -18551,6 +18627,7 @@ packages: /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + dev: true /min-document@2.19.0: resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} @@ -18621,6 +18698,25 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /minio@7.1.3: + resolution: {integrity: sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==} + engines: {node: ^16 || ^18 || >=20} + dependencies: + async: 3.2.5 + block-stream2: 2.1.0 + browser-or-node: 2.1.1 + buffer-crc32: 0.2.13 + fast-xml-parser: 4.3.2 + ipaddr.js: 2.1.0 + json-stream: 1.0.0 + lodash: 4.17.21 + mime-types: 2.1.35 + query-string: 7.1.3 + through2: 4.0.2 + web-encoding: 1.1.5 + xml: 1.0.1 + xml2js: 0.5.0 + /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -18682,7 +18778,7 @@ packages: /mjml-accordion@4.14.1: resolution: {integrity: sha512-dpNXyjnhYwhM75JSjD4wFUa9JgHm86M2pa0CoTzdv1zOQz67ilc4BoK5mc2S0gOjJpjBShM5eOJuCyVIuAPC6w==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18692,7 +18788,7 @@ packages: /mjml-body@4.14.1: resolution: {integrity: sha512-YpXcK3o2o1U+fhI8f60xahrhXuHmav6BZez9vIN3ZEJOxPFSr+qgr1cT2iyFz50L5+ZsLIVj2ZY+ALQjdsg8ig==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18702,7 +18798,7 @@ packages: /mjml-button@4.14.1: resolution: {integrity: sha512-V1Tl1vQ3lXYvvqHJHvGcc8URr7V1l/ZOsv7iLV4QRrh7kjKBXaRS7uUJtz6/PzEbNsGQCiNtXrODqcijLWlgaw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18712,7 +18808,7 @@ packages: /mjml-carousel@4.14.1: resolution: {integrity: sha512-Ku3MUWPk/TwHxVgKEUtzspy/ePaWtN/3z6/qvNik0KIn0ZUIZ4zvR2JtaVL5nd30LHSmUaNj30XMPkCjYiKkFA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18723,7 +18819,7 @@ packages: resolution: {integrity: sha512-Gy6MnSygFXs0U1qOXTHqBg2vZX2VL/fAacgQzD4MHq4OuybWaTNSzXRwxBXYCxT3IJB874n2Q0Mxp+Xka+tnZg==} hasBin: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 chokidar: 3.5.3 glob: 7.2.3 html-minifier: 4.0.0 @@ -18741,7 +18837,7 @@ packages: /mjml-column@4.14.1: resolution: {integrity: sha512-iixVCIX1YJtpQuwG2WbDr7FqofQrlTtGQ4+YAZXGiLThs0En3xNIJFQX9xJ8sgLEGGltyooHiNICBRlzSp9fDg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18751,7 +18847,7 @@ packages: /mjml-core@4.14.1: resolution: {integrity: sha512-di88rSfX+8r4r+cEqlQCO7CRM4mYZrfe2wSCu2je38i+ujjkLpF72cgLnjBlSG5aOUCZgYvlsZ85stqIz9LQfA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 cheerio: 1.0.0-rc.12 detect-node: 2.1.0 html-minifier: 4.0.0 @@ -18768,7 +18864,7 @@ packages: /mjml-divider@4.14.1: resolution: {integrity: sha512-agqWY0aW2xaMiUOhYKDvcAAfOLalpbbtjKZAl1vWmNkURaoK4L7MgDilKHSJDFUlHGm2ZOArTrq8i6K0iyThBQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18778,7 +18874,7 @@ packages: /mjml-group@4.14.1: resolution: {integrity: sha512-dJt5batgEJ7wxlxzqOfHOI94ABX+8DZBvAlHuddYO4CsLFHYv6XRIArLAMMnAKU76r6p3X8JxYeOjKZXdv49kg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18788,7 +18884,7 @@ packages: /mjml-head-attributes@4.14.1: resolution: {integrity: sha512-XdUNOp2csK28kBDSistInOyzWNwmu5HDNr4y1Z7vSQ1PfkmiuS6jWG7jHUjdoMhs27e6Leuyyc6a8gWSpqSWrg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18798,7 +18894,7 @@ packages: /mjml-head-breakpoint@4.14.1: resolution: {integrity: sha512-Qw9l/W/I5Z9p7I4ShgnEpAL9if4472ejcznbBnp+4Gq+sZoPa7iYoEPsa9UCGutlaCh3N3tIi2qKhl9qD8DFxA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18808,7 +18904,7 @@ packages: /mjml-head-font@4.14.1: resolution: {integrity: sha512-oBYm1gaOdEMjE5BoZouRRD4lCNZ1jcpz92NR/F7xDyMaKCGN6T/+r4S5dq1gOLm9zWqClRHaECdFJNEmrDpZqA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18818,7 +18914,7 @@ packages: /mjml-head-html-attributes@4.14.1: resolution: {integrity: sha512-vlJsJc1Sm4Ml2XvLmp01zsdmWmzm6+jNCO7X3eYi9ngEh8LjMCLIQOncnOgjqm9uGpQu2EgUhwvYFZP2luJOVg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18828,7 +18924,7 @@ packages: /mjml-head-preview@4.14.1: resolution: {integrity: sha512-89gQtt3fhl2dkYpHLF5HDQXz/RLpzecU6wmAIT7Dz6etjLGE1dgq2Ay6Bu/OeHjDcT1gbM131zvBwuXw8OydNw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18838,7 +18934,7 @@ packages: /mjml-head-style@4.14.1: resolution: {integrity: sha512-XryOuf32EDuUCBT2k99C1+H87IOM919oY6IqxKFJCDkmsbywKIum7ibhweJdcxiYGONKTC6xjuibGD3fQTTYNQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18848,7 +18944,7 @@ packages: /mjml-head-title@4.14.1: resolution: {integrity: sha512-aIfpmlQdf1eJZSSrFodmlC4g5GudBti2eMyG42M7/3NeLM6anEWoe+UkF/6OG4Zy0tCQ40BDJ5iBZlMsjQICzw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18858,7 +18954,7 @@ packages: /mjml-head@4.14.1: resolution: {integrity: sha512-KoCbtSeTAhx05Ugn9TB2UYt5sQinSCb7RGRer5iPQ3CrXj8hT5B5Svn6qvf/GACPkWl4auExHQh+XgLB+r3OEA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18868,7 +18964,7 @@ packages: /mjml-hero@4.14.1: resolution: {integrity: sha512-TQJ3yfjrKYGkdEWjHLHhL99u/meKFYgnfJvlo9xeBvRjSM696jIjdqaPHaunfw4CP6d2OpCIMuacgOsvqQMWOA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18878,7 +18974,7 @@ packages: /mjml-image@4.14.1: resolution: {integrity: sha512-jfKLPHXuFq83okwlNM1Um/AEWeVDgs2JXIOsWp2TtvXosnRvGGMzA5stKLYdy1x6UfKF4c1ovpMS162aYGp+xQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18889,7 +18985,7 @@ packages: resolution: {integrity: sha512-d+9HKQOhZi3ZFAaFSDdjzJX9eDQGjMf3BArLWNm2okC4ZgfJSpOc77kgCyFV8ugvwc8fFegPnSV60Jl4xtvK2A==} hasBin: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 js-beautify: 1.14.11 lodash: 4.17.21 mjml-core: 4.14.1 @@ -18902,7 +18998,7 @@ packages: /mjml-navbar@4.14.1: resolution: {integrity: sha512-rNy1Kw8CR3WQ+M55PFBAUDz2VEOjz+sk06OFnsnmNjoMVCjo1EV7OFLDAkmxAwqkC8h4zQWEOFY0MBqqoAg7+A==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18912,7 +19008,7 @@ packages: /mjml-parser-xml@4.14.1: resolution: {integrity: sha512-9WQVeukbXfq9DUcZ8wOsHC6BTdhaVwTAJDYMIQglXLwKwN7I4pTCguDDHy5d0kbbzK5OCVxCdZe+bfVI6XANOQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 detect-node: 2.0.4 htmlparser2: 8.0.2 lodash: 4.17.21 @@ -18921,7 +19017,7 @@ packages: /mjml-preset-core@4.14.1: resolution: {integrity: sha512-uUCqK9Z9d39rwB/+JDV2KWSZGB46W7rPQpc9Xnw1DRP7wD7qAfJwK6AZFCwfTgWdSxw0PwquVNcrUS9yBa9uhw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 mjml-accordion: 4.14.1 mjml-body: 4.14.1 mjml-button: 4.14.1 @@ -18954,7 +19050,7 @@ packages: /mjml-raw@4.14.1: resolution: {integrity: sha512-9+4wzoXnCtfV6QPmjfJkZ50hxFB4Z8QZnl2Ac0D1Cn3dUF46UkmO5NLMu7UDIlm5DdFyycZrMOwvZS4wv9ksPw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18964,7 +19060,7 @@ packages: /mjml-section@4.14.1: resolution: {integrity: sha512-Ik5pTUhpT3DOfB3hEmAWp8rZ0ilWtIivnL8XdUJRfgYE9D+MCRn+reIO+DAoJHxiQoI6gyeKkIP4B9OrQ7cHQw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18974,7 +19070,7 @@ packages: /mjml-social@4.14.1: resolution: {integrity: sha512-G44aOZXgZHukirjkeQWTTV36UywtE2YvSwWGNfo/8d+k5JdJJhCIrlwaahyKEAyH63G1B0Zt8b2lEWx0jigYUw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18984,7 +19080,7 @@ packages: /mjml-spacer@4.14.1: resolution: {integrity: sha512-5SfQCXTd3JBgRH1pUy6NVZ0lXBiRqFJPVHBdtC3OFvUS3q1w16eaAXlIUWMKTfy8CKhQrCiE6m65kc662ZpYxA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -18994,7 +19090,7 @@ packages: /mjml-table@4.14.1: resolution: {integrity: sha512-aVBdX3WpyKVGh/PZNn2KgRem+PQhWlvnD00DKxDejRBsBSKYSwZ0t3EfFvZOoJ9DzfHsN0dHuwd6Z18Ps44NFQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -19004,7 +19100,7 @@ packages: /mjml-text@4.14.1: resolution: {integrity: sha512-yZuvf5z6qUxEo5CqOhCUltJlR6oySKVcQNHwoV5sneMaKdmBiaU4VDnlYFera9gMD9o3KBHIX6kUg7EHnCwBRQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 transitivePeerDependencies: @@ -19014,13 +19110,13 @@ packages: /mjml-validator@4.13.0: resolution: {integrity: sha512-uURYfyQYtHJ6Qz/1A7/+E9ezfcoISoLZhYK3olsxKRViwaA2Mm8gy/J3yggZXnsUXWUns7Qymycm5LglLEIiQg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /mjml-wrapper@4.14.1: resolution: {integrity: sha512-aA5Xlq6d0hZ5LY+RvSaBqmVcLkvPvdhyAv3vQf3G41Gfhel4oIPmkLnVpHselWhV14A0KwIOIAKVxHtSAxyOTQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 lodash: 4.17.21 mjml-core: 4.14.1 mjml-section: 4.14.1 @@ -19032,7 +19128,7 @@ packages: resolution: {integrity: sha512-f/wnWWIVbeb/ge3ff7c/KYYizI13QbGIp03odwwkCThsJsacw4gpZZAU7V4gXY3HxSXP2/q3jxOfaHVbkfNpOQ==} hasBin: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 mjml-cli: 4.14.1 mjml-core: 4.14.1 mjml-migrate: 4.14.1 @@ -19096,7 +19192,7 @@ packages: /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 pathe: 1.1.1 pkg-types: 1.0.3 ufo: 1.3.2 @@ -19179,6 +19275,11 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -19200,14 +19301,14 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 css-tree: 1.1.3 - csstype: 3.1.2 + csstype: 3.1.3 fastest-stable-stringify: 2.0.2 inline-style-prefixer: 7.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 - stylis: 4.3.0 + stylis: 4.3.1 dev: false /nanoid@3.3.6: @@ -19325,13 +19426,13 @@ packages: react: '>= 17.0.2' react-i18next: ^13.2.1 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@types/hoist-non-react-statics': 3.3.5 - core-js: 3.33.2 + core-js: 3.35.0 hoist-non-react-statics: 3.3.2 i18next: 23.5.1 - i18next-fs-backend: 2.3.0 - next: 13.0.2(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + i18next-fs-backend: 2.3.1 + next: 13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-i18next: 13.3.0(i18next@23.5.1)(react-dom@18.2.0)(react@18.2.0) dev: false @@ -19348,7 +19449,19 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - next: 13.0.2(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + next: 13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /next-themes@0.2.1(next@13.0.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} + peerDependencies: + next: '*' + react: '*' + react-dom: '*' + dependencies: + next: 13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -19359,7 +19472,7 @@ packages: enhanced-resolve: 5.15.0 dev: false - /next@13.0.2(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0): + /next@13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-uQ5z5e4D9mOe8+upy6bQdYYjo/kk1v3jMW87kTy2TgAyAsEO+CkwRnMgyZ4JoHEnhPZLHwh7dk0XymRNLe1gFw==} engines: {node: '>=14.6.0'} hasBin: true @@ -19379,11 +19492,11 @@ packages: dependencies: '@next/env': 13.0.2 '@swc/helpers': 0.4.11 - caniuse-lite: 1.0.30001566 + caniuse-lite: 1.0.30001576 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.0(@babel/core@7.23.5)(react@18.2.0) + styled-jsx: 5.1.0(@babel/core@7.23.7)(react@18.2.0) use-sync-external-store: 1.2.0(react@18.2.0) optionalDependencies: '@next/swc-android-arm-eabi': 13.0.2 @@ -19494,11 +19607,6 @@ packages: /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - /nodemailer@6.9.3: - resolution: {integrity: sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==} - engines: {node: '>=6.0.0'} - dev: false - /nodemailer@6.9.8: resolution: {integrity: sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==} engines: {node: '>=6.0.0'} @@ -19594,12 +19702,14 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 + dev: true /npmlog@5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} @@ -19754,12 +19864,14 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: true /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 + dev: true /open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} @@ -19778,15 +19890,6 @@ packages: is-wsl: 2.2.0 dev: true - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - /openapi-typescript@6.7.3: resolution: {integrity: sha512-es3mGcDXV6TKPo6n3aohzHm0qxhLyR39MhF6mkD1FwFGjhxnqMqfSIgM0eCpInZvqatve4CxmXcMZw3jnnsaXw==} hasBin: true @@ -19855,14 +19958,6 @@ packages: resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} dev: true - /os-name@4.0.1: - resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==} - engines: {node: '>=10'} - dependencies: - macos-release: 2.5.1 - windows-release: 4.0.0 - dev: true - /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -20187,6 +20282,7 @@ packages: /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} + dev: true /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -20262,6 +20358,11 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + /picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + dev: true + /pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} engines: {node: '>=0.10'} @@ -20296,7 +20397,7 @@ packages: /pino-abstract-transport@1.1.0: resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} dependencies: - readable-stream: 4.4.2 + readable-stream: 4.5.2 split2: 4.2.0 dev: false @@ -20304,7 +20405,7 @@ packages: resolution: {integrity: sha512-Q9QDNEz0vQmbJtMFjOVr2c9yL92vHudjmr3s3m6J1hbw3DBGFZJm3TIj9TWyynZ4GEsEA9SOtni4heRUr6lNOg==} dependencies: get-caller-file: 2.0.5 - pino: 8.17.1 + pino: 8.17.2 pino-std-serializers: 6.2.2 process-warning: 3.0.0 dev: false @@ -20323,9 +20424,9 @@ packages: on-exit-leak-free: 2.1.2 pino-abstract-transport: 1.1.0 pump: 3.0.0 - readable-stream: 4.4.2 + readable-stream: 4.5.2 secure-json-parse: 2.7.0 - sonic-boom: 3.7.0 + sonic-boom: 3.8.0 strip-json-comments: 3.1.1 dev: false @@ -20333,8 +20434,8 @@ packages: resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} dev: false - /pino@8.17.1: - resolution: {integrity: sha512-YoN7/NJgnsJ+fkADZqjhRt96iepWBndQHeClmSBH0sQWCb8zGD74t00SK4eOtKFi/f8TUmQnfmgglEhd2kI1RQ==} + /pino@8.17.2: + resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==} hasBin: true dependencies: atomic-sleep: 1.0.0 @@ -20342,11 +20443,11 @@ packages: on-exit-leak-free: 2.1.2 pino-abstract-transport: 1.1.0 pino-std-serializers: 6.2.2 - process-warning: 2.3.2 + process-warning: 3.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.4.3 - sonic-boom: 3.7.0 + sonic-boom: 3.8.0 thread-stream: 2.4.1 dev: false @@ -20415,7 +20516,7 @@ packages: resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: true /posix-character-classes@0.1.1: @@ -20430,7 +20531,7 @@ packages: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-calc@8.2.4(postcss@8.4.33): @@ -20439,7 +20540,7 @@ packages: postcss: ^8.2.2 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true @@ -20453,19 +20554,21 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-color-functional-notation@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-FsjSmlSufuiFBsIqQ++VxFmvX7zKndZpBkHmfXr4wqhvzM92FTEkAh703iqWTl1U3faTgqioIqCbfqdWiFVwtw==} + /postcss-color-functional-notation@6.0.4(postcss@8.4.33): + resolution: {integrity: sha512-YBzfVvVUNR4U3N0imzU1NPKCuwxzfHJkEP6imJxzsJ8LozRKeej9mWmg9Ef1ovJdb0xrGTRVzUxgTrMun5iw/Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 - postcss-value-parser: 4.2.0 dev: true - /postcss-color-hex-alpha@9.0.2(postcss@8.4.33): - resolution: {integrity: sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==} + /postcss-color-hex-alpha@9.0.3(postcss@8.4.33): + resolution: {integrity: sha512-7sEHU4tAS6htlxun8AB9LDrCXoljxaC34tFVRlYKcvO+18r5fvGiXgv5bQzN40+4gXLCyWSMRK5FK31244WcCA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -20474,8 +20577,8 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-color-rebeccapurple@9.0.1(postcss@8.4.33): - resolution: {integrity: sha512-ds4cq5BjRieizVb2PnvbJ0omg9VCo2/KzluvoFZbxuGpsGJ5BQSD93CHBooinEtangCM5YqUOerGDl4xGmOb6Q==} + /postcss-color-rebeccapurple@9.0.2(postcss@8.4.33): + resolution: {integrity: sha512-f+RDEAPW2m8UbJWkSpRfV+QxhSaQhDMihI75DVGJJh4oRIoegjheeRtINFJum9D8BqGJcvD4GLjggTvCwZ4zuA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -20514,22 +20617,22 @@ packages: peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) postcss: 8.4.33 dev: true - /postcss-custom-properties@13.3.2(postcss@8.4.33): - resolution: {integrity: sha512-2Coszybpo8lpLY24vy2CYv9AasiZ39/bs8Imv0pWMq55Gl8NWzfc24OAo3zIX7rc6uUJAqESnVOMZ6V6lpMjJA==} + /postcss-custom-properties@13.3.4(postcss@8.4.33): + resolution: {integrity: sha512-9YN0gg9sG3OH+Z9xBrp2PWRb+O4msw+5Sbp3ZgqrblrwKspXVQe5zr5sVqi43gJGwW/Rv1A483PRQUzQOEewvA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true @@ -20540,21 +20643,21 @@ packages: peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /postcss-dir-pseudo-class@8.0.0(postcss@8.4.33): - resolution: {integrity: sha512-Oy5BBi0dWPwij/IA+yDYj+/OBMQ9EPqAzTHeSNUYrUWdll/PRJmcbiUj0MNcsBi681I1gcSTLvMERPaXzdbvJg==} + /postcss-dir-pseudo-class@8.0.1(postcss@8.4.33): + resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-discard-comments@5.1.2(postcss@8.4.33): @@ -20593,13 +20696,13 @@ packages: postcss: 8.4.33 dev: true - /postcss-double-position-gradients@5.0.2(postcss@8.4.33): - resolution: {integrity: sha512-KTbvdOOy8z8zb0BTkEg4/1vqlRlApdvjw8/pFoehgQl0WVO+fezDGlvo0B8xRA+XccA7ohkQCULKNsiNOx70Cw==} + /postcss-double-position-gradients@5.0.3(postcss@8.4.33): + resolution: {integrity: sha512-QKYpwmaSm6HcdS0ndAuWSNNMv78R1oSySoh3mYBmctHWr2KWcwPJVakdOyU4lvFVW0GRu9wfIQwGeM4p3xU9ow==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true @@ -20612,24 +20715,24 @@ packages: postcss: 8.4.33 dev: true - /postcss-focus-visible@9.0.0(postcss@8.4.33): - resolution: {integrity: sha512-zA4TbVaIaT8npZBEROhZmlc+GBKE8AELPHXE7i4TmIUEQhw/P/mSJfY9t6tBzpQ1rABeGtEOHYrW4SboQeONMQ==} + /postcss-focus-visible@9.0.1(postcss@8.4.33): + resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /postcss-focus-within@8.0.0(postcss@8.4.33): - resolution: {integrity: sha512-E7+J9nuQzZaA37D/MUZMX1K817RZGDab8qw6pFwzAkDd/QtlWJ9/WTKmzewNiuxzeq6WWY7ATiRePVoDKp+DnA==} + /postcss-focus-within@8.0.1(postcss@8.4.33): + resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-font-variant@5.0.0(postcss@8.4.33): @@ -20640,8 +20743,8 @@ packages: postcss: 8.4.33 dev: true - /postcss-gap-properties@5.0.0(postcss@8.4.33): - resolution: {integrity: sha512-YjsEEL6890P7MCv6fch6Am1yq0EhQCJMXyT4LBohiu87+4/WqR7y5W3RIv53WdA901hhytgRvjlrAhibhW4qsA==} + /postcss-gap-properties@5.0.1(postcss@8.4.33): + resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -20649,8 +20752,8 @@ packages: postcss: 8.4.33 dev: true - /postcss-image-set-function@6.0.1(postcss@8.4.33): - resolution: {integrity: sha512-VlZncC9hhZ5tg0JllY4g6Z28BeoPO8DIkelioEEkXL0AA0IORlqYpTi2L8TUnl4YQrlwvBgxVy+mdZJw5R/cIQ==} + /postcss-image-set-function@6.0.2(postcss@8.4.33): + resolution: {integrity: sha512-/O1xwqpJiz/apxGQi7UUfv1xUcorvkHZfvCYHPpRxxZj2WvjD0rg0+/+c+u5/Do5CpUg3XvfYxMrhcnjW1ArDQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -20679,16 +20782,16 @@ packages: camelcase-css: 2.0.1 postcss: 8.4.33 - /postcss-lab-function@6.0.7(postcss@8.4.33): - resolution: {integrity: sha512-4d1lhDVPukHFqkMv4G5vVcK+tgY52vwb5uR1SWKOaO5389r2q8fMxBWuXSW+YtbCOEGP0/X9KERi9E9le2pJuw==} + /postcss-lab-function@6.0.9(postcss@8.4.33): + resolution: {integrity: sha512-PKFAVTBEWJYsoSTD7Kp/OzeiMsXaLX39Pv75XgUyF5VrbMfeTw+JqCGsvDP3dPhclh6BemdCFHcjXBG9gO4UCg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) + '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) postcss: 8.4.33 dev: true @@ -20723,7 +20826,7 @@ packages: dependencies: lilconfig: 3.0.0 postcss: 8.4.33 - ts-node: 10.9.2(@swc/core@1.3.101)(@types/node@18.18.2)(typescript@5.3.3) + ts-node: 10.9.2(@swc/core@1.3.102)(@types/node@18.18.2)(typescript@5.3.3) yaml: 2.3.4 /postcss-loader@4.3.0(postcss@7.0.39)(webpack@5.89.0): @@ -20739,11 +20842,11 @@ packages: postcss: 7.0.39 schema-utils: 3.3.0 semver: 7.5.4 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true - /postcss-logical@7.0.0(postcss@8.4.33): - resolution: {integrity: sha512-zYf3vHkoW82f5UZTEXChTJvH49Yl9X37axTZsJGxrCG2kOUwtaAoz9E7tqYg0lsIoJLybaL8fk/2mOi81zVIUw==} + /postcss-logical@7.0.1(postcss@8.4.33): + resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -20773,7 +20876,7 @@ packages: caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.33) postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-minify-font-values@5.1.0(postcss@8.4.33): @@ -20817,7 +20920,7 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-modules-extract-imports@2.0.0: @@ -20842,7 +20945,7 @@ packages: dependencies: icss-utils: 4.1.1 postcss: 7.0.39 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true @@ -20854,7 +20957,7 @@ packages: dependencies: icss-utils: 5.1.0(postcss@8.4.33) postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true @@ -20863,17 +20966,17 @@ packages: engines: {node: '>= 6'} dependencies: postcss: 7.0.39 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.33): - resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + /postcss-modules-scope@3.1.0(postcss@8.4.33): + resolution: {integrity: sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-modules-values@3.0.0: @@ -20904,7 +21007,7 @@ packages: postcss: 8.4.33 postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) postcss-modules-local-by-default: 4.0.3(postcss@8.4.33) - postcss-modules-scope: 3.0.0(postcss@8.4.33) + postcss-modules-scope: 3.1.0(postcss@8.4.33) postcss-modules-values: 4.0.0(postcss@8.4.33) string-hash: 1.1.3 dev: true @@ -20916,17 +21019,17 @@ packages: postcss: ^8.2.14 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 - /postcss-nesting@12.0.1(postcss@8.4.33): - resolution: {integrity: sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==} + /postcss-nesting@12.0.2(postcss@8.4.33): + resolution: {integrity: sha512-63PpJHSeNs93S3ZUIyi+7kKx4JqOIEJ6QYtG3x+0qA4J03+4n0iwsyA1GAHyWxsHYljQS4/4ZK1o2sMi70b5wQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) + '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-normalize-charset@5.1.0(postcss@8.4.33): @@ -21040,8 +21143,8 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-overflow-shorthand@5.0.0(postcss@8.4.33): - resolution: {integrity: sha512-2rlxDyeSics/hC2FuMdPnWiP9WUPZ5x7FTuArXLFVpaSQ2woPSfZS4RD59HuEokbZhs/wPUQJ1E3MT6zVv94MQ==} + /postcss-overflow-shorthand@5.0.1(postcss@8.4.33): + resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -21058,8 +21161,8 @@ packages: postcss: 8.4.33 dev: true - /postcss-place@9.0.0(postcss@8.4.33): - resolution: {integrity: sha512-qLEPD9VPH5opDVemwmRaujODF9nExn24VOC3ghgVLEvfYN7VZLwJHes0q/C9YR5hI2UC3VgBE8Wkdp1TxCXhtg==} + /postcss-place@9.0.1(postcss@8.4.33): + resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -21074,77 +21177,77 @@ packages: peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-cascade-layers': 4.0.1(postcss@8.4.33) - '@csstools/postcss-color-function': 3.0.7(postcss@8.4.33) - '@csstools/postcss-color-mix-function': 2.0.7(postcss@8.4.33) - '@csstools/postcss-exponential-functions': 1.0.1(postcss@8.4.33) - '@csstools/postcss-font-format-keywords': 3.0.0(postcss@8.4.33) - '@csstools/postcss-gamut-mapping': 1.0.0(postcss@8.4.33) - '@csstools/postcss-gradients-interpolation-method': 4.0.7(postcss@8.4.33) - '@csstools/postcss-hwb-function': 3.0.6(postcss@8.4.33) - '@csstools/postcss-ic-unit': 3.0.2(postcss@8.4.33) - '@csstools/postcss-initial': 1.0.0(postcss@8.4.33) - '@csstools/postcss-is-pseudo-class': 4.0.3(postcss@8.4.33) - '@csstools/postcss-logical-float-and-clear': 2.0.0(postcss@8.4.33) - '@csstools/postcss-logical-overflow': 1.0.0(postcss@8.4.33) - '@csstools/postcss-logical-overscroll-behavior': 1.0.0(postcss@8.4.33) - '@csstools/postcss-logical-resize': 2.0.0(postcss@8.4.33) - '@csstools/postcss-logical-viewport-units': 2.0.3(postcss@8.4.33) - '@csstools/postcss-media-minmax': 1.1.0(postcss@8.4.33) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.3(postcss@8.4.33) - '@csstools/postcss-nested-calc': 3.0.0(postcss@8.4.33) - '@csstools/postcss-normalize-display-values': 3.0.1(postcss@8.4.33) - '@csstools/postcss-oklab-function': 3.0.7(postcss@8.4.33) - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - '@csstools/postcss-relative-color-syntax': 2.0.7(postcss@8.4.33) - '@csstools/postcss-scope-pseudo-class': 3.0.0(postcss@8.4.33) - '@csstools/postcss-stepped-value-functions': 3.0.2(postcss@8.4.33) - '@csstools/postcss-text-decoration-shorthand': 3.0.3(postcss@8.4.33) - '@csstools/postcss-trigonometric-functions': 3.0.2(postcss@8.4.33) - '@csstools/postcss-unset-value': 3.0.0(postcss@8.4.33) + '@csstools/postcss-cascade-layers': 4.0.2(postcss@8.4.33) + '@csstools/postcss-color-function': 3.0.9(postcss@8.4.33) + '@csstools/postcss-color-mix-function': 2.0.9(postcss@8.4.33) + '@csstools/postcss-exponential-functions': 1.0.3(postcss@8.4.33) + '@csstools/postcss-font-format-keywords': 3.0.1(postcss@8.4.33) + '@csstools/postcss-gamut-mapping': 1.0.2(postcss@8.4.33) + '@csstools/postcss-gradients-interpolation-method': 4.0.9(postcss@8.4.33) + '@csstools/postcss-hwb-function': 3.0.8(postcss@8.4.33) + '@csstools/postcss-ic-unit': 3.0.3(postcss@8.4.33) + '@csstools/postcss-initial': 1.0.1(postcss@8.4.33) + '@csstools/postcss-is-pseudo-class': 4.0.4(postcss@8.4.33) + '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.33) + '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.33) + '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.33) + '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.33) + '@csstools/postcss-logical-viewport-units': 2.0.5(postcss@8.4.33) + '@csstools/postcss-media-minmax': 1.1.2(postcss@8.4.33) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.5(postcss@8.4.33) + '@csstools/postcss-nested-calc': 3.0.1(postcss@8.4.33) + '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.33) + '@csstools/postcss-oklab-function': 3.0.9(postcss@8.4.33) + '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.33) + '@csstools/postcss-relative-color-syntax': 2.0.9(postcss@8.4.33) + '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.33) + '@csstools/postcss-stepped-value-functions': 3.0.4(postcss@8.4.33) + '@csstools/postcss-text-decoration-shorthand': 3.0.4(postcss@8.4.33) + '@csstools/postcss-trigonometric-functions': 3.0.4(postcss@8.4.33) + '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.33) autoprefixer: 10.4.16(postcss@8.4.33) browserslist: 4.22.2 - css-blank-pseudo: 6.0.0(postcss@8.4.33) - css-has-pseudo: 6.0.0(postcss@8.4.33) - css-prefers-color-scheme: 9.0.0(postcss@8.4.33) - cssdb: 7.9.0 + css-blank-pseudo: 6.0.1(postcss@8.4.33) + css-has-pseudo: 6.0.1(postcss@8.4.33) + css-prefers-color-scheme: 9.0.1(postcss@8.4.33) + cssdb: 7.10.0 postcss: 8.4.33 postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.33) postcss-clamp: 4.1.0(postcss@8.4.33) - postcss-color-functional-notation: 6.0.2(postcss@8.4.33) - postcss-color-hex-alpha: 9.0.2(postcss@8.4.33) - postcss-color-rebeccapurple: 9.0.1(postcss@8.4.33) + postcss-color-functional-notation: 6.0.4(postcss@8.4.33) + postcss-color-hex-alpha: 9.0.3(postcss@8.4.33) + postcss-color-rebeccapurple: 9.0.2(postcss@8.4.33) postcss-custom-media: 10.0.2(postcss@8.4.33) - postcss-custom-properties: 13.3.2(postcss@8.4.33) + postcss-custom-properties: 13.3.4(postcss@8.4.33) postcss-custom-selectors: 7.1.6(postcss@8.4.33) - postcss-dir-pseudo-class: 8.0.0(postcss@8.4.33) - postcss-double-position-gradients: 5.0.2(postcss@8.4.33) - postcss-focus-visible: 9.0.0(postcss@8.4.33) - postcss-focus-within: 8.0.0(postcss@8.4.33) + postcss-dir-pseudo-class: 8.0.1(postcss@8.4.33) + postcss-double-position-gradients: 5.0.3(postcss@8.4.33) + postcss-focus-visible: 9.0.1(postcss@8.4.33) + postcss-focus-within: 8.0.1(postcss@8.4.33) postcss-font-variant: 5.0.0(postcss@8.4.33) - postcss-gap-properties: 5.0.0(postcss@8.4.33) - postcss-image-set-function: 6.0.1(postcss@8.4.33) - postcss-lab-function: 6.0.7(postcss@8.4.33) - postcss-logical: 7.0.0(postcss@8.4.33) - postcss-nesting: 12.0.1(postcss@8.4.33) + postcss-gap-properties: 5.0.1(postcss@8.4.33) + postcss-image-set-function: 6.0.2(postcss@8.4.33) + postcss-lab-function: 6.0.9(postcss@8.4.33) + postcss-logical: 7.0.1(postcss@8.4.33) + postcss-nesting: 12.0.2(postcss@8.4.33) postcss-opacity-percentage: 2.0.0(postcss@8.4.33) - postcss-overflow-shorthand: 5.0.0(postcss@8.4.33) + postcss-overflow-shorthand: 5.0.1(postcss@8.4.33) postcss-page-break: 3.0.4(postcss@8.4.33) - postcss-place: 9.0.0(postcss@8.4.33) - postcss-pseudo-class-any-link: 9.0.0(postcss@8.4.33) + postcss-place: 9.0.1(postcss@8.4.33) + postcss-pseudo-class-any-link: 9.0.1(postcss@8.4.33) postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.33) postcss-selector-not: 7.0.1(postcss@8.4.33) postcss-value-parser: 4.2.0 dev: true - /postcss-pseudo-class-any-link@9.0.0(postcss@8.4.33): - resolution: {integrity: sha512-QNCYIL98VKFKY6HGDEJpF6+K/sg9bxcUYnOmNHJxZS5wsFDFaVoPeG68WAuhsqwbIBSo/b9fjEnTwY2mTSD+uA==} + /postcss-pseudo-class-any-link@9.0.1(postcss@8.4.33): + resolution: {integrity: sha512-cKYGGZ9yzUZi+dZd7XT2M8iSDfo+T2Ctbpiizf89uBTBfIpZpjvTavzIJXpCReMVXSKROqzpxClNu6fz4DHM0Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-reduce-initial@5.1.2(postcss@8.4.33): @@ -21183,11 +21286,11 @@ packages: postcss: ^8.4 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -21211,7 +21314,7 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-value-parser@4.2.0: @@ -21324,7 +21427,7 @@ packages: display-notification: 2.0.0 fixpack: 4.0.0 get-port: 5.1.1 - mailparser: 3.6.5 + mailparser: 3.6.6 nodemailer: 6.9.8 open: 7.4.2 p-event: 4.2.0 @@ -21355,7 +21458,7 @@ packages: /probe.gl@3.6.0: resolution: {integrity: sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@probe.gl/env': 3.6.0 '@probe.gl/log': 3.6.0 '@probe.gl/stats': 3.6.0 @@ -21369,10 +21472,6 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - /process-warning@2.3.2: - resolution: {integrity: sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==} - dev: false - /process-warning@3.0.0: resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} dev: false @@ -21386,6 +21485,11 @@ packages: engines: {node: '>=0.4.0'} dev: false + /promise-coalesce@1.1.2: + resolution: {integrity: sha512-zLaJ9b8hnC564fnJH6NFSOGZYYdzrAJn2JUUIwzoQb32fG2QAakpDNM+CZo1km6keXkRXRM+hml1BFAPVnPkxg==} + engines: {node: '>=16'} + dev: false + /promise-inflight@1.0.1(bluebird@3.7.2): resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -21657,6 +21761,15 @@ packages: dependencies: side-channel: 1.0.4 + /query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + /querystring-es3@0.2.1: resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} engines: {node: '>=0.4.x'} @@ -21758,13 +21871,13 @@ packages: tween-functions: 1.2.0 dev: false - /react-day-picker@8.10.0(date-fns@2.30.0)(react@18.2.0): + /react-day-picker@8.10.0(date-fns@3.1.0)(react@18.2.0): resolution: {integrity: sha512-mz+qeyrOM7++1NCb1ARXmkjMkzWVh2GL9YiPbRjKe0zHccvekk4HE+0MPOZOrosn8r8zTHIIeOUXTmXRqmkRmg==} peerDependencies: date-fns: ^2.28.0 || ^3.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - date-fns: 2.30.0 + date-fns: 3.1.0 react: 18.2.0 dev: false @@ -21826,7 +21939,7 @@ packages: peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 dev: false @@ -21836,7 +21949,7 @@ packages: react: '>= 16.3.0' react-dom: '>= 16.3.0' dependencies: - clsx: 2.0.0 + clsx: 2.1.0 fast-equals: 4.0.3 prop-types: 15.8.1 react: 18.2.0 @@ -21864,6 +21977,16 @@ packages: react: 18.2.0 dev: false + /react-hotkeys-hook@4.4.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-G6psp7OUm9xxY4G2vL48tBwWUVJLvD/PeInaPdPvqRJ8GoXBu6Djqr6WIw5gu1M0SbR1epNUlvpccxu2ZzmtFQ==} + peerDependencies: + react: '>=16.8.1' + react-dom: '>=16.8.1' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /react-i18next@13.3.0(i18next@23.5.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-FlR9xjYHSPIJfQspEmkN0yOlxgRyNuiJKJ8gCaZH08UJ7SZHG+VrptEPcpEMEchjNoCOZdKcvJ3PnmHEZhkeXg==} peerDependencies: @@ -21877,7 +22000,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 html-parse-stringify: 3.0.1 i18next: 23.5.1 react: 18.2.0 @@ -21955,7 +22078,7 @@ packages: react-remove-scroll-bar: 2.3.4(@types/react@18.2.45)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.45)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.0(@types/react@18.2.45)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.45)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.45)(react@18.2.0) dev: false @@ -21974,9 +22097,19 @@ packages: react-remove-scroll-bar: 2.3.4(@types/react@18.2.45)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.45)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.0(@types/react@18.2.45)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.45)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.45)(react@18.2.0) + /react-resizable-panels@1.0.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CluJkHQheeNqIJly2FYDfri3ME+2h2nCXpf0Y+hTO1K1eVtNxXFA5hVp5cUD6NS70iiufswOmnku9QZiLr1hYg==} + peerDependencies: + react: ^16.14.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /react-resizable@3.0.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} peerDependencies: @@ -22045,7 +22178,7 @@ packages: peerDependencies: react: '>= 0.14.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 highlight.js: 10.7.3 lowlight: 1.20.0 prismjs: 1.29.0 @@ -22059,7 +22192,7 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 use-composed-ref: 1.3.0(react@18.2.0) use-latest: 1.2.1(@types/react@18.2.45)(react@18.2.0) @@ -22191,8 +22324,8 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream@4.4.2: - resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: abort-controller: 3.0.0 @@ -22259,7 +22392,7 @@ packages: react: ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - clsx: 2.0.0 + clsx: 2.1.0 eventemitter3: 4.0.7 lodash: 4.17.21 prop-types: 15.8.1 @@ -22342,13 +22475,13 @@ packages: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} dev: true - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: true /regex-not@1.0.2: @@ -22680,7 +22813,7 @@ packages: jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 - terser: 5.25.0 + terser: 5.26.0 dev: true /rollup-plugin-typescript2@0.32.1(rollup@2.79.1)(typescript@4.9.5): @@ -22698,8 +22831,8 @@ packages: typescript: 4.9.5 dev: true - /rollup-plugin-visualizer@5.10.0(rollup@2.79.1): - resolution: {integrity: sha512-N4AkNL0qFvipegbDJ0kupS+8eKGjL0q+lYwV46NflLX/B8Rh73wz3kCIdg50bR6XVhNcaMA4Eb519xtm90Ckfg==} + /rollup-plugin-visualizer@5.12.0(rollup@2.79.1): + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} engines: {node: '>=14'} hasBin: true peerDependencies: @@ -22737,31 +22870,33 @@ packages: fsevents: 2.3.3 dev: true - /rollup@4.9.1: - resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} + /rollup@4.9.4: + resolution: {integrity: sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.1 - '@rollup/rollup-android-arm64': 4.9.1 - '@rollup/rollup-darwin-arm64': 4.9.1 - '@rollup/rollup-darwin-x64': 4.9.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 - '@rollup/rollup-linux-arm64-gnu': 4.9.1 - '@rollup/rollup-linux-arm64-musl': 4.9.1 - '@rollup/rollup-linux-riscv64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-musl': 4.9.1 - '@rollup/rollup-win32-arm64-msvc': 4.9.1 - '@rollup/rollup-win32-ia32-msvc': 4.9.1 - '@rollup/rollup-win32-x64-msvc': 4.9.1 + '@rollup/rollup-android-arm-eabi': 4.9.4 + '@rollup/rollup-android-arm64': 4.9.4 + '@rollup/rollup-darwin-arm64': 4.9.4 + '@rollup/rollup-darwin-x64': 4.9.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.4 + '@rollup/rollup-linux-arm64-gnu': 4.9.4 + '@rollup/rollup-linux-arm64-musl': 4.9.4 + '@rollup/rollup-linux-riscv64-gnu': 4.9.4 + '@rollup/rollup-linux-x64-gnu': 4.9.4 + '@rollup/rollup-linux-x64-musl': 4.9.4 + '@rollup/rollup-win32-arm64-msvc': 4.9.4 + '@rollup/rollup-win32-ia32-msvc': 4.9.4 + '@rollup/rollup-win32-x64-msvc': 4.9.4 fsevents: 2.3.3 dev: true /rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /run-applescript@3.2.0: @@ -22771,17 +22906,16 @@ packages: execa: 0.10.0 dev: false - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} dev: true + /run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -22844,6 +22978,9 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -23036,11 +23173,14 @@ packages: safe-buffer: 5.2.1 dev: true - /shadcn-ui@0.2.2(typescript@5.3.3): - resolution: {integrity: sha512-T76EeZymSB45Yz63gkYOv9P0Ke+UA9IZenysx+975nyNzXxU7HRBgfwuHiMcrcubtOLrzRVedTLX3lcOMqDeRQ==} + /shadcn-ui@0.6.0(typescript@5.3.3): + resolution: {integrity: sha512-z0mIhlj+wDwxO8ZtVq7ZiM7H1i6F9AV90bTDBcON0fUJ0ayHf9GnIyDUWfhpzJwDlv7acdvmp/NyAL8RbsmlRA==} hasBin: true dependencies: '@antfu/ni': 0.21.12 + '@babel/core': 7.23.7 + '@babel/parser': 7.23.6 + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) chalk: 5.2.0 commander: 10.0.1 cosmiconfig: 8.3.6(typescript@5.3.3) @@ -23048,9 +23188,11 @@ packages: execa: 7.2.0 fs-extra: 11.2.0 https-proxy-agent: 6.2.1 + lodash.template: 4.5.0 node-fetch: 3.3.2 ora: 6.3.1 prompts: 2.4.2 + recast: 0.23.4 ts-morph: 18.0.0 tsconfig-paths: 4.2.0 zod: 3.22.4 @@ -23303,12 +23445,22 @@ packages: - supports-color dev: true - /sonic-boom@3.7.0: - resolution: {integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==} + /sonic-boom@3.8.0: + resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==} dependencies: atomic-sleep: 1.0.0 dev: false + /sonner@1.3.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+rOAO56b2eI3q5BtgljERSn2umRk63KFIvgb2ohbZ5X+Eb5u+a/7/0ZgswYqgBMg8dyl7n6OXd9KasA8QF9ToA==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /source-list-map@2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} dev: true @@ -23400,6 +23552,10 @@ packages: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true + /split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + /split-string@3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} @@ -23491,8 +23647,8 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - /std-env@3.6.0: - resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true /stdin-discarder@0.1.0: @@ -23551,6 +23707,10 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + /strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -23694,10 +23854,12 @@ packages: /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + dev: true /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + dev: true /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -23718,9 +23880,12 @@ packages: /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 dev: true + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + /style-inject@0.3.0: resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} dev: true @@ -23733,7 +23898,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 2.7.1 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /style-loader@2.0.0(webpack@5.89.0): @@ -23744,7 +23909,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /style-loader@3.3.3(webpack@5.89.0): @@ -23753,7 +23918,7 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /style-mod@4.1.0: @@ -23766,7 +23931,7 @@ packages: inline-style-parser: 0.2.2 dev: false - /styled-jsx@5.1.0(@babel/core@7.23.5)(react@18.2.0): + /styled-jsx@5.1.0(@babel/core@7.23.7)(react@18.2.0): resolution: {integrity: sha512-/iHaRJt9U7T+5tp6TRelLnqBqiaIT0HsO0+vgyj8hK2KUk7aejFqRrumqPUlAqDwAj8IbS/1hk3IhBAAK/FCUQ==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -23779,7 +23944,7 @@ packages: babel-plugin-macros: optional: true dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 client-only: 0.0.1 react: 18.2.0 dev: false @@ -23792,21 +23957,21 @@ packages: dependencies: browserslist: 4.22.2 postcss: 8.4.33 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true - /stylis@4.3.0: - resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} dev: false - /sucrase@3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 - glob: 7.1.6 + glob: 10.3.10 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -23863,8 +24028,8 @@ packages: stable: 0.1.8 dev: true - /svgo@3.0.5: - resolution: {integrity: sha512-HQKHEo73pMNOlDlBcLgZRcHW2+1wo7bFYayAXkGN0l/2+h68KjlfZyMRhdhaGvoHV2eApOovl12zoFz42sT6rQ==} + /svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -23881,14 +24046,14 @@ packages: resolution: {integrity: sha512-fu3aozjxFWsmcO1vyt1q1Ji2kN7KlTd1vHy27E9WgPyXo9nrEzhQPqgxaAjbMsOmb8XFKNGo4Sa3Q+84Fh+pFw==} dev: false - /swc-loader@0.2.3(@swc/core@1.3.101)(webpack@5.89.0): + /swc-loader@0.2.3(@swc/core@1.3.102)(webpack@5.89.0): resolution: {integrity: sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A==} peerDependencies: '@swc/core': ^1.2.147 webpack: '>=2' dependencies: - '@swc/core': 1.3.101 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + '@swc/core': 1.3.102 + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /symbol-observable@4.0.0: @@ -23930,17 +24095,26 @@ packages: resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} dev: true - /synckit@0.8.6: - resolution: {integrity: sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==} + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.4.2 + '@pkgr/core': 0.1.0 tslib: 2.6.2 + dev: false + + /synckit@0.9.0: + resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.0 + tslib: 2.6.2 + dev: true /tailwind-merge@2.2.0: resolution: {integrity: sha512-SqqhhaL0T06SW59+JVNfAqKdqLs0497esifRrZ7jOaefP3o64fdFNDMrAQWZFMxTLJPiHVjRLUywT8uFz1xNWQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /tailwind-scrollbar@3.0.5(tailwindcss@3.4.1): @@ -23984,9 +24158,9 @@ packages: postcss-js: 4.0.1(postcss@8.4.33) postcss-load-config: 4.0.2(postcss@8.4.33)(ts-node@10.9.2) postcss-nested: 6.0.1(postcss@8.4.33) - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 resolve: 1.22.8 - sucrase: 3.34.0 + sucrase: 3.35.0 transitivePeerDependencies: - ts-node @@ -24058,8 +24232,8 @@ packages: worker-farm: 1.7.0 dev: true - /terser-webpack-plugin@5.3.9(@swc/core@1.3.101)(esbuild@0.18.20)(webpack@5.89.0): - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + /terser-webpack-plugin@5.3.10(@swc/core@1.3.102)(esbuild@0.18.20)(webpack@5.89.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -24075,17 +24249,17 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.20 - '@swc/core': 1.3.101 + '@swc/core': 1.3.102 esbuild: 0.18.20 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.25.0 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + terser: 5.26.0 + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true - /terser-webpack-plugin@5.3.9(@swc/core@1.3.101)(webpack@5.89.0): - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + /terser-webpack-plugin@5.3.10(@swc/core@1.3.102)(webpack@5.89.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -24101,12 +24275,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.20 - '@swc/core': 1.3.101 + '@swc/core': 1.3.102 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.25.0 - webpack: 5.89.0(@swc/core@1.3.101) + terser: 5.26.0 + webpack: 5.89.0(@swc/core@1.3.102) dev: true /terser@4.8.1: @@ -24114,19 +24288,19 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - acorn: 8.11.2 + acorn: 8.11.3 commander: 2.20.3 source-map: 0.6.1 source-map-support: 0.5.21 dev: true - /terser@5.25.0: - resolution: {integrity: sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==} + /terser@5.26.0: + resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.5 - acorn: 8.11.2 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -24185,7 +24359,6 @@ packages: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 - dev: true /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -24236,12 +24409,8 @@ packages: engines: {node: '>=14.0.0'} dev: true - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - - /tlds@1.240.0: - resolution: {integrity: sha512-1OYJQenswGZSOdRw7Bql5Qu7uf75b+F3HFBXbqnG/ifHa0fev1XcG+3pJf3pA/KC6RtHQzfKgIf1vkMlMG7mtQ==} + /tlds@1.248.0: + resolution: {integrity: sha512-noj0KdpWTBhwsKxMOXk0rN9otg4kTgLm4WohERRHbJ9IY+kSDKr3RmjitaQ3JFzny+DyvBOQKlFZhp0G0qNSfg==} hasBin: true dev: false @@ -24295,8 +24464,8 @@ packages: safe-regex: 1.1.0 dev: true - /tocbot@4.23.0: - resolution: {integrity: sha512-5DWuSZXsqG894mkGb8ZsQt9myyQyVxE50AiGRZ0obV0BVUTVkaZmc9jbgpknaAAPUm4FIrzGkEseD6FuQJYJDQ==} + /tocbot@4.25.0: + resolution: {integrity: sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==} dev: true /toggle-selection@1.0.6: @@ -24406,7 +24575,7 @@ packages: semver: 7.5.4 source-map: 0.7.4 typescript: 5.3.3 - webpack: 5.89.0(@swc/core@1.3.101) + webpack: 5.89.0(@swc/core@1.3.102) dev: true /ts-mixer@6.0.3: @@ -24420,7 +24589,7 @@ packages: code-block-writer: 12.0.0 dev: true - /ts-node@10.9.2(@swc/core@1.3.101)(@types/node@18.18.2)(typescript@5.3.3): + /ts-node@10.9.2(@swc/core@1.3.102)(@types/node@18.18.2)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -24435,14 +24604,14 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@swc/core': 1.3.101 + '@swc/core': 1.3.102 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 18.18.2 - acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn: 8.11.3 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -24473,15 +24642,6 @@ packages: tsconfig-paths: 4.2.0 dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - /tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: @@ -24654,21 +24814,11 @@ packages: hasBin: true dev: true - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true - /uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} - dev: false - /uc.micro@2.0.0: resolution: {integrity: sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==} dev: false @@ -24750,7 +24900,7 @@ packages: '@types/concat-stream': 2.0.3 '@types/debug': 4.1.12 '@types/is-empty': 1.2.3 - '@types/node': 20.10.5 + '@types/node': 20.10.7 '@types/unist': 3.0.2 '@ungap/structured-clone': 1.2.0 concat-stream: 2.0.0 @@ -24890,23 +25040,23 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - /unplugin-swc@1.4.4(@swc/core@1.3.101): + /unplugin-swc@1.4.4(@swc/core@1.3.102): resolution: {integrity: sha512-S2mgLIQVNR1+UGIk379/wD3tmkTJfm9QJFyZgXutMDNsSJrcPNJUdSXUNGE/+1Zde9i/I0r0BvDqxGgTkg+eJQ==} peerDependencies: '@swc/core': ^1.2.108 dependencies: '@rollup/pluginutils': 5.1.0(rollup@2.79.1) - '@swc/core': 1.3.101 + '@swc/core': 1.3.102 load-tsconfig: 0.2.5 - unplugin: 1.5.1 + unplugin: 1.6.0 transitivePeerDependencies: - rollup dev: true - /unplugin@1.5.1: - resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==} + /unplugin@1.6.0: + resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 @@ -24920,10 +25070,6 @@ packages: isobject: 3.0.1 dev: true - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - /upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -24962,8 +25108,8 @@ packages: qs: 6.11.2 dev: true - /use-callback-ref@1.3.0(@types/react@18.2.45)(react@18.2.0): - resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + /use-callback-ref@1.3.1(@types/react@18.2.45)(react@18.2.0): + resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} engines: {node: '>=10'} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -25072,7 +25218,6 @@ packages: is-generator-function: 1.0.10 is-typed-array: 1.1.12 which-typed-array: 1.1.13 - dev: true /utila@0.4.0: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} @@ -25193,7 +25338,7 @@ packages: debug: 4.3.4 pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.10(@types/node@18.18.2) + vite: 5.0.11(@types/node@18.18.2) transitivePeerDependencies: - '@types/node' - less @@ -25205,7 +25350,7 @@ packages: - terser dev: true - /vite-plugin-svgr@4.2.0(rollup@2.79.1)(typescript@5.3.3)(vite@5.0.10): + /vite-plugin-svgr@4.2.0(rollup@2.79.1)(typescript@5.3.3)(vite@5.0.11): resolution: {integrity: sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==} peerDependencies: vite: ^2.6.0 || 3 || 4 || 5 @@ -25213,14 +25358,14 @@ packages: '@rollup/pluginutils': 5.1.0(rollup@2.79.1) '@svgr/core': 8.1.0(typescript@5.3.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) - vite: 5.0.10(@types/node@18.18.2) + vite: 5.0.11(@types/node@18.18.2) transitivePeerDependencies: - rollup - supports-color - typescript dev: true - /vite-tsconfig-paths@4.2.3(typescript@5.3.3)(vite@5.0.10): + /vite-tsconfig-paths@4.2.3(typescript@5.3.3)(vite@5.0.11): resolution: {integrity: sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==} peerDependencies: vite: '*' @@ -25231,14 +25376,14 @@ packages: debug: 4.3.4 globrex: 0.1.2 tsconfck: 2.1.2(typescript@5.3.3) - vite: 5.0.10(@types/node@18.18.2) + vite: 5.0.11(@types/node@18.18.2) transitivePeerDependencies: - supports-color - typescript dev: true - /vite@5.0.10(@types/node@18.18.2): - resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + /vite@5.0.11(@types/node@18.18.2): + resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -25266,9 +25411,9 @@ packages: optional: true dependencies: '@types/node': 18.18.2 - esbuild: 0.19.10 + esbuild: 0.19.11 postcss: 8.4.33 - rollup: 4.9.1 + rollup: 4.9.4 optionalDependencies: fsevents: 2.3.3 dev: true @@ -25317,7 +25462,7 @@ packages: '@vitest/utils': 1.1.3 acorn-walk: 8.3.1 cac: 6.7.14 - chai: 4.3.10 + chai: 4.4.0 debug: 4.3.4 execa: 8.0.1 happy-dom: 12.10.3 @@ -25325,11 +25470,11 @@ packages: magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.6.0 + std-env: 3.7.0 strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.8.1 - vite: 5.0.10(@types/node@18.18.2) + vite: 5.0.11(@types/node@18.18.2) vite-node: 1.1.3(@types/node@18.18.2) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -25401,6 +25546,13 @@ packages: defaults: 1.0.4 dev: true + /web-encoding@1.1.5: + resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + dependencies: + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + /web-resource-inliner@6.0.1: resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==} engines: {node: '>=10.0.0'} @@ -25415,8 +25567,8 @@ packages: - encoding dev: false - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + /web-streams-polyfill@3.3.2: + resolution: {integrity: sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==} engines: {node: '>= 8'} dev: true @@ -25433,8 +25585,8 @@ packages: engines: {node: '>= 10.13.0'} hasBin: true dependencies: - acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn: 8.11.3 + acorn-walk: 8.3.1 chalk: 4.1.2 commander: 6.2.1 gzip-size: 6.0.0 @@ -25459,7 +25611,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 3.3.0 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true /webpack-dev-middleware@6.1.1(webpack@5.89.0): @@ -25476,11 +25628,11 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.89.0(@swc/core@1.3.101)(esbuild@0.18.20) + webpack: 5.89.0(@swc/core@1.3.102)(esbuild@0.18.20) dev: true - /webpack-hot-middleware@2.25.4: - resolution: {integrity: sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w==} + /webpack-hot-middleware@2.26.0: + resolution: {integrity: sha512-okzjec5sAEy4t+7rzdT8eRyxsk0FDSmBPN2KwX4Qd+6+oQCfe5Ve07+u7cJvofgB+B4w5/4dO4Pz0jhhHyyPLQ==} dependencies: ansi-html-community: 0.0.8 html-entities: 2.4.0 @@ -25555,7 +25707,7 @@ packages: - supports-color dev: true - /webpack@5.89.0(@swc/core@1.3.101): + /webpack@5.89.0(@swc/core@1.3.102): resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'} hasBin: true @@ -25570,8 +25722,8 @@ packages: '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.11.2 - acorn-import-assertions: 1.9.0(acorn@8.11.2) + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) browserslist: 4.22.2 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 @@ -25586,7 +25738,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.3.101)(webpack@5.89.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.102)(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -25595,7 +25747,7 @@ packages: - uglify-js dev: true - /webpack@5.89.0(@swc/core@1.3.101)(esbuild@0.18.20): + /webpack@5.89.0(@swc/core@1.3.102)(esbuild@0.18.20): resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'} hasBin: true @@ -25610,8 +25762,8 @@ packages: '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.11.2 - acorn-import-assertions: 1.9.0(acorn@8.11.2) + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) browserslist: 4.22.2 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 @@ -25626,7 +25778,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.3.101)(esbuild@0.18.20)(webpack@5.89.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.102)(esbuild@0.18.20)(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -25743,13 +25895,6 @@ packages: string-width: 4.2.3 dev: false - /windows-release@4.0.0: - resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==} - engines: {node: '>=10'} - dependencies: - execa: 4.1.0 - dev: true - /winston-transport@4.6.0: resolution: {integrity: sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==} engines: {node: '>= 12.0.0'} @@ -25781,8 +25926,8 @@ packages: engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: false @@ -25880,6 +26025,20 @@ packages: optional: true dev: false + /xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.3.0 + xmlbuilder: 11.0.1 + + /xml@1.0.1: + resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} From 640b552cbc5d765429a9afbf7786d300f6e1a41d Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 13:24:13 +0800 Subject: [PATCH 03/10] revert(deps): vitest to `1.0.0` --- apps/nestjs-backend/package.json | 4 +- .../field-supplement.service.ts | 4 +- .../selection/selection.service.spec.ts | 1 + apps/nestjs-backend/test/table.e2e-spec.ts | 3 +- apps/nestjs-backend/vitest.config.ts | 3 +- apps/nextjs-app/package.json | 6 +- packages/core/package.json | 2 +- packages/sdk/package.json | 4 +- packages/ui-lib/package.json | 4 +- pnpm-lock.yaml | 133 +++++++++--------- 10 files changed, 81 insertions(+), 83 deletions(-) diff --git a/apps/nestjs-backend/package.json b/apps/nestjs-backend/package.json index db258b342..642e8de1e 100644 --- a/apps/nestjs-backend/package.json +++ b/apps/nestjs-backend/package.json @@ -90,7 +90,7 @@ "typescript": "5.3.3", "unplugin-swc": "1.4.4", "vite-tsconfig-paths": "4.2.3", - "vitest": "1.1.3", + "vitest": "1.1.0", "vitest-mock-extended": "1.3.1", "webpack": "5.89.0" }, @@ -153,7 +153,7 @@ "nanoid": "3.3.6", "nest-knexjs": "0.0.19", "nestjs-cls": "3.6.0", - "nestjs-pino": "3.5.0", + "nestjs-pino": "4.0.0", "nestjs-redoc": "2.2.2", "next": "13.0.2", "node-fetch": "2.7.0", diff --git a/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts b/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts index ceeaf6d0f..451dcdef2 100644 --- a/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts +++ b/apps/nestjs-backend/src/features/field/field-calculate/field-supplement.service.ts @@ -698,7 +698,9 @@ export class FieldSupplementService { } private async prepareUpdateUserField(fieldRo: IFieldRo, oldFieldVo: IFieldVo) { - return merge({}, oldFieldVo, fieldRo); + const mergeObj = merge({}, oldFieldVo, fieldRo); + + return this.prepareUserField(mergeObj); } private prepareUserField(field: IFieldRo) { diff --git a/apps/nestjs-backend/src/features/selection/selection.service.spec.ts b/apps/nestjs-backend/src/features/selection/selection.service.spec.ts index d7e983a5d..7e76ead9e 100644 --- a/apps/nestjs-backend/src/features/selection/selection.service.spec.ts +++ b/apps/nestjs-backend/src/features/selection/selection.service.spec.ts @@ -648,6 +648,7 @@ describe('selectionService', () => { tableId, viewId, clearRo.ranges, + undefined, undefined ); expect(selectionService['fillCells']).toHaveBeenCalledWith({ diff --git a/apps/nestjs-backend/test/table.e2e-spec.ts b/apps/nestjs-backend/test/table.e2e-spec.ts index 73472bb86..a48c43484 100644 --- a/apps/nestjs-backend/test/table.e2e-spec.ts +++ b/apps/nestjs-backend/test/table.e2e-spec.ts @@ -3,6 +3,7 @@ import type { INestApplication } from '@nestjs/common'; import type { ICreateTableRo } from '@teable-group/core'; import { FieldType, ViewType } from '@teable-group/core'; +import { DB_PROVIDER_SYMBOL } from '../src/db-provider/db.provider'; import type { IDbProvider } from '../src/db-provider/db.provider.interface'; import { createRecords, @@ -104,7 +105,7 @@ describe('OpenAPI FieldController (e2e)', () => { beforeAll(async () => { const appCtx = await initApp(); app = appCtx.app; - dbProvider = app.get('DbProvider'); + dbProvider = app.get(DB_PROVIDER_SYMBOL); }); afterAll(async () => { diff --git a/apps/nestjs-backend/vitest.config.ts b/apps/nestjs-backend/vitest.config.ts index 3ed971ee6..a10316d70 100644 --- a/apps/nestjs-backend/vitest.config.ts +++ b/apps/nestjs-backend/vitest.config.ts @@ -1,10 +1,11 @@ import swc from 'unplugin-swc'; +import tsconfigPaths from 'vite-tsconfig-paths'; import { defineConfig } from 'vitest/config'; const testFiles = ['**/src/**/*.{test,spec}.{js,ts}']; export default defineConfig({ - plugins: [swc.vite({})], + plugins: [swc.vite({}), tsconfigPaths()], test: { globals: true, environment: 'node', diff --git a/apps/nextjs-app/package.json b/apps/nextjs-app/package.json index 7c45b098c..022f5e453 100644 --- a/apps/nextjs-app/package.json +++ b/apps/nextjs-app/package.json @@ -93,7 +93,7 @@ "typescript": "5.3.3", "vite-plugin-svgr": "4.2.0", "vite-tsconfig-paths": "4.2.3", - "vitest": "1.1.3" + "vitest": "1.1.0" }, "dependencies": { "@antv/g6": "4.8.24", @@ -138,7 +138,7 @@ "knex": "3.0.1", "lodash": "4.17.21", "lru-cache": "10.1.0", - "lucide-react": "0.303.0", + "lucide-react": "0.307.0", "next": "13.0.2", "next-i18next": "14.0.3", "next-secure-headers": "2.2.0", @@ -152,7 +152,7 @@ "react-dom": "18.2.0", "react-error-boundary": "4.0.12", "react-grid-layout": "1.4.4", - "react-hook-form": "7.49.2", + "react-hook-form": "7.49.3", "react-hotkeys-hook": "4.4.3", "react-i18next": "13.3.0", "react-markdown": "9.0.1", diff --git a/packages/core/package.json b/packages/core/package.json index d79fa3f73..d8641d524 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -61,6 +61,6 @@ "size-limit": "11.0.1", "typescript": "5.3.3", "vite-tsconfig-paths": "4.2.3", - "vitest": "1.1.3" + "vitest": "1.1.0" } } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 62507aa39..6a456fe77 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -62,7 +62,7 @@ "knex": "3.0.1", "lodash": "4.17.21", "lru-cache": "10.1.0", - "lucide-react": "0.303.0", + "lucide-react": "0.307.0", "mousetrap": "1.6.5", "react-day-picker": "8.10.0", "react-hammerjs": "1.0.1", @@ -104,6 +104,6 @@ "typescript": "5.3.3", "vite-plugin-svgr": "4.2.0", "vite-tsconfig-paths": "4.2.3", - "vitest": "1.1.3" + "vitest": "1.1.0" } } diff --git a/packages/ui-lib/package.json b/packages/ui-lib/package.json index eb5842044..a47730aea 100644 --- a/packages/ui-lib/package.json +++ b/packages/ui-lib/package.json @@ -115,8 +115,8 @@ "deepmerge": "4.3.1", "next-themes": "0.2.1", "react-day-picker": "8.10.0", - "react-hook-form": "7.49.2", - "react-resizable-panels": "1.0.7", + "react-hook-form": "7.49.3", + "react-resizable-panels": "1.0.8", "sonner": "1.3.1", "tailwind-merge": "2.2.0", "tailwindcss-animate": "1.0.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0426e1ea..b9ba5b7dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -241,8 +241,8 @@ importers: specifier: 3.6.0 version: 3.6.0(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) nestjs-pino: - specifier: 3.5.0 - version: 3.5.0(@nestjs/common@10.3.0)(pino-http@9.0.0) + specifier: 4.0.0 + version: 4.0.0(@nestjs/common@10.3.0)(pino-http@9.0.0) nestjs-redoc: specifier: 2.2.2 version: 2.2.2(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(@nestjs/swagger@7.1.17)(reflect-metadata@0.1.13) @@ -422,11 +422,11 @@ importers: specifier: 4.2.3 version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: - specifier: 1.1.3 - version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) + specifier: 1.1.0 + version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) vitest-mock-extended: specifier: 1.3.1 - version: 1.3.1(typescript@5.3.3)(vitest@1.1.3) + version: 1.3.1(typescript@5.3.3)(vitest@1.1.0) webpack: specifier: 5.89.0 version: 5.89.0(@swc/core@1.3.102) @@ -477,7 +477,7 @@ importers: version: 5.0.16 '@hookform/resolvers': specifier: 3.3.4 - version: 3.3.4(react-hook-form@7.49.2) + version: 3.3.4(react-hook-form@7.49.3) '@nem035/gpt-3-encoder': specifier: 1.1.7 version: 1.1.7 @@ -560,8 +560,8 @@ importers: specifier: 10.1.0 version: 10.1.0 lucide-react: - specifier: 0.303.0 - version: 0.303.0(react@18.2.0) + specifier: 0.307.0 + version: 0.307.0(react@18.2.0) next: specifier: 13.0.2 version: 13.0.2(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) @@ -602,8 +602,8 @@ importers: specifier: 1.4.4 version: 1.4.4(react-dom@18.2.0)(react@18.2.0) react-hook-form: - specifier: 7.49.2 - version: 7.49.2(react@18.2.0) + specifier: 7.49.3 + version: 7.49.3(react@18.2.0) react-hotkeys-hook: specifier: 4.4.3 version: 4.4.3(react-dom@18.2.0)(react@18.2.0) @@ -685,7 +685,7 @@ importers: version: 9.3.3 '@testing-library/jest-dom': specifier: 6.2.0 - version: 6.2.0(vitest@1.1.3) + version: 6.2.0(vitest@1.1.0) '@testing-library/react': specifier: 14.1.2 version: 14.1.2(react-dom@18.2.0)(react@18.2.0) @@ -795,8 +795,8 @@ importers: specifier: 4.2.3 version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: - specifier: 1.1.3 - version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) + specifier: 1.1.0 + version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) packages/common-i18n: devDependencies: @@ -907,8 +907,8 @@ importers: specifier: 4.2.3 version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: - specifier: 1.1.3 - version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) + specifier: 1.1.0 + version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) packages/db-main-prisma: dependencies: @@ -1265,8 +1265,8 @@ importers: specifier: 10.1.0 version: 10.1.0 lucide-react: - specifier: 0.303.0 - version: 0.303.0(react@18.2.0) + specifier: 0.307.0 + version: 0.307.0(react@18.2.0) mousetrap: specifier: 1.6.5 version: 1.6.5 @@ -1306,7 +1306,7 @@ importers: version: link:../eslint-config-bases '@testing-library/jest-dom': specifier: 6.2.0 - version: 6.2.0(vitest@1.1.3) + version: 6.2.0(vitest@1.1.0) '@testing-library/react': specifier: 14.1.2 version: 14.1.2(react-dom@18.2.0)(react@18.2.0) @@ -1374,14 +1374,14 @@ importers: specifier: 4.2.3 version: 4.2.3(typescript@5.3.3)(vite@5.0.11) vitest: - specifier: 1.1.3 - version: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) + specifier: 1.1.0 + version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) packages/ui-lib: dependencies: '@hookform/resolvers': specifier: 3.3.4 - version: 3.3.4(react-hook-form@7.49.2) + version: 3.3.4(react-hook-form@7.49.3) '@radix-ui/react-alert-dialog': specifier: 1.0.5 version: 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) @@ -1461,11 +1461,11 @@ importers: specifier: 8.10.0 version: 8.10.0(date-fns@3.1.0)(react@18.2.0) react-hook-form: - specifier: 7.49.2 - version: 7.49.2(react@18.2.0) + specifier: 7.49.3 + version: 7.49.3(react@18.2.0) react-resizable-panels: - specifier: 1.0.7 - version: 1.0.7(react-dom@18.2.0)(react@18.2.0) + specifier: 1.0.8 + version: 1.0.8(react-dom@18.2.0)(react@18.2.0) sonner: specifier: 1.3.1 version: 1.3.1(react-dom@18.2.0)(react@18.2.0) @@ -4842,12 +4842,12 @@ packages: '@hapi/hoek': 9.3.0 dev: false - /@hookform/resolvers@3.3.4(react-hook-form@7.49.2): + /@hookform/resolvers@3.3.4(react-hook-form@7.49.3): resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==} peerDependencies: react-hook-form: ^7.0.0 dependencies: - react-hook-form: 7.49.2(react@18.2.0) + react-hook-form: 7.49.3(react@18.2.0) dev: false /@humanwhocodes/config-array@0.11.13: @@ -9519,7 +9519,7 @@ packages: redent: 3.0.0 dev: true - /@testing-library/jest-dom@6.2.0(vitest@1.1.3): + /@testing-library/jest-dom@6.2.0(vitest@1.1.0): resolution: {integrity: sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: @@ -9545,7 +9545,7 @@ packages: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) + vitest: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) dev: true /@testing-library/react@14.1.2(react-dom@18.2.0)(react@18.2.0): @@ -10423,41 +10423,40 @@ packages: - '@swc/helpers' dev: true - /@vitest/expect@1.1.3: - resolution: {integrity: sha512-MnJqsKc1Ko04lksF9XoRJza0bGGwTtqfbyrsYv5on4rcEkdo+QgUdITenBQBUltKzdxW7K3rWh+nXRULwsdaVg==} + /@vitest/expect@1.1.0: + resolution: {integrity: sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==} dependencies: - '@vitest/spy': 1.1.3 - '@vitest/utils': 1.1.3 + '@vitest/spy': 1.1.0 + '@vitest/utils': 1.1.0 chai: 4.4.0 dev: true - /@vitest/runner@1.1.3: - resolution: {integrity: sha512-Va2XbWMnhSdDEh/OFxyUltgQuuDRxnarK1hW5QNN4URpQrqq6jtt8cfww/pQQ4i0LjoYxh/3bYWvDFlR9tU73g==} + /@vitest/runner@1.1.0: + resolution: {integrity: sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==} dependencies: - '@vitest/utils': 1.1.3 + '@vitest/utils': 1.1.0 p-limit: 5.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@1.1.3: - resolution: {integrity: sha512-U0r8pRXsLAdxSVAyGNcqOU2H3Z4Y2dAAGGelL50O0QRMdi1WWeYHdrH/QWpN1e8juWfVKsb8B+pyJwTC+4Gy9w==} + /@vitest/snapshot@1.1.0: + resolution: {integrity: sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==} dependencies: magic-string: 0.30.5 pathe: 1.1.1 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.1.3: - resolution: {integrity: sha512-Ec0qWyGS5LhATFQtldvChPTAHv08yHIOZfiNcjwRQbFPHpkih0md9KAbs7TfeIfL7OFKoe7B/6ukBTqByubXkQ==} + /@vitest/spy@1.1.0: + resolution: {integrity: sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==} dependencies: tinyspy: 2.2.0 dev: true - /@vitest/utils@1.1.3: - resolution: {integrity: sha512-Dyt3UMcdElTll2H75vhxfpZu03uFpXRCHxWnzcrFjZxT1kTbq8ALUYIeBgGolo1gldVdI0YSlQRacsqxTwNqwg==} + /@vitest/utils@1.1.0: + resolution: {integrity: sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==} dependencies: diff-sequences: 29.6.3 - estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 dev: true @@ -14573,12 +14572,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==} - dependencies: - '@types/estree': 1.0.5 - dev: true - /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -17687,8 +17680,8 @@ packages: dependencies: yallist: 4.0.0 - /lucide-react@0.303.0(react@18.2.0): - resolution: {integrity: sha512-B0B9T3dLEFBYPCUlnUS1mvAhW1craSbF9HO+JfBjAtpFUJ7gMIqmEwNSclikY3RiN2OnCkj/V1ReAQpaHae8Bg==} + /lucide-react@0.307.0(react@18.2.0): + resolution: {integrity: sha512-+vZ+vUiWPZTMnLHURg4aoIaz6NHOWXVVcVd8iLROu1k4LbyjcnHIKmbjXHCmulz7XAYLWRVXzhJJgIr+Aq3vOg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: @@ -19388,13 +19381,13 @@ packages: rxjs: 7.8.1 dev: false - /nestjs-pino@3.5.0(@nestjs/common@10.3.0)(pino-http@9.0.0): - resolution: {integrity: sha512-IWJ3dzLVjg5istcd3Cz3rVO+gmvabfVAT1YmQgzL1HnC2hkc0H6qA6k6SZ7OIwQfewuRejYfPu3TlkxwRrqxHQ==} + /nestjs-pino@4.0.0(@nestjs/common@10.3.0)(pino-http@9.0.0): + resolution: {integrity: sha512-XhCg/R+l3w0BFP6MHyR6lU/BHVEV0tV9z24G0vuA9FD3sv+TQNvnO9uVsF1l/oVspgGfQ9Qulmb2UbsfYlI0+g==} engines: {node: '>= 14'} requiresBuild: true peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 - pino-http: ^6.4.0 || ^7.0.0 || ^8.0.0 + pino-http: ^6.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 dependencies: '@nestjs/common': 10.3.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) pino-http: 9.0.0 @@ -21968,8 +21961,8 @@ packages: react: 18.2.0 dev: false - /react-hook-form@7.49.2(react@18.2.0): - resolution: {integrity: sha512-TZcnSc17+LPPVpMRIDNVITY6w20deMdNi6iehTFLV1x8SqThXGwu93HjlUVU09pzFgZH7qZOvLMM7UYf2ShAHA==} + /react-hook-form@7.49.3(react@18.2.0): + resolution: {integrity: sha512-foD6r3juidAT1cOZzpmD/gOKt7fRsDhXXZ0y28+Al1CHgX+AY1qIN9VSIIItXRq1dN68QrRwl1ORFlwjBaAqeQ==} engines: {node: '>=18', pnpm: '8'} peerDependencies: react: ^16.8.0 || ^17 || ^18 @@ -22100,8 +22093,8 @@ packages: use-callback-ref: 1.3.1(@types/react@18.2.45)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.45)(react@18.2.0) - /react-resizable-panels@1.0.7(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CluJkHQheeNqIJly2FYDfri3ME+2h2nCXpf0Y+hTO1K1eVtNxXFA5hVp5cUD6NS70iiufswOmnku9QZiLr1hYg==} + /react-resizable-panels@1.0.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IuivK06FWN115VSN8TDGYuIoAzplC4oPUCDZ5d+VWJj0p6N3SMfwjggpjMUGSpQJLvMi0FXPSLLn4rGVmESjmA==} peerDependencies: react: ^16.14.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 @@ -25329,8 +25322,8 @@ packages: d3-timer: 3.0.1 dev: false - /vite-node@1.1.3(@types/node@18.18.2): - resolution: {integrity: sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==} + /vite-node@1.1.0(@types/node@18.18.2): + resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -25418,7 +25411,7 @@ packages: fsevents: 2.3.3 dev: true - /vitest-mock-extended@1.3.1(typescript@5.3.3)(vitest@1.1.3): + /vitest-mock-extended@1.3.1(typescript@5.3.3)(vitest@1.1.0): resolution: {integrity: sha512-OpghYjh4BDuQ/Mzs3lFMQ1QRk9D8/2O9T47MLUA5eLn7K4RWIy+MfIivYOWEyxjTENjsBnzgMihDjyNalN/K0Q==} peerDependencies: typescript: 3.x || 4.x || 5.x @@ -25426,11 +25419,11 @@ packages: dependencies: ts-essentials: 9.4.1(typescript@5.3.3) typescript: 5.3.3 - vitest: 1.1.3(@types/node@18.18.2)(happy-dom@12.10.3) + vitest: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) dev: true - /vitest@1.1.3(@types/node@18.18.2)(happy-dom@12.10.3): - resolution: {integrity: sha512-2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ==} + /vitest@1.1.0(@types/node@18.18.2)(happy-dom@12.10.3): + resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -25455,11 +25448,11 @@ packages: optional: true dependencies: '@types/node': 18.18.2 - '@vitest/expect': 1.1.3 - '@vitest/runner': 1.1.3 - '@vitest/snapshot': 1.1.3 - '@vitest/spy': 1.1.3 - '@vitest/utils': 1.1.3 + '@vitest/expect': 1.1.0 + '@vitest/runner': 1.1.0 + '@vitest/snapshot': 1.1.0 + '@vitest/spy': 1.1.0 + '@vitest/utils': 1.1.0 acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.4.0 @@ -25475,7 +25468,7 @@ packages: tinybench: 2.5.1 tinypool: 0.8.1 vite: 5.0.11(@types/node@18.18.2) - vite-node: 1.1.3(@types/node@18.18.2) + vite-node: 1.1.0(@types/node@18.18.2) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From d88844ad8b4a763c1c7704b8c43e612f6b8ba3aa Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 14:02:09 +0800 Subject: [PATCH 04/10] fix: `sqlite` dateRangeOfMonths agg func --- .github/workflows/docker-push.yml | 19 ++++++++++--------- .../single-value-aggregation.adapter.ts | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/docker-push.yml b/.github/workflows/docker-push.yml index 63626084d..17fafc1e0 100644 --- a/.github/workflows/docker-push.yml +++ b/.github/workflows/docker-push.yml @@ -1,7 +1,7 @@ name: Build and Push to Alibaba Cloud Registry on: - push: + pull_request: branches: - develop @@ -11,19 +11,20 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v3 - name: Login to Alibaba Cloud Docker Registry run: docker login --username=${{ secrets.ALI_DOCKER_USERNAME }} registry.cn-beijing.aliyuncs.com --password=${{ secrets.ALI_DOCKER_PASSWORD }} - name: Build and push Docker image run: | - docker build -t registry.cn-beijing.aliyuncs.com/bieber/teable:${GITHUB_SHA} -f dockers/teable/Dockerfile . - docker push registry.cn-beijing.aliyuncs.com/bieber/teable:${GITHUB_SHA} - # Tag the built image with 'latest' label - docker tag registry.cn-beijing.aliyuncs.com/bieber/teable:${GITHUB_SHA} registry.cn-beijing.aliyuncs.com/bieber/teable:latest - # Push the 'latest' tagged image - docker push registry.cn-beijing.aliyuncs.com/bieber/teable:latest + docker buildx build \ + --cache-from type=registry,registry.cn-beijing.aliyuncs.com/bieber/teable:build-cache \ + --cache-to type=registry,ref=registry.cn-beijing.aliyuncs.com/bieber/teable:build-cache,mode=max \ + --file Dockerfile \ + --tag registry.cn-beijing.aliyuncs.com/bieber/teable:latest \ + --tag registry.cn-beijing.aliyuncs.com/bieber/teable:${GITHUB_SHA} \ + --push . diff --git a/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts index 2697ac81a..a01be7927 100644 --- a/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/aggregation-query/sqlite/single-value/single-value-aggregation.adapter.ts @@ -6,6 +6,6 @@ export class SingleValueAggregationAdapter extends AggregationFunctionSqlite { } dateRangeOfMonths(): string { - return `max(${this.tableColumnRef}}) || ',' || min(${this.tableColumnRef}})`; + return `MAX(${this.tableColumnRef}) || ',' || MIN(${this.tableColumnRef})`; } } From 737063a4abc175a39d375e0cc1e2e962df39d492 Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 14:07:23 +0800 Subject: [PATCH 05/10] test: docker buildx --- .github/workflows/docker-push.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-push.yml b/.github/workflows/docker-push.yml index 17fafc1e0..f85357ab4 100644 --- a/.github/workflows/docker-push.yml +++ b/.github/workflows/docker-push.yml @@ -21,8 +21,9 @@ jobs: - name: Build and push Docker image run: | + # --platform linux/amd64,linux/arm64 docker buildx build \ - --cache-from type=registry,registry.cn-beijing.aliyuncs.com/bieber/teable:build-cache \ + --cache-from type=registry,ref=registry.cn-beijing.aliyuncs.com/bieber/teable:build-cache \ --cache-to type=registry,ref=registry.cn-beijing.aliyuncs.com/bieber/teable:build-cache,mode=max \ --file Dockerfile \ --tag registry.cn-beijing.aliyuncs.com/bieber/teable:latest \ From 885f5e44450bbf8ec6979a3f005b27f045854458 Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 14:08:58 +0800 Subject: [PATCH 06/10] test: docker buildx --- .github/workflows/docker-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-push.yml b/.github/workflows/docker-push.yml index f85357ab4..a6b2c3f7c 100644 --- a/.github/workflows/docker-push.yml +++ b/.github/workflows/docker-push.yml @@ -25,7 +25,7 @@ jobs: docker buildx build \ --cache-from type=registry,ref=registry.cn-beijing.aliyuncs.com/bieber/teable:build-cache \ --cache-to type=registry,ref=registry.cn-beijing.aliyuncs.com/bieber/teable:build-cache,mode=max \ - --file Dockerfile \ + --file dockers/teable/Dockerfile \ --tag registry.cn-beijing.aliyuncs.com/bieber/teable:latest \ --tag registry.cn-beijing.aliyuncs.com/bieber/teable:${GITHUB_SHA} \ --push . From d987e90c522be6dd427c2f972a13eedda7b82632 Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 14:24:24 +0800 Subject: [PATCH 07/10] test: docker buildx --- .github/workflows/docker-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-push.yml b/.github/workflows/docker-push.yml index a6b2c3f7c..5b09870c0 100644 --- a/.github/workflows/docker-push.yml +++ b/.github/workflows/docker-push.yml @@ -1,7 +1,7 @@ name: Build and Push to Alibaba Cloud Registry on: - pull_request: + push: branches: - develop From 97b0fd4e956ff1b8acf7ad9225dfea3458c8e3c5 Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 15:28:08 +0800 Subject: [PATCH 08/10] refactor: remove queryUserId param use `cls` user --- .../aggregation/aggregation.service.ts | 20 +++--- .../aggregation-open-api.controller.ts | 18 +---- .../open-api/aggregation-open-api.service.ts | 17 ++--- .../open-api/record-open-api.controller.ts | 15 ++-- .../src/features/record/record.service.ts | 36 ++++++---- .../selection/selection.controller.ts | 24 ++----- .../features/selection/selection.service.ts | 71 ++++++------------- .../open-api/table-open-api.controller.ts | 14 ++-- .../table/open-api/table-open-api.service.ts | 19 ++--- .../src/features/table/table.service.ts | 2 - .../src/share-db/share-db.adapter.ts | 67 +++++++---------- packages/openapi/src/share/view-row-count.ts | 1 - 12 files changed, 109 insertions(+), 195 deletions(-) diff --git a/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts b/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts index 93d3e062e..8cc4bf2e1 100644 --- a/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts +++ b/apps/nestjs-backend/src/features/aggregation/aggregation.service.ts @@ -20,8 +20,10 @@ import dayjs from 'dayjs'; import { Knex } from 'knex'; import { groupBy, isDate, isEmpty } from 'lodash'; import { InjectModel } from 'nest-knexjs'; +import { ClsService } from 'nestjs-cls'; import { InjectDbProvider } from '../../db-provider/db.provider'; import { IDbProvider } from '../../db-provider/db.provider.interface'; +import type { IClsStore } from '../../types/cls'; import type { IFieldInstance } from '../field/model/factory'; import { createFieldInstanceByRaw } from '../field/model/factory'; import { RecordService } from '../record/record.service'; @@ -51,16 +53,18 @@ export class AggregationService { private readonly recordService: RecordService, private readonly prisma: PrismaService, @InjectModel('CUSTOM_KNEX') private readonly knex: Knex, - @InjectDbProvider() private readonly dbProvider: IDbProvider + @InjectDbProvider() private readonly dbProvider: IDbProvider, + private readonly cls: ClsService ) {} async performAggregation(params: { tableId: string; withFieldIds?: string[]; withView?: IWithView; - withUserId?: string; }): Promise { - const { tableId, withFieldIds, withView, withUserId } = params; + const { tableId, withFieldIds, withView } = params; + // Retrieve the current user's ID to build user-related query conditions + const currentUserId = this.cls.get('user.id'); const { statisticsData, fieldInstanceMap } = await this.fetchStatisticsParams({ tableId, @@ -77,7 +81,7 @@ export class AggregationService { fieldInstanceMap, filter, statisticFields, - withUserId, + withUserId: currentUserId, }); const aggregationResult = rawAggregationData && rawAggregationData[0]; @@ -105,10 +109,10 @@ export class AggregationService { filterLinkCellCandidate?: IGetRecordsQuery['filterLinkCellCandidate']; filterLinkCellSelected?: IGetRecordsQuery['filterLinkCellSelected']; withView?: IWithView; - withUserId?: string; }): Promise { - const { tableId, filterLinkCellCandidate, filterLinkCellSelected, withView, withUserId } = - params; + const { tableId, filterLinkCellCandidate, filterLinkCellSelected, withView } = params; + // Retrieve the current user's ID to build user-related query conditions + const currentUserId = this.cls.get('user.id'); const { statisticsData, fieldInstanceMap } = await this.fetchStatisticsParams({ tableId, @@ -131,7 +135,7 @@ export class AggregationService { fieldInstanceMap, filter, filterLinkCellCandidate, - withUserId, + withUserId: currentUserId, }); return { rowCount: Number(rawRowCountData[0]?.count ?? 0), diff --git a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts index 039f7c212..c5f6b3d36 100644 --- a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts +++ b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.controller.ts @@ -1,4 +1,4 @@ -import { Controller, Get, Param, Query, Req, UseGuards } from '@nestjs/common'; +import { Controller, Get, Param, Query, UseGuards } from '@nestjs/common'; import type { IAggregationVo, IRowCountVo } from '@teable-group/core'; import { aggregationRoSchema, @@ -6,8 +6,6 @@ import { IRowCountRo, rowCountRoSchema, } from '@teable-group/core'; -import type { User as UserModel } from '@teable-group/db-main-prisma'; -import { Request } from 'express'; import { ZodValidationPipe } from '../../../zod.validation.pipe'; import { Permissions } from '../../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../../auth/guard/permission.guard'; @@ -22,28 +20,18 @@ export class AggregationOpenApiController { @Get() @Permissions('table|read') async getAggregation( - @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(aggregationRoSchema)) query?: IAggregationRo ): Promise { - const { id: userId } = req.user as UserModel; - return await this.aggregationOpenApiService.getAggregation(tableId, { - ...query, - withUserId: userId, - }); + return await this.aggregationOpenApiService.getAggregation(tableId, query); } @Get('/rowCount') @Permissions('table|read') async getRowCount( - @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(rowCountRoSchema), RecordPipe) query?: IRowCountRo ): Promise { - const { id: userId } = req.user as UserModel; - return await this.aggregationOpenApiService.getRowCount(tableId, { - ...query, - withUserId: userId, - }); + return await this.aggregationOpenApiService.getRowCount(tableId, query); } } diff --git a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts index 7c2ea7220..d55611273 100644 --- a/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts +++ b/apps/nestjs-backend/src/features/aggregation/open-api/aggregation-open-api.service.ts @@ -15,11 +15,8 @@ import { AggregationService } from '../aggregation.service'; export class AggregationOpenApiService { constructor(private readonly aggregationService: AggregationService) {} - async getAggregation( - tableId: string, - query?: IAggregationRo & { withUserId?: string } - ): Promise { - const { viewId, filter: customFilter, field: aggregationFields, withUserId } = query || {}; + async getAggregation(tableId: string, query?: IAggregationRo): Promise { + const { viewId, filter: customFilter, field: aggregationFields } = query || {}; let withView: IWithView = { viewId, customFilter }; @@ -42,24 +39,18 @@ export class AggregationOpenApiService { const result = await this.aggregationService.performAggregation({ tableId: tableId, withView, - withUserId, }); return { aggregations: result?.aggregations }; } - async getRowCount( - tableId: string, - query?: IRowCountRo & { withUserId?: string } - ): Promise { - const { viewId, filter, filterLinkCellCandidate, filterLinkCellSelected, withUserId } = - query || {}; + async getRowCount(tableId: string, query?: IRowCountRo): Promise { + const { viewId, filter, filterLinkCellCandidate, filterLinkCellSelected } = query || {}; const result = await this.aggregationService.performRowCount({ tableId, filterLinkCellCandidate, filterLinkCellSelected, withView: { viewId, customFilter: filter }, - withUserId, }); return { rowCount: result.rowCount, diff --git a/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts b/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts index 764a5eae8..ab5ea8267 100644 --- a/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts +++ b/apps/nestjs-backend/src/features/record/open-api/record-open-api.controller.ts @@ -7,25 +7,22 @@ import { Patch, Post, Query, - Req, UseGuards, } from '@nestjs/common'; import type { ICreateRecordsVo, IRecord, IRecordsVo } from '@teable-group/core'; import { createRecordsRoSchema, getRecordQuerySchema, - updateRecordByIndexRoSchema, - updateRecordRoSchema, getRecordsQuerySchema, - IGetRecordsQuery, - IGetRecordQuery, ICreateRecordsRo, + IGetRecordQuery, + IGetRecordsQuery, IUpdateRecordByIndexRo, IUpdateRecordRo, + updateRecordByIndexRoSchema, + updateRecordRoSchema, } from '@teable-group/core'; -import type { User as UserModel } from '@teable-group/db-main-prisma'; import { deleteRecordsQuerySchema, IDeleteRecordsQuery } from '@teable-group/openapi'; -import { Request } from 'express'; import { ZodValidationPipe } from '../../../zod.validation.pipe'; import { Permissions } from '../../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../../auth/guard/permission.guard'; @@ -44,12 +41,10 @@ export class RecordOpenApiController { @Permissions('record|read') @Get() async getRecords( - @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(getRecordsQuerySchema), RecordPipe) query: IGetRecordsQuery ): Promise { - const { id: queryUserId } = req.user as UserModel; - return await this.recordService.getRecords(tableId, { ...query, queryUserId }); + return await this.recordService.getRecords(tableId, query); } @Permissions('record|read') diff --git a/apps/nestjs-backend/src/features/record/record.service.ts b/apps/nestjs-backend/src/features/record/record.service.ts index 39a4d10c2..717b98475 100644 --- a/apps/nestjs-backend/src/features/record/record.service.ts +++ b/apps/nestjs-backend/src/features/record/record.service.ts @@ -413,22 +413,37 @@ export class RecordService implements IAdapterService { }; } + /** + * Builds a query based on filtering and sorting criteria. + * + * This method creates a `Knex` query builder that constructs SQL queries based on the provided + * filtering and sorting parameters. It also takes into account the context of the current user, + * which is crucial for ensuring the security and relevance of data access. + * + * @param {string} tableId - The unique identifier of the table to determine the target of the query. + * @param {Pick} query - An object of query parameters, including view ID, sorting rules, filtering conditions, etc. + * @returns {Promise} Returns an instance of the Knex query builder encapsulating the constructed SQL query. + */ async buildFilterSortQuery( tableId: string, - query: Pick & { - queryUserId?: string; - } + query: Pick ): Promise { + // Prepare the base query builder, filtering conditions, sorting rules, and field mapping const { queryBuilder, filter, orderBy, fieldMap } = await this.prepareQuery(tableId, query); + // Retrieve the current user's ID to build user-related query conditions + const currentUserId = this.cls.get('user.id'); + if (query.filterLinkCellCandidate) { await this.buildLinkCandidateQuery(queryBuilder, tableId, query.filterLinkCellCandidate); } - // All `where` condition-related construction work + // Add filtering conditions to the query builder this.dbProvider - .filterQuery(queryBuilder, fieldMap, filter, { withUserId: query.queryUserId }) + .filterQuery(queryBuilder, fieldMap, filter, { withUserId: currentUserId }) .appendQueryBuilder(); + + // Add sorting rules to the query builder this.dbProvider.sortQuery(queryBuilder, fieldMap, orderBy).appendSortBuilder(); // view sorting added by default @@ -529,10 +544,7 @@ export class RecordService implements IAdapterService { }, []); } - async getRecords( - tableId: string, - query: IGetRecordsQuery & { queryUserId?: string } - ): Promise { + async getRecords(tableId: string, query: IGetRecordsQuery): Promise { const defaultView = await this.prismaService.txClient().view.findFirstOrThrow({ select: { id: true, filter: true, sort: true }, where: { @@ -552,7 +564,6 @@ export class RecordService implements IAdapterService { orderBy: query.orderBy, filterLinkCellCandidate: query.filterLinkCellCandidate, filterLinkCellSelected: query.filterLinkCellSelected, - queryUserId: query.queryUserId, }); const recordSnapshot = await this.getSnapshotBulk( @@ -970,7 +981,7 @@ export class RecordService implements IAdapterService { async getDocIdsByQuery( tableId: string, - query: IGetRecordsQuery & { queryUserId?: string } + query: IGetRecordsQuery ): Promise<{ ids: string[]; extra?: IExtraResult }> { const viewId = await this.shareWithViewId(tableId, query.viewId); @@ -1008,7 +1019,7 @@ export class RecordService implements IAdapterService { async getRecordsFields( tableId: string, - query: IMakeRequired & { queryUserId?: string } + query: IMakeRequired ): Promise[]> { if (identify(tableId) !== IdPrefix.Table) { throw new InternalServerErrorException('query collection must be table id'); @@ -1023,7 +1034,6 @@ export class RecordService implements IAdapterService { viewId: viewId, filter, orderBy, - queryUserId: query.queryUserId, }); queryBuilder.select(fieldNames.concat('__id')); queryBuilder.offset(skip); diff --git a/apps/nestjs-backend/src/features/selection/selection.controller.ts b/apps/nestjs-backend/src/features/selection/selection.controller.ts index 162329e37..c7a6f7551 100644 --- a/apps/nestjs-backend/src/features/selection/selection.controller.ts +++ b/apps/nestjs-backend/src/features/selection/selection.controller.ts @@ -1,17 +1,15 @@ -import { Body, Controller, Get, Param, Patch, Query, Req, UseGuards } from '@nestjs/common'; -import type { User as UserModel } from '@teable-group/db-main-prisma'; +import { Body, Controller, Get, Param, Patch, Query, UseGuards } from '@nestjs/common'; import type { ICopyVo, IRangesToIdVo, PasteVo } from '@teable-group/openapi'; import { - IRangesToIdRo, - rangesToIdRoSchema, ClearRo, clearRoSchema, ICopyRo, - rangesSchema, + IRangesToIdRo, PasteRo, pasteRoSchema, + rangesSchema, + rangesToIdRoSchema, } from '@teable-group/openapi'; -import { Request } from 'express'; import { ZodValidationPipe } from '../../zod.validation.pipe'; import { Permissions } from '../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../auth/guard/permission.guard'; @@ -25,51 +23,43 @@ export class SelectionController { @Permissions('view|read') @Get('/rangeToId') async getIdsFromRanges( - @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Query(new ZodValidationPipe(rangesToIdRoSchema)) query: IRangesToIdRo ): Promise { - const { id: queryUserId } = req.user as UserModel; - return this.selectionService.getIdsFromRanges(tableId, viewId, { ...query, queryUserId }); + return this.selectionService.getIdsFromRanges(tableId, viewId, query); } @Permissions('view|read') @Get('/copy') async copy( - @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Query(new ZodValidationPipe(rangesSchema)) query: ICopyRo ): Promise { - const { id: queryUserId } = req.user as UserModel; - return this.selectionService.copy(tableId, viewId, { ...query, queryUserId }); + return this.selectionService.copy(tableId, viewId, query); } @Permissions('record|update') @Patch('/paste') async paste( - @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Body(new ZodValidationPipe(pasteRoSchema)) pasteRo: PasteRo ): Promise { - const { id: queryUserId } = req.user as UserModel; - const ranges = await this.selectionService.paste(tableId, viewId, { ...pasteRo, queryUserId }); + const ranges = await this.selectionService.paste(tableId, viewId, pasteRo); return { ranges }; } @Permissions('record|update') @Patch('/clear') async clear( - @Req() req: Request, @Param('tableId') tableId: string, @Param('viewId') viewId: string, @Body(new ZodValidationPipe(clearRoSchema)) clearRo: ClearRo ) { - const { id: queryUserId } = req.user as UserModel; await this.selectionService.clear(tableId, viewId, clearRo); return null; } diff --git a/apps/nestjs-backend/src/features/selection/selection.service.ts b/apps/nestjs-backend/src/features/selection/selection.service.ts index 4d7596c74..724474d4c 100644 --- a/apps/nestjs-backend/src/features/selection/selection.service.ts +++ b/apps/nestjs-backend/src/features/selection/selection.service.ts @@ -48,13 +48,13 @@ export class SelectionService { async getIdsFromRanges( tableId: string, viewId: string, - query: IRangesToIdRo & { queryUserId?: string } + query: IRangesToIdRo ): Promise { const ranges = JSON.parse(query.ranges) as [number, number][]; - const { returnType, type, queryUserId } = query; + const { returnType, type } = query; if (returnType === IdReturnType.RecordId) { return { - recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type, queryUserId), + recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type), }; } @@ -67,7 +67,7 @@ export class SelectionService { if (returnType === IdReturnType.All) { return { fieldIds: await this.columnSelectionToIds(tableId, viewId, ranges, type), - recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type, queryUserId), + recordIds: await this.rowSelectionToIds(tableId, viewId, ranges, type), }; } @@ -103,13 +103,11 @@ export class SelectionService { tableId: string, viewId: string, ranges: [number, number][], - type: RangeType | undefined, - queryUserId?: string + type: RangeType | undefined ): Promise { if (type === RangeType.Columns) { const result = await this.recordService.getDocIdsByQuery(tableId, { viewId, - queryUserId, skip: 0, take: -1, }); @@ -121,7 +119,6 @@ export class SelectionService { for (const [start, end] of ranges) { const result = await this.recordService.getDocIdsByQuery(tableId, { viewId, - queryUserId, skip: start, take: end + 1 - start, }); @@ -136,7 +133,6 @@ export class SelectionService { const [start, end] = ranges; const result = await this.recordService.getDocIdsByQuery(tableId, { viewId, - queryUserId, skip: start[1], take: end[1] + 1 - start[1], }); @@ -154,19 +150,13 @@ export class SelectionService { ); } - private async columnsSelectionCtx( - tableId: string, - viewId: string, - ranges: [number, number][], - queryUserId?: string - ) { + private async columnsSelectionCtx(tableId: string, viewId: string, ranges: [number, number][]) { const fields = await this.fieldService.getFieldsByQuery(tableId, { viewId, filterHidden: true, }); const records = await this.recordService.getRecordsFields(tableId, { viewId, - queryUserId, skip: 0, take: -1, fieldKeyType: FieldKeyType.Id, @@ -181,12 +171,7 @@ export class SelectionService { }; } - private async rowsSelectionCtx( - tableId: string, - viewId: string, - ranges: [number, number][], - queryUserId?: string - ) { + private async rowsSelectionCtx(tableId: string, viewId: string, ranges: [number, number][]) { const fields = await this.fieldService.getFieldsByQuery(tableId, { viewId, filterHidden: true, @@ -195,7 +180,6 @@ export class SelectionService { for (const [start, end] of ranges) { const recordsFields = await this.recordService.getRecordsFields(tableId, { viewId, - queryUserId, skip: start, take: end + 1 - start, fieldKeyType: FieldKeyType.Id, @@ -210,12 +194,7 @@ export class SelectionService { }; } - private async defaultSelectionCtx( - tableId: string, - viewId: string, - ranges: [number, number][], - queryUserId?: string - ) { + private async defaultSelectionCtx(tableId: string, viewId: string, ranges: [number, number][]) { const [start, end] = ranges; const fields = await this.fieldService.getFieldInstances(tableId, { viewId, @@ -223,7 +202,6 @@ export class SelectionService { }); const records = await this.recordService.getRecordsFields(tableId, { viewId, - queryUserId, skip: start[1], take: end[1] + 1 - start[1], fieldKeyType: FieldKeyType.Id, @@ -236,18 +214,17 @@ export class SelectionService { tableId: string, viewId: string, ranges: [number, number][], - type?: RangeType, - queryUserId?: string + type?: RangeType ) { switch (type) { case RangeType.Columns: { - return await this.columnsSelectionCtx(tableId, viewId, ranges, queryUserId); + return await this.columnsSelectionCtx(tableId, viewId, ranges); } case RangeType.Rows: { - return await this.rowsSelectionCtx(tableId, viewId, ranges, queryUserId); + return await this.rowsSelectionCtx(tableId, viewId, ranges); } default: - return await this.defaultSelectionCtx(tableId, viewId, ranges, queryUserId); + return await this.defaultSelectionCtx(tableId, viewId, ranges); } } @@ -450,15 +427,14 @@ export class SelectionService { }; } - async copy(tableId: string, viewId: string, query: ICopyRo & { queryUserId?: string }) { - const { ranges, type, queryUserId } = query; + async copy(tableId: string, viewId: string, query: ICopyRo) { + const { ranges, type } = query; const rangesArray = JSON.parse(ranges) as [number, number][]; const { fields, records } = await this.getSelectionCtxByRange( tableId, viewId, rangesArray, - type, - queryUserId + type ); const fieldInstances = fields.map(createFieldInstanceByVo); const rectangleData = records.map((record) => @@ -521,13 +497,12 @@ export class SelectionService { return [range[0], range[1]]; } - async paste(tableId: string, viewId: string, pasteRo: PasteRo & { queryUserId?: string }) { - const { range, type, content, header = [], queryUserId } = pasteRo; + async paste(tableId: string, viewId: string, pasteRo: PasteRo) { + const { range, type, content, header = [] } = pasteRo; const { rowCount: rowCountInView } = await this.aggregationService.performRowCount({ tableId, withView: { viewId }, - withUserId: queryUserId, }); const fields = await this.fieldService.getFieldInstances(tableId, { viewId, @@ -595,15 +570,9 @@ export class SelectionService { return updateRange; } - async clear(tableId: string, viewId: string, clearRo: ClearRo & { queryUserId?: string }) { - const { ranges, type, queryUserId } = clearRo; - const { fields, records } = await this.getSelectionCtxByRange( - tableId, - viewId, - ranges, - type, - queryUserId - ); + async clear(tableId: string, viewId: string, clearRo: ClearRo) { + const { ranges, type } = clearRo; + const { fields, records } = await this.getSelectionCtxByRange(tableId, viewId, ranges, type); const fieldInstances = fields.map(createFieldInstanceByVo); const updateRecordsRo = await this.fillCells({ tableId, diff --git a/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts b/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts index 68e788691..f25a19b6d 100644 --- a/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts +++ b/apps/nestjs-backend/src/features/table/open-api/table-open-api.controller.ts @@ -1,5 +1,5 @@ /* eslint-disable sonarjs/no-duplicate-string */ -import { Body, Controller, Delete, Get, Param, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { Body, Controller, Delete, Get, Param, Post, Query, UseGuards } from '@nestjs/common'; import type { ITableFullVo, ITableListVo, ITableVo } from '@teable-group/core'; import { getTableQuerySchema, @@ -7,14 +7,12 @@ import { IGetTableQuery, tableRoSchema, } from '@teable-group/core'; -import type { User as UserModel } from '@teable-group/db-main-prisma'; import { + getGraphRoSchema, IGetGraphRo, ISqlQuerySchema, - getGraphRoSchema, sqlQuerySchema, } from '@teable-group/openapi'; -import { Request } from 'express'; import { ZodValidationPipe } from '../../../zod.validation.pipe'; import { Permissions } from '../../auth/decorators/permissions.decorator'; import { PermissionGuard } from '../../auth/guard/permission.guard'; @@ -39,13 +37,11 @@ export class TableController { @Permissions('table|read') @Get(':tableId') async getTable( - @Req() req: Request, @Param('baseId') baseId: string, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(getTableQuerySchema)) query: IGetTableQuery ): Promise { - const { id: queryUserId } = req.user as UserModel; - return await this.tableOpenApiService.getTable(baseId, tableId, { ...query, queryUserId }); + return await this.tableOpenApiService.getTable(baseId, tableId, query); } @Permissions('table|read') @@ -87,11 +83,9 @@ export class TableController { @Permissions('table|read') @Post(':tableId/sqlQuery') async sqlQuery( - @Req() req: Request, @Param('tableId') tableId: string, @Query(new ZodValidationPipe(sqlQuerySchema)) query: ISqlQuerySchema ) { - const { id: queryUserId } = req.user as UserModel; - return await this.tableOpenApiService.sqlQuery(tableId, query.viewId, query.sql, queryUserId); + return await this.tableOpenApiService.sqlQuery(tableId, query.viewId, query.sql); } } diff --git a/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts b/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts index 366025141..5c6f3383f 100644 --- a/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts +++ b/apps/nestjs-backend/src/features/table/open-api/table-open-api.service.ts @@ -116,20 +116,10 @@ export class TableOpenApiService { return await this.tableService.createTable(baseId, tableRo); } - async getTable( - baseId: string, - tableId: string, - query: IGetTableQuery & { queryUserId?: string } - ): Promise { - const { viewId, fieldKeyType, includeContent, queryUserId } = query; + async getTable(baseId: string, tableId: string, query: IGetTableQuery): Promise { + const { viewId, fieldKeyType, includeContent } = query; if (includeContent) { - return await this.tableService.getFullTable( - baseId, - tableId, - viewId, - queryUserId, - fieldKeyType - ); + return await this.tableService.getFullTable(baseId, tableId, viewId, fieldKeyType); } return await this.tableService.getTableMeta(baseId, tableId); } @@ -190,11 +180,10 @@ export class TableOpenApiService { ); } - async sqlQuery(tableId: string, viewId: string, sql: string, queryUserId?: string) { + async sqlQuery(tableId: string, viewId: string, sql: string) { this.logger.log('sqlQuery:sql: ' + sql); const { queryBuilder } = await this.recordService.buildFilterSortQuery(tableId, { viewId, - queryUserId, }); const baseQuery = queryBuilder.toString(); diff --git a/apps/nestjs-backend/src/features/table/table.service.ts b/apps/nestjs-backend/src/features/table/table.service.ts index 596b71f66..24f683149 100644 --- a/apps/nestjs-backend/src/features/table/table.service.ts +++ b/apps/nestjs-backend/src/features/table/table.service.ts @@ -215,7 +215,6 @@ export class TableService implements IAdapterService { baseId: string, tableId: string, viewId?: string, - queryUserId?: string, fieldKeyType: FieldKeyType = FieldKeyType.Name ): Promise { const tableMeta = await this.getTableMeta(baseId, tableId); @@ -226,7 +225,6 @@ export class TableService implements IAdapterService { skip: 0, take: 50, fieldKeyType, - queryUserId, }); return { diff --git a/apps/nestjs-backend/src/share-db/share-db.adapter.ts b/apps/nestjs-backend/src/share-db/share-db.adapter.ts index 096a6d5da..98f6f37ff 100644 --- a/apps/nestjs-backend/src/share-db/share-db.adapter.ts +++ b/apps/nestjs-backend/src/share-db/share-db.adapter.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import type { IOtOperation, IRecord } from '@teable-group/core'; import { FieldOpBuilder, @@ -32,6 +32,8 @@ type IProjection = { [fieldNameOrId: string]: boolean }; @Injectable() export class ShareDbAdapter extends ShareDb.DB { + private logger = new Logger(ShareDbAdapter.name); + closed: boolean; constructor( @@ -69,38 +71,29 @@ export class ShareDbAdapter extends ShareDb.DB { // eslint-disable-next-line @typescript-eslint/no-explicit-any callback: (err: any, snapshots: Snapshot[], extra?: any) => void ) => { - // console.log(`query: ${collection} ${JSON.stringify(query)}`); - const userId = this.cls.get('user.id'); - - this.queryPoll( - collection, - { ...(query ?? {}), queryUserId: userId }, - options, - (error, results, extra) => { - // console.log('query pull result: ', ids); - if (error) { - return callback(error, []); - } - if (!results.length) { - return callback(undefined, []); - } - - this.getSnapshotBulk( - collection, - results as string[], - projection, - undefined, - (error, snapshots) => { - callback( - error, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - results.map((id) => snapshots![id]), - extra - ); - } - ); + this.queryPoll(collection, query, options, (error, results, extra) => { + if (error) { + return callback(error, []); } - ); + if (!results.length) { + return callback(undefined, []); + } + + this.getSnapshotBulk( + collection, + results as string[], + projection, + undefined, + (error, snapshots) => { + callback( + error, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + results.map((id) => snapshots![id]), + extra + ); + } + ); + }); }; async queryPoll( @@ -111,14 +104,12 @@ export class ShareDbAdapter extends ShareDb.DB { callback: (error: ShareDb.Error | null, ids: string[], extra?: any) => void ) { try { - const userId = this.cls.get('user.id'); const [docType, collectionId] = collection.split('_'); const queryResult = await this.getService(docType as IdPrefix).getDocIdsByQuery( collectionId, - { ...(query ?? {}), queryUserId: userId } + query ); - // console.log('queryPollResult:', collection, ids); callback(null, queryResult.ids, queryResult.extra); } catch (e) { // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -213,7 +204,6 @@ export class ShareDbAdapter extends ShareDb.DB { * } * snapshot: PostgresSnapshot */ - // console.log('commit', collection, id, options, rawOp.op); const [docType, collectionId] = collection.split('_'); @@ -227,7 +217,7 @@ export class ShareDbAdapter extends ShareDb.DB { const maxVersion = opsResult._max.version == null ? 0 : opsResult._max.version + 1; if (rawOp.v !== maxVersion) { - console.log('crashed', rawOp.op); + this.logger.log({ message: 'op crashed', crashed: rawOp.op }); throw new Error(`${id} version mismatch: maxVersion: ${maxVersion} rawOpV: ${rawOp.v}`); } @@ -281,7 +271,6 @@ export class ShareDbAdapter extends ShareDb.DB { options: unknown, callback: (err: ShareDb.Error | null, data?: Record) => void ) { - // console.log('getSnapshotBulk:', { options, collection, ids }); try { const [docType, collectionId] = collection.split('_'); @@ -320,7 +309,6 @@ export class ShareDbAdapter extends ShareDb.DB { options: unknown, callback: (err: unknown, data?: Snapshot) => void ) { - // console.log('getSnapshot:', { options, collection }); this.getSnapshotBulk(collection, [id], projection, options, (err, data) => { if (err) { callback(err); @@ -349,7 +337,6 @@ export class ShareDbAdapter extends ShareDb.DB { callback: (error: unknown, data?: unknown) => void ) { try { - // console.log('getOps:', { options, collection }); // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_, collectionId] = collection.split('_'); const nativeSql = this.knex('ops') diff --git a/packages/openapi/src/share/view-row-count.ts b/packages/openapi/src/share/view-row-count.ts index 857604e32..8b66bbecf 100644 --- a/packages/openapi/src/share/view-row-count.ts +++ b/packages/openapi/src/share/view-row-count.ts @@ -1,7 +1,6 @@ import type { RouteConfig } from '@asteasolutions/zod-to-openapi'; import type { IRowCountVo } from '@teable-group/core'; import { rowCountVoSchema, aggregationRoSchema } from '@teable-group/core'; -import type { ZodError } from 'zod'; import { axios } from '../axios'; import { paramsSerializer, registerRoute, urlBuilder } from '../utils'; import { z } from '../zod'; From f15fdbaadf88e134a4ab4efca8da99c6466b6d7c Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 15:55:50 +0800 Subject: [PATCH 09/10] refactor: remove queryUserId param use `cls` user --- .../src/features/selection/selection.service.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/nestjs-backend/src/features/selection/selection.service.spec.ts b/apps/nestjs-backend/src/features/selection/selection.service.spec.ts index 7e76ead9e..d7e983a5d 100644 --- a/apps/nestjs-backend/src/features/selection/selection.service.spec.ts +++ b/apps/nestjs-backend/src/features/selection/selection.service.spec.ts @@ -648,7 +648,6 @@ describe('selectionService', () => { tableId, viewId, clearRo.ranges, - undefined, undefined ); expect(selectionService['fillCells']).toHaveBeenCalledWith({ From f61aa95ce6732693458672556ee9f850616de344 Mon Sep 17 00:00:00 2001 From: pengap Date: Tue, 9 Jan 2024 16:06:07 +0800 Subject: [PATCH 10/10] refactor: remove queryUserId param use `cls` user --- apps/nestjs-backend/vitest-e2e.setup.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/nestjs-backend/vitest-e2e.setup.ts b/apps/nestjs-backend/vitest-e2e.setup.ts index 596f289b6..d9f7777fe 100644 --- a/apps/nestjs-backend/vitest-e2e.setup.ts +++ b/apps/nestjs-backend/vitest-e2e.setup.ts @@ -47,9 +47,9 @@ async function setup() { // init data exists await prismaClient.$transaction(async (prisma) => { - const existsEmail = await prismaClient.user.count({ where: { email } }); - const existsSpace = await prismaClient.space.count({ where: { id: spaceId } }); - const existsBase = await prismaClient.base.count({ where: { id: baseId } }); + const existsEmail = await prismaClient.user.findFirst({ where: { email } }); + const existsSpace = await prismaClient.space.findFirst({ where: { id: spaceId } }); + const existsBase = await prismaClient.base.findFirst({ where: { id: baseId } }); if (!existsEmail) { await prisma.user.create({ data: {