diff --git a/.github/workflows/docker-push.yml b/.github/workflows/docker-push.yml index 5b09870c00..16a19310d1 100644 --- a/.github/workflows/docker-push.yml +++ b/.github/workflows/docker-push.yml @@ -17,14 +17,16 @@ jobs: 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 }} + run: | + docker login --username=${{ secrets.ALI_DOCKER_USERNAME }} registry.cn-beijing.aliyuncs.com --password=${{ secrets.ALI_DOCKER_PASSWORD }} + docker login --username=${{ secrets.DOCKER_USERNAME }} --password=${{ secrets.DOCKER_PASSWORD }} - name: Build and push Docker image run: | # --platform linux/amd64,linux/arm64 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 \ + --cache-from type=registry,ref=docker.io/teablecloud/teable:build-cache \ + --cache-to type=registry,ref=docker.io/teablecloud/teable:build-cache,mode=max \ --file dockers/teable/Dockerfile \ --tag registry.cn-beijing.aliyuncs.com/bieber/teable:latest \ --tag registry.cn-beijing.aliyuncs.com/bieber/teable:${GITHUB_SHA} \ diff --git a/apps/nestjs-backend/package.json b/apps/nestjs-backend/package.json index ea3c7a6c6b..2fd9b93644 100644 --- a/apps/nestjs-backend/package.json +++ b/apps/nestjs-backend/package.json @@ -41,7 +41,8 @@ "test": "run-s test-unit test-e2e", "test-unit": "vitest run --silent --bail 1", "test-cov": "vitest run --coverage", - "test-e2e": "vitest run --config ./vitest-e2e.config.ts --silent --bail 1", + "pre-test-e2e": "cross-env NODE_ENV=test pnpm -F @teable-group/db-main-prisma prisma-db-seed -- --e2e", + "test-e2e": "pnpm pre-test-e2e && vitest run --config ./vitest-e2e.config.ts --silent --bail 1", "typecheck": "tsc --project ./tsconfig.json --noEmit", "lint": "eslint . --ext .ts,.js,.cjs,.mjs,.mdx --cache --cache-location ../../.cache/eslint/nestjs-backend.eslintcache", "fix-all-files": "eslint . --ext .ts,.tsx,.js,.jsx,.cjs,.mjs,.mdx --fix", @@ -116,8 +117,8 @@ "@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", + "@prisma/client": "5.8.0", + "@prisma/instrumentation": "5.8.0", "@teable-group/common-i18n": "workspace:^", "@teable-group/core": "workspace:^", "@teable-group/db-main-prisma": "workspace:^", diff --git a/apps/nestjs-backend/src/bootstrap.ts b/apps/nestjs-backend/src/bootstrap.ts index 5aa5373a0d..61c4965444 100644 --- a/apps/nestjs-backend/src/bootstrap.ts +++ b/apps/nestjs-backend/src/bootstrap.ts @@ -93,8 +93,14 @@ export async function bootstrap() { const port = await getAvailablePort(configService.get('PORT') as string); process.env.PORT = port.toString(); - logger.log(`> Ready on http://${host}:${port}`); + + const now = new Date(); + const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; logger.log(`> NODE_ENV is ${process.env.NODE_ENV}`); + logger.log(`> Ready on http://${host}:${port}`); + logger.log('> System Time Zone:', timeZone); + logger.log('> Current System Time:', now.toString()); + await app.listen(port); return app; } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.abstract.ts b/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.abstract.ts index 0cbb4911d3..d5a0fa9a42 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.abstract.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.abstract.ts @@ -6,7 +6,6 @@ import { import type { IDateFieldOptions, IDateFilter, - IFilter, IFilterOperator, IFilterValue, } from '@teable-group/core'; @@ -39,29 +38,24 @@ import { } from '@teable-group/core'; import type { Dayjs } from 'dayjs'; import type { Knex } from 'knex'; -import { get } from 'lodash'; import type { IFieldInstance } from '../../features/field/model/factory'; import type { ICellValueFilterInterface } from './cell-value-filter.interface'; export abstract class AbstractCellValueFilter implements ICellValueFilterInterface { - protected _table: string; + protected tableColumnRef: string; + protected columnName: string; constructor( - protected readonly queryBuilder: Knex.QueryBuilder, - protected readonly fields?: { [fieldId: string]: IFieldInstance }, - protected readonly filter?: IFilter | null + protected readonly dbTableName: string, + protected readonly field: IFieldInstance ) { - this._table = get(queryBuilder, ['_single', 'table']); + const { dbFieldName } = this.field; + + this.columnName = dbFieldName; + this.tableColumnRef = `${this.dbTableName}.${dbFieldName}`; } - filterStrategies( - operator: IFilterOperator, - params: { - queryBuilder: Knex.QueryBuilder; - field: IFieldInstance; - value: IFilterValue; - } - ) { + compiler(builderClient: Knex.QueryBuilder, operator: IFilterOperator, value: IFilterValue) { const operatorHandlers = { [is.value]: this.isOperatorHandler, [isExactly.value]: this.isExactlyOperatorHandler, @@ -91,140 +85,146 @@ export abstract class AbstractCellValueFilter implements ICellValueFilterInterfa throw new InternalServerErrorException(`Unknown operator ${operator} for filter`); } - const { field, value } = params; - return chosenHandler(params.queryBuilder, { field, operator, value }); + return chosenHandler(builderClient, operator, value); } isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - const parseValue = field.cellValueType === CellValueType.Number ? Number(value) : value; + const parseValue = this.field.cellValueType === CellValueType.Number ? Number(value) : value; - queryBuilder.where(field.dbFieldName, parseValue); - return queryBuilder; + builderClient.where(this.columnName, parseValue); + return builderClient; } isExactlyOperatorHandler( - _queryBuilder: Knex.QueryBuilder, - _params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + _builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + _value: IFilterValue ): Knex.QueryBuilder { throw new NotImplementedException(); } abstract isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder; containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.where(field.dbFieldName, 'LIKE', `%${value}%`); - return queryBuilder; + builderClient.where(this.columnName, 'LIKE', `%${value}%`); + return builderClient; } abstract doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder; isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - const parseValue = field.cellValueType === CellValueType.Number ? Number(value) : value; + const { cellValueType } = this.field; + const parseValue = cellValueType === CellValueType.Number ? Number(value) : value; - queryBuilder.where(field.dbFieldName, '>', parseValue); - return queryBuilder; + builderClient.where(this.columnName, '>', parseValue); + return builderClient; } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - const parseValue = field.cellValueType === CellValueType.Number ? Number(value) : value; + const { cellValueType } = this.field; + const parseValue = cellValueType === CellValueType.Number ? Number(value) : value; - queryBuilder.where(field.dbFieldName, '>=', parseValue); - return queryBuilder; + builderClient.where(this.columnName, '>=', parseValue); + return builderClient; } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - const parseValue = field.cellValueType === CellValueType.Number ? Number(value) : value; + const { cellValueType } = this.field; + const parseValue = cellValueType === CellValueType.Number ? Number(value) : value; - queryBuilder.where(field.dbFieldName, '<', parseValue); - return queryBuilder; + builderClient.where(this.columnName, '<', parseValue); + return builderClient; } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - const parseValue = field.cellValueType === CellValueType.Number ? Number(value) : value; + const { cellValueType } = this.field; + const parseValue = cellValueType === CellValueType.Number ? Number(value) : value; - queryBuilder.where(field.dbFieldName, '<=', parseValue); - return queryBuilder; + builderClient.where(this.columnName, '<=', parseValue); + return builderClient; } isAnyOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; const valueList = literalValueListSchema.parse(value); - queryBuilder.whereIn(field.dbFieldName, [...valueList]); - return queryBuilder; + builderClient.whereIn(this.columnName, [...valueList]); + return builderClient; } abstract isNoneOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder; hasAllOfOperatorHandler( - _queryBuilder: Knex.QueryBuilder, - _params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + _builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + _value: IFilterValue ): Knex.QueryBuilder { throw new NotImplementedException(); } isWithInOperatorHandler( - _queryBuilder: Knex.QueryBuilder, - _params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + _builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + _value: IFilterValue ): Knex.QueryBuilder { throw new NotImplementedException(); } isEmptyOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + _value: IFilterValue ): Knex.QueryBuilder { - const { field } = params; - - queryBuilder.whereNull(field.dbFieldName); - return queryBuilder; + builderClient.whereNull(this.columnName); + return builderClient; } isNotEmptyOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + _value: IFilterValue ): Knex.QueryBuilder { - const { field } = params; - - queryBuilder.whereNotNull(field.dbFieldName); - return queryBuilder; + builderClient.whereNotNull(this.columnName); + return builderClient; } protected createSqlPlaceholders(values: unknown[]): string { diff --git a/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.interface.ts b/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.interface.ts index 6a9d9d23b2..36fc851523 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.interface.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/cell-value-filter.interface.ts @@ -1,14 +1,10 @@ import type { IFilterOperator, IFilterValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../features/field/model/factory'; export type ICellValueFilterHandler = ( - queryBuilder: Knex.QueryBuilder, - params: { - field: IFieldInstance; - operator: IFilterOperator; - value: IFilterValue; - } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ) => Knex.QueryBuilder; export interface ICellValueFilterInterface { 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 437d4ba398..d1c36097e1 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 @@ -18,7 +18,7 @@ import { isNotEmpty, } from '@teable-group/core'; import type { Knex } from 'knex'; -import { includes, invert, isObject } from 'lodash'; +import { get, 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'; @@ -27,12 +27,16 @@ import type { IFilterQueryInterface } from './filter-query.interface'; export abstract class AbstractFilterQuery implements IFilterQueryInterface { private logger = new Logger(AbstractFilterQuery.name); + protected _table: string; + constructor( protected readonly originQueryBuilder: Knex.QueryBuilder, protected readonly fields?: { [fieldId: string]: IFieldInstance }, protected readonly filter?: IFilter, protected readonly extra?: IFilterQueryExtra - ) {} + ) { + this._table = get(originQueryBuilder, ['_single', 'table']); + } appendQueryBuilder(): Knex.QueryBuilder { this.preProcessRemoveNullAndReplaceMe(this.filter); @@ -106,28 +110,25 @@ export abstract class AbstractFilterQuery implements IFilterQueryInterface { } queryBuilder = queryBuilder[conjunction]; - this.getFilterAdapter(field).filterStrategies(convertOperator as IFilterOperator, { - queryBuilder, - field, - value, - }); + + this.getFilterAdapter(field).compiler(queryBuilder, convertOperator as IFilterOperator, value); return queryBuilder; } private getFilterAdapter(field: IFieldInstance): AbstractCellValueFilter { - const { isMultipleCellValue, dbFieldType } = field; + const { dbFieldType } = field; switch (field.cellValueType) { case CellValueType.Boolean: - return this.booleanFilter(isMultipleCellValue); + return this.booleanFilter(field); case CellValueType.Number: - return this.numberFilter(isMultipleCellValue); + return this.numberFilter(field); case CellValueType.DateTime: - return this.dateTimeFilter(isMultipleCellValue); + return this.dateTimeFilter(field); case CellValueType.String: { if (dbFieldType === DbFieldType.Json) { - return this.jsonFilter(isMultipleCellValue); + return this.jsonFilter(field); } - return this.stringFilter(isMultipleCellValue); + return this.stringFilter(field); } } } @@ -169,13 +170,13 @@ export abstract class AbstractFilterQuery implements IFilterQueryInterface { }); } - abstract booleanFilter(isMultipleCellValue?: boolean): AbstractCellValueFilter; + abstract booleanFilter(field: IFieldInstance): AbstractCellValueFilter; - abstract numberFilter(isMultipleCellValue?: boolean): AbstractCellValueFilter; + abstract numberFilter(field: IFieldInstance): AbstractCellValueFilter; - abstract dateTimeFilter(isMultipleCellValue?: boolean): AbstractCellValueFilter; + abstract dateTimeFilter(field: IFieldInstance): AbstractCellValueFilter; - abstract stringFilter(isMultipleCellValue?: boolean): AbstractCellValueFilter; + abstract stringFilter(field: IFieldInstance): AbstractCellValueFilter; - abstract jsonFilter(isMultipleCellValue?: boolean): AbstractCellValueFilter; + abstract jsonFilter(field: IFieldInstance): AbstractCellValueFilter; } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/cell-value-filter.postgres.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/cell-value-filter.postgres.ts index aa712d6c24..34cec5d82a 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/cell-value-filter.postgres.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/cell-value-filter.postgres.ts @@ -1,44 +1,39 @@ import type { IFilterOperator, IFilterValue } from '@teable-group/core'; import { CellValueType, literalValueListSchema } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../features/field/model/factory'; import { AbstractCellValueFilter } from '../../cell-value-filter.abstract'; export class CellValueFilterPostgres extends AbstractCellValueFilter { isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - const parseValue = field.cellValueType === CellValueType.Number ? Number(value) : value; + const { cellValueType } = this.field; + const parseValue = cellValueType === CellValueType.Number ? Number(value) : value; - queryBuilder.whereRaw(`?? IS DISTINCT FROM ?`, [field.dbFieldName, parseValue]); - return queryBuilder; + builderClient.whereRaw(`?? IS DISTINCT FROM ?`, [this.columnName, parseValue]); + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`COALESCE(??, '') NOT LIKE ?`, [field.dbFieldName, `%${value}%`]); - return queryBuilder; + builderClient.whereRaw(`COALESCE(??, '') NOT LIKE ?`, [this.columnName, `%${value}%`]); + return builderClient; } isNoneOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { - field: IFieldInstance; - operator: IFilterOperator; - value: IFilterValue; - } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; const valueList = literalValueListSchema.parse(value); - const sql = `COALESCE(??, '') NOT IN (${super.createSqlPlaceholders(valueList)})`; - queryBuilder.whereRaw(sql, [field.dbFieldName, ...valueList]); - return queryBuilder; + const sql = `COALESCE(??, '') NOT IN (${this.createSqlPlaceholders(valueList)})`; + builderClient.whereRaw(sql, [this.columnName, ...valueList]); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts index 68805f2cfa..48d80fe292 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts @@ -1,18 +1,18 @@ import type { IFilterOperator, IFilterValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; import { BooleanCellValueFilterAdapter } from '../single-value/boolean-cell-value-filter.adapter'; export class MultipleBooleanCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - return new BooleanCellValueFilterAdapter( - this.queryBuilder, - this.fields, - this.filter - ).isOperatorHandler(queryBuilder, params); + return new BooleanCellValueFilterAdapter(this.dbTableName, this.field).isOperatorHandler( + builderClient, + operator, + value + ); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts index bce3628278..9fa3799d81 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts @@ -1,101 +1,107 @@ /* eslint-disable sonarjs/no-identical-functions */ import type { IDateFieldOptions, IDateFilter, IFilterOperator } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class MultipleDatetimeCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereRaw( + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereRaw( `??::jsonb @\\? '$[*] \\? (@ >= "${dateTimeRange[0]}" && @ <= "${dateTimeRange[1]}")'`, - [field.dbFieldName] + [this.columnName] ); - return queryBuilder; + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereRaw( + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereRaw( `NOT ??::jsonb @\\? '$[*] \\? (@ >= "${dateTimeRange[0]}" && @ <= "${dateTimeRange[1]}")'`, - [field.dbFieldName] + [this.columnName] ); - return queryBuilder; + return builderClient; } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ > "${dateTimeRange[1]}")'`, [ - field.dbFieldName, + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ > "${dateTimeRange[1]}")'`, [ + this.columnName, ]); - return queryBuilder; + return builderClient; } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ >= "${dateTimeRange[0]}")'`, [ - field.dbFieldName, + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ >= "${dateTimeRange[0]}")'`, [ + this.columnName, ]); - return queryBuilder; + return builderClient; } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ < "${dateTimeRange[0]}")'`, [ - field.dbFieldName, + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ < "${dateTimeRange[0]}")'`, [ + this.columnName, ]); - return queryBuilder; + return builderClient; } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ <= "${dateTimeRange[1]}")'`, [ - field.dbFieldName, + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ <= "${dateTimeRange[1]}")'`, [ + this.columnName, ]); - return queryBuilder; + return builderClient; } isWithInOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereRaw( + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereRaw( `??::jsonb @\\? '$[*] \\? (@ >= "${dateTimeRange[0]}" && @ <= "${dateTimeRange[1]}")'`, - [field.dbFieldName] + [this.columnName] ); - return queryBuilder; + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts index 9a167d775d..6e55aed26e 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts @@ -1,164 +1,171 @@ import type { IFilterOperator, ILiteralValue, ILiteralValueList } from '@teable-group/core'; import { FieldType } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class MultipleJsonCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link) { + if (type === FieldType.Link) { const parseValue = JSON.stringify({ title: value }); - queryBuilder.whereRaw(`??::jsonb @> ?::jsonb`, [field.dbFieldName, parseValue]); + builderClient.whereRaw(`??::jsonb @> ?::jsonb`, [this.columnName, parseValue]); } else { - queryBuilder.whereRaw(`??::jsonb \\? ?`, [field.dbFieldName, value]); + builderClient.whereRaw(`??::jsonb \\? ?`, [this.columnName, value]); } - return queryBuilder; + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link) { + if (type === FieldType.Link) { const parseValue = JSON.stringify({ title: value }); - queryBuilder.whereRaw(`NOT COALESCE(??, '[]')::jsonb @> ?::jsonb`, [ - field.dbFieldName, + builderClient.whereRaw(`NOT COALESCE(??, '[]')::jsonb @> ?::jsonb`, [ + this.columnName, parseValue, ]); } else { - queryBuilder.whereRaw(`NOT COALESCE(??, '[]')::jsonb \\? ?`, [field.dbFieldName, value]); + builderClient.whereRaw(`NOT COALESCE(??, '[]')::jsonb \\? ?`, [this.columnName, value]); } - return queryBuilder; + return builderClient; } isExactlyOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; const sqlPlaceholders = this.createSqlPlaceholders(value); - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw( + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw( `jsonb_path_query_array(??::jsonb, '$[*].id') @> to_jsonb(ARRAY[${sqlPlaceholders}]) AND to_jsonb(ARRAY[${sqlPlaceholders}]) @> jsonb_path_query_array(??::jsonb, '$[*].id')`, - [field.dbFieldName, ...value, ...value, field.dbFieldName] + [this.columnName, ...value, ...value, this.columnName] ); } else { - queryBuilder.whereRaw( + builderClient.whereRaw( `??::jsonb @> to_jsonb(ARRAY[${sqlPlaceholders}]) AND to_jsonb(ARRAY[${sqlPlaceholders}]) @> ??::jsonb`, - [field.dbFieldName, ...value, ...value, field.dbFieldName] + [this.columnName, ...value, ...value, this.columnName] ); } - return queryBuilder; + return builderClient; } isAnyOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; const sqlPlaceholders = this.createSqlPlaceholders(value); - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw( + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw( `jsonb_path_query_array(??::jsonb, '$[*].id') \\?| ARRAY[${sqlPlaceholders}]`, - [field.dbFieldName, ...value] + [this.columnName, ...value] ); } else { - queryBuilder.whereRaw(`??::jsonb \\?| ARRAY[${sqlPlaceholders}]`, [ - field.dbFieldName, + builderClient.whereRaw(`??::jsonb \\?| ARRAY[${sqlPlaceholders}]`, [ + this.columnName, ...value, ]); } - return queryBuilder; + return builderClient; } isNoneOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; const sqlPlaceholders = this.createSqlPlaceholders(value); - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw( + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw( `NOT jsonb_path_query_array(COALESCE(??, '[]')::jsonb, '$[*].id') \\?| ARRAY[${sqlPlaceholders}]`, - [field.dbFieldName, ...value] + [this.columnName, ...value] ); } else { - queryBuilder.whereRaw(`NOT COALESCE(??, '[]')::jsonb \\?| ARRAY[${sqlPlaceholders}]`, [ - field.dbFieldName, + builderClient.whereRaw(`NOT COALESCE(??, '[]')::jsonb \\?| ARRAY[${sqlPlaceholders}]`, [ + this.columnName, ...value, ]); } - return queryBuilder; + return builderClient; } hasAllOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; const sqlPlaceholders = this.createSqlPlaceholders(value); - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw( + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw( `jsonb_path_query_array(??::jsonb, '$[*].id') @> to_jsonb(ARRAY[${sqlPlaceholders}])`, - [field.dbFieldName, ...value] + [this.columnName, ...value] ); } else { - queryBuilder.whereRaw(`??::jsonb @> to_jsonb(ARRAY[${sqlPlaceholders}])`, [ - field.dbFieldName, + builderClient.whereRaw(`??::jsonb @> to_jsonb(ARRAY[${sqlPlaceholders}])`, [ + this.columnName, ...value, ]); } - return queryBuilder; + return builderClient; } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link) { - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@.title like_regex "${value}" flag "i")'`, [ - field.dbFieldName, + if (type === FieldType.Link) { + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@.title like_regex "${value}" flag "i")'`, [ + this.columnName, ]); } else { - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, [ - field.dbFieldName, + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, [ + this.columnName, ]); } - return queryBuilder; + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link) { - queryBuilder.whereRaw( + if (type === FieldType.Link) { + builderClient.whereRaw( `NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@.title like_regex "${value}" flag "i")'`, - [field.dbFieldName] + [this.columnName] ); } else { - queryBuilder.whereRaw( + builderClient.whereRaw( `NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, - [field.dbFieldName] + [this.columnName] ); } - return queryBuilder; + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts index 668b416b90..3e99651154 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts @@ -1,69 +1,62 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class MultipleNumberCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`??::jsonb @> '[?]'::jsonb`, [field.dbFieldName, Number(value)]); - return queryBuilder; + builderClient.whereRaw(`??::jsonb @> '[?]'::jsonb`, [this.columnName, Number(value)]); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`NOT COALESCE(??, '[]')::jsonb @> '[?]'::jsonb`, [ - field.dbFieldName, + builderClient.whereRaw(`NOT COALESCE(??, '[]')::jsonb @> '[?]'::jsonb`, [ + this.columnName, Number(value), ]); - return queryBuilder; + return builderClient; } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ > ?)'`, [field.dbFieldName, Number(value)]); - return queryBuilder; + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ > ?)'`, [this.columnName, Number(value)]); + return builderClient; } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ >= ?)'`, [field.dbFieldName, Number(value)]); - return queryBuilder; + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ >= ?)'`, [this.columnName, Number(value)]); + return builderClient; } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ < ?)'`, [field.dbFieldName, Number(value)]); - return queryBuilder; + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ < ?)'`, [this.columnName, Number(value)]); + return builderClient; } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ <= ?)'`, [field.dbFieldName, Number(value)]); - return queryBuilder; + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ <= ?)'`, [this.columnName, Number(value)]); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts index c5426d6916..45252dab99 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts @@ -1,53 +1,48 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class MultipleStringCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [field.dbFieldName]); - return queryBuilder; + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [this.columnName]); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [ - field.dbFieldName, + builderClient.whereRaw(`NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [ + this.columnName, ]); - return queryBuilder; + return builderClient; } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, [ - field.dbFieldName, + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, [ + this.columnName, ]); - return queryBuilder; + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw( + builderClient.whereRaw( `NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, - [field.dbFieldName] + [this.columnName] ); - return queryBuilder; + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts index 61de218f33..ed51f56654 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts @@ -1,17 +1,17 @@ import type { IFilterOperator, IFilterValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class BooleanCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { value } = params; - return (value ? super.isNotEmptyOperatorHandler : super.isEmptyOperatorHandler)( - queryBuilder, - params + return (value ? super.isNotEmptyOperatorHandler : super.isEmptyOperatorHandler).bind(this)( + builderClient, + operator, + value ); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts index 8ffe421a6f..d67b9772a8 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts @@ -1,84 +1,90 @@ /* eslint-disable sonarjs/no-identical-functions */ import type { IDateFieldOptions, IDateFilter, IFilterOperator } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class DatetimeCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereBetween(field.dbFieldName, dateTimeRange); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereBetween(this.columnName, dateTimeRange); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereNotBetween(field.dbFieldName, dateTimeRange); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereNotBetween(this.columnName, dateTimeRange); + return builderClient; } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '>', dateTimeRange[1]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '>', dateTimeRange[1]); + return builderClient; } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '>=', dateTimeRange[0]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '>=', dateTimeRange[0]); + return builderClient; } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '<', dateTimeRange[0]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '<', dateTimeRange[0]); + return builderClient; } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '<=', dateTimeRange[1]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '<=', dateTimeRange[1]); + return builderClient; } isWithInOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereBetween(field.dbFieldName, dateTimeRange); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereBetween(this.columnName, dateTimeRange); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/json-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/json-cell-value-filter.adapter.ts index 813cac69a5..fce38d6a8b 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/json-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/json-cell-value-filter.adapter.ts @@ -6,119 +6,124 @@ import type { } from '@teable-group/core'; import { FieldType } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class JsonCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw(`??::jsonb @\\? '$.id \\? (@ == "${value}")'`, [field.dbFieldName]); + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw(`??::jsonb @\\? '$.id \\? (@ == "${value}")'`, [this.columnName]); } else { - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [field.dbFieldName]); + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [this.columnName]); } - return queryBuilder; + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw(`NOT COALESCE(??, '{}')::jsonb @\\? '$.id \\? (@ == "${value}")'`, [ - field.dbFieldName, + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw(`NOT COALESCE(??, '{}')::jsonb @\\? '$.id \\? (@ == "${value}")'`, [ + this.columnName, ]); } else { - queryBuilder.whereRaw(`NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [ - field.dbFieldName, + builderClient.whereRaw(`NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@ == "${value}")'`, [ + this.columnName, ]); } - return queryBuilder; + return builderClient; } isAnyOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw( + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw( `jsonb_extract_path_text(??::jsonb, 'id') IN (${this.createSqlPlaceholders(value)})`, - [field.dbFieldName, ...value] + [this.columnName, ...value] ); } else { - queryBuilder.whereRaw(`??::jsonb \\?| ARRAY[${this.createSqlPlaceholders(value)}]`, [ - field.dbFieldName, + builderClient.whereRaw(`??::jsonb \\?| ARRAY[${this.createSqlPlaceholders(value)}]`, [ + this.columnName, ...value, ]); } - return queryBuilder; + return builderClient; } isNoneOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link || field.type === FieldType.User) { - queryBuilder.whereRaw( + if (type === FieldType.Link || type === FieldType.User) { + builderClient.whereRaw( `COALESCE(jsonb_extract_path_text(COALESCE(??, '{}')::jsonb, 'id'), '') NOT IN (${this.createSqlPlaceholders( value )})`, - [field.dbFieldName, ...value] + [this.columnName, ...value] ); } else { - queryBuilder.whereRaw( + builderClient.whereRaw( `NOT COALESCE(??, '[]')::jsonb \\?| ARRAY[${this.createSqlPlaceholders(value)}]`, - [field.dbFieldName, ...value] + [this.columnName, ...value] ); } - return queryBuilder; + return builderClient; } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link) { - queryBuilder.whereRaw(`??::jsonb @\\? '$.title \\? (@ like_regex "${value}" flag "i")'`, [ - field.dbFieldName, + if (type === FieldType.Link) { + builderClient.whereRaw(`??::jsonb @\\? '$.title \\? (@ like_regex "${value}" flag "i")'`, [ + this.columnName, ]); } else { - queryBuilder.whereRaw(`??::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, [ - field.dbFieldName, + builderClient.whereRaw(`??::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, [ + this.columnName, ]); } - return queryBuilder; + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; + const { type } = this.field; - if (field.type === FieldType.Link) { - queryBuilder.whereRaw( + if (type === FieldType.Link) { + builderClient.whereRaw( `NOT COALESCE(??, '{}')::jsonb @\\? '$.title \\? (@ like_regex "${value}" flag "i")'`, - [field.dbFieldName] + [this.columnName] ); } else { - queryBuilder.whereRaw( + builderClient.whereRaw( `NOT COALESCE(??, '[]')::jsonb @\\? '$[*] \\? (@ like_regex "${value}" flag "i")'`, - [field.dbFieldName] + [this.columnName] ); } - return queryBuilder; + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/number-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/number-cell-value-filter.adapter.ts index 3da9e9dbb1..422fb7ab36 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/number-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/number-cell-value-filter.adapter.ts @@ -1,48 +1,53 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class NumberCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isOperatorHandler(queryBuilder, params); + return super.isOperatorHandler(builderClient, operator, value); } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isNotOperatorHandler(queryBuilder, params); + return super.isNotOperatorHandler(builderClient, operator, value); } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isGreaterOperatorHandler(queryBuilder, params); + return super.isGreaterOperatorHandler(builderClient, operator, value); } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isGreaterEqualOperatorHandler(queryBuilder, params); + return super.isGreaterEqualOperatorHandler(builderClient, operator, value); } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isLessOperatorHandler(queryBuilder, params); + return super.isLessOperatorHandler(builderClient, operator, value); } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isLessEqualOperatorHandler(queryBuilder, params); + return super.isLessEqualOperatorHandler(builderClient, operator, value); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/string-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/string-cell-value-filter.adapter.ts index 7988d3a9a6..d784f8550e 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/string-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/cell-value-filter/single-value/string-cell-value-filter.adapter.ts @@ -1,34 +1,37 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterPostgres } from '../cell-value-filter.postgres'; export class StringCellValueFilterAdapter extends CellValueFilterPostgres { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isOperatorHandler(queryBuilder, params); + return super.isOperatorHandler(builderClient, operator, value); } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isNotOperatorHandler(queryBuilder, params); + return super.isNotOperatorHandler(builderClient, operator, value); } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.containsOperatorHandler(queryBuilder, params); + return super.containsOperatorHandler(builderClient, operator, value); } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.doesNotContainOperatorHandler(queryBuilder, params); + return super.doesNotContainOperatorHandler(builderClient, operator, value); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/postgres/filter-query.postgres.ts b/apps/nestjs-backend/src/db-provider/filter-query/postgres/filter-query.postgres.ts index 7de8bcfe09..8774953714 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/postgres/filter-query.postgres.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/postgres/filter-query.postgres.ts @@ -1,3 +1,4 @@ +import type { IFieldInstance } from '../../../features/field/model/factory'; import { AbstractFilterQuery } from '../filter-query.abstract'; import { BooleanCellValueFilterAdapter, @@ -14,58 +15,43 @@ import { import type { CellValueFilterPostgres } from './cell-value-filter/cell-value-filter.postgres'; export class FilterQueryPostgres extends AbstractFilterQuery { - booleanFilter(isMultipleCellValue?: boolean): CellValueFilterPostgres { + booleanFilter(field: IFieldInstance): CellValueFilterPostgres { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleBooleanCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleBooleanCellValueFilterAdapter(this._table, field); } - return new BooleanCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new BooleanCellValueFilterAdapter(this._table, field); } - numberFilter(isMultipleCellValue?: boolean): CellValueFilterPostgres { + numberFilter(field: IFieldInstance): CellValueFilterPostgres { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleNumberCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleNumberCellValueFilterAdapter(this._table, field); } - return new NumberCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new NumberCellValueFilterAdapter(this._table, field); } - dateTimeFilter(isMultipleCellValue?: boolean): CellValueFilterPostgres { + dateTimeFilter(field: IFieldInstance): CellValueFilterPostgres { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleDatetimeCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleDatetimeCellValueFilterAdapter(this._table, field); } - return new DatetimeCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new DatetimeCellValueFilterAdapter(this._table, field); } - stringFilter(isMultipleCellValue?: boolean): CellValueFilterPostgres { + stringFilter(field: IFieldInstance): CellValueFilterPostgres { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleStringCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleStringCellValueFilterAdapter(this._table, field); } - return new StringCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new StringCellValueFilterAdapter(this._table, field); } - jsonFilter(isMultipleCellValue?: boolean): CellValueFilterPostgres { + jsonFilter(field: IFieldInstance): CellValueFilterPostgres { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleJsonCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleJsonCellValueFilterAdapter(this._table, field); } - return new JsonCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new JsonCellValueFilterAdapter(this._table, field); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/cell-value-filter.sqlite.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/cell-value-filter.sqlite.ts index dc8fa9cfcf..0dc6d102da 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/cell-value-filter.sqlite.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/cell-value-filter.sqlite.ts @@ -12,46 +12,36 @@ import { AbstractCellValueFilter } from '../../cell-value-filter.abstract'; export class CellValueFilterSqlite extends AbstractCellValueFilter { isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - const parseValue = field.cellValueType === CellValueType.Number ? Number(value) : value; + const { cellValueType } = this.field; + const parseValue = cellValueType === CellValueType.Number ? Number(value) : value; - queryBuilder.whereRaw(`ifnull(${field.dbFieldName}, '') != ?`, [parseValue]); - return queryBuilder; + builderClient.whereRaw(`ifnull(${this.columnName}, '') != ?`, [parseValue]); + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; - - queryBuilder.whereRaw(`ifnull(${field.dbFieldName}, '') not like ?`, [`%${value}%`]); - return queryBuilder; + builderClient.whereRaw(`ifnull(${this.columnName}, '') not like ?`, [`%${value}%`]); + return builderClient; } isNoneOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { - field: IFieldInstance; - operator: IFilterOperator; - value: IFilterValue; - } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, value } = params; const valueList = literalValueListSchema.parse(value); - const sql = `ifnull(${field.dbFieldName}, '') not in (${this.createSqlPlaceholders( - valueList - )})`; - queryBuilder.whereRaw(sql, [...valueList]); - return queryBuilder; - } - - protected tableDbFieldName(field: IFieldInstance): string { - return `${this._table}.${field.dbFieldName}`; + const sql = `ifnull(${this.columnName}, '') not in (${this.createSqlPlaceholders(valueList)})`; + builderClient.whereRaw(sql, [...valueList]); + return builderClient; } protected getJsonQueryColumn(field: IFieldInstance, operator: IFilterOperator): string { diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts index 787ef3c560..987da7c186 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-boolean-cell-value-filter.adapter.ts @@ -1,18 +1,18 @@ import type { IFilterOperator, IFilterValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; import { BooleanCellValueFilterAdapter } from '../single-value/boolean-cell-value-filter.adapter'; export class MultipleBooleanCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - return new BooleanCellValueFilterAdapter( - this.queryBuilder, - this.fields, - this.filter - ).isOperatorHandler(queryBuilder, params); + return new BooleanCellValueFilterAdapter(this.dbTableName, this.field).isOperatorHandler( + builderClient, + operator, + value + ); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts index 8e138da359..4cc68bc645 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-datetime-cell-value-filter.adapter.ts @@ -1,119 +1,125 @@ /* eslint-disable sonarjs/no-identical-functions */ import type { IDateFieldOptions, IDateFilter, IFilterOperator } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class MultipleDatetimeCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value between ? and ? )`; - queryBuilder.whereRaw(sql, [...dateTimeRange]); - return queryBuilder; + builderClient.whereRaw(sql, [...dateTimeRange]); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); const sql = `not exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value between ? and ? )`; - queryBuilder.whereRaw(sql, [...dateTimeRange]); - return queryBuilder; + builderClient.whereRaw(sql, [...dateTimeRange]); + return builderClient; } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value > ? )`; - queryBuilder.whereRaw(sql, [dateTimeRange[1]]); - return queryBuilder; + builderClient.whereRaw(sql, [dateTimeRange[1]]); + return builderClient; } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value >= ? )`; - queryBuilder.whereRaw(sql, [dateTimeRange[0]]); - return queryBuilder; + builderClient.whereRaw(sql, [dateTimeRange[0]]); + return builderClient; } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value < ? )`; - queryBuilder.whereRaw(sql, [dateTimeRange[0]]); - return queryBuilder; + builderClient.whereRaw(sql, [dateTimeRange[0]]); + return builderClient; } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value <= ? )`; - queryBuilder.whereRaw(sql, [dateTimeRange[1]]); - return queryBuilder; + builderClient.whereRaw(sql, [dateTimeRange[1]]); + return builderClient; } isWithInOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value between ? and ? )`; - queryBuilder.whereRaw(sql, [...dateTimeRange]); - return queryBuilder; + builderClient.whereRaw(sql, [...dateTimeRange]); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts index 5f12e995ec..fca2dda1cd 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-json-cell-value-filter.adapter.ts @@ -1,127 +1,118 @@ import type { IFilterOperator, ILiteralValue, ILiteralValueList } from '@teable-group/core'; import type { Knex } from 'knex'; import { size } from 'lodash'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class MultipleJsonCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const isOfSql = `exists (select 1 from json_each(??) where ?? = ?)`; - queryBuilder.whereRaw(isOfSql, [this.tableDbFieldName(field), jsonColumn, value]); - return queryBuilder; + builderClient.whereRaw(isOfSql, [this.tableColumnRef, jsonColumn, value]); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const isNotOfSql = `not exists (select 1 from json_each(??) where ?? = ?)`; - queryBuilder.whereRaw(isNotOfSql, [this.tableDbFieldName(field), jsonColumn, value]); - return queryBuilder; + builderClient.whereRaw(isNotOfSql, [this.tableColumnRef, jsonColumn, value]); + return builderClient; } isExactlyOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const isExactlySql = `( select count(distinct json_each.value) from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where ${jsonColumn} in (${this.createSqlPlaceholders(value)}) - and json_array_length(${this._table}.${field.dbFieldName}) = ? + and json_array_length(${this.tableColumnRef}) = ? ) = ?`; const vLength = value.length; - queryBuilder.whereRaw(isExactlySql, [...value, vLength, vLength]); - return queryBuilder; + builderClient.whereRaw(isExactlySql, [...value, vLength, vLength]); + return builderClient; } isAnyOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const hasAnyOfSql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where ${jsonColumn} in (${this.createSqlPlaceholders(value)}) )`; - queryBuilder.whereRaw(hasAnyOfSql, [...value]); - return queryBuilder; + builderClient.whereRaw(hasAnyOfSql, [...value]); + return builderClient; } isNoneOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const hasNoneOfSql = `not exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where ${jsonColumn} in (${this.createSqlPlaceholders(value)}) )`; - queryBuilder.whereRaw(hasNoneOfSql, [...value]); - return queryBuilder; + builderClient.whereRaw(hasNoneOfSql, [...value]); + return builderClient; } hasAllOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const hasAllSql = `( select count(distinct json_each.value) from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where ${jsonColumn} in (${this.createSqlPlaceholders(value)}) ) = ?`; - queryBuilder.whereRaw(hasAllSql, [...value, size(value)]); - return queryBuilder; + builderClient.whereRaw(hasAllSql, [...value, size(value)]); + return builderClient; } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, operator, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) - where ${this.getJsonQueryColumn(field, operator)} like ? + json_each(${this.tableColumnRef}) + where ${this.getJsonQueryColumn(this.field, operator)} like ? )`; - queryBuilder.whereRaw(sql, [`%${value}%`]); - return queryBuilder; + builderClient.whereRaw(sql, [`%${value}%`]); + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, operator, value } = params; - const sql = `not exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) - where ${this.getJsonQueryColumn(field, operator)} like ? + json_each(${this.tableColumnRef}) + where ${this.getJsonQueryColumn(this.field, operator)} like ? )`; - queryBuilder.whereRaw(sql, [`%${value}%`]); - return queryBuilder; + builderClient.whereRaw(sql, [`%${value}%`]); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts index 072c12a78d..18afaaae68 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-number-cell-value-filter.adapter.ts @@ -1,96 +1,89 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class MultipleNumberCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value in (?) )`; - queryBuilder.whereRaw(sql, [Number(value)]); - return queryBuilder; + builderClient.whereRaw(sql, [Number(value)]); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `not exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value in (?) )`; - queryBuilder.whereRaw(sql, [Number(value)]); - return queryBuilder; + builderClient.whereRaw(sql, [Number(value)]); + return builderClient; } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value > ? )`; - queryBuilder.whereRaw(sql, [Number(value)]); - return queryBuilder; + builderClient.whereRaw(sql, [Number(value)]); + return builderClient; } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value >= ? )`; - queryBuilder.whereRaw(sql, [Number(value)]); - return queryBuilder; + builderClient.whereRaw(sql, [Number(value)]); + return builderClient; } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value < ? )`; - queryBuilder.whereRaw(sql, [Number(value)]); - return queryBuilder; + builderClient.whereRaw(sql, [Number(value)]); + return builderClient; } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value <= ? )`; - queryBuilder.whereRaw(sql, [Number(value)]); - return queryBuilder; + builderClient.whereRaw(sql, [Number(value)]); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts index ffcff3f21c..4b8cdbd4a1 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/multiple-value/multiple-string-cell-value-filter.adapter.ts @@ -1,66 +1,61 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class MultipleStringCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value in (?) )`; - queryBuilder.whereRaw(sql, [value]); - return queryBuilder; + builderClient.whereRaw(sql, [value]); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `not exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value in (?) )`; - queryBuilder.whereRaw(sql, [value]); - return queryBuilder; + builderClient.whereRaw(sql, [value]); + return builderClient; } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value like ? )`; - queryBuilder.whereRaw(sql, [`%${value}%`]); - return queryBuilder; + builderClient.whereRaw(sql, [`%${value}%`]); + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, value } = params; - const sql = `not exists ( select 1 from - json_each(${this._table}.${field.dbFieldName}) + json_each(${this.tableColumnRef}) where json_each.value like ? )`; - queryBuilder.whereRaw(sql, [`%${value}%`]); - return queryBuilder; + builderClient.whereRaw(sql, [`%${value}%`]); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts index c4fd1f0705..36298a6a62 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/boolean-cell-value-filter.adapter.ts @@ -1,17 +1,17 @@ import type { IFilterOperator, IFilterValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class BooleanCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { value } = params; - return (value ? super.isNotEmptyOperatorHandler : super.isEmptyOperatorHandler)( - queryBuilder, - params + return (value ? super.isNotEmptyOperatorHandler : super.isEmptyOperatorHandler).bind(this)( + builderClient, + operator, + value ); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts index 1c192dce96..36cfc74437 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/datetime-cell-value-filter.adapter.ts @@ -1,84 +1,90 @@ /* eslint-disable sonarjs/no-identical-functions */ import type { IDateFieldOptions, IDateFilter, IFilterOperator } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class DatetimeCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereBetween(field.dbFieldName, dateTimeRange); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereBetween(this.columnName, dateTimeRange); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereNotBetween(field.dbFieldName, dateTimeRange); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereNotBetween(this.columnName, dateTimeRange); + return builderClient; } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '>', dateTimeRange[1]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '>', dateTimeRange[1]); + return builderClient; } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '>=', dateTimeRange[0]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '>=', dateTimeRange[0]); + return builderClient; } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '<', dateTimeRange[0]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '<', dateTimeRange[0]); + return builderClient; } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.where(field.dbFieldName, '<=', dateTimeRange[1]); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.where(this.columnName, '<=', dateTimeRange[1]); + return builderClient; } isWithInOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IDateFilter } + builderClient: Knex.QueryBuilder, + _operator: IFilterOperator, + value: IDateFilter ): Knex.QueryBuilder { - const { field, value } = params; + const { options } = this.field; - const dateTimeRange = this.getFilterDateTimeRange(field.options as IDateFieldOptions, value); - queryBuilder.whereBetween(field.dbFieldName, dateTimeRange); - return queryBuilder; + const dateTimeRange = this.getFilterDateTimeRange(options as IDateFieldOptions, value); + builderClient.whereBetween(this.columnName, dateTimeRange); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/json-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/json-cell-value-filter.adapter.ts index 08cb85c917..ef81c74174 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/json-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/json-cell-value-filter.adapter.ts @@ -5,77 +5,70 @@ import type { ILiteralValueList, } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class JsonCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const sql = `${jsonColumn} = ?`; - queryBuilder.whereRaw(sql, [value]); - return queryBuilder; + builderClient.whereRaw(sql, [value]); + return builderClient; } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const sql = `ifnull(${jsonColumn}, '') != ?`; - queryBuilder.whereRaw(sql, [value]); - return queryBuilder; + builderClient.whereRaw(sql, [value]); + return builderClient; } isAnyOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const sql = `${jsonColumn} in (${this.createSqlPlaceholders(value)})`; - queryBuilder.whereRaw(sql, [...value]); - return queryBuilder; + builderClient.whereRaw(sql, [...value]); + return builderClient; } isNoneOfOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValueList } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValueList ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const jsonColumn = this.getJsonQueryColumn(field, operator); + const jsonColumn = this.getJsonQueryColumn(this.field, operator); const sql = `ifnull(${jsonColumn}, '') not in (${this.createSqlPlaceholders(value)})`; - queryBuilder.whereRaw(sql, [...value]); - return queryBuilder; + builderClient.whereRaw(sql, [...value]); + return builderClient; } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const sql = `${this.getJsonQueryColumn(field, operator)} like ?`; - queryBuilder.whereRaw(sql, [`%${value}%`]); - return queryBuilder; + const sql = `${this.getJsonQueryColumn(this.field, operator)} like ?`; + builderClient.whereRaw(sql, [`%${value}%`]); + return builderClient; } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: IFilterValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: IFilterValue ): Knex.QueryBuilder { - const { field, operator, value } = params; - - const sql = `ifnull(${this.getJsonQueryColumn(field, operator)}, '') not like ?`; - queryBuilder.whereRaw(sql, [`%${value}%`]); - return queryBuilder; + const sql = `ifnull(${this.getJsonQueryColumn(this.field, operator)}, '') not like ?`; + builderClient.whereRaw(sql, [`%${value}%`]); + return builderClient; } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/number-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/number-cell-value-filter.adapter.ts index cfe42e425b..a91be65792 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/number-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/number-cell-value-filter.adapter.ts @@ -1,48 +1,53 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class NumberCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isOperatorHandler(queryBuilder, params); + return super.isOperatorHandler(builderClient, operator, value); } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isNotOperatorHandler(queryBuilder, params); + return super.isNotOperatorHandler(builderClient, operator, value); } isGreaterOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isGreaterOperatorHandler(queryBuilder, params); + return super.isGreaterOperatorHandler(builderClient, operator, value); } isGreaterEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isGreaterEqualOperatorHandler(queryBuilder, params); + return super.isGreaterEqualOperatorHandler(builderClient, operator, value); } isLessOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isLessOperatorHandler(queryBuilder, params); + return super.isLessOperatorHandler(builderClient, operator, value); } isLessEqualOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isLessEqualOperatorHandler(queryBuilder, params); + return super.isLessEqualOperatorHandler(builderClient, operator, value); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/string-cell-value-filter.adapter.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/string-cell-value-filter.adapter.ts index b57c1873a7..92e5c8805e 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/string-cell-value-filter.adapter.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/cell-value-filter/single-value/string-cell-value-filter.adapter.ts @@ -1,34 +1,37 @@ import type { IFilterOperator, ILiteralValue } from '@teable-group/core'; import type { Knex } from 'knex'; -import type { IFieldInstance } from '../../../../../features/field/model/factory'; import { CellValueFilterSqlite } from '../cell-value-filter.sqlite'; export class StringCellValueFilterAdapter extends CellValueFilterSqlite { isOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isOperatorHandler(queryBuilder, params); + return super.isOperatorHandler(builderClient, operator, value); } isNotOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.isNotOperatorHandler(queryBuilder, params); + return super.isNotOperatorHandler(builderClient, operator, value); } containsOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.containsOperatorHandler(queryBuilder, params); + return super.containsOperatorHandler(builderClient, operator, value); } doesNotContainOperatorHandler( - queryBuilder: Knex.QueryBuilder, - params: { field: IFieldInstance; operator: IFilterOperator; value: ILiteralValue } + builderClient: Knex.QueryBuilder, + operator: IFilterOperator, + value: ILiteralValue ): Knex.QueryBuilder { - return super.doesNotContainOperatorHandler(queryBuilder, params); + return super.doesNotContainOperatorHandler(builderClient, operator, value); } } diff --git a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/filter-query.sqlite.ts b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/filter-query.sqlite.ts index ec3513a276..8a42dc3c28 100644 --- a/apps/nestjs-backend/src/db-provider/filter-query/sqlite/filter-query.sqlite.ts +++ b/apps/nestjs-backend/src/db-provider/filter-query/sqlite/filter-query.sqlite.ts @@ -1,3 +1,4 @@ +import type { IFieldInstance } from '../../../features/field/model/factory'; import type { AbstractCellValueFilter } from '../cell-value-filter.abstract'; import { AbstractFilterQuery } from '../filter-query.abstract'; import { @@ -15,58 +16,43 @@ import { import type { CellValueFilterSqlite } from './cell-value-filter/cell-value-filter.sqlite'; export class FilterQuerySqlite extends AbstractFilterQuery { - booleanFilter(isMultipleCellValue?: boolean): CellValueFilterSqlite { + booleanFilter(field: IFieldInstance): CellValueFilterSqlite { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleBooleanCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleBooleanCellValueFilterAdapter(this._table, field); } - return new BooleanCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new BooleanCellValueFilterAdapter(this._table, field); } - numberFilter(isMultipleCellValue?: boolean): CellValueFilterSqlite { + numberFilter(field: IFieldInstance): CellValueFilterSqlite { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleNumberCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleNumberCellValueFilterAdapter(this._table, field); } - return new NumberCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new NumberCellValueFilterAdapter(this._table, field); } - dateTimeFilter(isMultipleCellValue?: boolean): CellValueFilterSqlite { + dateTimeFilter(field: IFieldInstance): CellValueFilterSqlite { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleDatetimeCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleDatetimeCellValueFilterAdapter(this._table, field); } - return new DatetimeCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new DatetimeCellValueFilterAdapter(this._table, field); } - stringFilter(isMultipleCellValue?: boolean): CellValueFilterSqlite { + stringFilter(field: IFieldInstance): CellValueFilterSqlite { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleStringCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleStringCellValueFilterAdapter(this._table, field); } - return new StringCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new StringCellValueFilterAdapter(this._table, field); } - jsonFilter(isMultipleCellValue?: boolean): AbstractCellValueFilter { + jsonFilter(field: IFieldInstance): AbstractCellValueFilter { + const { isMultipleCellValue } = field; if (isMultipleCellValue) { - return new MultipleJsonCellValueFilterAdapter( - this.originQueryBuilder, - this.fields, - this.filter - ); + return new MultipleJsonCellValueFilterAdapter(this._table, field); } - return new JsonCellValueFilterAdapter(this.originQueryBuilder, this.fields, this.filter); + return new JsonCellValueFilterAdapter(this._table, field); } } diff --git a/apps/nestjs-backend/test/aggregation.e2e-spec.ts b/apps/nestjs-backend/test/aggregation.e2e-spec.ts index 42d027b7fe..ce26368465 100644 --- a/apps/nestjs-backend/test/aggregation.e2e-spec.ts +++ b/apps/nestjs-backend/test/aggregation.e2e-spec.ts @@ -1,8 +1,8 @@ import type { INestApplication } from '@nestjs/common'; -import type { ITableFullVo } from '@teable-group/core'; -import { StatisticsFunc } from '@teable-group/core'; +import type { ITableFullVo, StatisticsFunc } from '@teable-group/core'; import { getAggregation, getRowCount } from '@teable-group/openapi'; import { x_20 } from './data-helpers/20x'; +import { SIMPLE_AGGREGATION_CACES } from './data-helpers/caces'; import { createTable, deleteTable, initApp } from './utils/init-app'; describe('OpenAPI AggregationController (e2e)', () => { @@ -55,101 +55,7 @@ describe('OpenAPI AggregationController (e2e)', () => { expect(rowCount).toEqual(23); }); - 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)( + test.each(SIMPLE_AGGREGATION_CACES)( `should agg func [$aggFunc] value: $expectValue`, async ({ fieldIndex, aggFunc, expectValue }) => { const tableId = table.id; diff --git a/apps/nestjs-backend/test/data-helpers/20x.ts b/apps/nestjs-backend/test/data-helpers/20x.ts index a7dfc8f0a7..284abf9293 100644 --- a/apps/nestjs-backend/test/data-helpers/20x.ts +++ b/apps/nestjs-backend/test/data-helpers/20x.ts @@ -1,8 +1,9 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { faker } from '@faker-js/faker'; +/* eslint-disable sonarjs/no-duplicate-string */ import { Colors, DateFormattingPreset, + DateUtil, FieldType, generateFieldId, NumberFormattingType, @@ -49,7 +50,8 @@ const dateField = { formatting: { date: DateFormattingPreset.ISO, time: TimeFormatting.None, - timeZone: 'utc', + + timeZone: 'Asia/Singapore', }, }, }; @@ -68,9 +70,32 @@ const userField = { type: FieldType.User, }; +const multipleSelectField = { + id: generateFieldId(), + name: 'multipleSelect field', + description: 'the multipleSelect field', + type: FieldType.MultipleSelect, + options: { + choices: [ + { id: 'choX', name: 'rap', color: Colors.Cyan }, + { id: 'choY', name: 'rock', color: Colors.Blue }, + { id: 'choZ', name: 'hiphop', color: Colors.Gray }, + ], + }, +}; + export const x_20 = { - fields: [textField, numberField, singleSelectField, dateField, checkboxField, userField], + fields: [ + textField, + numberField, + singleSelectField, + dateField, + checkboxField, + userField, + multipleSelectField, + ], + // actual number of items: 23 records: [ { fields: {}, @@ -80,13 +105,15 @@ export const x_20 = { [textField.name]: 'Text Field 0', [numberField.name]: 0, [dateField.name]: '2019-12-31T16:00:00.000Z', + [userField.name]: { id: 'usrTestUserId', title: 'e2e' }, + [multipleSelectField.name]: ['rap', 'rock', 'hiphop'], }, }, { fields: { [textField.name]: 'Text Field 1', [numberField.name]: 1, - [dateField.name]: faker.date.past({ years: 1 }).toISOString(), + [multipleSelectField.name]: ['rap', 'rock'], }, }, { @@ -94,7 +121,8 @@ export const x_20 = { [textField.name]: 'Text Field 2', [numberField.name]: 2, [checkboxField.name]: true, - [dateField.name]: '2023-11-28T16:00:00.000Z', + [dateField.name]: '2022-11-28T16:00:00.000Z', + [multipleSelectField.name]: ['rap'], }, }, { @@ -102,7 +130,7 @@ export const x_20 = { [textField.name]: 'Text Field 3', [numberField.name]: 3, [singleSelectField.name]: 'x', - [dateField.name]: '2023-01-27T16:00:00.000Z', + [dateField.name]: '2022-01-27T16:00:00.000Z', }, }, { @@ -110,7 +138,7 @@ export const x_20 = { [textField.name]: 'Text Field 4', [numberField.name]: 4, [singleSelectField.name]: 'x', - [dateField.name]: '2023-02-28T16:00:00.000Z', + [dateField.name]: '2022-02-28T16:00:00.000Z', }, }, { @@ -118,7 +146,7 @@ export const x_20 = { [textField.name]: 'Text Field 5', [numberField.name]: 5, [singleSelectField.name]: 'x', - [dateField.name]: '2023-03-01T16:00:00.000Z', + [dateField.name]: '2022-03-01T16:00:00.000Z', }, }, { @@ -127,7 +155,7 @@ export const x_20 = { [numberField.name]: 6, [checkboxField.name]: true, [singleSelectField.name]: 'x', - [dateField.name]: '2023-03-11T16:00:00.000Z', + [dateField.name]: '2022-03-11T16:00:00.000Z', }, }, { @@ -135,7 +163,7 @@ export const x_20 = { [textField.name]: 'Text Field 7', [numberField.name]: 7, [singleSelectField.name]: 'x', - [dateField.name]: '2023-05-08T16:00:00.000Z', + [dateField.name]: '2022-05-08T16:00:00.000Z', }, }, { @@ -143,6 +171,7 @@ export const x_20 = { [textField.name]: 'Text Field 8', [numberField.name]: 8, [singleSelectField.name]: 'x', + [dateField.name]: new DateUtil('Asia/Singapore', true).offsetDay(1), }, }, { @@ -150,6 +179,7 @@ export const x_20 = { [textField.name]: 'Text Field 9', [numberField.name]: 9, [singleSelectField.name]: 'x', + [dateField.name]: new DateUtil('Asia/Singapore', true).offsetDay(-1), }, }, { @@ -157,6 +187,7 @@ export const x_20 = { [textField.name]: 'Text Field 10', [numberField.name]: 10, [singleSelectField.name]: 'y', + [dateField.name]: new DateUtil('Asia/Singapore', true).offsetWeek(1), }, }, { @@ -164,7 +195,7 @@ export const x_20 = { [textField.name]: 'Text Field 11', [numberField.name]: 11, [singleSelectField.name]: 'z', - [dateField.name]: faker.date.future({ years: 1 }).toISOString(), + [dateField.name]: new DateUtil('Asia/Singapore', true).offsetWeek(-1), }, }, { @@ -173,6 +204,7 @@ export const x_20 = { [numberField.name]: 12, [checkboxField.name]: true, [singleSelectField.name]: 'z', + [dateField.name]: new DateUtil('Asia/Singapore', true).offsetMonth(1), }, }, { @@ -180,6 +212,7 @@ export const x_20 = { [textField.name]: 'Text Field 13', [numberField.name]: 13, [singleSelectField.name]: 'y', + [dateField.name]: new DateUtil('Asia/Singapore', true).offsetMonth(-1), }, }, { @@ -187,12 +220,15 @@ export const x_20 = { [textField.name]: 'Text Field 14', [numberField.name]: 14, [singleSelectField.name]: 'y', + [dateField.name]: new DateUtil('Asia/Singapore', true).offset('year', 1), }, }, { fields: { [textField.name]: 'Text Field 15', [numberField.name]: 15, + [multipleSelectField.name]: ['rock', 'hiphop'], + [dateField.name]: new DateUtil('Asia/Singapore', true).offset('year', -1), }, }, { @@ -205,18 +241,21 @@ export const x_20 = { fields: { [textField.name]: 'Text Field 17', [numberField.name]: 17, + [multipleSelectField.name]: ['rock'], }, }, { fields: { [textField.name]: 'Text Field 18', [numberField.name]: 18, + [multipleSelectField.name]: ['hiphop'], }, }, { fields: { [textField.name]: 'Text Field 19', [numberField.name]: 19, + [multipleSelectField.name]: ['rap', 'hiphop'], }, }, { @@ -224,7 +263,7 @@ export const x_20 = { [textField.name]: 'Text Field 20', [numberField.name]: 20, [checkboxField.name]: true, - [dateField.name]: new Date().toISOString(), + [dateField.name]: new DateUtil('Asia/Singapore', true).date().toISOString(), }, }, { @@ -232,6 +271,7 @@ export const x_20 = { [textField.name]: 'Text Field 10', [numberField.name]: 10, [dateField.name]: '2099-12-31T15:59:59.000Z', + [multipleSelectField.name]: ['rap', 'rock', 'hiphop'], }, }, ], diff --git a/apps/nestjs-backend/test/data-helpers/caces/aggregation-query/index.ts b/apps/nestjs-backend/test/data-helpers/caces/aggregation-query/index.ts new file mode 100644 index 0000000000..79d55f1219 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/aggregation-query/index.ts @@ -0,0 +1 @@ +export * from './simple-aggregation'; diff --git a/apps/nestjs-backend/test/data-helpers/caces/aggregation-query/simple-aggregation.ts b/apps/nestjs-backend/test/data-helpers/caces/aggregation-query/simple-aggregation.ts new file mode 100644 index 0000000000..f119c54b78 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/aggregation-query/simple-aggregation.ts @@ -0,0 +1,94 @@ +import { StatisticsFunc } from '@teable-group/core'; + +export const SIMPLE_AGGREGATION_CACES = [ + { + 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, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/index.ts b/apps/nestjs-backend/test/data-helpers/caces/index.ts new file mode 100644 index 0000000000..ef2ad9d033 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/index.ts @@ -0,0 +1,2 @@ +export * from './record-filter-query'; +export * from './aggregation-query'; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/checkbox-field.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/checkbox-field.ts new file mode 100644 index 0000000000..d18bb6b1c0 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/checkbox-field.ts @@ -0,0 +1,18 @@ +import { is } from '@teable-group/core'; + +export const CHECKBOX_FIELD_CASES = [ + { + fieldIndex: 4, + operator: is.value, + queryValue: null, + expectResultLength: 19, + expectMoreResults: false, + }, + { + fieldIndex: 4, + operator: is.value, + queryValue: true, + expectResultLength: 4, + expectMoreResults: false, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/date-field.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/date-field.ts new file mode 100644 index 0000000000..47e5464bf4 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/date-field.ts @@ -0,0 +1,30 @@ +import { isEmpty, isNotEmpty } from '@teable-group/core'; +import { IS_AFTER_SETS } from './is-after-sets'; +import { IS_BEFORE_SETS } from './is-before-sets'; +import { IS_NOT_SETS } from './is-not-sets'; +import { IS_ON_OR_AFTER_SETS } from './is-on-or-after-sets'; +import { IS_ON_OR_BEFORE_SETS } from './is-on-or-before-sets'; +import { IS_SETS } from './is-sets'; +import { IS_WITH_IN_SETS } from './is-with-in-sets'; + +export const DATE_FIELD_CASES = [ + { + fieldIndex: 3, + operator: isEmpty.value, + queryValue: null, + expectResultLength: 6, + }, + { + fieldIndex: 3, + operator: isNotEmpty.value, + queryValue: null, + expectResultLength: 17, + }, + ...IS_SETS, + ...IS_NOT_SETS, + ...IS_WITH_IN_SETS, + ...IS_BEFORE_SETS, + ...IS_AFTER_SETS, + ...IS_ON_OR_BEFORE_SETS, + ...IS_ON_OR_AFTER_SETS, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/index.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/index.ts new file mode 100644 index 0000000000..b85c33b09d --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/index.ts @@ -0,0 +1,8 @@ +export * from './is-sets'; +export * from './is-not-sets'; +export * from './is-with-in-sets'; +export * from './is-before-sets'; +export * from './is-on-or-before-sets'; +export * from './is-after-sets'; +export * from './is-on-or-after-sets'; +export * from './date-field'; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-after-sets.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-after-sets.ts new file mode 100644 index 0000000000..b0d708bb0e --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-after-sets.ts @@ -0,0 +1,110 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +import { + daysAgo, + daysFromNow, + exactDate, + isAfter, + oneMonthAgo, + oneMonthFromNow, + oneWeekAgo, + oneWeekFromNow, + today, + tomorrow, + yesterday, +} from '@teable-group/core'; + +export const IS_AFTER_SETS = [ + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: today.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 5, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: tomorrow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 4, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: yesterday.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 6, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: oneWeekAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 7, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: oneWeekFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 3, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: oneMonthAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 8, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: oneMonthFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 2, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: daysAgo.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 6, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: daysFromNow.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 4, + }, + { + fieldIndex: 3, + operator: isAfter.value, + queryValue: { + mode: exactDate.value, + exactDate: '2019-12-31T16:00:00.000Z', + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-before-sets.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-before-sets.ts new file mode 100644 index 0000000000..575776f24f --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-before-sets.ts @@ -0,0 +1,110 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +import { + daysAgo, + daysFromNow, + exactDate, + isBefore, + oneMonthAgo, + oneMonthFromNow, + oneWeekAgo, + oneWeekFromNow, + today, + tomorrow, + yesterday, +} from '@teable-group/core'; + +export const IS_BEFORE_SETS = [ + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: today.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 11, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: tomorrow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 12, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: yesterday.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 10, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: oneWeekAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 9, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: oneWeekFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 13, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: oneMonthAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 8, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: oneMonthFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 14, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: daysAgo.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 10, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: daysFromNow.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 12, + }, + { + fieldIndex: 3, + operator: isBefore.value, + queryValue: { + mode: exactDate.value, + exactDate: '2019-12-31T16:00:00.000Z', + timeZone: 'Asia/Singapore', + }, + expectResultLength: 0, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-not-sets.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-not-sets.ts new file mode 100644 index 0000000000..d992575e08 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-not-sets.ts @@ -0,0 +1,110 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +import { + daysAgo, + daysFromNow, + exactDate, + isNot, + oneMonthAgo, + oneMonthFromNow, + oneWeekAgo, + oneWeekFromNow, + today, + tomorrow, + yesterday, +} from '@teable-group/core'; + +export const IS_NOT_SETS = [ + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: today.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: tomorrow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: yesterday.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: oneWeekAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: oneWeekFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: oneMonthAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: oneMonthFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: daysAgo.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: daysFromNow.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, + { + fieldIndex: 3, + operator: isNot.value, + queryValue: { + mode: exactDate.value, + exactDate: '2019-12-31T16:00:00.000Z', + timeZone: 'Asia/Singapore', + }, + expectResultLength: 16, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-on-or-after-sets.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-on-or-after-sets.ts new file mode 100644 index 0000000000..e56a75d4a1 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-on-or-after-sets.ts @@ -0,0 +1,110 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +import { + daysAgo, + daysFromNow, + exactDate, + isOnOrAfter, + oneMonthAgo, + oneMonthFromNow, + oneWeekAgo, + oneWeekFromNow, + today, + tomorrow, + yesterday, +} from '@teable-group/core'; + +export const IS_ON_OR_AFTER_SETS = [ + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: today.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 6, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: tomorrow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 5, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: yesterday.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 7, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: oneWeekAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 8, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: oneWeekFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 4, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: oneMonthAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 9, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: oneMonthFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 3, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: daysAgo.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 7, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: daysFromNow.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 5, + }, + { + fieldIndex: 3, + operator: isOnOrAfter.value, + queryValue: { + mode: exactDate.value, + exactDate: '2019-12-31T16:00:00.000Z', + timeZone: 'Asia/Singapore', + }, + expectResultLength: 17, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-on-or-before-sets.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-on-or-before-sets.ts new file mode 100644 index 0000000000..09515583c3 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-on-or-before-sets.ts @@ -0,0 +1,110 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +import { + daysAgo, + daysFromNow, + exactDate, + isOnOrBefore, + oneMonthAgo, + oneMonthFromNow, + oneWeekAgo, + oneWeekFromNow, + today, + tomorrow, + yesterday, +} from '@teable-group/core'; + +export const IS_ON_OR_BEFORE_SETS = [ + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: today.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 12, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: tomorrow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 13, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: yesterday.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 11, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: oneWeekAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 10, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: oneWeekFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 14, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: oneMonthAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 9, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: oneMonthFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 15, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: daysAgo.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 11, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: daysFromNow.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 13, + }, + { + fieldIndex: 3, + operator: isOnOrBefore.value, + queryValue: { + mode: exactDate.value, + exactDate: '2019-12-31T16:00:00.000Z', + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-sets.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-sets.ts new file mode 100644 index 0000000000..c9b5d206ee --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-sets.ts @@ -0,0 +1,110 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +import { + daysAgo, + daysFromNow, + exactDate, + is, + oneMonthAgo, + oneMonthFromNow, + oneWeekAgo, + oneWeekFromNow, + today, + tomorrow, + yesterday, +} from '@teable-group/core'; + +export const IS_SETS = [ + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: today.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: tomorrow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: yesterday.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: oneWeekAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: oneWeekFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: oneMonthAgo.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: oneMonthFromNow.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: daysAgo.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: daysFromNow.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, + { + fieldIndex: 3, + operator: is.value, + queryValue: { + mode: exactDate.value, + exactDate: '2019-12-31T16:00:00.000Z', + timeZone: 'Asia/Singapore', + }, + expectResultLength: 1, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-with-in-sets.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-with-in-sets.ts new file mode 100644 index 0000000000..af0b80087c --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/date-field/is-with-in-sets.ts @@ -0,0 +1,89 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +import { + isWithIn, + nextMonth, + nextNumberOfDays, + nextWeek, + nextYear, + pastMonth, + pastNumberOfDays, + pastWeek, + pastYear, +} from '@teable-group/core'; + +export const IS_WITH_IN_SETS = [ + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: pastWeek.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 3, + }, + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: pastMonth.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 4, + }, + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: pastYear.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 5, + }, + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: nextWeek.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 3, + }, + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: nextMonth.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 4, + }, + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: nextYear.value, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 5, + }, + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: pastNumberOfDays.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 2, + }, + { + fieldIndex: 3, + operator: isWithIn.value, + queryValue: { + mode: nextNumberOfDays.value, + numberOfDays: 1, + timeZone: 'Asia/Singapore', + }, + expectResultLength: 2, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/index.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/index.ts new file mode 100644 index 0000000000..2162abc8ef --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/index.ts @@ -0,0 +1,7 @@ +export * from './text-field'; +export * from './number-field'; +export * from './single-select-field'; +export * from './date-field'; +export * from './checkbox-field'; +export * from './user-field'; +export * from './multiple-select-field'; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/multiple-select-field.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/multiple-select-field.ts new file mode 100644 index 0000000000..1684cb825c --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/multiple-select-field.ts @@ -0,0 +1,46 @@ +import { hasAllOf, hasAnyOf, hasNoneOf, isEmpty, isExactly, isNotEmpty } from '@teable-group/core'; + +export const MULTIPLE_SELECT_FIELD_CASES = [ + { + fieldIndex: 6, + operator: isEmpty.value, + queryValue: null, + expectResultLength: 15, + expectMoreResults: false, + }, + { + fieldIndex: 6, + operator: isNotEmpty.value, + queryValue: null, + expectResultLength: 8, + expectMoreResults: false, + }, + { + fieldIndex: 6, + operator: hasAnyOf.value, + queryValue: ['rap', 'rock', 'hiphop'], + expectResultLength: 8, + expectMoreResults: false, + }, + { + fieldIndex: 6, + operator: hasAllOf.value, + queryValue: ['rap', 'rock'], + expectResultLength: 3, + expectMoreResults: false, + }, + { + fieldIndex: 6, + operator: hasNoneOf.value, + queryValue: ['rock'], + expectResultLength: 18, + expectMoreResults: true, + }, + { + fieldIndex: 6, + operator: isExactly.value, + queryValue: ['rock', 'hiphop'], + expectResultLength: 1, + expectMoreResults: false, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/number-field.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/number-field.ts new file mode 100644 index 0000000000..4a1823e8e8 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/number-field.ts @@ -0,0 +1,69 @@ +import { + is, + isEmpty, + isGreater, + isGreaterEqual, + isLess, + isLessEqual, + isNot, + isNotEmpty, +} from '@teable-group/core'; + +export const NUMBER_FIELD_CASES = [ + { + fieldIndex: 1, + operator: isEmpty.value, + queryValue: null, + expectResultLength: 1, + expectMoreResults: false, + }, + { + fieldIndex: 1, + operator: isNotEmpty.value, + queryValue: null, + expectResultLength: 22, + expectMoreResults: false, + }, + { + fieldIndex: 1, + operator: is.value, + queryValue: 9, + expectResultLength: 1, + expectMoreResults: false, + }, + { + fieldIndex: 1, + operator: isNot.value, + queryValue: 20, + expectResultLength: 22, + expectMoreResults: false, + }, + { + fieldIndex: 1, + operator: isGreater.value, + queryValue: 1, + expectResultLength: 20, + expectMoreResults: false, + }, + { + fieldIndex: 1, + operator: isGreaterEqual.value, + queryValue: 5, + expectResultLength: 17, + expectMoreResults: false, + }, + { + fieldIndex: 1, + operator: isLess.value, + queryValue: 10, + expectResultLength: 10, + expectMoreResults: false, + }, + { + fieldIndex: 1, + operator: isLessEqual.value, + queryValue: 3, + expectResultLength: 4, + expectMoreResults: false, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/single-select-field.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/single-select-field.ts new file mode 100644 index 0000000000..ff07c18dc9 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/single-select-field.ts @@ -0,0 +1,46 @@ +import { is, isAnyOf, isEmpty, isNoneOf, isNot, isNotEmpty } from '@teable-group/core'; + +export const SINGLE_SELECT_FIELD_CASES = [ + { + fieldIndex: 2, + operator: isEmpty.value, + queryValue: null, + expectResultLength: 11, + expectMoreResults: false, + }, + { + fieldIndex: 2, + operator: isNotEmpty.value, + queryValue: null, + expectResultLength: 12, + expectMoreResults: false, + }, + { + fieldIndex: 2, + operator: is.value, + queryValue: 'x', + expectResultLength: 7, + expectMoreResults: false, + }, + { + fieldIndex: 2, + operator: isNot.value, + queryValue: 'x', + expectResultLength: 16, + expectMoreResults: false, + }, + { + fieldIndex: 2, + operator: isAnyOf.value, + queryValue: ['x', 'y'], + expectResultLength: 10, + expectMoreResults: true, + }, + { + fieldIndex: 2, + operator: isNoneOf.value, + queryValue: ['x', 'y'], + expectResultLength: 13, + expectMoreResults: false, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/text-field.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/text-field.ts new file mode 100644 index 0000000000..18a2c6b96d --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/text-field.ts @@ -0,0 +1,46 @@ +import { contains, doesNotContain, is, isEmpty, isNot, isNotEmpty } from '@teable-group/core'; + +export const TEXT_FIELD_CASES = [ + { + fieldIndex: 0, + operator: isEmpty.value, + queryValue: null, + expectResultLength: 1, + expectMoreResults: false, + }, + { + fieldIndex: 0, + operator: isNotEmpty.value, + queryValue: null, + expectResultLength: 22, + expectMoreResults: false, + }, + { + fieldIndex: 0, + operator: is.value, + queryValue: 'Text Field 0', + expectResultLength: 1, + expectMoreResults: false, + }, + { + fieldIndex: 0, + operator: isNot.value, + queryValue: 'Text Field 1', + expectResultLength: 22, + expectMoreResults: false, + }, + { + fieldIndex: 0, + operator: contains.value, + queryValue: 'Text', + expectResultLength: 22, + expectMoreResults: true, + }, + { + fieldIndex: 0, + operator: doesNotContain.value, + queryValue: 'Text', + expectResultLength: 1, + expectMoreResults: false, + }, +]; diff --git a/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/user-field.ts b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/user-field.ts new file mode 100644 index 0000000000..222da429f0 --- /dev/null +++ b/apps/nestjs-backend/test/data-helpers/caces/record-filter-query/user-field.ts @@ -0,0 +1,46 @@ +import { is, isAnyOf, isEmpty, isNoneOf, isNot, isNotEmpty } from '@teable-group/core'; + +export const USER_FIELD_CASES = [ + { + fieldIndex: 5, + operator: isEmpty.value, + queryValue: null, + expectResultLength: 22, + expectMoreResults: false, + }, + { + fieldIndex: 5, + operator: isNotEmpty.value, + queryValue: null, + expectResultLength: 1, + expectMoreResults: false, + }, + { + fieldIndex: 5, + operator: is.value, + queryValue: 'usrTestUserId', + expectResultLength: 1, + expectMoreResults: false, + }, + { + fieldIndex: 5, + operator: isNot.value, + queryValue: 'usrTestUserId', + expectResultLength: 22, + expectMoreResults: false, + }, + { + fieldIndex: 5, + operator: isAnyOf.value, + queryValue: ['usrTestUserId'], + expectResultLength: 1, + expectMoreResults: true, + }, + { + fieldIndex: 5, + operator: isNoneOf.value, + queryValue: ['usrTestUserId'], + expectResultLength: 22, + expectMoreResults: false, + }, +]; diff --git a/apps/nestjs-backend/test/record-filter-query.e2e-spec.ts b/apps/nestjs-backend/test/record-filter-query.e2e-spec.ts index ceb4a6cf69..bfb493243c 100644 --- a/apps/nestjs-backend/test/record-filter-query.e2e-spec.ts +++ b/apps/nestjs-backend/test/record-filter-query.e2e-spec.ts @@ -1,87 +1,21 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable sonarjs/no-duplicate-string */ -import { faker } from '@faker-js/faker'; +/* eslint-disable sonarjs/cognitive-complexity */ import type { INestApplication } from '@nestjs/common'; -import type { - IFieldRo, - IFieldVo, - IFilter, - ILookupOptionsRo, - ITableFullVo, -} from '@teable-group/core'; +import type { IFilter, ITableFullVo } from '@teable-group/core'; +import { and, FieldKeyType } from '@teable-group/core'; +import { getRecords as apiGetRecords } from '@teable-group/openapi'; +import { x_20 } from './data-helpers/20x'; import { - Colors, - DateUtil, - FieldKeyType, - FieldType, - NumberFormattingType, - Relationship, - TimeFormatting, -} from '@teable-group/core'; -import { axios, GET_RECORDS_URL, urlBuilder } from '@teable-group/openapi'; -import { - createField, - createRecords, - createTable, - deleteTable, - getTable, - initApp, -} from './utils/init-app'; - -// All kind of field type (except link) -const defaultFields: IFieldRo[] = [ - { - name: FieldType.SingleLineText, - type: FieldType.SingleLineText, - }, - { - name: FieldType.Number, - type: FieldType.Number, - options: { - formatting: { - type: NumberFormattingType.Decimal, - precision: 2, - }, - }, - }, - { - name: FieldType.SingleSelect, - type: FieldType.SingleSelect, - options: { - choices: [ - { name: 'todo', color: Colors.Yellow }, - { name: 'doing', color: Colors.Orange }, - { name: 'done', color: Colors.Green }, - ], - }, - }, - { - name: FieldType.MultipleSelect, - type: FieldType.MultipleSelect, - options: { - choices: [ - { name: 'rap', color: Colors.Yellow }, - { name: 'rock', color: Colors.Orange }, - { name: 'hiphop', color: Colors.Green }, - ], - }, - }, - { - name: FieldType.Date, - type: FieldType.Date, - options: { - formatting: { - date: 'YYYY-MM-DD', - time: TimeFormatting.Hour24, - timeZone: 'Asia/Singapore', - }, - }, - }, - { - name: FieldType.Attachment, - type: FieldType.Attachment, - }, -]; + CHECKBOX_FIELD_CASES, + DATE_FIELD_CASES, + MULTIPLE_SELECT_FIELD_CASES, + NUMBER_FIELD_CASES, + SINGLE_SELECT_FIELD_CASES, + TEXT_FIELD_CASES, + USER_FIELD_CASES, +} from './data-helpers/caces'; +import { createTable, deleteTable, initApp } from './utils/init-app'; describe('OpenAPI Record-Filter-Query (e2e)', () => { let app: INestApplication; @@ -98,2327 +32,307 @@ describe('OpenAPI Record-Filter-Query (e2e)', () => { async function getFilterRecord(tableId: string, viewId: string, filter: IFilter) { return ( - await axios.get(urlBuilder(GET_RECORDS_URL, { tableId }), { - params: { - fieldKeyType: FieldKeyType.Id, - filter: JSON.stringify(filter), - }, + await apiGetRecords(tableId, { + fieldKeyType: FieldKeyType.Id, + filter: filter, }) ).data; } - function getFieldByType(fields: IFieldVo[], type: FieldType) { - const field = fields.find((field) => field.type === type); - if (!field) { - throw new Error('field not found'); - } - return field; - } - - describe('simple record filter query', () => { + describe('basis field filter record', () => { let table: ITableFullVo; - beforeEach(async () => { + beforeAll(async () => { table = await createTable(baseId, { - name: 'table1', - fields: defaultFields.map((f) => ({ ...f, name: f.name + '[table1]' })), + name: 'record_query_x_20', + fields: x_20.fields, + records: x_20.records, }); }); - afterEach(async () => { + afterAll(async () => { await deleteTable(baseId, table.id); }); - it('should isEmpty value', async () => { - const fieldId = table.fields[0].id; - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: null, - operator: 'isEmpty', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(3); - expect(records).not.toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: expect.anything(), - }, - }), - ]); - }); - - it('should isNotEmpty value', async () => { - const fieldId = table.fields[0].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 'string', - }, - }, - { - fields: { - [fieldId]: 'string1', - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: null, - operator: 'isNotEmpty', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: expect.anything(), - }, - }), - ]) - ); - }); - - it('should is value', async () => { - const fieldId = table.fields[0].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 'string', - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: 'string', - operator: 'is', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: 'string', - }, - }), - ]); - }); - - it.each([ - { type: FieldType.SingleLineText, value: 'tom' }, - { type: FieldType.Number, value: 2 }, - ])('should isNot value - $type', async ({ type, value }) => { - const fieldId = getFieldByType(table.fields, type).id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: value, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: value, - operator: 'isNot', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(3); - expect(records).not.toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: value, - }, - }), - ]); - }); - - it('should contains value', async () => { - const fieldId = table.fields[0].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: '1dom1', - }, - }, - { - fields: { - [fieldId]: '2dom2', - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: 'dom', - operator: 'contains', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: '1dom1', - }, - }), - expect.objectContaining({ - fields: { - [fieldId]: '2dom2', - }, - }), - ]); - }); - - it('should doesNotContain value', async () => { - const fieldId = table.fields[0].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 'dom', - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: 'dom', - operator: 'doesNotContain', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(3); - expect(records).not.toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: 'dom', - }, - }), - ]); - }); - - it('should isGreater value', async () => { - const fieldId = table.fields[1].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 0, - }, - }, - { - fields: { - [fieldId]: 1, - }, - }, - { - fields: { - [fieldId]: 2, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: 0, - operator: 'isGreater', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: 1, - }, - }), - expect.objectContaining({ - fields: { - [fieldId]: 2, - }, - }), - ]); - }); - - it('should isGreaterEqual value', async () => { - const fieldId = table.fields[1].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 2, - }, - }, - { - fields: { - [fieldId]: 3, - }, - }, - { - fields: { - [fieldId]: 4, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: 3, - operator: 'isGreaterEqual', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: 3, - }, - }), - expect.objectContaining({ - fields: { - [fieldId]: 4, - }, - }), - ]); - }); - - it('should isLess value', async () => { - const fieldId = table.fields[1].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 7, - }, - }, - { - fields: { - [fieldId]: 8, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: 8, - operator: 'isLess', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: 7, - }, - }), - ]); - }); - - it('should isLessEqual value', async () => { - const fieldId = table.fields[1].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 7, - }, - }, - { - fields: { - [fieldId]: 8, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: 8, - operator: 'isLessEqual', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: 7, - }, - }), - expect.objectContaining({ - fields: { - [fieldId]: 8, - }, - }), - ]); - }); - - it('should isAnyOf value', async () => { - const fieldId = table.fields[2].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 'todo', - }, - }, - { - fields: { - [fieldId]: 'doing', - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: ['doing'], - operator: 'isAnyOf', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: 'doing', - }, - }), - ]); - }); - - it('should isNoneOf value', async () => { - const fieldId = table.fields[2].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: 'doing', - }, - }, - { - fields: { - [fieldId]: 'done', - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: ['done'], - operator: 'isNoneOf', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(4); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: expect.not.stringContaining('done'), - }, - }), - ]) - ); - }); - - it('should hasAnyOf value', async () => { - const fieldId = table.fields[3].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: ['rap'], - }, - }, - { - fields: { - [fieldId]: ['rap', 'rock'], - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: ['rap'], - operator: 'hasAnyOf', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: expect.arrayContaining(['rap']), - }, - }), - ]) - ); - }); - - it('should hasAllOf value', async () => { - const fieldId = table.fields[3].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: ['rap'], - }, - }, - { - fields: { - [fieldId]: ['rap', 'rock'], - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: ['rock', 'rap'], - operator: 'hasAllOf', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: ['rap', 'rock'], - }, - }), - ]) - ); - }); - - it('should hasNoneOf value', async () => { - const fieldId = table.fields[3].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: ['rap'], - }, - }, - { - fields: { - [fieldId]: ['rock'], - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: ['rock'], - operator: 'hasNoneOf', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(4); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: ['rap'], - }, - }), - ]) - ); - }); - - it('should isExactly value', async () => { - const fieldId = table.fields[3].id; - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: ['rap'], - }, - }, - { - fields: { - [fieldId]: ['rock'], - }, - }, - { - fields: { - [fieldId]: ['hiphop'], - }, - }, - { - fields: { - [fieldId]: ['hiphop', 'rock', 'rap'], - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: ['rock', 'hiphop', 'rap'], - operator: 'isExactly', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: ['hiphop', 'rock', 'rap'], - }, - }), - ]) - ); - }); - - it('should isWithIn value', async () => { - const fieldId = table.fields[4].id; - const yesterday = new DateUtil('Asia/Singapore').offsetDay(-1).toISOString(); - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: '2023-10-06T16:00:00.000Z', - }, - }, - { - fields: { - [fieldId]: yesterday, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: { - mode: 'pastNumberOfDays', - numberOfDays: 1, - timeZone: 'Asia/Singapore', - }, - operator: 'isWithIn', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - expect.objectContaining({ - fields: { - [fieldId]: yesterday, - }, - }), - ]); - }); - - it('should isBefore value', async () => { - const fieldId = table.fields[4].id; - const pastDate = faker.date.past({ years: 1 }).toISOString(); - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: pastDate, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: { - mode: 'today', - timeZone: 'Asia/Singapore', - }, - operator: 'isBefore', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: pastDate, - }, - }), - ]) - ); - }); - - it('should isAfter value', async () => { - const fieldId = table.fields[4].id; - const futureDate = faker.date.future({ years: 1 }).toISOString(); - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: futureDate, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: { - mode: 'exactDate', - exactDate: new Date().toISOString(), - timeZone: 'Asia/Singapore', - }, - operator: 'isAfter', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: futureDate, - }, - }), - ]) - ); - }); - - it('should isOnOrBefore value', async () => { - const fieldId = table.fields[4].id; - const nowDate = new Date().toISOString(); - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: faker.date.past({ years: 1 }).toISOString(), - }, - }, - { - fields: { - [fieldId]: nowDate, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: { - mode: 'today', - timeZone: 'Asia/Singapore', - }, - operator: 'isOnOrBefore', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: nowDate, - }, - }), - ]) - ); - }); - - it('should isOnOrAfter value', async () => { - const fieldId = table.fields[4].id; - const nowDate = new Date().toISOString(); - await createRecords(table.id, { - records: [ - { - fields: { - [fieldId]: faker.date.future({ years: 1 }).toISOString(), - }, - }, - { - fields: { - [fieldId]: nowDate, - }, - }, - ], - }); - - const { records } = await getFilterRecord(table.id, table.views[0].id, { - filterSet: [ - { - fieldId: fieldId, - value: { - mode: 'today', - timeZone: 'Asia/Singapore', - }, - operator: 'isOnOrAfter', - }, - ], - conjunction: 'and', - }); - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: { - [fieldId]: nowDate, - }, - }), - ]) - ); - }); - }); - - describe('simple lookup value record filter query', () => { - let lookupTable: ITableFullVo; - let sourceTable: ITableFullVo; - - beforeEach(async () => { - sourceTable = await createTable(baseId, { - name: 'table1', - fields: defaultFields, - records: [ - { - fields: { - [FieldType.SingleLineText]: 'a1', - [FieldType.Number]: 1, - [FieldType.SingleSelect]: 'todo', - [FieldType.MultipleSelect]: ['rap'], - [FieldType.Date]: '2022-11-07T16:00:00.000Z', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a2', - [FieldType.Number]: 2, - [FieldType.SingleSelect]: 'doing', - [FieldType.MultipleSelect]: ['rap', 'rock'], - [FieldType.Date]: '2023-11-06T16:00:00.000Z', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a3', - [FieldType.Number]: 3, - [FieldType.SingleSelect]: 'done', - [FieldType.MultipleSelect]: ['rock', 'hiphop'], - [FieldType.Date]: '2023-11-05T16:00:00.000Z', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a4', - [FieldType.Number]: 4, - [FieldType.SingleSelect]: 'doing', - [FieldType.MultipleSelect]: ['rap', 'rock', 'hiphop'], - [FieldType.Date]: '2023-11-01T00:08:00.000Z', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a5', - [FieldType.Number]: 5, - [FieldType.SingleSelect]: 'doing', - [FieldType.MultipleSelect]: ['rock', 'hiphop'], - [FieldType.Date]: new DateUtil('Asia/Singapore').offsetDay(10).toISOString(), - }, - }, - ], - }); - - const linkFieldRo: IFieldRo = { - name: 'link field', - type: FieldType.Link, - options: { - relationship: Relationship.OneMany, - foreignTableId: sourceTable.id, - }, - }; - - lookupTable = await createTable(baseId, { - name: 'table2', - fields: [defaultFields[0], linkFieldRo], - }); - - const { fields } = lookupTable; - const linkField = fields[1]; - - for (const lookupField of defaultFields) { - const { options } = lookupField as { options: any }; - const fieldRo = { - name: `lookup ${lookupField.name} [${lookupTable.name}]`, - type: lookupField.type, - isLookup: true, - options: options?.formatting - ? { - formatting: options.formatting, - } - : undefined, - lookupOptions: { - foreignTableId: sourceTable.id, - linkFieldId: linkField.id, - lookupFieldId: getFieldByType(sourceTable.fields, lookupField.type).id, - } as ILookupOptionsRo, - }; - - await createField(lookupTable.id, fieldRo); - } - - // refreshTableData - lookupTable = (await getTable(baseId, lookupTable.id, { - includeContent: true, - })) as ITableFullVo; - }); - - afterEach(async () => { - await deleteTable(baseId, sourceTable.id); - await deleteTable(baseId, lookupTable.id); - }); - - it('should is value', async () => { - const fieldId = lookupTable.fields[0].id; - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[2].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [fieldId]: 'b1', - [linkFieldId]: [{ id: sourceTable.records[0].id }], - }, - }, - { - fields: { - [fieldId]: 'b2', - [linkFieldId]: [{ id: sourceTable.records[1].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 'a1', - operator: 'is', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: ['a1'], - }), - }, - ]); - }); - - it('should isNot value', async () => { - const fieldId = lookupTable.fields[0].id; - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[2].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [fieldId]: 'b1', - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [fieldId]: 'b2', - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 'a3', - operator: 'isNot', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(4); - expect(records).not.toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: expect.arrayContaining(['a3']), - }), - }), - ]) - ); - }); - - it('should contains value', async () => { - const fieldId = lookupTable.fields[0].id; - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[2].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [fieldId]: 'b1', - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [fieldId]: 'b2', - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 'a', - operator: 'contains', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: ['a1', 'a2'], - }), - }, - { - fields: expect.objectContaining({ - [queryLookupFieldId]: ['a3'], - }), - }, - ]); - }); - - it('should doesNotContain value', async () => { - const fieldId = lookupTable.fields[0].id; - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[2].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [fieldId]: 'b1', - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [fieldId]: 'b2', - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 'a', - operator: 'doesNotContain', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(3); - }); - - it('should isGreater value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[3].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 2, - operator: 'isGreater', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: [3], - }), - }, - ]); - }); - - it('should isGreaterEqual value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[3].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 2, - operator: 'isGreaterEqual', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: [1, 2], - }), - }, - { - fields: expect.objectContaining({ - [queryLookupFieldId]: [3], - }), - }, - ]); - }); - - it('should isLess value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[3].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }, { id: sourceTable.records[1].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 2, - operator: 'isLess', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: [1], - }), - }, - ]); - }); - - it('should isLessEqual value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = lookupTable.fields[3].id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }, { id: sourceTable.records[1].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: 2, - operator: 'isLessEqual', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: [1], - }), - }, - { - fields: expect.objectContaining({ - [queryLookupFieldId]: [3, 2], - }), - }, - ]); - }); - - it('should isAnyOf value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.SingleSelect).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: ['doing', 'todo'], - operator: 'isAnyOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: ['todo', 'doing'], - }), - }, - ]); - }); - - it('should isNoneOf value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.SingleSelect).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }, { id: sourceTable.records[3].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: ['done'], - operator: 'isNoneOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(4); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: expect.not.arrayContaining(['done']), - }), - }), - ]) - ); - }); - - it('should hasAnyOf value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.MultipleSelect).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [ - { id: sourceTable.records[0].id }, - { id: sourceTable.records[1].id }, - { id: sourceTable.records[2].id }, - ], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[3].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: ['rap'], - operator: 'hasAnyOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: expect.arrayContaining(['rap']), - }), - }), - ]) - ); - }); - - it('should hasAllOf value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.MultipleSelect).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[1].id }, { id: sourceTable.records[2].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[3].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: ['rap', 'hiphop'], - operator: 'hasAllOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: expect.arrayContaining(['rap', 'hiphop']), - }), - }), - ]) - ); - }); - - it('should hasNoneOf value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.MultipleSelect).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[3].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: ['rap'], - operator: 'hasNoneOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(4); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: expect.not.arrayContaining(['rap']), - }), - }), - ]) + describe('simple filter text field record', () => { + test.each(TEXT_FIELD_CASES)( + `should filter [$operator], query value: $queryValue, expect result length: $expectResultLength`, + async ({ + fieldIndex, + operator, + queryValue, + expectResultLength, + expectMoreResults = false, + }) => { + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + const conjunction = and.value; + + const filter: IFilter = { + filterSet: [ + { + fieldId: fieldId, + value: queryValue, + operator: operator, + }, + ], + conjunction, + }; + + const { records } = await getFilterRecord(tableId, viewId, filter); + expect(records.length).toBe(expectResultLength); + + if (!expectMoreResults) { + expect(records).not.toMatchObject([ + expect.objectContaining({ + fields: { + [fieldId]: queryValue, + }, + }), + ]); + } + } ); }); - it('should isExactly value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.MultipleSelect).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[3].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: ['rap'], - operator: 'isExactly', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: ['rap'], - }), - }, - ]); - }); - - it('should isWithIn value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.Date).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }, { id: sourceTable.records[3].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[4].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: { - mode: 'nextNumberOfDays', - numberOfDays: 10, - timeZone: 'Asia/Singapore', - }, - operator: 'isWithIn', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - }); - - it('should isBefore value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.Date).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: { - mode: 'exactDate', - exactDate: '2023-11-07T00:00:00.000Z', - timeZone: 'Asia/Singapore', - }, - operator: 'isBefore', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: ['2023-11-05T16:00:00.000Z'], - }), - }), - ]) + describe('simple filter number field record', () => { + test.each(NUMBER_FIELD_CASES)( + `should filter [$operator], query value: $queryValue, expect result length: $expectResultLength`, + async ({ + fieldIndex, + operator, + queryValue, + expectResultLength, + expectMoreResults = false, + }) => { + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + const conjunction = and.value; + + const filter: IFilter = { + filterSet: [ + { + fieldId: fieldId, + value: queryValue, + operator: operator, + }, + ], + conjunction, + }; + + const { records } = await getFilterRecord(tableId, viewId, filter); + expect(records.length).toBe(expectResultLength); + + if (!expectMoreResults) { + expect(records).not.toMatchObject([ + expect.objectContaining({ + fields: { + [fieldId]: queryValue, + }, + }), + ]); + } + } ); }); - it('should isAfter value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.Date).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[3].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: { - mode: 'exactDate', - exactDate: '2023-11-01T00:00:00.000Z', - timeZone: 'Asia/Singapore', - }, - operator: 'isAfter', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [queryLookupFieldId]: ['2023-11-05T16:00:00.000Z'], - }), - }, - ]); - }); - - it('should isOnOrBefore value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.Date).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }, { id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: { - mode: 'exactDate', - exactDate: '2023-11-05T00:00:00.000Z', - timeZone: 'Asia/Singapore', - }, - operator: 'isOnOrBefore', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: ['2022-11-07T16:00:00.000Z', '2023-11-06T16:00:00.000Z'], - }), - }), - ]) + describe('simple filter single select field record', () => { + test.each(SINGLE_SELECT_FIELD_CASES)( + `should filter [$operator], query value: $queryValue, expect result length: $expectResultLength`, + async ({ + fieldIndex, + operator, + queryValue, + expectResultLength, + expectMoreResults = false, + }) => { + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + const conjunction = and.value; + + const filter: IFilter = { + filterSet: [ + { + fieldId: fieldId, + value: queryValue as any, + operator: operator, + }, + ], + conjunction, + }; + + const { records } = await getFilterRecord(tableId, viewId, filter); + expect(records.length).toBe(expectResultLength); + + if (!expectMoreResults) { + expect(records).not.toMatchObject([ + expect.objectContaining({ + fields: { + [fieldId]: queryValue, + }, + }), + ]); + } + } ); }); - it('should isOnOrAfter value', async () => { - const linkFieldId = lookupTable.fields[1].id; - const queryLookupFieldId = getFieldByType(lookupTable.fields, FieldType.Date).id; - await createRecords(lookupTable.id, { - records: [ - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[0].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[1].id }], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[2].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(lookupTable.id, lookupTable.views[0].id, { - filterSet: [ - { - fieldId: queryLookupFieldId, - value: { - mode: 'exactDate', - exactDate: '2022-11-07T00:00:00.000Z', - timeZone: 'Asia/Singapore', - }, - operator: 'isOnOrAfter', - }, - ], - conjunction: 'and', - }); + describe('simple filter date field record', () => { + test.each(DATE_FIELD_CASES)( + `should filter [$operator], query mode: $queryValue.mode, expect result length: $expectResultLength`, + async ({ fieldIndex, operator, queryValue, expectResultLength }) => { + // if (!(operator === 'isWithIn' && queryValue?.mode === 'nextWeek')) { + // return; + // } + + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + const conjunction = and.value; + + const filter: IFilter = { + filterSet: [ + { + fieldId: fieldId, + value: queryValue as any, + operator: operator, + }, + ], + conjunction, + }; - expect(records.length).toStrictEqual(3); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [queryLookupFieldId]: ['2022-11-07T16:00:00.000Z'], - }), - }), - ]) + const { records } = await getFilterRecord(tableId, viewId, filter); + expect(records.length).toBe(expectResultLength); + } ); }); - }); - - describe('link field record filter query', () => { - let linkTable: ITableFullVo; - let sourceTable: ITableFullVo; - beforeEach(async () => { - sourceTable = await createTable(baseId, { - name: 'table1', - fields: defaultFields, - records: [ - { - fields: { - [FieldType.SingleLineText]: 'a1', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a2', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a3', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a4', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'a5', - }, - }, - { - fields: { - [FieldType.SingleLineText]: 'other', - }, - }, - ], - }); - - const linkFieldRo1: IFieldRo = { - name: 'link field(ManyOne)', - type: FieldType.Link, - options: { - relationship: Relationship.ManyOne, - foreignTableId: sourceTable.id, - }, - }; - - const linkFieldRo2: IFieldRo = { - name: 'link field(OneMany)', - type: FieldType.Link, - options: { - relationship: Relationship.OneMany, - foreignTableId: sourceTable.id, - }, - }; - - linkTable = await createTable(baseId, { - name: 'table2', - fields: [defaultFields[0], linkFieldRo1, linkFieldRo2], - }); - }); - - afterEach(async () => { - await deleteTable(baseId, sourceTable.id); - await deleteTable(baseId, linkTable.id); - }); - - describe('link(ManyOne)', () => { - it('should is value', async () => { - const fieldId = linkTable.fields[0].id; - const linkFieldId = linkTable.fields[1].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [fieldId]: 'b1', - [linkFieldId]: { id: sourceTable.records[0].id }, - }, - }, - { - fields: { - [fieldId]: 'b2', - [linkFieldId]: { id: sourceTable.records[1].id }, + describe('simple filter checkbox field record', () => { + test.each(CHECKBOX_FIELD_CASES)( + `should filter [$operator], query value: $queryValue, expect result length: $expectResultLength`, + async ({ + fieldIndex, + operator, + queryValue, + expectResultLength, + expectMoreResults = false, + }) => { + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + const conjunction = and.value; + + const filter: IFilter = { + filterSet: [ + { + fieldId: fieldId, + value: queryValue as any, + operator: operator, }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: sourceTable.records[0].id, - operator: 'is', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ - title: 'a1', + ], + conjunction, + }; + + const { records } = await getFilterRecord(tableId, viewId, filter); + expect(records.length).toBe(expectResultLength); + + if (!expectMoreResults) { + expect(records).not.toMatchObject([ + expect.objectContaining({ + fields: { + [fieldId]: queryValue, + }, }), - }), - }, - ]); - }); - - it('should isNot value', async () => { - const fieldId = linkTable.fields[0].id; - const linkFieldId = linkTable.fields[1].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [fieldId]: 'b1', - [linkFieldId]: { id: sourceTable.records[0].id }, - }, - }, - { - fields: { - [fieldId]: 'b2', - [linkFieldId]: { id: sourceTable.records[1].id }, - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: sourceTable.records[0].id, - operator: 'isNot', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(4); - expect(records).not.toMatchObject([ - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ - id: sourceTable.records[0].id, - }), - }), - }, - ]); - }); - - it('should contains value', async () => { - const linkFieldId = linkTable.fields[1].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: { id: sourceTable.records[0].id }, - }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[1].id }, - }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[5].id }, - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: 'a', - operator: 'contains', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ title: 'a1' }), - }), - }, - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ title: 'a2' }), - }), - }, - ]); - }); - - it('should doesNotContain value', async () => { - const linkFieldId = linkTable.fields[1].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: { id: sourceTable.records[0].id }, - }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[1].id }, - }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[5].id }, - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: 'a', - operator: 'doesNotContain', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(4); - expect(records).toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ title: expect.not.stringMatching('a') }), - }), - }), - ]) - ); - }); - - it('should isAnyOf value', async () => { - const linkFieldId = linkTable.fields[1].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: { id: sourceTable.records[0].id }, - }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[1].id }, - }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[5].id }, - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: [sourceTable.records[0].id, sourceTable.records[1].id], - operator: 'isAnyOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(2); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ title: 'a1' }), - }), - }, - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ title: 'a2' }), - }), - }, - ]); - }); + ]); + } + } + ); + }); - it('should isNoneOf value', async () => { - const linkFieldId = linkTable.fields[1].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: { id: sourceTable.records[0].id }, - }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[1].id }, + describe('simple filter user field record', () => { + test.each(USER_FIELD_CASES)( + `should filter [$operator], query value: $queryValue, expect result length: $expectResultLength`, + async ({ + fieldIndex, + operator, + queryValue, + expectResultLength, + expectMoreResults = false, + }) => { + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + const conjunction = and.value; + + const filter: IFilter = { + filterSet: [ + { + fieldId: fieldId, + value: queryValue as any, + operator: operator, }, - }, - { - fields: { - [linkFieldId]: { id: sourceTable.records[5].id }, - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: [sourceTable.records[0].id, sourceTable.records[1].id], - operator: 'isNoneOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(4); - expect(records).not.toMatchObject( - expect.arrayContaining([ - expect.objectContaining({ - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ id: sourceTable.records[0].id }), + ], + conjunction, + }; + + const { records } = await getFilterRecord(tableId, viewId, filter); + expect(records.length).toBe(expectResultLength); + + if (!expectMoreResults) { + expect(records).not.toMatchObject([ + expect.objectContaining({ + fields: { + [fieldId]: queryValue, + }, }), - }), - expect.objectContaining({ - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ id: sourceTable.records[1].id }), - }), - }), - ]) - ); - }); + ]); + } + } + ); }); - describe('link(OneMany)', () => { - it('should hasAnyOf value', async () => { - const linkFieldId = linkTable.fields[2].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: [ - { id: sourceTable.records[0].id }, - { id: sourceTable.records[1].id }, - ], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[5].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: [sourceTable.records[0].id, sourceTable.records[1].id], - operator: 'hasAnyOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [linkFieldId]: [ - expect.objectContaining({ title: 'a1' }), - expect.objectContaining({ title: 'a2' }), - ], - }), - }, - ]); - }); - - it('should hasNoneOf value', async () => { - const linkFieldId = linkTable.fields[2].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: [ - { id: sourceTable.records[0].id }, - { id: sourceTable.records[1].id }, - ], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[5].id }], + describe('simple filter multiple select field record', () => { + test.each(MULTIPLE_SELECT_FIELD_CASES)( + `should filter [$operator], query value: $queryValue, expect result length: $expectResultLength`, + async ({ + fieldIndex, + operator, + queryValue, + expectResultLength, + expectMoreResults = false, + }) => { + const tableId = table.id; + const viewId = table.views[0].id; + const fieldId = table.fields[fieldIndex].id; + const conjunction = and.value; + + const filter: IFilter = { + filterSet: [ + { + fieldId: fieldId, + value: queryValue as any, + operator: operator, }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: [sourceTable.records[0].id, sourceTable.records[1].id], - operator: 'hasNoneOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(4); - expect(records).not.toMatchObject( - expect.arrayContaining([ - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ - id: sourceTable.records[0].id, - }), + ], + conjunction, + }; + + const { records } = await getFilterRecord(tableId, viewId, filter); + expect(records.length).toBe(expectResultLength); + + if (!expectMoreResults) { + expect(records).not.toMatchObject([ + expect.objectContaining({ + fields: { + [fieldId]: queryValue, + }, }), - }, - { - fields: expect.objectContaining({ - [linkFieldId]: expect.objectContaining({ - id: sourceTable.records[1].id, - }), - }), - }, - ]) - ); - }); - - it('should hasAllOf value', async () => { - const linkFieldId = linkTable.fields[2].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: [ - { id: sourceTable.records[0].id }, - { id: sourceTable.records[1].id }, - ], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[5].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: [sourceTable.records[0].id, sourceTable.records[1].id], - operator: 'hasAllOf', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [linkFieldId]: [ - expect.objectContaining({ id: sourceTable.records[0].id }), - expect.objectContaining({ id: sourceTable.records[1].id }), - ], - }), - }, - ]); - }); - - it('should isExactly value', async () => { - const linkFieldId = linkTable.fields[2].id; - await createRecords(linkTable.id, { - records: [ - { - fields: { - [linkFieldId]: [ - { id: sourceTable.records[0].id }, - { id: sourceTable.records[1].id }, - ], - }, - }, - { - fields: { - [linkFieldId]: [{ id: sourceTable.records[5].id }], - }, - }, - ], - }); - - const { records } = await getFilterRecord(linkTable.id, linkTable.views[0].id, { - filterSet: [ - { - fieldId: linkFieldId, - value: [sourceTable.records[5].id], - operator: 'isExactly', - }, - ], - conjunction: 'and', - }); - - expect(records.length).toStrictEqual(1); - expect(records).toMatchObject([ - { - fields: expect.objectContaining({ - [linkFieldId]: [expect.objectContaining({ id: sourceTable.records[5].id })], - }), - }, - ]); - }); + ]); + } + } + ); }); }); }); diff --git a/apps/nestjs-backend/test/utils/init-app.ts b/apps/nestjs-backend/test/utils/init-app.ts index a0e312af8c..38ca6a982d 100644 --- a/apps/nestjs-backend/test/utils/init-app.ts +++ b/apps/nestjs-backend/test/utils/init-app.ts @@ -99,8 +99,12 @@ export async function initApp() { return config; }); + const now = new Date(); + const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; console.log(`> Test NODE_ENV is ${process.env.NODE_ENV}`); console.log(`> Test Ready on ${url}`); + console.log('> Test System Time Zone:', timeZone); + console.log('> Test Current System Time:', now.toString()); return { app, appUrl: url, cookie: cookie.join(';') }; } diff --git a/apps/nestjs-backend/vitest-e2e.setup.ts b/apps/nestjs-backend/vitest-e2e.setup.ts index d850cacec7..2559281a73 100644 --- a/apps/nestjs-backend/vitest-e2e.setup.ts +++ b/apps/nestjs-backend/vitest-e2e.setup.ts @@ -1,8 +1,6 @@ import fs from 'fs'; import path from 'path'; -import { Prisma, PrismaClient } from '@prisma/client'; import { DriverClient, getRandomString, parseDsn } from '@teable-group/core'; -import bcrypt from 'bcrypt'; import dotenv from 'dotenv-flow'; interface ITestConfig { @@ -19,7 +17,7 @@ declare global { var testConfig: ITestConfig; } -// 设置全局变量(如果需要) +// Set global variables (if needed) globalThis.testConfig = { email: 'test@e2e.com', password: '12345678', @@ -55,7 +53,6 @@ async function setup() { console.log('node-env', process.env.NODE_ENV); dotenv.config({ path: '../nextjs-app' }); - const { email, password, spaceId, baseId, userId } = globalThis.testConfig; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const databaseUrl = process.env.PRISMA_DATABASE_URL!; @@ -65,66 +62,6 @@ async function setup() { globalThis.testConfig.driver = driver; prepareSqliteEnv(); - const prismaClient = new PrismaClient(); - - const salt = await bcrypt.genSalt(10); - const hashPassword = await bcrypt.hash(password, salt); - // init data exists - await prismaClient.$transaction( - async (prisma) => { - const existsEmail = await prisma.user.findFirst({ where: { email } }); - const existsSpace = await prisma.space.findFirst({ where: { id: spaceId } }); - const existsBase = await prisma.base.findFirst({ where: { id: baseId } }); - if (!existsEmail) { - await prisma.user.create({ - data: { - id: userId, - name: email.split('@')[0], - email, - salt, - password: hashPassword, - }, - }); - } - if (!existsSpace) { - await prisma.space.create({ - data: { - id: spaceId, - name: 'test space', - createdBy: userId, - lastModifiedBy: userId, - }, - }); - - await prisma.collaborator.create({ - data: { - spaceId, - roleName: 'owner', - userId, - createdBy: userId, - lastModifiedBy: userId, - }, - }); - } - if (!existsBase) { - if (driver !== DriverClient.Sqlite) { - await prisma.$executeRawUnsafe(`create schema if not exists "${baseId}"`); - await prisma.$executeRawUnsafe(`revoke all on schema "${baseId}" from public`); - } - await prisma.base.create({ - data: { - id: baseId, - spaceId, - name: 'test base', - order: 1, - createdBy: userId, - lastModifiedBy: userId, - }, - }); - } - }, - { isolationLevel: Prisma.TransactionIsolationLevel.Serializable } - ); } export default setup(); diff --git a/apps/nextjs-app/package.json b/apps/nextjs-app/package.json index 022f5e4531..31a62986cd 100644 --- a/apps/nextjs-app/package.json +++ b/apps/nextjs-app/package.json @@ -55,7 +55,7 @@ "@playwright/test": "1.40.1", "@size-limit/file": "11.0.1", "@svgr/webpack": "8.1.0", - "@testing-library/dom": "9.3.3", + "@testing-library/dom": "9.3.4", "@testing-library/jest-dom": "6.2.0", "@testing-library/react": "14.1.2", "@testing-library/user-event": "14.5.2", @@ -64,7 +64,7 @@ "@types/lodash": "4.14.202", "@types/node": "18.18.2", "@types/nprogress": "0.2.3", - "@types/react": "18.2.45", + "@types/react": "18.2.47", "@types/react-dom": "18.2.18", "@types/react-grid-layout": "1.3.5", "@types/react-syntax-highlighter": "15.5.11", @@ -99,11 +99,11 @@ "@antv/g6": "4.8.24", "@asteasolutions/zod-to-openapi": "6.3.1", "@belgattitude/http-exception": "1.5.0", - "@codemirror/autocomplete": "6.10.1", - "@codemirror/commands": "6.3.0", - "@codemirror/language": "6.9.1", - "@codemirror/state": "6.3.0", - "@codemirror/view": "6.21.3", + "@codemirror/autocomplete": "6.11.1", + "@codemirror/commands": "6.3.3", + "@codemirror/language": "6.10.0", + "@codemirror/state": "6.4.0", + "@codemirror/view": "6.23.0", "@dnd-kit/core": "6.1.0", "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", @@ -138,7 +138,7 @@ "knex": "3.0.1", "lodash": "4.17.21", "lru-cache": "10.1.0", - "lucide-react": "0.307.0", + "lucide-react": "0.309.0", "next": "13.0.2", "next-i18next": "14.0.3", "next-secure-headers": "2.2.0", @@ -162,7 +162,7 @@ "react-syntax-highlighter": "15.5.0", "react-textarea-autosize": "8.5.3", "react-use": "17.4.2", - "recharts": "2.10.3", + "recharts": "2.10.4", "reconnecting-websocket": "4.4.0", "reflect-metadata": "0.1.13", "remark-gfm": "4.0.0", diff --git a/packages/db-main-prisma/package.json b/packages/db-main-prisma/package.json index c6363a2cf8..93e6978a16 100644 --- a/packages/db-main-prisma/package.json +++ b/packages/db-main-prisma/package.json @@ -26,6 +26,7 @@ "prisma-migrate": "dotenv-flow -p ../../apps/nextjs-app -- pnpm prisma migrate", "prisma-migrate-reset": "dotenv-flow -p ../../apps/nextjs-app -- pnpm prisma migrate reset", "prisma-db-push": "dotenv-flow -p ../../apps/nextjs-app -- pnpm prisma db push", + "prisma-db-seed": "dotenv-flow -p ../../apps/nextjs-app -- pnpm prisma db seed", "prisma-studio": "dotenv-flow -p ../../apps/nextjs-app -- pnpm prisma studio", "test": "run-s test-unit", "test-unit": "echo \"No unit tests yet\"", @@ -33,18 +34,23 @@ "typecheck": "tsc --project ./tsconfig.json --noEmit" }, "peerDependencies": { - "@prisma/client": "^5.7.1", - "@nestjs/common": "^10.3.0", - "nestjs-cls": "^3.6.0" + "@prisma/client": "^5.0.0", + "@nestjs/common": "^10.0.0", + "nestjs-cls": ">= 3.5.0" }, "dependencies": { - "prisma": "5.7.1", + "prisma": "5.8.0", "nanoid": "3.3.6" }, "devDependencies": { + "@prisma/client": "5.8.0", + "@nestjs/common": "10.3.0", + "nestjs-cls": "3.6.0", + "@soluble/dsn-parser": "1.9.2", "@faker-js/faker": "8.3.1", "@teable-group/eslint-config-bases": "workspace:^", "@types/node": "18.18.2", + "@types/bcrypt": "5.0.2", "camelcase": "8.0.0", "cross-env": "7.0.3", "dotenv-flow-cli": "1.1.1", @@ -56,6 +62,11 @@ "picocolors": "1.0.0", "prettier": "3.1.1", "rimraf": "5.0.5", - "typescript": "5.3.3" + "tsx": "4.7.0", + "typescript": "5.3.3", + "bcrypt": "5.1.1" + }, + "prisma": { + "seed": "tsx ./prisma/seed.ts" } } diff --git a/packages/db-main-prisma/prisma/seed.ts b/packages/db-main-prisma/prisma/seed.ts new file mode 100644 index 0000000000..df82957ff0 --- /dev/null +++ b/packages/db-main-prisma/prisma/seed.ts @@ -0,0 +1,68 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import type { ParseArgsConfig } from 'node:util'; +import { parseArgs } from 'node:util'; +import type { parseDsnOrThrow } from '@soluble/dsn-parser'; +import { parseDsn as parse } from '@soluble/dsn-parser'; +import { PrismaClient } from '../'; +import { SpaceSeeds } from '../src/seeds/e2e/space-seeds'; +import { UserSeeds } from '../src/seeds/e2e/user-seeds'; + +export type IDsn = ReturnType; + +export function parseDsn(dsn: string): IDsn { + const parsedDsn = parse(dsn); + if (dsn.startsWith('file:')) { + return { + host: 'localhost', + driver: 'sqlite3', + }; + } + + if (!parsedDsn.success) { + throw new Error(`DATABASE_URL ${parsedDsn.reason}`); + } + if (!parsedDsn.value.port) { + throw new Error(`DATABASE_URL must provide a port`); + } + + return parsedDsn.value; +} + +let prisma: PrismaClient | undefined; + +const options: ParseArgsConfig['options'] = { + e2e: { type: 'boolean', default: false }, + log: { type: 'boolean', default: false }, +}; + +async function main() { + const { + values: { e2e, log }, + } = parseArgs({ options }); + const databaseUrl = process.env.PRISMA_DATABASE_URL!; + const { driver } = parseDsn(databaseUrl); + + console.log('🌱 Seed E2E: ', e2e); + console.log('🌱 Environment: ', process.env.NODE_ENV); + console.log('🌱 Database Url: ', databaseUrl); + console.log('🌱 Database Driver: ', driver); + + prisma = new PrismaClient(); + + if (e2e) { + const userSeeds = new UserSeeds(prisma, driver as any, Boolean(log)); + await userSeeds.execute(); + + const spaceSeeds = new SpaceSeeds(prisma, driver as any, Boolean(log)); + await spaceSeeds.execute(); + } +} + +main() + .catch((e) => { + console.error(e); + process.exit(1); + }) + .finally(async () => { + await prisma?.$disconnect(); + }); diff --git a/packages/db-main-prisma/src/seeds/e2e/space-seeds.ts b/packages/db-main-prisma/src/seeds/e2e/space-seeds.ts new file mode 100644 index 0000000000..1172c04cd3 --- /dev/null +++ b/packages/db-main-prisma/src/seeds/e2e/space-seeds.ts @@ -0,0 +1,108 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import type { Prisma } from '../../'; +import { AbstractSeed } from '../seed.abstract'; +import { CREATE_USER_NUM, generateUser } from './user-seeds'; + +const userId = 'usrTestUserId'; + +const spaceId = 'spcTestSpaceId'; +const spaceName = 'test space'; + +const baseId = 'bseTestBaseId'; +const baseName = 'test base'; + +const collaboratorId = 'usrTestCollaboratorId'; +const generateSpace = (): Prisma.SpaceCreateInput => { + return { + id: spaceId, + name: spaceName, + createdBy: userId, + lastModifiedBy: userId, + }; +}; + +const generateBase = (): Prisma.BaseCreateInput => { + return { + id: baseId, + name: baseName, + order: 1, + createdBy: userId, + space: { + connect: { + id: spaceId, + }, + }, + lastModifiedBy: userId, + }; +}; + +export const generateCollaborator = async ( + connectUserNum: number +): Promise => { + const userSets = await generateUser(connectUserNum); + + return Array.from({ length: connectUserNum + 1 }, (_, i) => ({ + id: `${collaboratorId}_${i}`, + spaceId, + roleName: 'owner', + userId: userSets[i].id!, + createdBy: userSets[i].id!, + lastModifiedBy: userSets[i].id!, + })); +}; + +export class SpaceSeeds extends AbstractSeed { + execute = async (): Promise => { + await this.prisma.$transaction(async (tx) => { + // Space + await this.createSpace(tx); + + // Base + await this.createBase(tx); + + // Collaborator + await this.createCollaborator(tx); + }); + }; + + private async createSpace(tx: Prisma.TransactionClient) { + const { id: spaceId, ...spaceNonUnique } = generateSpace(); + const space = await tx.space.upsert({ + where: { id: spaceId }, + update: spaceNonUnique, + create: { id: spaceId, ...spaceNonUnique }, + }); + this.log('UPSERT', `Space ${space.id} - ${space.name}`); + } + + private async createBase(tx: Prisma.TransactionClient) { + const { id: baseId, ...baseNonUnique } = generateBase(); + const base = await tx.base.upsert({ + where: { id: baseId }, + update: baseNonUnique, + create: { id: baseId, ...baseNonUnique }, + }); + this.log('UPSERT', `Base ${base.id} - ${base.name}`); + + if (this.driver !== 'sqlite3') { + await tx.$executeRawUnsafe(`create schema if not exists "${baseId}"`); + await tx.$executeRawUnsafe(`revoke all on schema "${baseId}" from public`); + } + } + + private async createCollaborator(tx: Prisma.TransactionClient) { + const collaboratorSets = await generateCollaborator(CREATE_USER_NUM); + for (const c of collaboratorSets) { + const { id, spaceId, userId, ...collaboratorNonUnique } = c; + const collaborator = await tx.collaborator.upsert({ + where: { id, spaceId, userId }, + update: collaboratorNonUnique, + create: c, + }); + this.log( + 'UPSERT', + `Collaborator ${collaborator.id} - ${collaborator.spaceId} - ${collaborator.userId}` + ); + } + } +} diff --git a/packages/db-main-prisma/src/seeds/e2e/user-seeds.ts b/packages/db-main-prisma/src/seeds/e2e/user-seeds.ts new file mode 100644 index 0000000000..d243e02283 --- /dev/null +++ b/packages/db-main-prisma/src/seeds/e2e/user-seeds.ts @@ -0,0 +1,52 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import bcrypt from 'bcrypt'; +import type { Prisma } from '../../'; +import { AbstractSeed } from '../seed.abstract'; + +export const CREATE_USER_NUM = 1; + +const generatePassword = async (password: string) => { + const salt = await bcrypt.genSalt(10); + const hashPassword = await bcrypt.hash(password, salt); + return { salt, password: hashPassword }; +}; + +const createUser = ( + baseId: string, + baseName: string, + pas: any, + index?: number +): Prisma.UserCreateInput => ({ + id: index === undefined ? baseId : `${baseId}_${index}`, + name: index === undefined ? baseName : `${baseName}_${index}`, + email: index === undefined ? `${baseName}@e2e.com` : `${baseName}_${index}@e2e.com`, + salt: pas.salt, + password: pas.password, + notifyMeta: JSON.stringify({ email: true }), +}); + +export const generateUser = async (max: number): Promise => { + const userId = 'usrTestUserId'; + const userName = 'test'; + const pas = await generatePassword('12345678'); + + return Array.from({ length: max + 1 }, (_, i) => + createUser(userId, userName, pas, i === 0 ? undefined : i) + ); +}; + +export class UserSeeds extends AbstractSeed { + execute = async (): Promise => { + const userSets = await generateUser(CREATE_USER_NUM); + + for (const u of userSets) { + const { id, name, email, ...userNonUnique } = u; + const user = await this.prisma.user.upsert({ + where: { email }, + update: userNonUnique, + create: u, + }); + this.log('UPSERT', `User ${user.id} - ${user.email} - ${user.password}`); + } + }; +} diff --git a/packages/db-main-prisma/src/seeds/seed.abstract.ts b/packages/db-main-prisma/src/seeds/seed.abstract.ts new file mode 100644 index 0000000000..cc5ad9942d --- /dev/null +++ b/packages/db-main-prisma/src/seeds/seed.abstract.ts @@ -0,0 +1,15 @@ +import type { PrismaClient } from '@prisma/client'; + +export abstract class AbstractSeed { + constructor( + public prisma: PrismaClient, + public driver: 'postgresql' | 'sqlite3', + public outLog: boolean = false + ) {} + + abstract execute(): Promise; + + protected log = (operation: 'UPSERT' | 'CREATE' | 'UPDATE', msg: string) => { + (process.env.CI || this.outLog) && console.log(`${operation}: ${msg}`); + }; +} diff --git a/packages/eslint-config-bases/package.json b/packages/eslint-config-bases/package.json index a8345e918c..652a5bebed 100644 --- a/packages/eslint-config-bases/package.json +++ b/packages/eslint-config-bases/package.json @@ -128,7 +128,7 @@ "@testing-library/react": "14.1.2", "@types/jest": "29.5.11", "@types/node": "18.18.2", - "@types/react": "18.2.45", + "@types/react": "18.2.47", "@types/react-dom": "18.2.18", "es-check": "7.1.1", "eslint": "8.56.0", diff --git a/packages/icons/package.json b/packages/icons/package.json index e7e540b50b..e88d1e51c7 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -37,7 +37,7 @@ "@svgr/plugin-svgo": "8.1.0", "@types/fs-extra": "11.0.4", "@types/node": "18.18.2", - "@types/react": "18.2.45", + "@types/react": "18.2.47", "axios": "1.6.5", "chalk": "5.3.0", "dotenv": "16.3.1", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 6a456fe777..a36d343b65 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -34,11 +34,11 @@ }, "dependencies": { "@belgattitude/http-exception": "1.5.0", - "@codemirror/autocomplete": "6.10.1", - "@codemirror/commands": "6.3.0", - "@codemirror/language": "6.9.1", - "@codemirror/state": "6.3.0", - "@codemirror/view": "6.21.3", + "@codemirror/autocomplete": "6.11.1", + "@codemirror/commands": "6.3.3", + "@codemirror/language": "6.10.0", + "@codemirror/state": "6.4.0", + "@codemirror/view": "6.23.0", "@dnd-kit/core": "6.1.0", "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", @@ -62,7 +62,7 @@ "knex": "3.0.1", "lodash": "4.17.21", "lru-cache": "10.1.0", - "lucide-react": "0.307.0", + "lucide-react": "0.309.0", "mousetrap": "1.6.5", "react-day-picker": "8.10.0", "react-hammerjs": "1.0.1", @@ -85,7 +85,7 @@ "@testing-library/react": "14.1.2", "@types/lodash": "4.14.202", "@types/node": "18.18.2", - "@types/react": "18.2.45", + "@types/react": "18.2.47", "@types/react-dom": "18.2.18", "@types/react-hammerjs": "1.0.7", "@types/scroller": "0.1.5", diff --git a/packages/ui-lib/package.json b/packages/ui-lib/package.json index a47730aea2..41e714ac4e 100644 --- a/packages/ui-lib/package.json +++ b/packages/ui-lib/package.json @@ -64,7 +64,7 @@ "@teable-group/eslint-config-bases": "workspace:^", "@testing-library/react": "14.1.2", "@types/node": "18.18.2", - "@types/react": "18.2.45", + "@types/react": "18.2.47", "@types/react-dom": "18.2.18", "autoprefixer": "10.4.16", "core-js": "3.35.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9e28bfe25..82bf4d17b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -104,7 +104,7 @@ importers: version: 7.1.17(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) '@nestjs/terminus': specifier: 10.2.0 - version: 10.2.0(@nestjs/axios@3.0.1)(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(@prisma/client@5.7.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) + version: 10.2.0(@nestjs/axios@3.0.1)(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(@prisma/client@5.8.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/websockets': specifier: 10.3.0 version: 10.3.0(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -136,11 +136,11 @@ importers: specifier: 1.19.0 version: 1.19.0 '@prisma/client': - specifier: 5.7.1 - version: 5.7.1(prisma@5.7.1) + specifier: 5.8.0 + version: 5.8.0(prisma@5.8.0) '@prisma/instrumentation': - specifier: 5.7.1 - version: 5.7.1 + specifier: 5.8.0 + version: 5.8.0 '@teable-group/common-i18n': specifier: workspace:^ version: link:../../packages/common-i18n @@ -248,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 @@ -300,7 +300,7 @@ importers: version: 8.3.1 '@nestjs/cli': specifier: 10.3.0 - version: 10.3.0(@swc/core@1.3.101) + 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) @@ -405,16 +405,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.0 version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) @@ -423,7 +423,7 @@ importers: 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.101) + version: 5.89.0(@swc/core@1.3.102) apps/nextjs-app: dependencies: @@ -437,20 +437,20 @@ importers: specifier: 1.5.0 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) + specifier: 6.11.1 + version: 6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.2.0) '@codemirror/commands': - specifier: 6.3.0 - version: 6.3.0 + specifier: 6.3.3 + version: 6.3.3 '@codemirror/language': - specifier: 6.9.1 - version: 6.9.1 + specifier: 6.10.0 + version: 6.10.0 '@codemirror/state': - specifier: 6.3.0 - version: 6.3.0 + specifier: 6.4.0 + version: 6.4.0 '@codemirror/view': - specifier: 6.21.3 - version: 6.21.3 + specifier: 6.23.0 + version: 6.23.0 '@dnd-kit/core': specifier: 6.1.0 version: 6.1.0(react-dom@18.2.0)(react@18.2.0) @@ -554,11 +554,11 @@ importers: specifier: 10.1.0 version: 10.1.0 lucide-react: - specifier: 0.307.0 - version: 0.307.0(react@18.2.0) + specifier: 0.309.0 + version: 0.309.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) @@ -585,7 +585,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) @@ -606,7 +606,7 @@ importers: version: 13.3.0(i18next@23.5.1)(react-dom@18.2.0)(react@18.2.0) react-markdown: specifier: 9.0.1 - version: 9.0.1(@types/react@18.2.45)(react@18.2.0) + version: 9.0.1(@types/react@18.2.47)(react@18.2.0) react-resizable: specifier: 3.0.5 version: 3.0.5(react-dom@18.2.0)(react@18.2.0) @@ -621,13 +621,13 @@ importers: version: 15.5.0(react@18.2.0) react-textarea-autosize: specifier: 8.5.3 - version: 8.5.3(@types/react@18.2.45)(react@18.2.0) + version: 8.5.3(@types/react@18.2.47)(react@18.2.0) react-use: specifier: 17.4.2 version: 17.4.2(react-dom@18.2.0)(react@18.2.0) recharts: - specifier: 2.10.3 - version: 2.10.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) + specifier: 2.10.4 + version: 2.10.4(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) reconnecting-websocket: specifier: 4.4.0 version: 4.4.0 @@ -657,7 +657,7 @@ importers: version: 2.1.0(zod@3.22.4) zustand: specifier: 4.4.7 - version: 4.4.7(@types/react@18.2.45)(immer@10.0.3)(react@18.2.0) + version: 4.4.7(@types/react@18.2.47)(immer@10.0.3)(react@18.2.0) devDependencies: '@next/bundle-analyzer': specifier: 13.0.2 @@ -675,8 +675,8 @@ importers: specifier: 8.1.0 version: 8.1.0(typescript@5.3.3) '@testing-library/dom': - specifier: 9.3.3 - version: 9.3.3 + specifier: 9.3.4 + version: 9.3.4 '@testing-library/jest-dom': specifier: 6.2.0 version: 6.2.0(vitest@1.1.0) @@ -685,7 +685,7 @@ importers: version: 14.1.2(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@9.3.3) + version: 14.5.2(@testing-library/dom@9.3.4) '@types/cors': specifier: 2.8.17 version: 2.8.17 @@ -702,8 +702,8 @@ importers: specifier: 0.2.3 version: 0.2.3 '@types/react': - specifier: 18.2.45 - version: 18.2.45 + specifier: 18.2.47 + version: 18.2.47 '@types/react-dom': specifier: 18.2.18 version: 18.2.18 @@ -721,7 +721,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) @@ -778,16 +778,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.0 version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) @@ -893,38 +893,44 @@ 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.0 version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) packages/db-main-prisma: dependencies: - '@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) - '@prisma/client': - specifier: ^5.7.1 - version: 5.7.1(prisma@5.7.1) nanoid: specifier: 3.3.6 version: 3.3.6 - nestjs-cls: - 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) prisma: - specifier: 5.7.1 - version: 5.7.1 + specifier: 5.8.0 + version: 5.8.0 devDependencies: '@faker-js/faker': specifier: 8.3.1 version: 8.3.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) + '@prisma/client': + specifier: 5.8.0 + version: 5.8.0(prisma@5.8.0) + '@soluble/dsn-parser': + specifier: 1.9.2 + version: 1.9.2 '@teable-group/eslint-config-bases': specifier: workspace:^ version: link:../eslint-config-bases + '@types/bcrypt': + specifier: 5.0.2 + version: 5.0.2 '@types/node': specifier: 18.18.2 version: 18.18.2 + bcrypt: + specifier: 5.1.1 + version: 5.1.1 camelcase: specifier: 8.0.0 version: 8.0.0 @@ -946,6 +952,9 @@ importers: mustache: specifier: 4.2.0 version: 4.2.0 + nestjs-cls: + 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) npm-run-all: specifier: 4.1.5 version: 4.1.5 @@ -958,6 +967,9 @@ importers: rimraf: specifier: 5.0.5 version: 5.0.5 + tsx: + specifier: 4.7.0 + version: 4.7.0 typescript: specifier: 5.3.3 version: 5.3.3 @@ -1035,8 +1047,8 @@ importers: specifier: 18.18.2 version: 18.18.2 '@types/react': - specifier: 18.2.45 - version: 18.2.45 + specifier: 18.2.47 + version: 18.2.47 '@types/react-dom': specifier: 18.2.18 version: 18.2.18 @@ -1099,8 +1111,8 @@ importers: specifier: 18.18.2 version: 18.18.2 '@types/react': - specifier: 18.2.45 - version: 18.2.45 + specifier: 18.2.47 + version: 18.2.47 axios: specifier: 1.6.5 version: 1.6.5 @@ -1163,20 +1175,20 @@ importers: specifier: 1.5.0 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) + specifier: 6.11.1 + version: 6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.2.0) '@codemirror/commands': - specifier: 6.3.0 - version: 6.3.0 + specifier: 6.3.3 + version: 6.3.3 '@codemirror/language': - specifier: 6.9.1 - version: 6.9.1 + specifier: 6.10.0 + version: 6.10.0 '@codemirror/state': - specifier: 6.3.0 - version: 6.3.0 + specifier: 6.4.0 + version: 6.4.0 '@codemirror/view': - specifier: 6.21.3 - version: 6.21.3 + specifier: 6.23.0 + version: 6.23.0 '@dnd-kit/core': specifier: 6.1.0 version: 6.1.0(react-dom@18.2.0)(react@18.2.0) @@ -1247,14 +1259,14 @@ importers: specifier: 10.1.0 version: 10.1.0 lucide-react: - specifier: 0.307.0 - version: 0.307.0(react@18.2.0) + specifier: 0.309.0 + version: 0.309.0(react@18.2.0) mousetrap: specifier: 1.6.5 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) @@ -1281,7 +1293,7 @@ importers: version: 6.0.3 zustand: specifier: 4.4.7 - version: 4.4.7(@types/react@18.2.45)(immer@10.0.3)(react@18.2.0) + version: 4.4.7(@types/react@18.2.47)(immer@10.0.3)(react@18.2.0) devDependencies: '@teable-group/eslint-config-bases': specifier: workspace:^ @@ -1299,8 +1311,8 @@ importers: specifier: 18.18.2 version: 18.18.2 '@types/react': - specifier: 18.2.45 - version: 18.2.45 + specifier: 18.2.47 + version: 18.2.47 '@types/react-dom': specifier: 18.2.18 version: 18.2.18 @@ -1315,7 +1327,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 @@ -1351,10 +1363,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.0 version: 1.1.0(@types/node@18.18.2)(happy-dom@12.10.3) @@ -1366,61 +1378,61 @@ importers: 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) + version: 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-avatar': 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) + version: 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(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) + version: 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(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) + version: 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': 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) + version: 2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(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) + version: 1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-icons': specifier: 1.3.0 version: 1.3.0(react@18.2.0) '@radix-ui/react-label': 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) + version: 2.0.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': 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) + version: 1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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) + version: 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-radio-group': 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) + version: 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-scroll-area': 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) + version: 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-select': 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) + version: 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(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) + version: 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': specifier: 1.0.2 - version: 1.0.2(@types/react@18.2.45)(react@18.2.0) + version: 1.0.2(@types/react@18.2.47)(react@18.2.0) '@radix-ui/react-switch': 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) + version: 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tabs': 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) + version: 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-toast': 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) + version: 1.1.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': 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) + version: 1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@teable-group/icons': specifier: workspace:^ version: link:../icons @@ -1432,7 +1444,7 @@ importers: version: 2.1.0 cmdk: specifier: 0.2.0 - version: 0.2.0(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + version: 0.2.0(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) deepmerge: specifier: 4.3.1 version: 4.3.1 @@ -1441,7 +1453,7 @@ importers: 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.3 version: 7.49.3(react@18.2.0) @@ -1463,16 +1475,16 @@ importers: devDependencies: '@mdx-js/react': specifier: 3.0.0 - version: 3.0.0(@types/react@18.2.45)(react@18.2.0) + version: 3.0.0(@types/react@18.2.47)(react@18.2.0) '@storybook/addon-actions': specifier: 7.6.7 version: 7.6.7 '@storybook/addon-docs': specifier: 7.6.7 - version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-essentials': specifier: 7.6.7 - version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-links': specifier: 7.6.7 version: 7.6.7(react@18.2.0) @@ -1487,7 +1499,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) @@ -1504,8 +1516,8 @@ importers: specifier: 18.18.2 version: 18.18.2 '@types/react': - specifier: 18.2.45 - version: 18.2.45 + specifier: 18.2.47 + version: 18.2.47 '@types/react-dom': specifier: 18.2.18 version: 18.2.18 @@ -1568,7 +1580,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: @@ -1909,7 +1921,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 @@ -1942,20 +1954,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 @@ -1964,11 +1976,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 @@ -1977,18 +1989,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 @@ -1997,46 +2009,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 @@ -2045,13 +2057,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 @@ -2069,34 +2081,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 @@ -2107,7 +2119,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: @@ -2115,25 +2127,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 @@ -2143,20 +2155,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==} @@ -2176,16 +2188,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 @@ -2197,107 +2209,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. @@ -2305,1041 +2315,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 @@ -3351,39 +3362,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 @@ -3402,7 +3413,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 @@ -3420,7 +3431,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 @@ -3448,7 +3459,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 @@ -3522,7 +3533,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 @@ -3538,7 +3549,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 @@ -3563,7 +3574,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 @@ -3573,7 +3584,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 @@ -3594,55 +3605,55 @@ 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): - resolution: {integrity: sha512-wKfeYuf4Dsz0r/jvhIoN9k9KrFAhK8x+YZ0E9HfbgJ0ZJ+AmoNbmjSDv6HQ/tBSjgb3H00wn1XrdmhRkOQxsew==} + /@codemirror/autocomplete@6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.2.0): + resolution: {integrity: sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==} peerDependencies: '@codemirror/language': ^6.0.0 '@codemirror/state': ^6.0.0 '@codemirror/view': ^6.0.0 '@lezer/common': ^1.0.0 dependencies: - '@codemirror/language': 6.9.1 - '@codemirror/state': 6.3.0 - '@codemirror/view': 6.21.3 - '@lezer/common': 1.1.1 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.23.0 + '@lezer/common': 1.2.0 dev: false - /@codemirror/commands@6.3.0: - resolution: {integrity: sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==} + /@codemirror/commands@6.3.3: + resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==} dependencies: - '@codemirror/language': 6.9.1 - '@codemirror/state': 6.3.0 - '@codemirror/view': 6.21.3 - '@lezer/common': 1.1.1 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.23.0 + '@lezer/common': 1.2.0 dev: false - /@codemirror/language@6.9.1: - resolution: {integrity: sha512-lWRP3Y9IUdOms6DXuBpoWwjkR7yRmnS0hKYCbSfPz9v6Em1A1UCRujAkDiCrdYfs1Z0Eu4dGtwovNPStIfkgNA==} + /@codemirror/language@6.10.0: + resolution: {integrity: sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==} dependencies: - '@codemirror/state': 6.3.0 - '@codemirror/view': 6.21.3 - '@lezer/common': 1.1.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.23.0 + '@lezer/common': 1.2.0 '@lezer/highlight': 1.2.0 '@lezer/lr': 1.3.14 style-mod: 4.1.0 dev: false - /@codemirror/state@6.3.0: - resolution: {integrity: sha512-5fIS19U46PEqczbBL6gBAtju9MFDT9TjIC/q2MYblHCEKiU8jhV3cRFhvQu5tQvbtxc5KLWxSnzMNh3ZqeaXVg==} + /@codemirror/state@6.4.0: + resolution: {integrity: sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==} dev: false - /@codemirror/view@6.21.3: - resolution: {integrity: sha512-8l1aSQ6MygzL4Nx7GVYhucSXvW4jQd0F6Zm3v9Dg+6nZEfwzJVqi4C2zHfDljID+73gsQrWp9TgHc81xU15O4A==} + /@codemirror/view@6.23.0: + resolution: {integrity: sha512-/51px9N4uW8NpuWkyUX+iam5+PM6io2fm+QmRnzwqBy5v/pwGg9T0kILFtYeum8hjuvENtgsGNKluOfqIICmeQ==} dependencies: - '@codemirror/state': 6.3.0 + '@codemirror/state': 6.4.0 style-mod: 4.1.0 w3c-keyname: 2.2.8 dev: false @@ -3829,122 +3840,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 @@ -3953,56 +3964,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 @@ -4010,19 +4021,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 @@ -4030,8 +4041,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 @@ -4039,8 +4050,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 @@ -4048,8 +4059,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 @@ -4058,43 +4069,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 @@ -4103,8 +4114,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 @@ -4113,21 +4124,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 @@ -4136,66 +4147,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 @@ -4203,13 +4214,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: @@ -4293,8 +4304,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] @@ -4311,8 +4322,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] @@ -4329,8 +4340,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] @@ -4347,8 +4358,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] @@ -4365,8 +4376,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] @@ -4383,8 +4394,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] @@ -4401,8 +4412,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] @@ -4419,8 +4430,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] @@ -4437,8 +4448,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] @@ -4455,8 +4466,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] @@ -4473,8 +4484,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] @@ -4491,8 +4502,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] @@ -4509,8 +4520,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] @@ -4527,8 +4538,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] @@ -4545,8 +4556,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] @@ -4563,8 +4574,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] @@ -4581,8 +4592,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] @@ -4599,8 +4610,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] @@ -4617,8 +4628,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] @@ -4635,8 +4646,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] @@ -4653,8 +4664,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] @@ -4671,8 +4682,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] @@ -4689,8 +4700,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] @@ -4718,7 +4729,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 @@ -4741,29 +4752,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==} @@ -5083,7 +5094,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 @@ -5155,20 +5166,20 @@ 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: @@ -5185,7 +5196,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 @@ -5194,7 +5205,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 @@ -5218,7 +5229,6 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false /@mdx-js/react@2.3.0(react@18.2.0): resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} @@ -5226,18 +5236,18 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.10 - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 dev: true - /@mdx-js/react@3.0.0(@types/react@18.2.45)(react@18.2.0): + /@mdx-js/react@3.0.0(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==} peerDependencies: '@types/react': '>=16' react: '>=16' dependencies: '@types/mdx': 2.0.10 - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 dev: true @@ -5299,7 +5309,7 @@ packages: rxjs: 7.8.1 dev: false - /@nestjs/cli@10.3.0(@swc/core@1.3.101): + /@nestjs/cli@10.3.0(@swc/core@1.3.102): resolution: {integrity: sha512-37h+wSDItY0NE/x3a/M9yb2cXzfsD4qoE26rHgFn592XXLelDN12wdnfn7dTIaiRZT7WOCdQ+BYP9mQikR4AsA==} engines: {node: '>= 16.14'} hasBin: true @@ -5316,7 +5326,7 @@ packages: '@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.101 + '@swc/core': 1.3.102 chalk: 4.1.2 chokidar: 3.5.3 cli-table3: 0.6.3 @@ -5333,7 +5343,7 @@ packages: tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.1.0 typescript: 5.3.3 - webpack: 5.89.0(@swc/core@1.3.101) + webpack: 5.89.0(@swc/core@1.3.102) webpack-node-externals: 3.0.0 transitivePeerDependencies: - esbuild @@ -5537,7 +5547,7 @@ packages: swagger-ui-dist: 5.10.3 dev: false - /@nestjs/terminus@10.2.0(@nestjs/axios@3.0.1)(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(@prisma/client@5.7.1)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/terminus@10.2.0(@nestjs/axios@3.0.1)(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(@prisma/client@5.8.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-zPs98xvJ4ogEimRQOz8eU90mb7z+W/kd/mL4peOgrJ/VqER+ibN2Cboj65uJZW3XuNhpOqaeYOJte86InJd44A==} peerDependencies: '@grpc/grpc-js': '*' @@ -5588,7 +5598,7 @@ packages: '@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) + '@prisma/client': 5.8.0(prisma@5.8.0) boxen: 5.1.2 check-disk-space: 3.4.0 reflect-metadata: 0.1.13 @@ -5785,7 +5795,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==} @@ -5852,16 +5862,6 @@ packages: '@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'} @@ -5970,22 +5970,6 @@ packages: - 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'} @@ -6072,17 +6056,6 @@ packages: '@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'} @@ -6143,18 +6116,6 @@ packages: - 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'} @@ -6182,11 +6143,6 @@ packages: 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'} @@ -6198,16 +6154,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==} @@ -6221,8 +6170,8 @@ packages: resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} dev: true - /@prisma/client@5.7.1(prisma@5.7.1): - resolution: {integrity: sha512-TUSa4nUcC4nf/e7X3jyO1pEd6XcI/TLRCA0KjkA46RDIpxUaRsBYEOqITwXRW2c0bMFyKcCRXrH4f7h4q9oOlg==} + /@prisma/client@5.8.0(prisma@5.8.0): + resolution: {integrity: sha512-QxO6C4MaA/ysTIbC+EcAH1aX/YkpymhXtO6zPdk+FvA7+59tNibIYpd+7koPdViLg2iKES4ojsxWNUGNJaEcbA==} engines: {node: '>=16.13'} requiresBuild: true peerDependencies: @@ -6231,47 +6180,41 @@ packages: prisma: optional: true dependencies: - prisma: 5.7.1 - dev: false + prisma: 5.8.0 - /@prisma/debug@5.7.1: - resolution: {integrity: sha512-yrVSO/YZOxdeIxcBtZ5BaNqUfPrZkNsAKQIQg36cJKMxj/VYK3Vk5jMKkI+gQLl0KReo1YvX8GWKfV788SELjw==} - dev: false + /@prisma/debug@5.8.0: + resolution: {integrity: sha512-ZqPpkvbovu/kQJ1bvy57NO4dw97fpQGcbQSCtsqlwSE1UNKJP75R3BKxdznk8ZPMY+GJdMRetWNv4oAvSbWn8Q==} - /@prisma/engines-version@5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5: - resolution: {integrity: sha512-dIR5IQK/ZxEoWRBDOHF87r1Jy+m2ih3Joi4vzJRP+FOj5yxCwS2pS5SBR3TWoVnEK1zxtLI/3N7BjHyGF84fgw==} - dev: false + /@prisma/engines-version@5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848: + resolution: {integrity: sha512-cXcoVweYbnv8xRfkWq9oj8BECOdzHUazrSpYCa0ehp5TNz4l5Spa8jbq/VROCTzj3ZncH5D9Q2TmySYTOUeKlw==} - /@prisma/engines@5.7.1: - resolution: {integrity: sha512-R+Pqbra8tpLP2cvyiUpx+SIKglav3nTCpA+rn6826CThviQ8yvbNG0s8jNpo51vS9FuZO3pOkARqG062vKX7uA==} + /@prisma/engines@5.8.0: + resolution: {integrity: sha512-Qhqm9WWLujNEC13AuZlUO14SQ15tNLe5puaz+tOk7UqINqJ3PtqMmuSuzomiw2diGVqZ+HYiSQzlR3+pPucVHA==} requiresBuild: true dependencies: - '@prisma/debug': 5.7.1 - '@prisma/engines-version': 5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5 - '@prisma/fetch-engine': 5.7.1 - '@prisma/get-platform': 5.7.1 - dev: false + '@prisma/debug': 5.8.0 + '@prisma/engines-version': 5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848 + '@prisma/fetch-engine': 5.8.0 + '@prisma/get-platform': 5.8.0 - /@prisma/fetch-engine@5.7.1: - resolution: {integrity: sha512-9ELauIEBkIaEUpMIYPRlh5QELfoC6pyHolHVQgbNxglaINikZ9w9X7r1TIePAcm05pCNp2XPY1ObQIJW5nYfBQ==} + /@prisma/fetch-engine@5.8.0: + resolution: {integrity: sha512-1CAuE+JoYsPNggMEn6qk0zos06Uc9bYZBJ0VBPHD6R7REL05614koAbOCmn52IaYz3nobb7f25hqW6AY7rLkIw==} dependencies: - '@prisma/debug': 5.7.1 - '@prisma/engines-version': 5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5 - '@prisma/get-platform': 5.7.1 - dev: false + '@prisma/debug': 5.8.0 + '@prisma/engines-version': 5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848 + '@prisma/get-platform': 5.8.0 - /@prisma/get-platform@5.7.1: - resolution: {integrity: sha512-eDlswr3a1m5z9D/55Iyt/nZqS5UpD+DZ9MooBB3hvrcPhDQrcf9m4Tl7buy4mvAtrubQ626ECtb8c6L/f7rGSQ==} + /@prisma/get-platform@5.8.0: + resolution: {integrity: sha512-Nk3rhTFZ1LYkFZJnpSvQcLPCaBWgJQfteHII6UEENOOkYlmP0k3FuswND54tzzEr4qs39wOdV9pbXKX9U2lv7A==} dependencies: - '@prisma/debug': 5.7.1 - dev: false + '@prisma/debug': 5.8.0 - /@prisma/instrumentation@5.7.1: - resolution: {integrity: sha512-X7V3KbtIgWmTfVKIDua9xlhuE1CWRkT0/S+U0XQzj5CfDjwttrAzsjxvMHbNQUTsEuQDe+WHmx8PivyTT7dqBQ==} + /@prisma/instrumentation@5.8.0: + resolution: {integrity: sha512-hulKQ7Ru2Uxk2cVinPZ5F60B8aMIMZU+1w4LM6dy2E3/z2st67z7r4MqkYON9Yyz1CsvYiuL+drp3cs6IKAEQQ==} 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) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) transitivePeerDependencies: - supports-color dev: false @@ -6279,20 +6222,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: @@ -6341,20 +6284,20 @@ 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): + /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==} peerDependencies: '@types/react': '*' @@ -6367,20 +6310,20 @@ 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-dialog': 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-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) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@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-arrow@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -6393,14 +6336,14 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@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.4(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==} peerDependencies: '@types/react': '*' @@ -6413,18 +6356,18 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-checkbox@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-checkbox@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} peerDependencies: '@types/react': '*' @@ -6437,22 +6380,22 @@ 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-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-controllable-state': 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-use-size': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@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-collection@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -6465,12 +6408,12 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6480,11 +6423,11 @@ 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 - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -6493,8 +6436,8 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 /@radix-ui/react-context@1.0.0(react@18.2.0): @@ -6502,11 +6445,11 @@ 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 - /@radix-ui/react-context@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -6515,17 +6458,17 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 - /@radix-ui/react-dialog@1.0.0(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.0(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@babel/runtime': 7.23.5 + '@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) @@ -6541,12 +6484,12 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.4(@types/react@18.2.45)(react@18.2.0) + react-remove-scroll: 2.5.4(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' 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): + /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: '@types/react': '*' @@ -6559,28 +6502,28 @@ 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.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-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) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@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) + react-remove-scroll: 2.5.5(@types/react@18.2.47)(react@18.2.0) dev: false - /@radix-ui/react-direction@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -6589,8 +6532,8 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): @@ -6599,7 +6542,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) @@ -6609,7 +6552,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@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.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -6622,19 +6565,19 @@ 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) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@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): + /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -6647,19 +6590,19 @@ 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) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@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): + /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -6672,15 +6615,15 @@ 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.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 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6691,11 +6634,11 @@ 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 - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -6704,8 +6647,8 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): @@ -6714,7 +6657,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) @@ -6722,7 +6665,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@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.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -6735,17 +6678,17 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@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): + /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -6758,17 +6701,17 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-hover-card@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-hover-card@1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==} peerDependencies: '@types/react': '*' @@ -6781,17 +6724,17 @@ 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.5(@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-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6810,12 +6753,12 @@ 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 - /@radix-ui/react-id@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -6824,12 +6767,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 - /@radix-ui/react-label@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-label@2.0.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: '@types/react': '*' @@ -6842,15 +6785,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@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-menu@2.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -6863,32 +6806,32 @@ 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.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-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) - '@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) - '@types/react': 18.2.45 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@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) + react-remove-scroll: 2.5.5(@types/react@18.2.47)(react@18.2.0) dev: false - /@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): + /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' @@ -6901,29 +6844,29 @@ 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.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-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 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@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) + react-remove-scroll: 2.5.5(@types/react@18.2.47)(react@18.2.0) dev: false - /@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-popper@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': '*' @@ -6936,24 +6879,24 @@ 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) - '@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) - '@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) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.45)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.47)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.45 + '@types/react': 18.2.47 '@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): + /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -6966,18 +6909,18 @@ 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) - '@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) - '@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) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.45)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.47)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.45 + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6989,13 +6932,13 @@ 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) dev: false - /@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-portal@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -7008,15 +6951,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@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): + /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -7029,9 +6972,9 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7043,14 +6986,14 @@ 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 react-dom: 18.2.0(react@18.2.0) dev: false - /@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-presence@1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -7063,10 +7006,10 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7078,13 +7021,13 @@ 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) dev: false - /@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-primitive@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -7097,14 +7040,14 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-progress@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-progress@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==} peerDependencies: '@types/react': '*' @@ -7117,16 +7060,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-radio-group@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-radio-group@1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==} peerDependencies: '@types/react': '*' @@ -7139,24 +7082,24 @@ 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-direction': 1.0.1(@types/react@18.2.45)(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) - '@radix-ui/react-use-controllable-state': 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-use-size': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@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): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -7169,22 +7112,22 @@ 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-id': 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) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@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): + /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==} peerDependencies: '@types/react': '*' @@ -7197,23 +7140,23 @@ 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) - '@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-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) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@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-select@1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} peerDependencies: '@types/react': '*' @@ -7226,35 +7169,35 @@ 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) - '@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-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-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-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 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@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) + react-remove-scroll: 2.5.5(@types/react@18.2.47)(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): + /@radix-ui/react-select@2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} peerDependencies: '@types/react': '*' @@ -7267,35 +7210,35 @@ 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) - '@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 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@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) + react-remove-scroll: 2.5.5(@types/react@18.2.47)(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): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -7308,9 +7251,9 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7320,12 +7263,12 @@ 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 - /@radix-ui/react-slot@1.0.2(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -7334,12 +7277,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 - /@radix-ui/react-switch@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-switch@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -7352,21 +7295,21 @@ 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-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) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-tabs@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-tabs@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -7379,22 +7322,22 @@ 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) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.45)(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) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@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): + /@radix-ui/react-toast@1.1.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==} peerDependencies: '@types/react': '*' @@ -7407,26 +7350,26 @@ 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.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) - '@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-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 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-toggle-group@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-toggle-group@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -7439,21 +7382,21 @@ 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) - '@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) - '@radix-ui/react-toggle': 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 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toggle@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-toggle@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -7466,17 +7409,17 @@ 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) - '@types/react': 18.2.45 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@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): + /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' @@ -7489,21 +7432,21 @@ 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) - '@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) - '@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) - '@radix-ui/react-toggle-group': 1.0.4(@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 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@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): + /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' @@ -7516,20 +7459,20 @@ 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.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.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) - '@radix-ui/react-use-controllable-state': 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 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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.47)(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.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7540,11 +7483,11 @@ 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 - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -7553,8 +7496,8 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): @@ -7562,12 +7505,12 @@ 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 - /@radix-ui/react-use-controllable-state@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.47)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -7576,9 +7519,9 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): @@ -7586,12 +7529,12 @@ 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 - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -7600,9 +7543,9 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 react: 18.2.0 /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): @@ -7610,11 +7553,11 @@ 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 - /@radix-ui/react-use-layout-effect@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.47)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -7623,11 +7566,11 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -7636,11 +7579,11 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@types/react': 18.2.47 react: 18.2.0 - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -7649,12 +7592,12 @@ 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 + '@types/react': 18.2.47 react: 18.2.0 - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.45)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -7663,12 +7606,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.45)(react@18.2.0) - '@types/react': 18.2.45 + '@babel/runtime': 7.23.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@types/react': 18.2.47 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): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -7681,9 +7624,9 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.5 - '@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 + '@babel/runtime': 7.23.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.47 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -7691,7 +7634,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==} @@ -7703,7 +7646,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: @@ -7714,7 +7657,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 @@ -7828,117 +7771,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==} @@ -8023,7 +7961,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 @@ -8135,7 +8073,6 @@ packages: /@soluble/dsn-parser@1.9.2: resolution: {integrity: sha512-FgkvHHHSCzjQ1/ouW6Vtw2hy0k5/KWeu116swH5VYX267I4rx+8MCy9/6eZ60IWGIQVNgh0sektKAu0n9gtzzA==} - dev: false /@storybook/addon-actions@7.6.7: resolution: {integrity: sha512-+6EZvhIeKEqG/RNsU3R5DxOrd60BL5GEvmzE2w60s2eKaNNxtyilDjiO1g4z2s2zDNyr7JL/Ft03pJ0Jgo0lew==} @@ -8156,10 +8093,10 @@ packages: ts-dedent: 2.2.0 dev: true - /@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-controls@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-DJ3gfvcdCgqi7AQxu83vx0AEUKiuJrNcSATfWV3Jqi8dH6fYO2yqpemHEeWOEy+DAHxIOaqLKwb1QjIBj+vSRQ==} dependencies: - '@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/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -8171,7 +8108,7 @@ packages: - supports-color dev: true - /@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-docs@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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 @@ -8179,9 +8116,9 @@ packages: dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.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) + '@storybook/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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 @@ -8205,7 +8142,7 @@ packages: - supports-color dev: true - /@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): + /@storybook/addon-essentials@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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 @@ -8213,8 +8150,8 @@ packages: dependencies: '@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-controls': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(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 @@ -8347,7 +8284,7 @@ packages: util-deprecate: 1.0.2 dev: true - /@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/blocks@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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 @@ -8355,7 +8292,7 @@ packages: dependencies: '@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/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.7 @@ -8368,14 +8305,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: @@ -8393,7 +8330,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 @@ -8402,10 +8339,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 @@ -8414,24 +8351,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 @@ -8542,14 +8480,14 @@ packages: util-deprecate: 1.0.2 dev: true - /@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/components@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(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) + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(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.47)(react-dom@18.2.0)(react@18.2.0) '@storybook/client-logger': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 @@ -8599,7 +8537,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: @@ -8619,35 +8557,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 @@ -8740,7 +8678,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 @@ -8748,10 +8686,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 @@ -8820,7 +8758,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 @@ -8830,17 +8768,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 @@ -8848,7 +8786,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 @@ -8858,14 +8796,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 @@ -9135,101 +9074,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 @@ -9242,7 +9181,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 @@ -9252,8 +9191,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 @@ -9281,7 +9220,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 @@ -9290,11 +9229,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) @@ -9303,88 +9242,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: @@ -9396,16 +9335,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==} @@ -9469,12 +9408,12 @@ packages: resolution: {integrity: sha512-SCEM44hjNyxYwrtyJrjlHmeTd9RJlZr04BAMbHSBhdW0M2IXv0SC+4XeuRXPiY7U7pJ0W8TSUwVP/28MV/ds0w==} dev: false - /@testing-library/dom@9.3.3: - resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} 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 @@ -9502,7 +9441,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 @@ -9531,7 +9470,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 @@ -9548,20 +9487,20 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 - '@testing-library/dom': 9.3.3 + '@babel/runtime': 7.23.7 + '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.3): + /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4): resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 9.3.3 + '@testing-library/dom': 9.3.4 dev: true /@trysound/sax@0.2.0: @@ -9603,30 +9542,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: @@ -9753,12 +9692,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 @@ -9819,8 +9758,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 @@ -9833,7 +9772,7 @@ packages: /@types/hoist-non-react-statics@3.3.5: resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 hoist-non-react-statics: 3.3.2 dev: false @@ -9978,15 +9917,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 @@ -10056,7 +9995,6 @@ packages: /@types/pug@2.0.10: resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - requiresBuild: true dev: false optional: true @@ -10071,39 +10009,39 @@ packages: /@types/react-dom@18.2.18: resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 /@types/react-grid-layout@1.3.5: resolution: {integrity: sha512-WH/po1gcEcoR6y857yAnPGug+ZhkF4PaTUxgAbwfeSH/QOgVSakKHBXoPGad/sEznmkiaK3pqHk+etdWisoeBQ==} dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 dev: true /@types/react-hammerjs@1.0.7: resolution: {integrity: sha512-bHXpm3WxmUeIyow57KbgKNdhxjnHoYzPn7lWW45r2NgRyod7as7jJjoQIbtBETTorF4lrzFXVnFhYJssoEpG6Q==} dependencies: '@types/hammerjs': 2.0.45 - '@types/react': 18.2.45 + '@types/react': 18.2.47 dev: true /@types/react-syntax-highlighter@15.5.11: resolution: {integrity: sha512-ZqIJl+Pg8kD+47kxUjvrlElrraSUrYa4h0dauY/U/FTUuprSCqvUj+9PNQNQzVc6AJgIWUUxn87/gqsMHNbRjw==} dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 dev: true /@types/react-test-renderer@18.0.7: resolution: {integrity: sha512-1+ANPOWc6rB3IkSnElhjv6VLlKg2dSv/OWClUyZimbLsQyBn8Js9Vtdsi3UICJ2rIQ3k2la06dkB+C92QfhKmg==} dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 dev: true - /@types/react@18.2.45: - resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} + /@types/react@18.2.47: + resolution: {integrity: sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==} 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==} @@ -10401,13 +10339,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 @@ -10417,7 +10355,7 @@ packages: dependencies: '@vitest/spy': 1.1.0 '@vitest/utils': 1.1.0 - chai: 4.3.10 + chai: 4.4.0 dev: true /@vitest/runner@1.1.0: @@ -10717,7 +10655,6 @@ packages: /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: false /abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} @@ -10737,12 +10674,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==} @@ -10752,20 +10689,20 @@ 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==} + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} /acorn@6.4.2: @@ -10779,8 +10716,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 @@ -10797,7 +10734,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} @@ -11297,7 +11233,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 @@ -11316,7 +11252,7 @@ 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 @@ -11335,14 +11271,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 @@ -11350,32 +11286,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: @@ -11395,55 +11331,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 @@ -11452,13 +11388,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: @@ -11466,7 +11402,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: @@ -11508,7 +11444,6 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false /better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} @@ -11517,10 +11452,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 @@ -11632,12 +11563,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: @@ -11758,8 +11683,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) @@ -11813,12 +11738,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'} @@ -11942,13 +11861,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==} @@ -11958,8 +11877,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 @@ -12125,7 +12044,6 @@ packages: /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - dev: false /chrome-trace-event@1.0.3: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} @@ -12169,7 +12087,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: @@ -12309,13 +12227,13 @@ packages: engines: {node: '>=6'} dev: false - /cmdk@0.2.0(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + /cmdk@0.2.0(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-JQpKvEOb86SnvMZbYaFKYhvzFntWBeSZdyii0rZPhKJj9uwJBxu4DaVYDrRN7r3mPop56oPhRw+JYWTKs66TYw==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@radix-ui/react-dialog': 1.0.0(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.0(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) command-score: 0.1.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -12539,8 +12457,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: @@ -12644,24 +12562,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.34.0: - resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} - 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==} @@ -12805,14 +12717,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): @@ -12824,15 +12736,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 @@ -12865,7 +12777,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): @@ -12879,12 +12791,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): @@ -12897,15 +12809,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 @@ -12963,8 +12875,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: @@ -13045,8 +12957,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==} @@ -13206,11 +13118,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: @@ -13321,22 +13230,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: @@ -13356,10 +13249,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'} @@ -13427,7 +13316,6 @@ packages: /detect-libc@2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} engines: {node: '>=8'} - dev: false /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} @@ -13526,7 +13414,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: @@ -13690,8 +13578,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==} @@ -13963,35 +13851,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: @@ -14050,12 +13938,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) @@ -14083,7 +13971,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: @@ -14092,11 +13980,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 @@ -14123,21 +14011,21 @@ packages: - eslint-import-resolver-webpack - supports-color - /eslint-mdx@3.1.1(eslint@8.56.0): - resolution: {integrity: sha512-GY3nK7YAueZbbMrGU1IyQpEvZ9DL3TSJplCPZbVdNDlpPh5P6LCSJ40PtwJM4ztDPWOs0MbzlXZdh1O6K2HTDQ==} + /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 @@ -14177,8 +14065,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': '*' @@ -14205,7 +14093,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 @@ -14282,7 +14170,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 @@ -14319,7 +14207,7 @@ packages: eslint: '>=8.0.0' dependencies: eslint: 8.56.0 - eslint-mdx: 3.1.1(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 @@ -14342,7 +14230,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): @@ -14363,7 +14251,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): @@ -14517,7 +14405,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 @@ -14544,8 +14432,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: @@ -14671,6 +14559,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==} @@ -14681,10 +14570,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==} @@ -14695,7 +14585,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 @@ -14897,8 +14787,8 @@ packages: 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 @@ -14922,11 +14812,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: @@ -15133,16 +15024,6 @@ packages: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: true - /follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - /follow-redirects@1.15.4: resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} engines: {node: '>=4.0'} @@ -15221,7 +15102,7 @@ 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.3.3)(webpack@5.89.0): @@ -15244,7 +15125,7 @@ packages: semver: 7.5.4 tapable: 2.2.1 typescript: 5.3.3 - webpack: 5.89.0(@swc/core@1.3.101) + webpack: 5.89.0(@swc/core@1.3.102) dev: true /form-data@4.0.0: @@ -15352,7 +15233,6 @@ packages: engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - dev: false /fs-monkey@1.0.5: resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} @@ -15488,6 +15368,7 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: true /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} @@ -15579,16 +15460,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: @@ -15649,8 +15520,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 @@ -15908,7 +15779,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 @@ -15976,7 +15847,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: @@ -16019,18 +15890,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: @@ -16082,7 +15959,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false /https-proxy-agent@6.2.1: resolution: {integrity: sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA==} @@ -16101,10 +15977,12 @@ packages: /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==} @@ -16121,14 +15999,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: @@ -16203,20 +16081,11 @@ 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) + 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 @@ -16507,11 +16376,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 @@ -16592,13 +16456,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'} @@ -16719,10 +16576,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==} @@ -16838,8 +16697,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 @@ -17304,7 +17163,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 @@ -17353,8 +17212,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==} @@ -17382,12 +17241,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: @@ -17738,8 +17591,8 @@ packages: dependencies: yallist: 4.0.0 - /lucide-react@0.307.0(react@18.2.0): - resolution: {integrity: sha512-+vZ+vUiWPZTMnLHURg4aoIaz6NHOWXVVcVd8iLROu1k4LbyjcnHIKmbjXHCmulz7XAYLWRVXzhJJgIr+Aq3vOg==} + /lucide-react@0.309.0(react@18.2.0): + resolution: {integrity: sha512-zNVPczuwFrCfksZH3zbd1UDE6/WYhYAdbe2k7CImVyPAkXLgIwbs6eXQ4loigqDnUFjyFYCI5jZ1y10Kqal0dg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: @@ -17778,18 +17631,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: @@ -17876,8 +17729,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' @@ -18224,6 +18077,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==} @@ -18237,18 +18091,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) @@ -18257,7 +18111,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 @@ -18273,9 +18127,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 @@ -18428,8 +18282,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 @@ -18667,6 +18521,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==} @@ -18676,6 +18531,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==} @@ -18770,7 +18626,6 @@ packages: engines: {node: '>=8'} dependencies: yallist: 4.0.0 - dev: false /minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} @@ -18780,7 +18635,6 @@ packages: /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - dev: false /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} @@ -18792,7 +18646,6 @@ packages: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: false /mississippi@3.0.0: resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} @@ -18826,7 +18679,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: @@ -18836,7 +18689,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: @@ -18846,7 +18699,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: @@ -18856,7 +18709,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: @@ -18867,7 +18720,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 @@ -18885,7 +18738,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: @@ -18895,7 +18748,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 @@ -18912,7 +18765,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: @@ -18922,7 +18775,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: @@ -18932,7 +18785,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: @@ -18942,7 +18795,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: @@ -18952,7 +18805,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: @@ -18962,7 +18815,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: @@ -18972,7 +18825,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: @@ -18982,7 +18835,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: @@ -18992,7 +18845,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: @@ -19002,7 +18855,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: @@ -19012,7 +18865,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: @@ -19022,7 +18875,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: @@ -19033,7 +18886,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 @@ -19046,7 +18899,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: @@ -19056,7 +18909,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 @@ -19065,7 +18918,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 @@ -19098,7 +18951,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: @@ -19108,7 +18961,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: @@ -19118,7 +18971,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: @@ -19128,7 +18981,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: @@ -19138,7 +18991,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: @@ -19148,7 +19001,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: @@ -19158,13 +19011,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 @@ -19176,7 +19029,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 @@ -19196,7 +19049,6 @@ packages: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - dev: false /mkdirp@2.1.6: resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} @@ -19240,7 +19092,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 @@ -19349,14 +19201,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: @@ -19434,7 +19286,6 @@ packages: '@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) reflect-metadata: 0.1.13 rxjs: 7.8.1 - dev: false /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==} @@ -19474,13 +19325,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.34.0 + 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 @@ -19497,7 +19348,7 @@ 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 @@ -19509,7 +19360,7 @@ packages: react: '*' react-dom: '*' 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 @@ -19520,7 +19371,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 @@ -19540,11 +19391,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 @@ -19587,7 +19438,6 @@ packages: /node-addon-api@5.1.0: resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} - dev: false /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} @@ -19655,11 +19505,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'} @@ -19671,7 +19516,6 @@ packages: hasBin: true dependencies: abbrev: 1.1.1 - dev: false /nopt@7.2.0: resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} @@ -19755,12 +19599,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==} @@ -19915,12 +19761,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==} @@ -19939,15 +19787,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 @@ -20336,6 +20175,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==} @@ -20450,7 +20290,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 @@ -20458,7 +20298,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 @@ -20477,9 +20317,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 @@ -20487,8 +20327,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 @@ -20496,11 +20336,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 @@ -20569,7 +20409,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: @@ -20584,7 +20424,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): @@ -20593,7 +20433,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 @@ -20607,19 +20447,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 @@ -20628,8 +20470,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 @@ -20668,22 +20510,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 @@ -20694,21 +20536,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): @@ -20747,13 +20589,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 @@ -20766,24 +20608,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): @@ -20794,8 +20636,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 @@ -20803,8 +20645,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 @@ -20833,16 +20675,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 @@ -20877,7 +20719,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): @@ -20893,11 +20735,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 @@ -20927,7 +20769,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): @@ -20971,7 +20813,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: @@ -20996,7 +20838,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 @@ -21008,7 +20850,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 @@ -21017,17 +20859,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: @@ -21058,7 +20900,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 @@ -21070,17 +20912,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): @@ -21194,8 +21036,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 @@ -21212,8 +21054,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 @@ -21228,77 +21070,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): @@ -21337,11 +21179,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 @@ -21365,7 +21207,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: @@ -21478,7 +21320,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 @@ -21487,14 +21329,13 @@ packages: uuid: 9.0.1 dev: false - /prisma@5.7.1: - resolution: {integrity: sha512-ekho7ziH0WEJvC4AxuJz+ewRTMskrebPcrKuBwcNzVDniYxx+dXOGcorNeIb9VEMO5vrKzwNYvhD271Ui2jnNw==} + /prisma@5.8.0: + resolution: {integrity: sha512-hDKoEqPt2qEUTH5yGO3l27CBnPtwvte0CGMKrpCr9+/A919JghfqJ3qgCGgMbOwdkXUOzdho0RH9tyUF3UhpMw==} engines: {node: '>=16.13'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 5.7.1 - dev: false + '@prisma/engines': 5.8.0 /prismjs@1.27.0: resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} @@ -21509,7 +21350,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 @@ -21523,10 +21364,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 @@ -21927,13 +21764,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 @@ -21995,7 +21832,7 @@ packages: peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 react: 18.2.0 dev: false @@ -22005,7 +21842,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 @@ -22056,7 +21893,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 @@ -22082,14 +21919,14 @@ packages: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} dev: false - /react-markdown@9.0.1(@types/react@18.2.45)(react@18.2.0): + /react-markdown@9.0.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: '@types/react': '>=18' react: '>=18' dependencies: '@types/hast': 3.0.3 - '@types/react': 18.2.45 + '@types/react': 18.2.47 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.0 html-url-attributes: 3.0.0 @@ -22104,7 +21941,7 @@ packages: - supports-color dev: false - /react-remove-scroll-bar@2.3.4(@types/react@18.2.45)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -22114,12 +21951,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.45)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) tslib: 2.6.2 - /react-remove-scroll@2.5.4(@types/react@18.2.45)(react@18.2.0): + /react-remove-scroll@2.5.4(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} engines: {node: '>=10'} peerDependencies: @@ -22129,16 +21966,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 - 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) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.47)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.0(@types/react@18.2.45)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.45)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.47)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.47)(react@18.2.0) dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.45)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -22148,13 +21985,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 - 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) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.47)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.0(@types/react@18.2.45)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.45)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.47)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.47)(react@18.2.0) /react-resizable-panels@1.0.8(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-IuivK06FWN115VSN8TDGYuIoAzplC4oPUCDZ5d+VWJj0p6N3SMfwjggpjMUGSpQJLvMi0FXPSLLn4rGVmESjmA==} @@ -22213,7 +22050,7 @@ packages: react-transition-group: 2.9.0(react-dom@18.2.0)(react@18.2.0) dev: false - /react-style-singleton@2.2.1(@types/react@18.2.45)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -22223,7 +22060,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -22234,7 +22071,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 @@ -22242,16 +22079,16 @@ packages: refractor: 3.6.0 dev: false - /react-textarea-autosize@8.5.3(@types/react@18.2.45)(react@18.2.0): + /react-textarea-autosize@8.5.3(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} engines: {node: '>=10'} 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) + use-latest: 1.2.1(@types/react@18.2.47)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -22380,8 +22217,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 @@ -22440,15 +22277,15 @@ packages: decimal.js-light: 2.5.1 dev: false - /recharts@2.10.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-G4J96fKTZdfFQd6aQnZjo2nVNdXhp+uuLb00+cBTGLo85pChvm1+E67K3wBOHDE/77spcYb2Cy9gYWVqiZvQCg==} + /recharts@2.10.4(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-/Q7/wdf8bW91lN3NEeCjL9RWfaiXQViJFgdnas4Eix/I8B9HAI3tHHK/CW/zDfgRMh4fzW1zlfjoz1IAapLO1Q==} engines: {node: '>=14'} peerDependencies: prop-types: ^15.6.0 react: ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - clsx: 2.0.0 + clsx: 2.1.0 eventemitter3: 4.0.7 lodash: 4.17.21 prop-types: 15.8.1 @@ -22531,13 +22368,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: @@ -22869,7 +22706,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): @@ -22887,8 +22724,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: @@ -22926,31 +22763,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: @@ -22960,12 +22799,6 @@ 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'} @@ -23238,9 +23071,9 @@ packages: hasBin: true dependencies: '@antfu/ni': 0.21.12 - '@babel/core': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.5) + '@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) @@ -23505,8 +23338,8 @@ 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 @@ -23914,10 +23747,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==} @@ -23938,7 +23773,7 @@ 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: @@ -23956,7 +23791,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): @@ -23967,7 +23802,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): @@ -23976,7 +23811,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: @@ -23989,7 +23824,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: @@ -24002,7 +23837,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 @@ -24015,21 +23850,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 @@ -24086,8 +23921,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: @@ -24104,14 +23939,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: @@ -24153,17 +23988,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): @@ -24207,9 +24051,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 @@ -24232,7 +24076,6 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: false /tarn@3.0.2: resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} @@ -24281,8 +24124,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': '*' @@ -24298,17 +24141,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': '*' @@ -24324,12 +24167,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: @@ -24337,19 +24180,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 @@ -24458,12 +24301,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 @@ -24517,8 +24356,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: @@ -24628,7 +24467,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: @@ -24642,7 +24481,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: @@ -24657,14 +24496,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 @@ -24695,15 +24534,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: @@ -24744,6 +24574,17 @@ packages: tslib: 1.14.1 typescript: 5.3.3 + /tsx@4.7.0: + resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.19.11 + get-tsconfig: 4.7.2 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /tty-browserify@0.0.0: resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} dev: true @@ -24881,10 +24722,6 @@ packages: 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 @@ -24966,7 +24803,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 @@ -25106,23 +24943,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 @@ -25136,10 +24973,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'} @@ -25178,8 +25011,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.47)(react@18.2.0): + resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} engines: {node: '>=10'} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -25188,7 +25021,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 tslib: 2.6.2 @@ -25200,7 +25033,7 @@ packages: react: 18.2.0 dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.45)(react@18.2.0): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -25209,11 +25042,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 dev: false - /use-latest@1.2.1(@types/react@18.2.45)(react@18.2.0): + /use-latest@1.2.1(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -25222,9 +25055,9 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.45)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.47)(react@18.2.0) dev: false /use-resize-observer@9.1.0(react-dom@18.2.0)(react@18.2.0): @@ -25237,7 +25070,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /use-sidecar@1.1.2(@types/react@18.2.45)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.47)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -25247,7 +25080,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 @@ -25408,7 +25241,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 @@ -25420,7 +25253,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 @@ -25428,14 +25261,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: '*' @@ -25446,14 +25279,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: @@ -25481,9 +25314,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 @@ -25530,9 +25363,9 @@ packages: '@vitest/snapshot': 1.1.0 '@vitest/spy': 1.1.0 '@vitest/utils': 1.1.0 - acorn-walk: 8.3.0 + 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 @@ -25544,7 +25377,7 @@ packages: 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.0(@types/node@18.18.2) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -25637,8 +25470,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 @@ -25655,8 +25488,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 @@ -25681,7 +25514,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): @@ -25698,11 +25531,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 @@ -25777,7 +25610,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 @@ -25792,8 +25625,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 @@ -25808,7 +25641,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: @@ -25817,7 +25650,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 @@ -25832,8 +25665,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 @@ -25848,7 +25681,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: @@ -25996,8 +25829,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 @@ -26229,7 +26062,7 @@ packages: tslib: 2.3.0 dev: false - /zustand@4.4.7(@types/react@18.2.45)(immer@10.0.3)(react@18.2.0): + /zustand@4.4.7(@types/react@18.2.47)(immer@10.0.3)(react@18.2.0): resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==} engines: {node: '>=12.7.0'} peerDependencies: @@ -26244,7 +26077,7 @@ packages: react: optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.47 immer: 10.0.3 react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0)