diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index dc90dfa3..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -module.exports = { - root: true, - extends: ["@repo/eslint-config/index.js"], -}; \ No newline at end of file diff --git a/apps/server/.eslintrc.js b/apps/server/.eslintrc.js deleted file mode 100644 index 1dcff780..00000000 --- a/apps/server/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: ["@repo/eslint-config"], -}; diff --git a/apps/server/archive/contexts/accounts/application/create-account.use-case.ts b/apps/server/archive/contexts/accounts/application/create-account.use-case.ts index 4ecb3a94..87d35d7a 100644 --- a/apps/server/archive/contexts/accounts/application/create-account.use-case.ts +++ b/apps/server/archive/contexts/accounts/application/create-account.use-case.ts @@ -12,9 +12,9 @@ import { type IAccountProps, type IAccountService, } from "@/contexts/accounts/domain"; -import { Maybe, Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Maybe, Result } from "@repo/rdx-utils"; import { ICreateAccountRequestDTO } from "../presentation"; export class CreateAccountUseCase { diff --git a/apps/server/archive/contexts/accounts/application/get-account.use-case.ts b/apps/server/archive/contexts/accounts/application/get-account.use-case.ts index 2ed8c0c7..385e927c 100644 --- a/apps/server/archive/contexts/accounts/application/get-account.use-case.ts +++ b/apps/server/archive/contexts/accounts/application/get-account.use-case.ts @@ -1,8 +1,8 @@ import { Account, IAccountService } from "@/contexts/accounts/domain"; import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Result } from "@repo/rdx-utils"; export class GetAccountUseCase { constructor( diff --git a/apps/server/archive/contexts/accounts/application/list-accounts.use-case.ts b/apps/server/archive/contexts/accounts/application/list-accounts.use-case.ts index 2a8af294..bbf0c3cc 100644 --- a/apps/server/archive/contexts/accounts/application/list-accounts.use-case.ts +++ b/apps/server/archive/contexts/accounts/application/list-accounts.use-case.ts @@ -1,6 +1,6 @@ import { Account, IAccountService } from "@/contexts/accounts/domain"; -import { Collection, Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; +import { Collection, Result } from "@repo/rdx-utils"; export class ListAccountsUseCase { constructor( diff --git a/apps/server/archive/contexts/accounts/application/update-account.use-case.test.ts b/apps/server/archive/contexts/accounts/application/update-account.use-case.test.ts index 4c9e8f8b..c88249ea 100644 --- a/apps/server/archive/contexts/accounts/application/update-account.use-case.test.ts +++ b/apps/server/archive/contexts/accounts/application/update-account.use-case.test.ts @@ -1,6 +1,6 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { TransactionManager } from "@/core/common/infrastructure/database"; +import { Result } from "@repo/rdx-utils"; import { AccountService } from "../domain"; import { UpdateAccountUseCase } from "./update-account.use-case"; diff --git a/apps/server/archive/contexts/accounts/application/update-account.use-case.ts b/apps/server/archive/contexts/accounts/application/update-account.use-case.ts index c81696a5..6abd3696 100644 --- a/apps/server/archive/contexts/accounts/application/update-account.use-case.ts +++ b/apps/server/archive/contexts/accounts/application/update-account.use-case.ts @@ -7,9 +7,9 @@ import { } from "@/core/common/domain"; import { Account, IAccountProps, IAccountService } from "@/contexts/accounts/domain"; -import { Maybe, Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Maybe, Result } from "@repo/rdx-utils"; import { IUpdateAccountRequestDTO } from "../presentation"; export class UpdateAccountUseCase { diff --git a/apps/server/archive/contexts/accounts/domain/aggregates/account.ts b/apps/server/archive/contexts/accounts/domain/aggregates/account.ts index 2ef6d129..679e88c7 100644 --- a/apps/server/archive/contexts/accounts/domain/aggregates/account.ts +++ b/apps/server/archive/contexts/accounts/domain/aggregates/account.ts @@ -6,7 +6,7 @@ import { type TINNumber, UniqueID, } from "@/core"; -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { AccountStatus } from "../value-objects"; export interface IAccountProps { diff --git a/apps/server/archive/contexts/accounts/domain/repositories/account-repository.interface.ts b/apps/server/archive/contexts/accounts/domain/repositories/account-repository.interface.ts index 47104356..9acd9f86 100644 --- a/apps/server/archive/contexts/accounts/domain/repositories/account-repository.interface.ts +++ b/apps/server/archive/contexts/accounts/domain/repositories/account-repository.interface.ts @@ -1,5 +1,5 @@ import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Account } from "../aggregates"; export interface IAccountRepository { diff --git a/apps/server/archive/contexts/accounts/domain/services/account-service.integration.test.ts b/apps/server/archive/contexts/accounts/domain/services/account-service.integration.test.ts index 3d2207bb..4297405f 100644 --- a/apps/server/archive/contexts/accounts/domain/services/account-service.integration.test.ts +++ b/apps/server/archive/contexts/accounts/domain/services/account-service.integration.test.ts @@ -5,7 +5,7 @@ import { TINNumber, UniqueID, } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { Account, IAccountProps } from "../aggregates"; import { IAccountRepository } from "../repositories"; import { AccountStatus } from "../value-objects"; diff --git a/apps/server/archive/contexts/accounts/domain/services/account-service.interface.ts b/apps/server/archive/contexts/accounts/domain/services/account-service.interface.ts index 28a54762..53effcbb 100644 --- a/apps/server/archive/contexts/accounts/domain/services/account-service.interface.ts +++ b/apps/server/archive/contexts/accounts/domain/services/account-service.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Account, IAccountProps } from "../aggregates"; export interface IAccountService { diff --git a/apps/server/archive/contexts/accounts/domain/services/account.service.ts b/apps/server/archive/contexts/accounts/domain/services/account.service.ts index d695fa49..d243d55c 100644 --- a/apps/server/archive/contexts/accounts/domain/services/account.service.ts +++ b/apps/server/archive/contexts/accounts/domain/services/account.service.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Transaction } from "sequelize"; import { Account, IAccountProps } from "../aggregates"; import { IAccountRepository } from "../repositories"; diff --git a/apps/server/archive/contexts/accounts/domain/value-objects/account-status.ts b/apps/server/archive/contexts/accounts/domain/value-objects/account-status.ts index 51ec8a31..e4f08090 100644 --- a/apps/server/archive/contexts/accounts/domain/value-objects/account-status.ts +++ b/apps/server/archive/contexts/accounts/domain/value-objects/account-status.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; interface IAccountStatusProps { value: string; diff --git a/apps/server/archive/contexts/accounts/infraestructure/mappers/account.mapper.ts b/apps/server/archive/contexts/accounts/infraestructure/mappers/account.mapper.ts index e3eec91a..150b68ec 100644 --- a/apps/server/archive/contexts/accounts/infraestructure/mappers/account.mapper.ts +++ b/apps/server/archive/contexts/accounts/infraestructure/mappers/account.mapper.ts @@ -6,12 +6,12 @@ import { TINNumber, UniqueID, } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; import { type ISequelizeMapper, type MapperParamsType, SequelizeMapper, } from "@/core/common/infrastructure/sequelize/sequelize-mapper"; +import { Maybe, Result } from "@repo/rdx-utils"; import { AccountCreationAttributes, AccountModel } from "../sequelize/account.model"; export interface IAccountMapper diff --git a/apps/server/archive/contexts/accounts/infraestructure/sequelize/account.repository.ts b/apps/server/archive/contexts/accounts/infraestructure/sequelize/account.repository.ts index 4f43c77c..6270e763 100644 --- a/apps/server/archive/contexts/accounts/infraestructure/sequelize/account.repository.ts +++ b/apps/server/archive/contexts/accounts/infraestructure/sequelize/account.repository.ts @@ -1,8 +1,8 @@ import { Account } from "@/contexts/accounts/domain"; import { IAccountRepository } from "@/contexts/accounts/domain/repositories/account-repository.interface"; import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; import { SequelizeRepository } from "@/core/common/infrastructure"; +import { Collection, Result } from "@repo/rdx-utils"; import { Transaction } from "sequelize"; import { IAccountMapper, accountMapper } from "../mappers/account.mapper"; import { AccountModel } from "./account.model"; diff --git a/apps/server/archive/contexts/accounts/presentation/controllers/create-account/create-account.presenter.ts b/apps/server/archive/contexts/accounts/presentation/controllers/create-account/create-account.presenter.ts index 0244b2e8..028b9bad 100644 --- a/apps/server/archive/contexts/accounts/presentation/controllers/create-account/create-account.presenter.ts +++ b/apps/server/archive/contexts/accounts/presentation/controllers/create-account/create-account.presenter.ts @@ -1,5 +1,5 @@ import { Account } from "@/contexts/accounts/domain"; -import { ensureBoolean, ensureNumber, ensureString } from "@/core/common/helpers"; +import { ensureBoolean, ensureNumber, ensureString } from "@repo/rdx-utils"; import { ICreateAccountResponseDTO } from "../../dto"; export interface ICreateAccountPresenter { diff --git a/apps/server/archive/contexts/accounts/presentation/controllers/get-account/get-account.presenter.ts b/apps/server/archive/contexts/accounts/presentation/controllers/get-account/get-account.presenter.ts index bcfe0877..a767f0a8 100644 --- a/apps/server/archive/contexts/accounts/presentation/controllers/get-account/get-account.presenter.ts +++ b/apps/server/archive/contexts/accounts/presentation/controllers/get-account/get-account.presenter.ts @@ -1,5 +1,5 @@ import { Account } from "@/contexts/accounts/domain"; -import { ensureBoolean, ensureNumber, ensureString } from "@/core/common/helpers"; +import { ensureBoolean, ensureNumber, ensureString } from "@repo/rdx-utils"; import { IGetAccountResponseDTO } from "../../dto"; export interface IGetAccountPresenter { diff --git a/apps/server/archive/contexts/accounts/presentation/controllers/list-accounts/list-accounts.presenter.ts b/apps/server/archive/contexts/accounts/presentation/controllers/list-accounts/list-accounts.presenter.ts index e39244dc..630af6dc 100644 --- a/apps/server/archive/contexts/accounts/presentation/controllers/list-accounts/list-accounts.presenter.ts +++ b/apps/server/archive/contexts/accounts/presentation/controllers/list-accounts/list-accounts.presenter.ts @@ -1,5 +1,5 @@ import { Account } from "@/contexts/accounts/domain"; -import { Collection, ensureBoolean, ensureNumber, ensureString } from "@/core/common/helpers"; +import { Collection, ensureBoolean, ensureNumber, ensureString } from "@repo/rdx-utils"; import { IListAccountsResponseDTO } from "../../dto"; export interface IListAccountsPresenter { diff --git a/apps/server/archive/contexts/accounts/presentation/controllers/update-account/update-account.presenter.ts b/apps/server/archive/contexts/accounts/presentation/controllers/update-account/update-account.presenter.ts index 85d1c1b1..7b5ff671 100644 --- a/apps/server/archive/contexts/accounts/presentation/controllers/update-account/update-account.presenter.ts +++ b/apps/server/archive/contexts/accounts/presentation/controllers/update-account/update-account.presenter.ts @@ -1,5 +1,5 @@ import { Account } from "@/contexts/accounts/domain"; -import { ensureBoolean, ensureNumber, ensureString } from "@/core/common/helpers"; +import { ensureBoolean, ensureNumber, ensureString } from "@repo/rdx-utils"; import { IUpdateAccountResponseDTO } from "../../dto"; export interface IUpdateAccountPresenter { diff --git a/apps/server/archive/contexts/auth/application/list-users/list-users.use-case.ts b/apps/server/archive/contexts/auth/application/list-users/list-users.use-case.ts index a5dbbd7d..92412fa7 100644 --- a/apps/server/archive/contexts/auth/application/list-users/list-users.use-case.ts +++ b/apps/server/archive/contexts/auth/application/list-users/list-users.use-case.ts @@ -1,5 +1,5 @@ -import { Collection, Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; +import { Collection, Result } from "@repo/rdx-utils"; import { User } from "../../domain"; import { IUserService } from "../../domain/services"; diff --git a/apps/server/archive/contexts/auth/application/register/register.use-case.ts b/apps/server/archive/contexts/auth/application/register/register.use-case.ts index f5b941bf..08dec2a3 100644 --- a/apps/server/archive/contexts/auth/application/register/register.use-case.ts +++ b/apps/server/archive/contexts/auth/application/register/register.use-case.ts @@ -1,6 +1,6 @@ -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Result } from "@repo/rdx-utils"; import { RegisterData } from "../../domain"; import { IAuthService } from "../../domain/services"; diff --git a/apps/server/archive/contexts/auth/domain/aggregates/authenticated-user.ts b/apps/server/archive/contexts/auth/domain/aggregates/authenticated-user.ts index 8de1b27e..e64458a8 100644 --- a/apps/server/archive/contexts/auth/domain/aggregates/authenticated-user.ts +++ b/apps/server/archive/contexts/auth/domain/aggregates/authenticated-user.ts @@ -1,4 +1,4 @@ -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { AggregateRoot, EmailAddress, UniqueID } from "@/core/common/domain"; import { UserAuthenticatedEvent } from "../events"; diff --git a/apps/server/archive/contexts/auth/domain/aggregates/role.ts b/apps/server/archive/contexts/auth/domain/aggregates/role.ts index 9d407d1c..f01c51f2 100644 --- a/apps/server/archive/contexts/auth/domain/aggregates/role.ts +++ b/apps/server/archive/contexts/auth/domain/aggregates/role.ts @@ -1,5 +1,5 @@ import { AggregateRoot, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; export type IRoleProps = {}; diff --git a/apps/server/archive/contexts/auth/domain/aggregates/user.ts b/apps/server/archive/contexts/auth/domain/aggregates/user.ts index 07f4ffa5..4a05a0ae 100644 --- a/apps/server/archive/contexts/auth/domain/aggregates/user.ts +++ b/apps/server/archive/contexts/auth/domain/aggregates/user.ts @@ -1,5 +1,5 @@ import { AggregateRoot, EmailAddress, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { UserAuthenticatedEvent } from "../events"; import { Username } from "../value-objects"; diff --git a/apps/server/archive/contexts/auth/domain/entities/jwt-payload.ts b/apps/server/archive/contexts/auth/domain/entities/jwt-payload.ts index 50e44c6b..220e1a5c 100644 --- a/apps/server/archive/contexts/auth/domain/entities/jwt-payload.ts +++ b/apps/server/archive/contexts/auth/domain/entities/jwt-payload.ts @@ -1,5 +1,5 @@ import { DomainEntity, EmailAddress, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; export interface IJWTPayloadProps { tabId: UniqueID; diff --git a/apps/server/archive/contexts/auth/domain/entities/login-data.ts b/apps/server/archive/contexts/auth/domain/entities/login-data.ts index 3769786a..72909387 100644 --- a/apps/server/archive/contexts/auth/domain/entities/login-data.ts +++ b/apps/server/archive/contexts/auth/domain/entities/login-data.ts @@ -1,5 +1,5 @@ import { DomainEntity, EmailAddress, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { PlainPassword } from "../value-objects"; export interface ILoginDataProps { diff --git a/apps/server/archive/contexts/auth/domain/entities/logout-data.ts b/apps/server/archive/contexts/auth/domain/entities/logout-data.ts index 7fa19f28..1c30f557 100644 --- a/apps/server/archive/contexts/auth/domain/entities/logout-data.ts +++ b/apps/server/archive/contexts/auth/domain/entities/logout-data.ts @@ -1,5 +1,5 @@ import { DomainEntity, EmailAddress, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; export interface ILogoutDataProps { email: EmailAddress; diff --git a/apps/server/archive/contexts/auth/domain/entities/register-data.ts b/apps/server/archive/contexts/auth/domain/entities/register-data.ts index 132238a5..7ccf8311 100644 --- a/apps/server/archive/contexts/auth/domain/entities/register-data.ts +++ b/apps/server/archive/contexts/auth/domain/entities/register-data.ts @@ -1,5 +1,5 @@ import { DomainEntity, EmailAddress } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { HashPassword, Username } from "../value-objects"; export interface IRegisterDataProps { diff --git a/apps/server/archive/contexts/auth/domain/entities/tab-context.ts b/apps/server/archive/contexts/auth/domain/entities/tab-context.ts index 57aa50d5..92284247 100644 --- a/apps/server/archive/contexts/auth/domain/entities/tab-context.ts +++ b/apps/server/archive/contexts/auth/domain/entities/tab-context.ts @@ -1,5 +1,5 @@ import { DomainEntity, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; export interface ITabContextProps { tabId: UniqueID; diff --git a/apps/server/archive/contexts/auth/domain/repositories/authenticated-user-repository.interface.ts b/apps/server/archive/contexts/auth/domain/repositories/authenticated-user-repository.interface.ts index bb9601ab..707417a2 100644 --- a/apps/server/archive/contexts/auth/domain/repositories/authenticated-user-repository.interface.ts +++ b/apps/server/archive/contexts/auth/domain/repositories/authenticated-user-repository.interface.ts @@ -1,4 +1,4 @@ -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { EmailAddress } from "@/core/common/domain"; import { AuthenticatedUser } from "../aggregates"; diff --git a/apps/server/archive/contexts/auth/domain/repositories/tab-context-repository.interface.ts b/apps/server/archive/contexts/auth/domain/repositories/tab-context-repository.interface.ts index cf4ef40e..fd840a08 100644 --- a/apps/server/archive/contexts/auth/domain/repositories/tab-context-repository.interface.ts +++ b/apps/server/archive/contexts/auth/domain/repositories/tab-context-repository.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { Transaction } from "sequelize"; import { TabContext } from "../entities"; diff --git a/apps/server/archive/contexts/auth/domain/repositories/user-repository.interface.ts b/apps/server/archive/contexts/auth/domain/repositories/user-repository.interface.ts index b25df65c..2a372477 100644 --- a/apps/server/archive/contexts/auth/domain/repositories/user-repository.interface.ts +++ b/apps/server/archive/contexts/auth/domain/repositories/user-repository.interface.ts @@ -1,5 +1,5 @@ import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { User } from "../aggregates"; export interface IUserRepository { diff --git a/apps/server/archive/contexts/auth/domain/services/auth-service.interface.ts b/apps/server/archive/contexts/auth/domain/services/auth-service.interface.ts index 8c8e668d..420e8b18 100644 --- a/apps/server/archive/contexts/auth/domain/services/auth-service.interface.ts +++ b/apps/server/archive/contexts/auth/domain/services/auth-service.interface.ts @@ -1,5 +1,5 @@ import { EmailAddress } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { AuthenticatedUser, IJWTPayload, diff --git a/apps/server/archive/contexts/auth/domain/services/auth.service.ts b/apps/server/archive/contexts/auth/domain/services/auth.service.ts index 86ac7005..472038a6 100644 --- a/apps/server/archive/contexts/auth/domain/services/auth.service.ts +++ b/apps/server/archive/contexts/auth/domain/services/auth.service.ts @@ -1,5 +1,5 @@ import { EmailAddress } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { AuthenticatedUser, type IJWTPayload, diff --git a/apps/server/archive/contexts/auth/domain/services/tab-context-service.interface.ts b/apps/server/archive/contexts/auth/domain/services/tab-context-service.interface.ts index a17b7b99..b262cbfe 100644 --- a/apps/server/archive/contexts/auth/domain/services/tab-context-service.interface.ts +++ b/apps/server/archive/contexts/auth/domain/services/tab-context-service.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { TabContext } from "../entities"; export interface ITabContextService { diff --git a/apps/server/archive/contexts/auth/domain/services/tab-context.service.ts b/apps/server/archive/contexts/auth/domain/services/tab-context.service.ts index d6603f80..bf3843a3 100644 --- a/apps/server/archive/contexts/auth/domain/services/tab-context.service.ts +++ b/apps/server/archive/contexts/auth/domain/services/tab-context.service.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { TabContext } from "../entities"; import { ITabContextRepository } from "../repositories"; import { ITabContextService } from "./tab-context-service.interface"; diff --git a/apps/server/archive/contexts/auth/domain/services/user-service.interface.ts b/apps/server/archive/contexts/auth/domain/services/user-service.interface.ts index cc49e4ac..9bf57819 100644 --- a/apps/server/archive/contexts/auth/domain/services/user-service.interface.ts +++ b/apps/server/archive/contexts/auth/domain/services/user-service.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { User } from "../aggregates"; export interface IUserService { diff --git a/apps/server/archive/contexts/auth/domain/services/user.service.ts b/apps/server/archive/contexts/auth/domain/services/user.service.ts index ba8a6df2..d098f88a 100644 --- a/apps/server/archive/contexts/auth/domain/services/user.service.ts +++ b/apps/server/archive/contexts/auth/domain/services/user.service.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { IUserRepository, User } from ".."; import { IUserService } from "./user-service.interface"; diff --git a/apps/server/archive/contexts/auth/domain/value-objects/auth-user-roles.ts b/apps/server/archive/contexts/auth/domain/value-objects/auth-user-roles.ts index 24fbf4c2..6bf5b711 100644 --- a/apps/server/archive/contexts/auth/domain/value-objects/auth-user-roles.ts +++ b/apps/server/archive/contexts/auth/domain/value-objects/auth-user-roles.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; const RoleSchema = z.enum(["Admin", "User", "Manager", "Editor"]); diff --git a/apps/server/archive/contexts/auth/domain/value-objects/hash-password.ts b/apps/server/archive/contexts/auth/domain/value-objects/hash-password.ts index 827723b1..814f430e 100644 --- a/apps/server/archive/contexts/auth/domain/value-objects/hash-password.ts +++ b/apps/server/archive/contexts/auth/domain/value-objects/hash-password.ts @@ -1,6 +1,6 @@ -import bcrypt from "bcrypt"; import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; +import bcrypt from "bcrypt"; import { z } from "zod"; interface HashPasswordProps { diff --git a/apps/server/archive/contexts/auth/domain/value-objects/plain-password.ts b/apps/server/archive/contexts/auth/domain/value-objects/plain-password.ts index f1913a93..79748f62 100644 --- a/apps/server/archive/contexts/auth/domain/value-objects/plain-password.ts +++ b/apps/server/archive/contexts/auth/domain/value-objects/plain-password.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; interface PlainPasswordProps { @@ -32,6 +32,5 @@ export class PlainPassword extends ValueObject { toPrimitive() { return this.props.value; - } } diff --git a/apps/server/archive/contexts/auth/domain/value-objects/token.ts b/apps/server/archive/contexts/auth/domain/value-objects/token.ts index ff193540..dd50fd6e 100644 --- a/apps/server/archive/contexts/auth/domain/value-objects/token.ts +++ b/apps/server/archive/contexts/auth/domain/value-objects/token.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; interface TokenProps { @@ -32,6 +32,5 @@ export class Token extends ValueObject { toPrimitive() { return this.props.value; - } } diff --git a/apps/server/archive/contexts/auth/domain/value-objects/username.ts b/apps/server/archive/contexts/auth/domain/value-objects/username.ts index 33a1cfe9..fc4bdfd5 100644 --- a/apps/server/archive/contexts/auth/domain/value-objects/username.ts +++ b/apps/server/archive/contexts/auth/domain/value-objects/username.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; interface UsernameProps { diff --git a/apps/server/archive/contexts/auth/infraestructure/mappers/tab-context.mapper.ts b/apps/server/archive/contexts/auth/infraestructure/mappers/tab-context.mapper.ts index 8659f9ea..add6fd2f 100644 --- a/apps/server/archive/contexts/auth/infraestructure/mappers/tab-context.mapper.ts +++ b/apps/server/archive/contexts/auth/infraestructure/mappers/tab-context.mapper.ts @@ -1,10 +1,10 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { type ISequelizeMapper, type MapperParamsType, SequelizeMapper, } from "@/core/common/infrastructure"; +import { Result } from "@repo/rdx-utils"; import { TabContext } from "../../domain"; import { TabContextCreationAttributes, TabContextModel } from "../sequelize"; diff --git a/apps/server/archive/contexts/auth/infraestructure/mappers/user.mapper.ts b/apps/server/archive/contexts/auth/infraestructure/mappers/user.mapper.ts index 8ec3dee8..82e798b0 100644 --- a/apps/server/archive/contexts/auth/infraestructure/mappers/user.mapper.ts +++ b/apps/server/archive/contexts/auth/infraestructure/mappers/user.mapper.ts @@ -1,10 +1,10 @@ import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { type ISequelizeMapper, type MapperParamsType, SequelizeMapper, } from "@/core/common/infrastructure/sequelize/sequelize-mapper"; +import { Result } from "@repo/rdx-utils"; import { User, Username } from "../../domain"; import { UserCreationAttributes, UserModel } from "../sequelize"; diff --git a/apps/server/archive/contexts/auth/infraestructure/passport/passport-auth-provider.ts b/apps/server/archive/contexts/auth/infraestructure/passport/passport-auth-provider.ts index 97a9b770..262c40d5 100644 --- a/apps/server/archive/contexts/auth/infraestructure/passport/passport-auth-provider.ts +++ b/apps/server/archive/contexts/auth/infraestructure/passport/passport-auth-provider.ts @@ -1,9 +1,9 @@ import { NextFunction, Response } from "express"; import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Result } from "@repo/rdx-utils"; import passport from "passport"; import { ExtractJwt, Strategy as JwtStrategy } from "passport-jwt"; import { TabContext } from "../../domain"; diff --git a/apps/server/archive/contexts/auth/infraestructure/sequelize/authenticated-user.repository.ts b/apps/server/archive/contexts/auth/infraestructure/sequelize/authenticated-user.repository.ts index 8c2d616c..b79b7ab3 100644 --- a/apps/server/archive/contexts/auth/infraestructure/sequelize/authenticated-user.repository.ts +++ b/apps/server/archive/contexts/auth/infraestructure/sequelize/authenticated-user.repository.ts @@ -1,6 +1,6 @@ import { EmailAddress } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { SequelizeRepository } from "@/core/common/infrastructure"; +import { Result } from "@repo/rdx-utils"; import { Sequelize, Transaction } from "sequelize"; import { AuthenticatedUser, IAuthenticatedUserRepository, Username } from "../../domain"; import { IAuthenticatedUserMapper } from "../mappers"; diff --git a/apps/server/archive/contexts/auth/infraestructure/sequelize/tab-context.repository.ts b/apps/server/archive/contexts/auth/infraestructure/sequelize/tab-context.repository.ts index fc610f75..5dc885cd 100644 --- a/apps/server/archive/contexts/auth/infraestructure/sequelize/tab-context.repository.ts +++ b/apps/server/archive/contexts/auth/infraestructure/sequelize/tab-context.repository.ts @@ -1,6 +1,6 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { SequelizeRepository } from "@/core/common/infrastructure"; +import { Result } from "@repo/rdx-utils"; import { Op, Sequelize, Transaction } from "sequelize"; import { ITabContextRepository, TabContext } from "../../domain/"; import { ITabContextMapper } from "../mappers"; diff --git a/apps/server/archive/contexts/auth/infraestructure/sequelize/user.repository.ts b/apps/server/archive/contexts/auth/infraestructure/sequelize/user.repository.ts index 9420ea08..3ac3134d 100644 --- a/apps/server/archive/contexts/auth/infraestructure/sequelize/user.repository.ts +++ b/apps/server/archive/contexts/auth/infraestructure/sequelize/user.repository.ts @@ -1,6 +1,6 @@ import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; import { SequelizeRepository } from "@/core/common/infrastructure"; +import { Collection, Result } from "@repo/rdx-utils"; import { Sequelize, Transaction } from "sequelize"; import { IUserRepository, User } from "../../domain"; import { IUserMapper } from "../mappers"; diff --git a/apps/server/archive/contexts/auth/presentation/controllers/listUsers/list-users.presenter.ts b/apps/server/archive/contexts/auth/presentation/controllers/listUsers/list-users.presenter.ts index ebf88c12..b26d8362 100644 --- a/apps/server/archive/contexts/auth/presentation/controllers/listUsers/list-users.presenter.ts +++ b/apps/server/archive/contexts/auth/presentation/controllers/listUsers/list-users.presenter.ts @@ -1,4 +1,4 @@ -import { Collection, ensureString } from "@/core/common/helpers"; +import { Collection, ensureString } from "@repo/rdx-utils"; import { User } from "../../domain"; import { IListUsersResponseDTO } from "../../dto"; diff --git a/apps/server/archive/contexts/contacts/application/list-contacts.use-case.ts b/apps/server/archive/contexts/contacts/application/list-contacts.use-case.ts index 76417421..7ac3ba52 100644 --- a/apps/server/archive/contexts/contacts/application/list-contacts.use-case.ts +++ b/apps/server/archive/contexts/contacts/application/list-contacts.use-case.ts @@ -1,5 +1,5 @@ -import { Collection, Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; +import { Collection, Result } from "@repo/rdx-utils"; import { Contact, IContactService } from "../domain"; export class ListContactsUseCase { diff --git a/apps/server/archive/contexts/contacts/domain/aggregates/contact.ts b/apps/server/archive/contexts/contacts/domain/aggregates/contact.ts index ac5b9e98..e69aa3dc 100644 --- a/apps/server/archive/contexts/contacts/domain/aggregates/contact.ts +++ b/apps/server/archive/contexts/contacts/domain/aggregates/contact.ts @@ -6,7 +6,7 @@ import { type TINNumber, UniqueID, } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; export interface IContactProps { reference: string; diff --git a/apps/server/archive/contexts/contacts/domain/repositories/contact-repository.interface.ts b/apps/server/archive/contexts/contacts/domain/repositories/contact-repository.interface.ts index b19785a9..e7fa33d6 100644 --- a/apps/server/archive/contexts/contacts/domain/repositories/contact-repository.interface.ts +++ b/apps/server/archive/contexts/contacts/domain/repositories/contact-repository.interface.ts @@ -1,5 +1,5 @@ import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Contact } from "../aggregates"; export interface IContactRepository { diff --git a/apps/server/archive/contexts/contacts/domain/services/contact-service.interface.ts b/apps/server/archive/contexts/contacts/domain/services/contact-service.interface.ts index 6ca737c6..8feaa58f 100644 --- a/apps/server/archive/contexts/contacts/domain/services/contact-service.interface.ts +++ b/apps/server/archive/contexts/contacts/domain/services/contact-service.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Contact } from "../aggregates"; export interface IContactService { diff --git a/apps/server/archive/contexts/contacts/domain/services/contact.service.ts b/apps/server/archive/contexts/contacts/domain/services/contact.service.ts index 25faf994..12404818 100644 --- a/apps/server/archive/contexts/contacts/domain/services/contact.service.ts +++ b/apps/server/archive/contexts/contacts/domain/services/contact.service.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Contact } from "../aggregates"; import { IContactRepository } from "../repositories"; import { IContactService } from "./contact-service.interface"; diff --git a/apps/server/archive/contexts/contacts/infraestructure/mappers/contact.mapper.ts b/apps/server/archive/contexts/contacts/infraestructure/mappers/contact.mapper.ts index 2d2949a3..15f9af09 100644 --- a/apps/server/archive/contexts/contacts/infraestructure/mappers/contact.mapper.ts +++ b/apps/server/archive/contexts/contacts/infraestructure/mappers/contact.mapper.ts @@ -5,12 +5,12 @@ import { TINNumber, UniqueID, } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; import { type ISequelizeMapper, type MapperParamsType, SequelizeMapper, } from "@/core/common/infrastructure/sequelize/sequelize-mapper"; +import { Maybe, Result } from "@repo/rdx-utils"; import { Contact } from "../../domain"; import { ContactCreationAttributes, ContactModel } from "../sequelize/contact.model"; diff --git a/apps/server/archive/contexts/contacts/infraestructure/sequelize/contact.repository.ts b/apps/server/archive/contexts/contacts/infraestructure/sequelize/contact.repository.ts index c45e7910..b9e8fd51 100644 --- a/apps/server/archive/contexts/contacts/infraestructure/sequelize/contact.repository.ts +++ b/apps/server/archive/contexts/contacts/infraestructure/sequelize/contact.repository.ts @@ -1,6 +1,6 @@ import { EmailAddress, UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; import { SequelizeRepository } from "@/core/common/infrastructure"; +import { Collection, Result } from "@repo/rdx-utils"; import { Transaction } from "sequelize"; import { Contact, IContactRepository } from "../../domain"; import { IContactMapper, contactMapper } from "../mappers"; diff --git a/apps/server/archive/contexts/contacts/presentation/controllers/list/list-contacts.presenter.ts b/apps/server/archive/contexts/contacts/presentation/controllers/list/list-contacts.presenter.ts index 68c56d01..86bb3379 100644 --- a/apps/server/archive/contexts/contacts/presentation/controllers/list/list-contacts.presenter.ts +++ b/apps/server/archive/contexts/contacts/presentation/controllers/list/list-contacts.presenter.ts @@ -1,4 +1,4 @@ -import { Collection, ensureBoolean, ensureNumber, ensureString } from "@/core/common/helpers"; +import { Collection, ensureBoolean, ensureNumber, ensureString } from "@repo/rdx-utils"; import { Contact } from "../../../domain"; import { IListContactsResponseDTO } from "../../dto"; diff --git a/apps/server/archive/contexts/customer-billing/application/get-customer-invoice.use-case.ts b/apps/server/archive/contexts/customer-billing/application/get-customer-invoice.use-case.ts index 62d3c4f7..95005ef5 100644 --- a/apps/server/archive/contexts/customer-billing/application/get-customer-invoice.use-case.ts +++ b/apps/server/archive/contexts/customer-billing/application/get-customer-invoice.use-case.ts @@ -1,8 +1,8 @@ import { ICustomerInvoiceService } from "@/contexts/customer-billing/domain"; import { CustomerInvoice } from "@/contexts/customer-billing/domain/aggregates"; import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; +import { Result } from "@repo/rdx-utils"; export class GetCustomerInvoiceUseCase { constructor( diff --git a/apps/server/archive/contexts/customer-billing/application/list-customer-invoices-use-case.ts b/apps/server/archive/contexts/customer-billing/application/list-customer-invoices-use-case.ts index 0d067615..0a40f8cb 100644 --- a/apps/server/archive/contexts/customer-billing/application/list-customer-invoices-use-case.ts +++ b/apps/server/archive/contexts/customer-billing/application/list-customer-invoices-use-case.ts @@ -1,5 +1,5 @@ -import { Collection, Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; +import { Collection, Result } from "@repo/rdx-utils"; import { CustomerInvoice, ICustomerInvoiceService } from "../domain"; export class ListCustomerInvoicesUseCase { diff --git a/apps/server/archive/contexts/customer-billing/domain/aggregates/customer-invoice.ts b/apps/server/archive/contexts/customer-billing/domain/aggregates/customer-invoice.ts index 74969583..c2d00081 100644 --- a/apps/server/archive/contexts/customer-billing/domain/aggregates/customer-invoice.ts +++ b/apps/server/archive/contexts/customer-billing/domain/aggregates/customer-invoice.ts @@ -1,5 +1,5 @@ import { AggregateRoot, UniqueID, UtcDate } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { Customer, CustomerInvoiceItem } from "../entities"; import { InvoiceStatus } from "../value-objetcs"; diff --git a/apps/server/archive/contexts/customer-billing/domain/entities/customer-invoice-item.ts b/apps/server/archive/contexts/customer-billing/domain/entities/customer-invoice-item.ts index bc06cc80..65c47f27 100644 --- a/apps/server/archive/contexts/customer-billing/domain/entities/customer-invoice-item.ts +++ b/apps/server/archive/contexts/customer-billing/domain/entities/customer-invoice-item.ts @@ -1,6 +1,6 @@ import { DomainEntity, MoneyValue, Percentage, UniqueID } from "@/core/common/domain"; import { Quantity } from "@/core/common/domain/value-objects/quantity"; -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; export interface ICustomerInvoiceItemProps { description: Maybe; // Descripción del artículo o servicio diff --git a/apps/server/archive/contexts/customer-billing/domain/entities/customer.ts b/apps/server/archive/contexts/customer-billing/domain/entities/customer.ts index 430bbb5e..75215024 100644 --- a/apps/server/archive/contexts/customer-billing/domain/entities/customer.ts +++ b/apps/server/archive/contexts/customer-billing/domain/entities/customer.ts @@ -1,5 +1,5 @@ import { AggregateRoot, PostalAddress, TINNumber, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; export interface ICustomerProps { name: string; diff --git a/apps/server/archive/contexts/customer-billing/domain/entities/tax-collection.ts b/apps/server/archive/contexts/customer-billing/domain/entities/tax-collection.ts index 73d83ad7..72288a0e 100644 --- a/apps/server/archive/contexts/customer-billing/domain/entities/tax-collection.ts +++ b/apps/server/archive/contexts/customer-billing/domain/entities/tax-collection.ts @@ -1,5 +1,5 @@ import { Slug } from "@/core/common/domain"; -import { Collection } from "@/core/common/helpers"; +import { Collection } from "@repo/rdx-utils"; import { Tax } from "./tax"; export class TaxCollection extends Collection { diff --git a/apps/server/archive/contexts/customer-billing/domain/entities/tax.ts b/apps/server/archive/contexts/customer-billing/domain/entities/tax.ts index 9b218162..fb5a2c94 100644 --- a/apps/server/archive/contexts/customer-billing/domain/entities/tax.ts +++ b/apps/server/archive/contexts/customer-billing/domain/entities/tax.ts @@ -1,5 +1,5 @@ import { DomainEntity, Percentage, Slug, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; interface ITaxProps { slug: Slug; diff --git a/apps/server/archive/contexts/customer-billing/domain/repositories/customer-invoice-repository.interface.ts b/apps/server/archive/contexts/customer-billing/domain/repositories/customer-invoice-repository.interface.ts index 9f6c7edf..79826964 100644 --- a/apps/server/archive/contexts/customer-billing/domain/repositories/customer-invoice-repository.interface.ts +++ b/apps/server/archive/contexts/customer-billing/domain/repositories/customer-invoice-repository.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { CustomerInvoice } from "../aggregates"; export interface ICustomerInvoiceRepository { diff --git a/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice-service.interface.ts b/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice-service.interface.ts index 8462580e..a9c5685f 100644 --- a/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice-service.interface.ts +++ b/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice-service.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { CustomerInvoice } from "../aggregates"; export interface ICustomerInvoiceService { diff --git a/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice.service.ts b/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice.service.ts index 466ad953..f7fb1236 100644 --- a/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice.service.ts +++ b/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice.service.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { CustomerInvoice } from "../aggregates"; import { ICustomerInvoiceRepository } from "../repositories"; import { ICustomerInvoiceService } from "./customer-invoice-service.interface"; diff --git a/apps/server/archive/contexts/customer-billing/domain/value-objetcs/invoice-status.ts b/apps/server/archive/contexts/customer-billing/domain/value-objetcs/invoice-status.ts index eee46309..fa527029 100644 --- a/apps/server/archive/contexts/customer-billing/domain/value-objetcs/invoice-status.ts +++ b/apps/server/archive/contexts/customer-billing/domain/value-objetcs/invoice-status.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; interface IInvoiceStatusProps { value: string; diff --git a/apps/server/archive/contexts/customer-billing/infraestructure/mappers/customer-invoice.mapper.ts b/apps/server/archive/contexts/customer-billing/infraestructure/mappers/customer-invoice.mapper.ts index 49119e06..595fbcd9 100644 --- a/apps/server/archive/contexts/customer-billing/infraestructure/mappers/customer-invoice.mapper.ts +++ b/apps/server/archive/contexts/customer-billing/infraestructure/mappers/customer-invoice.mapper.ts @@ -1,12 +1,12 @@ import { Customer, CustomerInvoice } from "@/contexts/customer-billing/domain"; import { InvoiceStatus } from "@/contexts/customer-billing/domain/value-objetcs"; import { PostalAddress, TINNumber, UniqueID, UtcDate } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; import { type ISequelizeMapper, type MapperParamsType, SequelizeMapper, } from "@/core/common/infrastructure/sequelize/sequelize-mapper"; +import { Maybe, Result } from "@repo/rdx-utils"; import { CustomerInvoiceCreationAttributes, CustomerInvoiceModel, diff --git a/apps/server/archive/contexts/customer-billing/infraestructure/sequelize/customer-invoice.repository.ts b/apps/server/archive/contexts/customer-billing/infraestructure/sequelize/customer-invoice.repository.ts index ad7c54dd..c517a9db 100644 --- a/apps/server/archive/contexts/customer-billing/infraestructure/sequelize/customer-invoice.repository.ts +++ b/apps/server/archive/contexts/customer-billing/infraestructure/sequelize/customer-invoice.repository.ts @@ -1,7 +1,7 @@ import { CustomerInvoice, ICustomerInvoiceRepository } from "@/contexts/customer-billing/domain"; import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; import { SequelizeRepository } from "@/core/common/infrastructure"; +import { Collection, Result } from "@repo/rdx-utils"; import { Transaction } from "sequelize"; import { type ICustomerInvoiceMapper, diff --git a/apps/server/archive/contexts/customer-billing/presentation/controllers/customer-invoices/list/list-customer-invoices.presenter.ts b/apps/server/archive/contexts/customer-billing/presentation/controllers/customer-invoices/list/list-customer-invoices.presenter.ts index 2099f21c..0246ad3c 100644 --- a/apps/server/archive/contexts/customer-billing/presentation/controllers/customer-invoices/list/list-customer-invoices.presenter.ts +++ b/apps/server/archive/contexts/customer-billing/presentation/controllers/customer-invoices/list/list-customer-invoices.presenter.ts @@ -1,4 +1,4 @@ -import { Collection, ensureString } from "@/core/common/helpers"; +import { Collection, ensureString } from "@repo/rdx-utils"; import { CustomerInvoice } from "@/contexts/customer-billing/domain"; import { IListCustomerInvoicesResponseDTO } from "../../../dto"; diff --git a/apps/server/package.json b/apps/server/package.json index ba7408cf..0c92d70a 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -7,7 +7,7 @@ "build": "tsc && tsup", "start:dev": "node --import=tsx --watch src/index.ts", "start:prod": "node dist/index.js", - "clean": "rm -rf dist", + "clean": "rm -rf dist node_modules", "typecheck": "tsc --noEmit", "test": "jest --config=./jest.config.ts --verbose", "lint": "biome lint --fix", @@ -27,7 +27,7 @@ "@types/jest": "^29.5.14", "@types/jsonwebtoken": "^9.0.8", "@types/luxon": "^3.4.2", - "@types/node": "^22.10.7", + "@types/node": "^22.15.12", "@types/passport": "^1.0.16", "@types/passport-jwt": "^4.0.1", "@types/passport-local": "^1.0.38", @@ -40,14 +40,14 @@ "typescript": "^5.8.3" }, "dependencies": { + "@erp/auth": "workspace:*", + "@erp/core": "workspace:*", "bcrypt": "^5.1.1", "cls-rtracer": "^2.6.3", "cors": "^2.8.5", "dinero.js": "^1.9.1", "dotenv": "^16.5.0", - "esbuild": "^0.24.0", "express": "^4.18.2", - "glob": "^11.0.1", "helmet": "^8.0.0", "http": "0.0.1-security", "http-status": "^2.1.0", @@ -74,14 +74,9 @@ "node": ">=22" }, "tsup": { - "entry": [ - "src/index.ts" - ], + "entry": ["src/index.ts"], "outDir": "dist", - "format": [ - "esm", - "cjs" - ], + "format": ["esm", "cjs"], "target": "es2020", "sourcemap": true, "clean": true, diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts index ef6ed90a..1884f92e 100644 --- a/apps/server/src/app.ts +++ b/apps/server/src/app.ts @@ -3,9 +3,8 @@ import dotenv from "dotenv"; import express, { Application } from "express"; import helmet from "helmet"; import responseTime from "response-time"; -import { logger } from "./core/common/infrastructure/logger"; import { globalErrorHandler } from "./core/common/presentation"; -import { v1Routes } from "./routes"; +import { logger } from "./core/logger"; dotenv.config(); @@ -47,8 +46,8 @@ export function createApp(): Application { }); // Registrar rutas de la API - app.use("/api/v1", v1Routes()); - // initPackages(app, sequelize); + // app.use("/api/v1", v1Routes()); + //initModules(app, database); // Gestión global de errores. // Siempre al final de la cadena de middlewares diff --git a/apps/server/src/config/database.ts b/apps/server/src/config/database.ts index 981b3754..00b90257 100644 --- a/apps/server/src/config/database.ts +++ b/apps/server/src/config/database.ts @@ -1,4 +1,4 @@ -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; import dotenv from "dotenv"; import { Sequelize } from "sequelize"; import { registerModels } from "./register-models"; diff --git a/apps/server/src/config/register-models.ts b/apps/server/src/config/register-models.ts index fc784419..d4d23cbe 100644 --- a/apps/server/src/config/register-models.ts +++ b/apps/server/src/config/register-models.ts @@ -1,5 +1,5 @@ import * as path from "path"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; import * as glob from "glob"; import { DataTypes, Sequelize } from "sequelize"; diff --git a/apps/server/src/contexts/invoices/index.ts b/apps/server/src/contexts/invoices/index.ts index 38781116..5db218f3 100644 --- a/apps/server/src/contexts/invoices/index.ts +++ b/apps/server/src/contexts/invoices/index.ts @@ -1,6 +1,6 @@ import { IModuleServer, ModuleParams } from "@/core"; -import { logger } from "@/core/common/infrastructure/logger"; -import { invoicesRouter, models } from "./intrastructure"; +import { logger } from "@/core/logger"; +import { invoicesRouter, models } from "../../../../../modules/invoices/src/api/intrastructure"; export const invoicesModule: IModuleServer = { metadata: { diff --git a/apps/server/src/core/common/domain/aggregate-root-repository.interface.ts b/apps/server/src/core/common/domain/aggregate-root-repository.interface.ts deleted file mode 100644 index b086120c..00000000 --- a/apps/server/src/core/common/domain/aggregate-root-repository.interface.ts +++ /dev/null @@ -1 +0,0 @@ -export type IAggregateRootRepository = {} diff --git a/apps/server/src/core/common/helpers/index.ts b/apps/server/src/core/common/helpers/index.ts deleted file mode 100644 index b7f8a1cc..00000000 --- a/apps/server/src/core/common/helpers/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./collection"; -export * from "./maybe"; -export * from "./result"; -export * from "./utils"; -export * from "./modules"; diff --git a/apps/server/src/core/common/helpers/result.ts b/apps/server/src/core/common/helpers/result.ts deleted file mode 100644 index a0136f04..00000000 --- a/apps/server/src/core/common/helpers/result.ts +++ /dev/null @@ -1,92 +0,0 @@ -export class Result { - private readonly _isSuccess: boolean; - private readonly _data?: T; - private readonly _error?: E; - - private constructor(props: { isSuccess: boolean; error?: E; data?: T }) { - const { isSuccess, error, data } = props; - if (isSuccess && error) { - throw new Error(`InvalidOperation: A result cannot be successful and contain an error`); - } - if (!isSuccess && !error) { - throw new Error(`InvalidOperation: A failing result needs to contain an error message`); - } - - this._isSuccess = isSuccess; - this._error = error; - this._data = data; - - Object.freeze(this); - } - - static ok(data?: T): Result { - return new Result({ isSuccess: true, data }); - } - - static fail(error?: E): Result { - return new Result({ isSuccess: false, error }); - } - - static combine(results: Result[]): Result { - for (const result of results) { - if (result.isFailure) { - return result; - } - } - - return Result.ok(); - } - - get isSuccess(): boolean { - return this._isSuccess; - } - - get isFailure(): boolean { - return !this._isSuccess; - } - - get data(): T { - return this.getData(); - } - - get error(): E { - return this.getError(); - } - - getError(): E { - if (this._isSuccess) { - throw new Error("Cannot get error from a successful result."); - } - return this._error as E; - } - - getData(): T { - if (!this._isSuccess) { - throw new Error("Cannot get value data from a failed result."); - } - return this._data as T; - } - - map(fn: (value: T) => U): Result { - if (this.isSuccess && this._data !== undefined) { - return Result.ok(fn(this.data)); - } - return Result.fail(this.error || new Error("Unknown error")); - } - - /** - * 🔹 `getOrElse(defaultValue: T): T` - * Si el `Result` es un `ok`, devuelve `data`, de lo contrario, devuelve `defaultValue`. - */ - getOrElse(defaultValue: any): T | any { - return this._isSuccess ? this.data : defaultValue; - } - - /** - * 🔹 `match(onOk: (data: T) => R, onError: (error: E) => R): R` - * Evalúa el `Result`: ejecuta `onOk()` si es `ok` o `onError()` si es `fail`. - */ - match(onOk: (data: T) => R, onError: (error: E) => R): R { - return this._isSuccess ? onOk(this.data) : onError(this.error); - } -} diff --git a/apps/server/src/core/common/index.ts b/apps/server/src/core/common/index.ts index b230b398..818ca8c9 100644 --- a/apps/server/src/core/common/index.ts +++ b/apps/server/src/core/common/index.ts @@ -1,4 +1,2 @@ -export * from "./domain"; -export * from "./helpers"; export * from "./infrastructure"; export * from "./presentation"; diff --git a/apps/server/src/core/common/infrastructure/index.ts b/apps/server/src/core/common/infrastructure/index.ts index 7db08f75..b3112bef 100644 --- a/apps/server/src/core/common/infrastructure/index.ts +++ b/apps/server/src/core/common/infrastructure/index.ts @@ -1,5 +1,4 @@ export * from "./sequelize"; -export * from "./logger"; export * from "./database"; //export * from "./passport"; export * from "./sequelize"; diff --git a/apps/server/src/core/common/infrastructure/logger/index.ts b/apps/server/src/core/common/infrastructure/logger/index.ts deleted file mode 100644 index 84ddf947..00000000 --- a/apps/server/src/core/common/infrastructure/logger/index.ts +++ /dev/null @@ -1,111 +0,0 @@ -import rTracer from "cls-rtracer"; -import dotenv from "dotenv"; -import path from "path"; -import { createLogger, format, transports } from "winston"; -import DailyRotateFile from "winston-daily-rotate-file"; - -dotenv.config(); - -//const splatSymbol = Symbol.for("splat"); - -const initLogger = () => { - const isProduction = process.env.NODE_ENV === "production"; - - const consoleFormat = format.combine( - format.errors({ stack: !isProduction }), - format.colorize(), - format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), - format.align(), - format.splat(), - - format.printf((info) => { - const { level, timestamp, stack, label, meta, error } = info; - const rid = rTracer.id(); - let message = info.message; - - if (typeof message === "object") { - message = JSON.stringify(message, null, 3); - } - - let out = `${timestamp}`; - - if (rid) { - out = `${out} [request-id:${rid}]`; - } - - out = `${out} - ${level}: [${label}]: ${message}`; - if (stack) { - out = `${out} - ${stack}`; - } - - if (meta) { - out = `${out} - ${JSON.stringify(meta, null, 3)}`; - } - - if (error) { - out = `${out} - ${JSON.stringify(error, null, 3)}`; - } - - return out; - }) - ); - - const fileFormat = format.combine( - format.timestamp(), - format.splat(), - format.label({ label: path.basename(String(require.main?.filename)) }), - //format.metadata(), - format.metadata({ fillExcept: ["message", "level", "timestamp", "label"] }), - format.simple(), - format.json() - ); - - const logger = createLogger( - isProduction - ? { - level: isProduction ? "error" : "debug", - - format: fileFormat, - - transports: [ - new DailyRotateFile({ - dirname: isProduction ? "/logs" : ".", - filename: "error-%DATE%.log", - datePattern: "YYYY-MM-DD", - utc: true, - level: "error", - maxSize: "5m", - maxFiles: "1d", - }), - new DailyRotateFile({ - dirname: isProduction ? "/logs" : ".", - filename: "debug-%DATE%.log", - datePattern: "YYYY-MM-DD", - utc: true, - level: "debug", - maxSize: "5m", - maxFiles: "1d", - }), - ], - } - : {} - ); - - // - // If we're not in production then log to the `console` with the format: - // `${info.level}: ${info.message} JSON.stringify({ ...rest }) ` - // - if (!isProduction) { - logger.add( - new transports.Console({ - format: consoleFormat, - level: "debug", - }) - ); - } - - return logger; -}; - -const logger = initLogger(); -export { logger }; diff --git a/apps/server/src/core/common/infrastructure/sequelize/sequelize-mapper.ts b/apps/server/src/core/common/infrastructure/sequelize/sequelize-mapper.ts index 6f7ec448..4aaaa574 100644 --- a/apps/server/src/core/common/infrastructure/sequelize/sequelize-mapper.ts +++ b/apps/server/src/core/common/infrastructure/sequelize/sequelize-mapper.ts @@ -1,5 +1,5 @@ import { DomainEntity } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Model } from "sequelize"; export type MapperParamsType = Record; diff --git a/apps/server/src/core/common/infrastructure/sequelize/sequelize-repository.ts b/apps/server/src/core/common/infrastructure/sequelize/sequelize-repository.ts index cefd6cbb..a88578de 100644 --- a/apps/server/src/core/common/infrastructure/sequelize/sequelize-repository.ts +++ b/apps/server/src/core/common/infrastructure/sequelize/sequelize-repository.ts @@ -1,5 +1,5 @@ import { IAggregateRootRepository, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { ModelDefined, Sequelize, Transaction } from "sequelize"; import { logger } from "../logger"; diff --git a/apps/server/src/core/common/presentation/express/express-controller.ts b/apps/server/src/core/common/presentation/express/express-controller.ts index 5dc9db75..0289ed1e 100644 --- a/apps/server/src/core/common/presentation/express/express-controller.ts +++ b/apps/server/src/core/common/presentation/express/express-controller.ts @@ -1,4 +1,4 @@ -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; import { NextFunction, Request, Response } from "express"; import httpStatus from "http-status"; import { ApiError } from "./api-error"; diff --git a/apps/server/src/core/common/presentation/express/middlewares/global-error-handler.ts b/apps/server/src/core/common/presentation/express/middlewares/global-error-handler.ts index cd3101fd..2f6ee004 100644 --- a/apps/server/src/core/common/presentation/express/middlewares/global-error-handler.ts +++ b/apps/server/src/core/common/presentation/express/middlewares/global-error-handler.ts @@ -1,4 +1,4 @@ -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; import { NextFunction, Request, Response } from "express"; import { ApiError } from "../api-error"; diff --git a/apps/server/src/core/helpers/model-loader.ts b/apps/server/src/core/helpers/model-loader.ts index 72623736..5f149885 100644 --- a/apps/server/src/core/helpers/model-loader.ts +++ b/apps/server/src/core/helpers/model-loader.ts @@ -1,5 +1,5 @@ -import { ModuleParams } from "../common"; -import { logger } from "../common/infrastructure/logger"; +import { ModuleParams } from "@erp/core"; +import { logger } from "../logger"; const allModelInitializers: any[] = []; const registeredModels: { [key: string]: any } = {}; @@ -12,13 +12,12 @@ export const registerModels = (models: any[], params?: ModuleParams) => { }; export const initModels = async (params: ModuleParams) => { - logger.info({ message: "Init models...", label: "initModels" }); + logger.info("Init models...", { label: "initModels" }); const { database } = params; if (!database) { const error = new Error("❌ Database not found."); - logger.error({ - message: error.message, + logger.error(error.message, { label: "initModels", }); throw error; @@ -28,10 +27,7 @@ export const initModels = async (params: ModuleParams) => { for (const initializer of allModelInitializers) { const model = initializer(database); registeredModels[model.name] = model; - logger.info({ - message: `🔸 Model "${model.name}" registered (sequelize)`, - label: "registerModel", - }); + logger.info(`🔸 Model "${model.name}" registered (sequelize)`, { label: "registerModel" }); } // Configurar asociaciones @@ -45,16 +41,15 @@ export const initModels = async (params: ModuleParams) => { // Sincronizamos DB en modo desarrollo if (process.env.NODE_ENV !== "production") { await database.sync({ force: false, alter: true }); - logger.info({ message: `✔️${" "}Database synchronized successfully.`, label: "initModels" }); + logger.info(`✔️${" "}Database synchronized successfully.`, { label: "initModels" }); } else { - logger.warning({ - message: "⚠️ Running in production mode - Skipping database sync.", + logger.warn("⚠️ Running in production mode - Skipping database sync.", { label: "initModels", }); } } catch (err) { const error = err as Error; - logger.error({ message: "❌ Error synchronizing database:", error, label: "initModels" }); + logger.error("❌ Error synchronizing database:", { error, label: "initModels" }); throw error; } }; diff --git a/apps/server/src/core/helpers/module-loader.ts b/apps/server/src/core/helpers/module-loader.ts index 9165716b..a67d5ecf 100644 --- a/apps/server/src/core/helpers/module-loader.ts +++ b/apps/server/src/core/helpers/module-loader.ts @@ -1,4 +1,5 @@ -import { IModuleServer, ModuleParams, logger } from "../common"; +import { IModuleServer, ModuleParams } from "@erp/core"; +import { logger } from "../logger"; import { initModels, registerModels } from "./model-loader"; import { registerService } from "./service-registry"; @@ -48,5 +49,5 @@ const loadModule = (name: string, params: ModuleParams) => { } initializedModules.add(name); - logger.info({ message: `✅ Module "${name}" registered`, label: "loadModule" }); + logger.info(`✅ Module "${name}" registered`, { label: "loadModule" }); }; diff --git a/packages.bak/rdx-criteria/src/criteria.ts b/apps/server/src/core/infrastructure/http/httpServer.ts similarity index 100% rename from packages.bak/rdx-criteria/src/criteria.ts rename to apps/server/src/core/infrastructure/http/httpServer.ts diff --git a/apps/server/src/core/infrastructure/http/index.ts b/apps/server/src/core/infrastructure/http/index.ts new file mode 100644 index 00000000..20ffad53 --- /dev/null +++ b/apps/server/src/core/infrastructure/http/index.ts @@ -0,0 +1 @@ +export * from "./httpServer"; diff --git a/apps/server/src/core/logger/console-logger.ts b/apps/server/src/core/logger/console-logger.ts new file mode 100644 index 00000000..6befcd7e --- /dev/null +++ b/apps/server/src/core/logger/console-logger.ts @@ -0,0 +1,15 @@ +import { ILogger } from "@erp/core"; + +export class ConsoleLogger implements ILogger { + info(message: string, meta?: any) { + console.log(`[INFO] ${message}`, meta ?? ""); + } + + warn(message: string, meta?: any) { + console.warn(`[WARN] ${message}`, meta ?? ""); + } + + error(message: string, error?: Error | any) { + console.error(`[ERROR] ${message}`, error?.stack || error); + } +} diff --git a/apps/server/src/core/logger/index.ts b/apps/server/src/core/logger/index.ts new file mode 100644 index 00000000..cda30be6 --- /dev/null +++ b/apps/server/src/core/logger/index.ts @@ -0,0 +1,8 @@ +import { ILogger } from "@erp/core"; +import { ConsoleLogger } from "./console-logger"; + +// Aquí podrías cambiar por SentryLogger en el futuro +const logger: ILogger = new ConsoleLogger(); + +export { logger }; +export type { ILogger }; diff --git a/apps/server/src/core/logger/sentry-logger.ts b/apps/server/src/core/logger/sentry-logger.ts new file mode 100644 index 00000000..d002caa7 --- /dev/null +++ b/apps/server/src/core/logger/sentry-logger.ts @@ -0,0 +1,22 @@ +import { ILogger } from "@erp/core"; + +export class SentryLogger implements ILogger { + // biome-ignore lint/complexity/noUselessConstructor: + constructor() { + //Sentry.init({ dsn: process.env.SENTRY_DSN }); + } + + info(message: string, meta?: any) { + console.log(`[INFO] ${message}`, meta); + } + + warn(message: string, meta?: any) { + console.warn(`[WARN] ${message}`, meta); + //Sentry.captureMessage(message, "warning"); + } + + error(message: string, error?: any) { + console.error(`[ERROR] ${message}`, error); + //Sentry.captureException(error); + } +} diff --git a/apps/server/src/core/logger/winston-logger.ts b/apps/server/src/core/logger/winston-logger.ts new file mode 100644 index 00000000..87922a2a --- /dev/null +++ b/apps/server/src/core/logger/winston-logger.ts @@ -0,0 +1,60 @@ +import { ILogger } from "@erp/core"; +import rTracer from "cls-rtracer"; +import { createLogger, format, transports } from "winston"; + +const winston = createLogger({ + level: "info", + format: format.combine( + format.colorize(), + format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), + format.errors({ stack: true }), + format.align(), + format.splat(), + format.json(), + format.printf((info) => { + const { level, timestamp, stack, label, meta, error } = info; + const rid = rTracer.id(); + let message = info.message; + + if (typeof message === "object") { + message = JSON.stringify(message, null, 3); + } + + let out = `${timestamp}`; + + if (rid) { + out = `${out} [request-id:${rid}]`; + } + + out = `${out} - ${level}: [${label}]: ${message}`; + if (stack) { + out = `${out} - ${stack}`; + } + + if (meta) { + out = `${out} - ${JSON.stringify(meta, null, 3)}`; + } + + if (error) { + out = `${out} - ${JSON.stringify(error, null, 3)}`; + } + + return out; + }) + ), + transports: [new transports.Console()], +}); + +export class WinstonLogger implements ILogger { + info(message: string, meta?: any) { + winston.info(message, meta ?? {}); + } + + warn(message: string, meta?: any) { + winston.warn(message, meta ?? {}); + } + + error(message: string, error?: any) { + winston.error(message, { error: error?.stack || error }); + } +} diff --git a/apps/server/src/core/package-loader.ts.bak b/apps/server/src/core/package-loader.ts.bak deleted file mode 100644 index ebafbb22..00000000 --- a/apps/server/src/core/package-loader.ts.bak +++ /dev/null @@ -1,55 +0,0 @@ -import { IPackageServer } from "@libs/package"; -import { Express } from "express"; -import { Sequelize } from "sequelize"; -import { registerService } from "./service-registry.ts.bak"; - -const registeredPackages: Map = new Map(); -const initializedPackages = new Set(); - -export function registerPackage(pkg: IPackageServer) { - if (registeredPackages.has(pkg.metadata.name)) { - throw new Error(`❌ Paquete "${pkg.metadata.name}" ya registrado.`); - } - registeredPackages.set(pkg.metadata.name, pkg); -} - -export function initPackages(app: Express, sequelize: Sequelize) { - for (const [name] of registeredPackages) { - loadPackage(name, app, sequelize); - } -} - -function loadPackage(name: string, app: Express, sequelize: Sequelize) { - if (initializedPackages.has(name)) return; - - const pkg = registeredPackages.get(name); - if (!pkg) throw new Error(`❌ Paquete "${name}" no encontrado.`); - - // Resolver dependencias primero - const deps = pkg.metadata.dependencies || []; - deps.forEach((dep) => loadPackage(dep, app, sequelize)); - - // Inicializar el package - pkg.init(app); - - const pkgApi = pkg.registerDependencies?.(); - - // Registrar modelos de Sequelize, si los expone - - if (pkgApi?.models) { - for (const initModelFn of pkgApi.models) { - initModelFn(sequelize); - } - } - - // Registrar sus servicios, si los expone - if (pkgApi?.services) { - const services = pkgApi.services; - if (services && typeof services === "object") { - registerService(pkg.metadata.name, services); - } - } - - initializedPackages.add(name); - console.log(`✅ Paquete "${name}" inicializado.`); -} diff --git a/apps/server/src/core/service-registry.ts.bak b/apps/server/src/core/service-registry.ts.bak deleted file mode 100644 index 133b92db..00000000 --- a/apps/server/src/core/service-registry.ts.bak +++ /dev/null @@ -1,36 +0,0 @@ -const services: Record = {}; - -/** - * Registra un objeto de servicio (API) bajo un nombre. - */ -export function registerService(name: string, api: any) { - if (services[name]) { - throw new Error(`❌ Servicio "${name}" ya fue registrado.`); - } - services[name] = api; -} - -/** - * Recupera un servicio registrado, con tipado opcional. - */ -export function getService(name: string): T { - const service = services[name]; - if (!service) { - throw new Error(`❌ Servicio "${name}" no encontrado.`); - } - return service; -} - -/** - * Permite saber si un servicio fue registrado. - */ -export function hasService(name: string): boolean { - return !!services[name]; -} - -/** - * Devuelve todos los servicios (para depuración o tests). - */ -export function listServices(): string[] { - return Object.keys(services); -} diff --git a/apps/server/src/index.ts b/apps/server/src/index.ts index e26299cc..43ba4a58 100644 --- a/apps/server/src/index.ts +++ b/apps/server/src/index.ts @@ -1,10 +1,12 @@ -import http from "http"; +import http from "node:http"; +import os from "node:os"; +import { logger } from "@/core/logger"; import { DateTime } from "luxon"; -import os from "os"; import { createApp } from "./app"; import { ENV } from "./config"; import { tryConnectToDatabase } from "./config/database"; -import { logger } from "./core/common/infrastructure/logger"; +import { initModules } from "./core/helpers"; +import { registerModules } from "./register-modules"; // Guardamos información del estado del servidor export const currentState = { @@ -41,17 +43,16 @@ const serverStop = (server: http.Server) => { // Manejo de errores al iniciar el servidor const serverError = (error: NodeJS.ErrnoException) => { - logger.error({ - message: `⛔️ Server wasn't able to start properly.`, + logger.error(`⛔️ Server wasn't able to start properly.`, { label: "serverError0", error, }); if (error.code === "EADDRINUSE") { - logger.error({ message: error.message, error, label: "serverError1" }); + logger.error(error.message, { error, label: "serverError1" }); //logger.error(`The port ${error.port} is already used by another application.`); } else { - logger.error({ message: error.message, error, label: "serverError2" }); + logger.error(error.message, { error, label: "serverError2" }); } // Dependiendo de la criticidad, podrías forzar el proceso a salir @@ -72,11 +73,13 @@ const serverConnection = (conn: any) => { //const firebirdConn = createFirebirdAdapter(); // Cargar paquetes de la aplicación -// registerPackages(); +registerModules(); + +const app = createApp(); // Crea el servidor HTTP const server = http - .createServer(createApp()) + .createServer(app) .once("listening", () => process.on("SIGINT", async () => { // Por ejemplo, podrías desconectar la base de datos aquí: @@ -99,7 +102,7 @@ const server = http // Manejo de promesas no capturadas process.on("unhandledRejection", (reason: any, promise: Promise) => { - logger.error("❌ Unhandled rejection at:", promise, "reason:", reason); + logger.error(`❌ Unhandled rejection at:", ${promise}, "reason:", ${reason}`); // Dependiendo de la aplicación, podrías desear una salida total o un cierre controlado process.exit(1); }); @@ -107,7 +110,7 @@ process.on("unhandledRejection", (reason: any, promise: Promise) => { // Manejo de excepciones no controladas process.on("uncaughtException", (error: Error) => { // firebirdConn.disconnect(); - logger.error(`❌ Uncaught exception:`, error.message); + logger.error(`❌ Uncaught exception: ${error.message}`); logger.error(error.stack); // process.exit(1); }); @@ -126,7 +129,7 @@ process.on("uncaughtException", (error: Error) => { // initStructure(sequelizeConn.connection); // insertUsers(); - //await initModules({ app, database, baseRoutePath: "/api/v1" }); + await initModules({ app, database, baseRoutePath: "/api/v1", logger }); server.listen(currentState.port, () => { server.emit("listening"); @@ -146,9 +149,10 @@ process.on("uncaughtException", (error: Error) => { } } - addresses.forEach((address) => { + for (const address in addresses) { logger.info(`⚡️ Server accessible at: http://${address}:${currentState.port}`); - }); + } + logger.info(`Server started at: ${DateTime.now().toLocaleString(DateTime.DATETIME_FULL)}`); logger.info(`Server PID: ${process.pid}`); logger.info( diff --git a/apps/server/src/packages.ts.bak b/apps/server/src/packages.ts.bak deleted file mode 100644 index 0695c41b..00000000 --- a/apps/server/src/packages.ts.bak +++ /dev/null @@ -1,8 +0,0 @@ -//import { ContactsPackage } from '@modules/contacts/server'; -//import { InvoicesPackage } from "@modules/invoices/server"; -//import { registerPackage } from "@/core/module-loader"; - -export const registerPackages = () => { - //registerPackage(ContactsPackage); - //registerPackage(InvoicesPackage); -}; diff --git a/apps/server/src/register-modules.ts b/apps/server/src/register-modules.ts new file mode 100644 index 00000000..b4871edd --- /dev/null +++ b/apps/server/src/register-modules.ts @@ -0,0 +1,7 @@ +import { authAPIModule } from "@erp/auth"; +import { registerModule } from "./core/helpers"; + +export const registerModules = () => { + //registerPackage(ContactsPackage); + registerModule(authAPIModule); +}; diff --git a/apps/server/src/routes/v1.routes.ts b/apps/server/src/routes/v1.routes.ts index 319079a1..25fa1d0d 100644 --- a/apps/server/src/routes/v1.routes.ts +++ b/apps/server/src/routes/v1.routes.ts @@ -1,5 +1,4 @@ import { Router } from "express"; -import { invoicesRouter } from "./invoices.routes"; export const v1Routes = (): Router => { const routes = Router({ mergeParams: true }); @@ -13,7 +12,7 @@ export const v1Routes = (): Router => { //accountsRouter(routes); // Sales - invoicesRouter(routes); + //invoicesRouter(routes); return routes; }; diff --git a/apps/server/tsconfig.json b/apps/server/tsconfig.json index 31fa112a..3e0da5da 100644 --- a/apps/server/tsconfig.json +++ b/apps/server/tsconfig.json @@ -9,6 +9,12 @@ "outDir": "dist" }, //"files": ["src/index.ts"], // Esta opción compila sólo los archivos listados (y sus dependencias importadas). - "include": ["src/**/*.ts", "src/contexts/invoices/intrastructure/Contact.repository.ts.bak"], + "include": [ + "src/**/*.ts", + "../../packages/rdx-ddd/src/aggregate-root.ts", + "../../packages/rdx-ddd/src/domain-entity.ts", + "../../packages/rdx-ddd/src/index.ts", + "../../packages/rdx-ddd/src/aggregate-root-repository.interface.ts" + ], "exclude": ["src/**/__tests__/*", "src/**/*.mock.*", "src/**/*.test.*", "node_modules", "dist"] } diff --git a/apps/web/package.json b/apps/web/package.json index 0ffd0c62..ee582d64 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -13,8 +13,12 @@ "format": "biome format --write" }, "dependencies": { + "@erp/auth": "workspace:*", + "@erp/core": "workspace:*", "@repo/shadcn-ui": "workspace:*", + "@repo/rdx-criteria": "workspace:*", "@repo/rdx-ui": "workspace:*", + "@tailwindcss/vite": "^4.1.5", "@tanstack/react-query": "^5.74.11", "axios": "^1.9.0", "i18next": "^25.0.2", @@ -26,6 +30,8 @@ "react-i18next": "^15.0.1", "react-router-dom": "^6.26.0", "react-secure-storage": "^1.3.2", + "tailwindcss": "^4.1.5", + "tailwindcss-animate": "^1.0.7", "vite-plugin-html": "^3.2.2" }, "devDependencies": { @@ -33,12 +39,15 @@ "@hookform/devtools": "^4.4.0", "@repo/typescript-config": "workspace:*", "@tanstack/react-query-devtools": "^5.74.11", + "@types/axios": "^0.14.4", + "@types/node": "^22.15.12", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.3", "@vitejs/plugin-react": "^4.4.1", + "autoprefixer": "^10.4.20", "globals": "^16.0.0", "typescript": "~5.8.3", - "vite": "^6.3.4", + "vite": "^6.3.5", "vite-plugin-robots": "^1.0.5", "vite-plugin-static-copy": "^2.3.1" } diff --git a/apps/web/postcss.config.mjs b/apps/web/postcss.config.mjs deleted file mode 100644 index 95c17d3a..00000000 --- a/apps/web/postcss.config.mjs +++ /dev/null @@ -1 +0,0 @@ -export { default } from "../../packages/shadcn-ui/postcss.config.mjs"; diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index 07914bc2..e222fe0e 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -1,14 +1,16 @@ +import { Prueba } from "@repo/rdx-ui/components"; +import { Button, Toaster, TooltipProvider } from "@repo/shadcn-ui/components"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import { Suspense, useState } from "react"; - -import { Button, Toaster, TooltipProvider } from "@repo/shadcn-ui/components"; import { I18nextProvider } from "react-i18next"; -import { DataSourceProvider, ThemeProvider, UnsavedWarnProvider } from "./lib/hooks"; -import { i18n } from "./locales"; -import "@repo/shadcn-ui/globals.css"; -import { LoadingOverlay, TailwindIndicator } from "@repo/rdx-ui/components"; +import { LoadingOverlay, TailwindIndicator } from "@/components"; +import { createAxiosDataProvider } from "@/lib/axios/create-axios-data-provider"; +import { DataSourceProvider, ThemeProvider, UnsavedWarnProvider } from "@/lib/hooks"; +import { i18n } from "@/locales"; + +import "./global.css"; function App() { const queryClient = new QueryClient({ @@ -31,6 +33,7 @@ function App() { }>
+

This is a Vite application

This shadcn/ui button is shared between Vite, NextJS and any other diff --git a/packages/ui/src/components/custom-dialog.tsx b/apps/web/src/components/custom-dialog.tsx similarity index 100% rename from packages/ui/src/components/custom-dialog.tsx rename to apps/web/src/components/custom-dialog.tsx diff --git a/packages/ui/src/components/index.tsx b/apps/web/src/components/index.tsx similarity index 100% rename from packages/ui/src/components/index.tsx rename to apps/web/src/components/index.tsx diff --git a/packages/ui/src/components/loading-overlay/index.tsx b/apps/web/src/components/loading-overlay/index.tsx similarity index 100% rename from packages/ui/src/components/loading-overlay/index.tsx rename to apps/web/src/components/loading-overlay/index.tsx diff --git a/packages/ui/src/components/loading-overlay/loading-indicator.tsx b/apps/web/src/components/loading-overlay/loading-indicator.tsx similarity index 64% rename from packages/ui/src/components/loading-overlay/loading-indicator.tsx rename to apps/web/src/components/loading-overlay/loading-indicator.tsx index c2f3d172..85d6aacf 100644 --- a/packages/ui/src/components/loading-overlay/loading-indicator.tsx +++ b/apps/web/src/components/loading-overlay/loading-indicator.tsx @@ -1,6 +1,6 @@ +import { cn } from "@repo/shadcn-ui/lib/utils"; import { t } from "i18next"; -import styles from "./LoadingIndicator.module.css"; -import { LoadingSpinIcon } from "./LoadingSpinIcon"; +import { LoadingSpinIcon } from "./loading-spin-icon"; export type LoadingIndicatorProps = { look?: "dark" | string; @@ -24,26 +24,25 @@ export const LoadingIndicator = ({ } return ( -

+
{/**/} {title ? (

{title}

) : null} {subtitle ? ( -

+

{subtitle}

) : null} diff --git a/packages/ui/src/components/loading-overlay/loading-overlay.tsx b/apps/web/src/components/loading-overlay/loading-overlay.tsx similarity index 100% rename from packages/ui/src/components/loading-overlay/loading-overlay.tsx rename to apps/web/src/components/loading-overlay/loading-overlay.tsx diff --git a/packages/ui/src/components/loading-overlay/loading-spin-icon.tsx b/apps/web/src/components/loading-overlay/loading-spin-icon.tsx similarity index 100% rename from packages/ui/src/components/loading-overlay/loading-spin-icon.tsx rename to apps/web/src/components/loading-overlay/loading-spin-icon.tsx diff --git a/packages/ui/src/components/tailwind-indicator.tsx b/apps/web/src/components/tailwind-indicator.tsx similarity index 100% rename from packages/ui/src/components/tailwind-indicator.tsx rename to apps/web/src/components/tailwind-indicator.tsx diff --git a/apps/web/src/global.css b/apps/web/src/global.css new file mode 100644 index 00000000..f34ea458 --- /dev/null +++ b/apps/web/src/global.css @@ -0,0 +1,143 @@ +@import "tailwindcss"; +@plugin "tailwindcss-animate"; +@import "@repo/shadcn-ui/globals.css"; + +@theme { + --font-sans: var(--font-geist-sans); + --font-mono: var(--font-geist-mono); +} + +:root { + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.87 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --radius: 0.625rem; + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.87 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.145 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.145 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.985 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.396 0.141 25.723); + --destructive-foreground: oklch(0.637 0.237 25.331); + --border: oklch(0.269 0 0); + --input: oklch(0.269 0 0); + --ring: oklch(0.439 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(0.269 0 0); + --sidebar-ring: oklch(0.439 0 0); +} + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} + +:root { + --color-1: 0 100% 63%; + --color-2: 270 100% 63%; + --color-3: 210 100% 63%; + --color-4: 195 100% 63%; + --color-5: 90 100% 63%; +} + +@theme inline { + --color-color-1: var(----color-1); + --color-color-2: var(----color-2); + --color-color-3: var(----color-3); + --color-color-4: var(----color-4); + --color-color-5: var(----color-5); +} diff --git a/apps/web/src/lib/api/get-api-authorization.ts b/apps/web/src/lib/api/get-api-authorization.ts index d481ddf8..a63c8466 100644 --- a/apps/web/src/lib/api/get-api-authorization.ts +++ b/apps/web/src/lib/api/get-api-authorization.ts @@ -1,9 +1,8 @@ +import type { ILoginResponseDTO } from "@erp/auth"; import secureLocalStorage from "react-secure-storage"; export const getApiAuthorization = () => { - const authInfo: ILogin_Response_DTO = secureLocalStorage.getItem( - "uecko.auth" - ) as ILogin_Response_DTO; + const authInfo = secureLocalStorage.getItem("uecko.auth") as ILoginResponseDTO; - return authInfo && authInfo.token ? `Bearer ${authInfo.token}` : ""; + return authInfo?.token ? `Bearer ${authInfo.token}` : ""; }; diff --git a/apps/web/src/lib/axios/create-axios-data-provider.ts b/apps/web/src/lib/axios/create-axios-data-provider.ts index 0adcff51..c23c760a 100644 --- a/apps/web/src/lib/axios/create-axios-data-provider.ts +++ b/apps/web/src/lib/axios/create-axios-data-provider.ts @@ -1,9 +1,9 @@ -import { IListResponse_DTO, INITIAL_PAGE_INDEX, INITIAL_PAGE_SIZE } from "@shared/contexts"; +import type { ListResponseDTO } from "@erp/core"; +import { INITIAL_PAGE_INDEX, INITIAL_PAGE_SIZE } from "@repo/rdx-criteria"; import { getApiAuthorization as getApiAuthLib } from "../api"; -import { +import type { ICreateOneDataProviderParams, ICustomDataProviderParam, - IDataSource, IDownloadPDFDataProviderParams, IDownloadPDFDataProviderResponse, IFilterItemDataProviderParam, @@ -14,7 +14,8 @@ import { ISortItemDataProviderParam, IUpdateOneDataProviderParams, IUploadFileDataProviderParam, -} from "../hooks/use-datasource/datasource"; +} from "../hooks/use-datasource"; +import type { IDataSource } from "../hooks/use-datasource/datasource"; import { createAxiosInstance, defaultAxiosRequestConfig } from "./axios-instance"; export const createAxiosDataProvider = ( @@ -27,7 +28,7 @@ export const createAxiosDataProvider = ( getApiAuthorization: getApiAuthLib, - getList: async (params: IGetListDataProviderParams): Promise> => { + getList: async (params: IGetListDataProviderParams): Promise> => { const { resource, quickSearchTerm, pagination, filters = [], sort = [] } = params; const url = `${apiUrl}/${resource}`; @@ -52,7 +53,7 @@ export const createAxiosDataProvider = ( urlParams.append("$filters", queryFilters.join(",")); } - const response = await httpClient.request>({ + const response = await httpClient.request>({ url: `${url}?${urlParams.toString()}`, method: "GET", }); @@ -184,7 +185,8 @@ export const createAxiosDataProvider = ( //console.log(apiUrl, path, url, requestUrl.toString()); // Preparar la respuesta personalizada - let customResponse; + // biome-ignore lint/suspicious/noExplicitAny: + let customResponse: any; // Configurar opciones comunes para la petición const config = { @@ -401,7 +403,7 @@ const generateQuickSearch = ( filters: IFilterItemDataProviderParam[] = [] ) => filters.find(({ field }) => field === "q")?.value - ? [filters.find(({ field }) => field === "q")!.value] + ? [filters.find(({ field }) => field === "q")?.value ?? ""] : quickSearchTerm; const extractPaginationParams = (pagination?: IPaginationDataProviderParam) => { diff --git a/apps/web/src/lib/hooks/use-datasource/datasource.ts b/apps/web/src/lib/hooks/use-datasource/datasource.ts index 20a7265f..8a60f50a 100644 --- a/apps/web/src/lib/hooks/use-datasource/datasource.ts +++ b/apps/web/src/lib/hooks/use-datasource/datasource.ts @@ -1,4 +1,4 @@ -import { IListResponse_DTO } from "@shared/contexts"; +import type { ListResponseDTO } from "@erp/core"; import { type AxiosHeaderValue, type ResponseType } from "axios"; export interface IPaginationDataProviderParam { @@ -87,7 +87,7 @@ export interface ICustomDataProviderParam { export interface IDataSource { name: () => string; - getList: (params: IGetListDataProviderParams) => Promise>; + getList: (params: IGetListDataProviderParams) => Promise>; getOne: (params: IGetOneDataProviderParams) => Promise; //saveOne: (params: ISaveOneDataProviderParams

) => Promise; createOne: (params: ICreateOneDataProviderParams

) => Promise; diff --git a/apps/web/src/lib/hooks/use-datasource/index.ts b/apps/web/src/lib/hooks/use-datasource/index.ts index 8844e491..9499cefa 100644 --- a/apps/web/src/lib/hooks/use-datasource/index.ts +++ b/apps/web/src/lib/hooks/use-datasource/index.ts @@ -1 +1,2 @@ export * from "./datasource-context"; +export * from "./datasource"; diff --git a/apps/web/src/lib/hooks/use-unsaved-changes-notifier/warn-about-change-provider.tsx b/apps/web/src/lib/hooks/use-unsaved-changes-notifier/warn-about-change-provider.tsx index 3766b70e..3db8bf42 100644 --- a/apps/web/src/lib/hooks/use-unsaved-changes-notifier/warn-about-change-provider.tsx +++ b/apps/web/src/lib/hooks/use-unsaved-changes-notifier/warn-about-change-provider.tsx @@ -1,5 +1,5 @@ -import { CustomDialog } from "@repo/rdx-ui/components"; import { type PropsWithChildren, useCallback, useMemo, useState } from "react"; +import { CustomDialog } from "../../../components"; import type { NullOr } from "../../types"; import type { UnsavedChangesNotifierProps } from "./use-unsaved-changes-notifier"; import { UnsavedWarnContext } from "./warn-about-change-context"; diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js deleted file mode 100644 index f7b4ade5..00000000 --- a/apps/web/tailwind.config.js +++ /dev/null @@ -1,93 +0,0 @@ -/** @type {import('tailwindcss').Config} */ - -import defaultTheme from "tailwindcss/defaultTheme"; -import plugin from "tailwindcss/plugin"; - -export default { - darkMode: ["class"], - content: ["./src/**/*.{js,ts,jsx,tsx,html}"], - - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: { - // https://tailwindcss.com/docs/font-family#font-families - fontFamily: { - sans: ['"Poppins"', ...defaultTheme.fontFamily.sans], - }, - - /*fontFamily: { - display: "Public Sans, ui-sans-serif", - heading: "Noto Serif, ui-serif", - },*/ - - colors: { - border: "hsl(240, 5.9%, 90%)", - input: "hsl(240, 5.9%, 90%)", - ring: "hsl(346.8, 77.2%, 49.8%)", - background: "hsl(0, 0%, 100%)", - foreground: "hsl(240, 10%, 3.9%)", - primary: { - DEFAULT: "hsl(346.8, 77.2%, 49.8%)", - foreground: "hsl(355.7, 100%, 97.3%)", - }, - secondary: { - DEFAULT: "hsl(240, 4.8%, 95.9%)", - foreground: "hsl(240, 5.9%, 10%)", - }, - destructive: { - DEFAULT: "hsl(0, 84.2%, 60.2%)", - foreground: "hsl(0, 0%, 98%)", - }, - muted: { - DEFAULT: "hsl(240, 4.8%, 95.9%)", - foreground: "hsl(240, 3.8%, 46.1%)", - }, - accent: { - DEFAULT: "hsl(240, 4.8%, 95.9%)", - foreground: "hsl(240, 5.9%, 10%)", - }, - popover: { - DEFAULT: "hsl(0, 0%, 100%)", - foreground: "hsl(240, 10%, 3.9%)", - }, - card: { - DEFAULT: "hsl(0, 0%, 100%)", - foreground: "hsl(240, 10%, 3.9%)", - }, - }, - borderRadius: { - lg: "0.3rem", - md: "calc(0.3rem - 2px)", - sm: "calc(0.3rem - 4px)", - }, - keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" }, - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" }, - }, - }, - animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - }, - }, - }, - plugins: [ - require("tailwindcss-animate"), - plugin(({ addBase }) => { - addBase({ - html: { fontSize: "16px" }, // 16px es el valor por defecto - }); - }), - ], -}; diff --git a/apps/web/tailwind.config.ts.bak b/apps/web/tailwind.config.ts.bak new file mode 100644 index 00000000..ab410ee5 --- /dev/null +++ b/apps/web/tailwind.config.ts.bak @@ -0,0 +1,27 @@ +import type { Config } from "tailwindcss"; + +export default { + content: [ + "./src/**/*.{html,ts,tsx}", // Adjust the paths to match your project structure + ], + theme: { + extend: { + colors: { + "color-1": "hsl(var(--color-1))", + "color-2": "hsl(var(--color-2))", + "color-3": "hsl(var(--color-3))", + "color-4": "hsl(var(--color-4))", + "color-5": "hsl(var(--color-5))", + }, + animation: { + rainbow: "rainbow var(--speed, 2s) infinite linear", + }, + keyframes: { + rainbow: { + "0%": { "background-position": "0%" }, + "100%": { "background-position": "200%" }, + }, + }, + }, + }, +} satisfies Config; diff --git a/apps/web/tsconfig.app.json b/apps/web/tsconfig.app.json index c9ccbd4c..dd509b06 100644 --- a/apps/web/tsconfig.app.json +++ b/apps/web/tsconfig.app.json @@ -10,7 +10,7 @@ /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, + "verbatimModuleSyntax": false, "moduleDetection": "force", "noEmit": true, "jsx": "react-jsx", @@ -21,7 +21,12 @@ "noUnusedParameters": true, "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true + "noUncheckedSideEffectImports": true, + + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } }, "include": ["src"] } diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index d32ff682..2b78387c 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -1,4 +1,10 @@ { "files": [], - "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } } diff --git a/apps/web/tsconfig.node.json b/apps/web/tsconfig.node.json index 9728af2d..1277bfcb 100644 --- a/apps/web/tsconfig.node.json +++ b/apps/web/tsconfig.node.json @@ -9,7 +9,7 @@ /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, + "verbatimModuleSyntax": false, "moduleDetection": "force", "noEmit": true, diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index f16e2be3..533c4bdf 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -1,7 +1,14 @@ +import path from "path"; +import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; // https://vite.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [tailwindcss(), react()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, }); diff --git a/modules.bak/invoices/package.json b/modules.bak/invoices/package.json index 85c5dd5f..ce14f616 100644 --- a/modules.bak/invoices/package.json +++ b/modules.bak/invoices/package.json @@ -5,9 +5,7 @@ "main": "dist/index.js", "module": "dist/index.mjs", "types": "dist/index.d.ts", - "files": [ - "dist/**" - ], + "files": ["dist/**"], "scripts": { "build": "tsc", "dev": "tsc --watch", @@ -21,7 +19,6 @@ }, "devDependencies": { "@rdx/utils": "workspace:*", - "@repo/eslint-config": "workspace:*", "@repo/jest-presets": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/dinero.js": "^1.9.4", diff --git a/modules.bak/invoices/src/server/domain/value-objects/invoice-item-description.ts b/modules.bak/invoices/src/server/domain/value-objects/invoice-item-description.ts index 64f825f7..9cd47653 100644 --- a/modules.bak/invoices/src/server/domain/value-objects/invoice-item-description.ts +++ b/modules.bak/invoices/src/server/domain/value-objects/invoice-item-description.ts @@ -33,7 +33,7 @@ export class InvoiceItemDescription extends ValueObject()); } - return InvoiceItemDescription.create(value!).map((value) => Maybe.some(value)); + return InvoiceItemDescription.create(value).map((value) => Maybe.some(value)); } getValue(): string { diff --git a/modules.bak/invoices/src/server/domain/value-objects/invoice-serie.ts b/modules.bak/invoices/src/server/domain/value-objects/invoice-serie.ts index 7fc0e0e0..a4da6559 100644 --- a/modules.bak/invoices/src/server/domain/value-objects/invoice-serie.ts +++ b/modules.bak/invoices/src/server/domain/value-objects/invoice-serie.ts @@ -33,7 +33,7 @@ export class InvoiceSerie extends ValueObject { return Result.ok(Maybe.none()); } - return InvoiceSerie.create(value!).map((value) => Maybe.some(value)); + return InvoiceSerie.create(value).map((value) => Maybe.some(value)); } getValue(): string { diff --git a/modules/auth/package.json b/modules/auth/package.json new file mode 100644 index 00000000..e9498d14 --- /dev/null +++ b/modules/auth/package.json @@ -0,0 +1,14 @@ +{ + "name": "@erp/auth", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "exports": { + ".": "./src/index.ts", + "./api": "./src/api/index.ts", + "./dto": "./src/common/dto/index.ts" + }, + "dependencies": { + "@erp/core": "workspace:*" + } +} diff --git a/modules/auth/src/api/index.ts b/modules/auth/src/api/index.ts new file mode 100644 index 00000000..ba8e23c6 --- /dev/null +++ b/modules/auth/src/api/index.ts @@ -0,0 +1,25 @@ +import { IModuleServer, ModuleParams } from "@erp/core"; + +export const authAPIModule: IModuleServer = { + metadata: { + name: "auth", + version: "1.0.0", + dependencies: [], + }, + init(params: ModuleParams) { + // const contacts = getService("contacts"); + const { logger } = params; + //invoicesRouter(params); + logger.info({ message: "🚀 Auth module initialized", label: "invoices" }); + }, + registerDependencies(params: ModuleParams) { + const { database, logger } = params; + logger.info({ message: "🚀 Auth module dependencies registered", label: "invoices" }); + return { + //models, + services: { + /*...*/ + }, + }; + }, +}; diff --git a/modules/auth/src/common/dto/index.ts b/modules/auth/src/common/dto/index.ts new file mode 100644 index 00000000..6dfe18b0 --- /dev/null +++ b/modules/auth/src/common/dto/index.ts @@ -0,0 +1 @@ +export * from "./login.dto"; diff --git a/modules/auth/src/common/dto/login.dto.ts b/modules/auth/src/common/dto/login.dto.ts new file mode 100644 index 00000000..eaaa7920 --- /dev/null +++ b/modules/auth/src/common/dto/login.dto.ts @@ -0,0 +1,14 @@ +export interface ILoginRequestDTO { + email: string; + password: string; +} + +export interface ILoginResponseDTO { + id: string; + name: string; + email: string; + lang_code: string; + roles: string[]; + token: string; + refresh_token: string; +} diff --git a/modules/auth/src/common/index.ts b/modules/auth/src/common/index.ts new file mode 100644 index 00000000..0392b1b4 --- /dev/null +++ b/modules/auth/src/common/index.ts @@ -0,0 +1 @@ +export * from "./dto"; diff --git a/modules/auth/src/index.ts b/modules/auth/src/index.ts new file mode 100644 index 00000000..04598853 --- /dev/null +++ b/modules/auth/src/index.ts @@ -0,0 +1,2 @@ +export * from "./api"; +export * from "./common"; diff --git a/modules/auth/tsconfig.json b/modules/auth/tsconfig.json new file mode 100644 index 00000000..caa25c85 --- /dev/null +++ b/modules/auth/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@repo/typescript-config/root.json", + "compilerOptions": { + "composite": true + }, + "include": ["src"] +} diff --git a/modules/core/package.json b/modules/core/package.json new file mode 100644 index 00000000..43db3cc1 --- /dev/null +++ b/modules/core/package.json @@ -0,0 +1,12 @@ +{ + "name": "@erp/core", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "exports": { + ".": "./src/index.ts" + }, + "dependencies": { + "sequelize": "^6.37.5" + } +} diff --git a/modules/core/src/dto/index.ts b/modules/core/src/dto/index.ts new file mode 100644 index 00000000..5039cbcf --- /dev/null +++ b/modules/core/src/dto/index.ts @@ -0,0 +1 @@ +export * from "./list.dto"; diff --git a/modules/core/src/dto/list.dto.ts b/modules/core/src/dto/list.dto.ts new file mode 100644 index 00000000..97ea61f6 --- /dev/null +++ b/modules/core/src/dto/list.dto.ts @@ -0,0 +1,19 @@ +export interface ListResponseDTO { + page: number; + per_page: number; + total_pages: number; + total_items: number; + items: T[]; +} + +export const IsResponseAListDTO = (response: any): response is ListResponseDTO => { + return ( + typeof response === "object" && + response !== null && + Object.prototype.hasOwnProperty.call(response, "total_items") + ); +}; + +export const existsMoreReponsePages = (response: any): response is ListResponseDTO => { + return IsResponseAListDTO(response) && response.page + 1 < response.total_pages; +}; diff --git a/modules/core/src/index.ts b/modules/core/src/index.ts new file mode 100644 index 00000000..3f798697 --- /dev/null +++ b/modules/core/src/index.ts @@ -0,0 +1,3 @@ +export * from "./logger"; +export * from "./modules"; +export * from "./dto"; diff --git a/modules/core/src/logger/index.ts b/modules/core/src/logger/index.ts new file mode 100644 index 00000000..cdb53790 --- /dev/null +++ b/modules/core/src/logger/index.ts @@ -0,0 +1 @@ +export * from "./logger.interface"; diff --git a/modules/core/src/logger/logger.interface.ts b/modules/core/src/logger/logger.interface.ts new file mode 100644 index 00000000..c1cec766 --- /dev/null +++ b/modules/core/src/logger/logger.interface.ts @@ -0,0 +1,5 @@ +export interface ILogger { + info(message: string, meta?: any): void; + warn(message: string, meta?: any): void; + error(message: string, error?: Error | any): void; +} diff --git a/packages.bak/rdx-criteria/src/index.ts b/modules/core/src/logger/logger.ts similarity index 100% rename from packages.bak/rdx-criteria/src/index.ts rename to modules/core/src/logger/logger.ts diff --git a/apps/server/src/core/common/helpers/modules/index.ts b/modules/core/src/modules/index.ts similarity index 100% rename from apps/server/src/core/common/helpers/modules/index.ts rename to modules/core/src/modules/index.ts diff --git a/apps/server/src/core/common/helpers/modules/module-server.interface.ts b/modules/core/src/modules/module-server.interface.ts similarity index 100% rename from apps/server/src/core/common/helpers/modules/module-server.interface.ts rename to modules/core/src/modules/module-server.interface.ts diff --git a/apps/server/src/core/common/helpers/modules/types.ts b/modules/core/src/modules/types.ts similarity index 100% rename from apps/server/src/core/common/helpers/modules/types.ts rename to modules/core/src/modules/types.ts diff --git a/modules/core/tsconfig.json b/modules/core/tsconfig.json new file mode 100644 index 00000000..4401f691 --- /dev/null +++ b/modules/core/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "composite": true + }, + "include": ["src"] +} diff --git a/modules/invoices/package.json b/modules/invoices/package.json new file mode 100644 index 00000000..a3edd79b --- /dev/null +++ b/modules/invoices/package.json @@ -0,0 +1,13 @@ +{ + "name": "@erp/invoices", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "exports": { + "./api": "./src/api/index.ts", + "./web": "./src/web/index.ts" + }, + "dependencies": { + "@erp/core": "workspace:*" + } +} diff --git a/apps/server/src/contexts/invoices/application/create-invoice.use-case.ts b/modules/invoices/src/api/application/create-invoice.use-case.ts similarity index 97% rename from apps/server/src/contexts/invoices/application/create-invoice.use-case.ts rename to modules/invoices/src/api/application/create-invoice.use-case.ts index c422034c..bf26d503 100644 --- a/apps/server/src/contexts/invoices/application/create-invoice.use-case.ts +++ b/modules/invoices/src/api/application/create-invoice.use-case.ts @@ -8,9 +8,9 @@ import { InvoiceSerie, InvoiceStatus, } from "@/contexts/invoices/domain"; -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Result } from "@repo/rdx-utils"; import { ICreateInvoiceRequestDTO } from "../presentation/dto"; export class CreateInvoiceUseCase { diff --git a/apps/server/src/contexts/invoices/application/delete-invoice.use-case.ts b/modules/invoices/src/api/application/delete-invoice.use-case.ts similarity index 86% rename from apps/server/src/contexts/invoices/application/delete-invoice.use-case.ts rename to modules/invoices/src/api/application/delete-invoice.use-case.ts index dc98f726..e2ba05ab 100644 --- a/apps/server/src/contexts/invoices/application/delete-invoice.use-case.ts +++ b/modules/invoices/src/api/application/delete-invoice.use-case.ts @@ -1,7 +1,7 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Result } from "@repo/rdx-utils"; import { IInvoiceService } from "../domain"; export class DeleteInvoiceUseCase { diff --git a/apps/server/src/contexts/invoices/application/get-invoice.use-case.ts b/modules/invoices/src/api/application/get-invoice.use-case.ts similarity index 86% rename from apps/server/src/contexts/invoices/application/get-invoice.use-case.ts rename to modules/invoices/src/api/application/get-invoice.use-case.ts index f09b8f1f..ac507a1b 100644 --- a/apps/server/src/contexts/invoices/application/get-invoice.use-case.ts +++ b/modules/invoices/src/api/application/get-invoice.use-case.ts @@ -1,7 +1,7 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Result } from "@repo/rdx-utils"; import { IInvoiceService, Invoice } from "../domain"; export class GetInvoiceUseCase { diff --git a/apps/server/src/contexts/invoices/application/index.ts b/modules/invoices/src/api/application/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/application/index.ts rename to modules/invoices/src/api/application/index.ts diff --git a/apps/server/src/contexts/invoices/application/list-invoices.use-case.ts b/modules/invoices/src/api/application/list-invoices.use-case.ts similarity index 84% rename from apps/server/src/contexts/invoices/application/list-invoices.use-case.ts rename to modules/invoices/src/api/application/list-invoices.use-case.ts index ab1c3e07..b829323a 100644 --- a/apps/server/src/contexts/invoices/application/list-invoices.use-case.ts +++ b/modules/invoices/src/api/application/list-invoices.use-case.ts @@ -1,6 +1,6 @@ -import { Collection, Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; +import { Collection, Result } from "@repo/rdx-utils"; import { IInvoiceService, Invoice } from "../domain"; export class ListInvoicesUseCase { diff --git a/apps/server/src/contexts/invoices/application/services/index.ts b/modules/invoices/src/api/application/services/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/application/services/index.ts rename to modules/invoices/src/api/application/services/index.ts diff --git a/apps/server/src/contexts/invoices/application/services/participantAddressFinder.ts b/modules/invoices/src/api/application/services/participantAddressFinder.ts similarity index 100% rename from apps/server/src/contexts/invoices/application/services/participantAddressFinder.ts rename to modules/invoices/src/api/application/services/participantAddressFinder.ts diff --git a/apps/server/src/contexts/invoices/application/services/participantFinder.ts b/modules/invoices/src/api/application/services/participantFinder.ts similarity index 100% rename from apps/server/src/contexts/invoices/application/services/participantFinder.ts rename to modules/invoices/src/api/application/services/participantFinder.ts diff --git a/apps/server/src/contexts/invoices/application/update-invoice.use-case.ts b/modules/invoices/src/api/application/update-invoice.use-case.ts similarity index 99% rename from apps/server/src/contexts/invoices/application/update-invoice.use-case.ts rename to modules/invoices/src/api/application/update-invoice.use-case.ts index a9d49ef9..919568ae 100644 --- a/apps/server/src/contexts/invoices/application/update-invoice.use-case.ts +++ b/modules/invoices/src/api/application/update-invoice.use-case.ts @@ -1,6 +1,6 @@ import { UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; import { ITransactionManager } from "@/core/common/infrastructure/database"; +import { Result } from "@repo/rdx-utils"; import { IInvoiceService, Invoice } from "../domain"; import { IUpdateInvoiceRequestDTO } from "../presentation/dto"; diff --git a/apps/server/src/contexts/invoices/domain/aggregates/index.ts b/modules/invoices/src/api/domain/aggregates/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/aggregates/index.ts rename to modules/invoices/src/api/domain/aggregates/index.ts diff --git a/apps/server/src/contexts/invoices/domain/aggregates/invoice.ts b/modules/invoices/src/api/domain/aggregates/invoice.ts similarity index 98% rename from apps/server/src/contexts/invoices/domain/aggregates/invoice.ts rename to modules/invoices/src/api/domain/aggregates/invoice.ts index 6ead0cf3..d4329779 100644 --- a/apps/server/src/contexts/invoices/domain/aggregates/invoice.ts +++ b/modules/invoices/src/api/domain/aggregates/invoice.ts @@ -1,5 +1,5 @@ import { AggregateRoot, MoneyValue, UniqueID, UtcDate } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { InvoiceCustomer, InvoiceItem, InvoiceItems } from "../entities"; import { InvoiceNumber, InvoiceSerie, InvoiceStatus } from "../value-objects"; diff --git a/apps/server/src/contexts/invoices/domain/entities/index.ts b/modules/invoices/src/api/domain/entities/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/entities/index.ts rename to modules/invoices/src/api/domain/entities/index.ts diff --git a/apps/server/src/contexts/invoices/domain/entities/invoice-customer/index.ts b/modules/invoices/src/api/domain/entities/invoice-customer/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/entities/invoice-customer/index.ts rename to modules/invoices/src/api/domain/entities/invoice-customer/index.ts diff --git a/apps/server/src/contexts/invoices/domain/entities/invoice-customer/invoice-address.ts b/modules/invoices/src/api/domain/entities/invoice-customer/invoice-address.ts similarity index 97% rename from apps/server/src/contexts/invoices/domain/entities/invoice-customer/invoice-address.ts rename to modules/invoices/src/api/domain/entities/invoice-customer/invoice-address.ts index 13c06219..a266e285 100644 --- a/apps/server/src/contexts/invoices/domain/entities/invoice-customer/invoice-address.ts +++ b/modules/invoices/src/api/domain/entities/invoice-customer/invoice-address.ts @@ -4,7 +4,7 @@ import { type PostalAddress, ValueObject, } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { PhoneNumber } from "libphonenumber-js"; import { InvoiceAddressType } from "../../value-objects"; diff --git a/apps/server/src/contexts/invoices/domain/entities/invoice-customer/invoice-customer.ts b/modules/invoices/src/api/domain/entities/invoice-customer/invoice-customer.ts similarity index 96% rename from apps/server/src/contexts/invoices/domain/entities/invoice-customer/invoice-customer.ts rename to modules/invoices/src/api/domain/entities/invoice-customer/invoice-customer.ts index 4cd49279..3f4a1317 100644 --- a/apps/server/src/contexts/invoices/domain/entities/invoice-customer/invoice-customer.ts +++ b/modules/invoices/src/api/domain/entities/invoice-customer/invoice-customer.ts @@ -1,5 +1,5 @@ import { DomainEntity, Name, TINNumber, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { InvoiceAddress } from "./invoice-address"; export interface IInvoiceCustomerProps { diff --git a/apps/server/src/contexts/invoices/domain/entities/invoice-items/index.ts b/modules/invoices/src/api/domain/entities/invoice-items/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/entities/invoice-items/index.ts rename to modules/invoices/src/api/domain/entities/invoice-items/index.ts diff --git a/apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-item.test.ts b/modules/invoices/src/api/domain/entities/invoice-items/invoice-item.test.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-item.test.ts rename to modules/invoices/src/api/domain/entities/invoice-items/invoice-item.test.ts diff --git a/apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-item.ts b/modules/invoices/src/api/domain/entities/invoice-items/invoice-item.ts similarity index 98% rename from apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-item.ts rename to modules/invoices/src/api/domain/entities/invoice-items/invoice-item.ts index 6d05b562..38af9344 100644 --- a/apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-item.ts +++ b/modules/invoices/src/api/domain/entities/invoice-items/invoice-item.ts @@ -1,5 +1,5 @@ import { DomainEntity, MoneyValue, Percentage, Quantity, UniqueID } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { InvoiceItemDescription } from "../../value-objects"; export interface IInvoiceItemProps { diff --git a/apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-items.ts b/modules/invoices/src/api/domain/entities/invoice-items/invoice-items.ts similarity index 80% rename from apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-items.ts rename to modules/invoices/src/api/domain/entities/invoice-items/invoice-items.ts index 139d15b1..de11fc1f 100644 --- a/apps/server/src/contexts/invoices/domain/entities/invoice-items/invoice-items.ts +++ b/modules/invoices/src/api/domain/entities/invoice-items/invoice-items.ts @@ -1,4 +1,4 @@ -import { Collection } from "@/core/common/helpers"; +import { Collection } from "@repo/rdx-utils"; import { InvoiceItem } from "./invoice-item"; export class InvoiceItems extends Collection { diff --git a/apps/server/src/contexts/invoices/domain/index.ts b/modules/invoices/src/api/domain/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/index.ts rename to modules/invoices/src/api/domain/index.ts diff --git a/apps/server/src/contexts/invoices/domain/repositories/index.ts b/modules/invoices/src/api/domain/repositories/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/repositories/index.ts rename to modules/invoices/src/api/domain/repositories/index.ts diff --git a/apps/server/src/contexts/invoices/domain/repositories/invoice-repository.interface.ts b/modules/invoices/src/api/domain/repositories/invoice-repository.interface.ts similarity index 89% rename from apps/server/src/contexts/invoices/domain/repositories/invoice-repository.interface.ts rename to modules/invoices/src/api/domain/repositories/invoice-repository.interface.ts index a6eb7371..fb8e5f4e 100644 --- a/apps/server/src/contexts/invoices/domain/repositories/invoice-repository.interface.ts +++ b/modules/invoices/src/api/domain/repositories/invoice-repository.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Invoice } from "../aggregates"; export interface IInvoiceRepository { diff --git a/apps/server/src/contexts/invoices/domain/services/index.ts b/modules/invoices/src/api/domain/services/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/services/index.ts rename to modules/invoices/src/api/domain/services/index.ts diff --git a/apps/server/src/contexts/invoices/domain/services/invoice-service.interface.ts b/modules/invoices/src/api/domain/services/invoice-service.interface.ts similarity index 91% rename from apps/server/src/contexts/invoices/domain/services/invoice-service.interface.ts rename to modules/invoices/src/api/domain/services/invoice-service.interface.ts index 023c82fb..1fdac532 100644 --- a/apps/server/src/contexts/invoices/domain/services/invoice-service.interface.ts +++ b/modules/invoices/src/api/domain/services/invoice-service.interface.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { IInvoiceProps, Invoice } from "../aggregates"; export interface IInvoiceService { diff --git a/apps/server/src/contexts/invoices/domain/services/invoice.service.ts b/modules/invoices/src/api/domain/services/invoice.service.ts similarity index 97% rename from apps/server/src/contexts/invoices/domain/services/invoice.service.ts rename to modules/invoices/src/api/domain/services/invoice.service.ts index 1741e3dd..b252f35c 100644 --- a/apps/server/src/contexts/invoices/domain/services/invoice.service.ts +++ b/modules/invoices/src/api/domain/services/invoice.service.ts @@ -1,5 +1,5 @@ import { UniqueID } from "@/core/common/domain"; -import { Collection, Result } from "@/core/common/helpers"; +import { Collection, Result } from "@repo/rdx-utils"; import { Transaction } from "sequelize"; import { IInvoiceProps, Invoice } from "../aggregates"; import { IInvoiceRepository } from "../repositories"; diff --git a/apps/server/src/contexts/invoices/domain/value-objects/index.ts b/modules/invoices/src/api/domain/value-objects/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/domain/value-objects/index.ts rename to modules/invoices/src/api/domain/value-objects/index.ts diff --git a/apps/server/src/contexts/invoices/domain/value-objects/invoice-address-type.ts b/modules/invoices/src/api/domain/value-objects/invoice-address-type.ts similarity index 94% rename from apps/server/src/contexts/invoices/domain/value-objects/invoice-address-type.ts rename to modules/invoices/src/api/domain/value-objects/invoice-address-type.ts index 90f022af..955d8ca1 100644 --- a/apps/server/src/contexts/invoices/domain/value-objects/invoice-address-type.ts +++ b/modules/invoices/src/api/domain/value-objects/invoice-address-type.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; interface IInvoiceAddressTypeProps { value: string; diff --git a/apps/server/src/contexts/invoices/domain/value-objects/invoice-item-description.ts b/modules/invoices/src/api/domain/value-objects/invoice-item-description.ts similarity index 89% rename from apps/server/src/contexts/invoices/domain/value-objects/invoice-item-description.ts rename to modules/invoices/src/api/domain/value-objects/invoice-item-description.ts index ebfbe0b5..72662d9e 100644 --- a/apps/server/src/contexts/invoices/domain/value-objects/invoice-item-description.ts +++ b/modules/invoices/src/api/domain/value-objects/invoice-item-description.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod"; interface IInvoiceItemDescriptionProps { @@ -33,7 +33,7 @@ export class InvoiceItemDescription extends ValueObject()); } - return InvoiceItemDescription.create(value!).map((value) => Maybe.some(value)); + return InvoiceItemDescription.create(value).map((value) => Maybe.some(value)); } getValue(): string { diff --git a/apps/server/src/contexts/invoices/domain/value-objects/invoice-number.ts b/modules/invoices/src/api/domain/value-objects/invoice-number.ts similarity index 95% rename from apps/server/src/contexts/invoices/domain/value-objects/invoice-number.ts rename to modules/invoices/src/api/domain/value-objects/invoice-number.ts index dbf72478..0e529a94 100644 --- a/apps/server/src/contexts/invoices/domain/value-objects/invoice-number.ts +++ b/modules/invoices/src/api/domain/value-objects/invoice-number.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; interface IInvoiceNumberProps { diff --git a/apps/server/src/contexts/invoices/domain/value-objects/invoice-serie.ts b/modules/invoices/src/api/domain/value-objects/invoice-serie.ts similarity index 89% rename from apps/server/src/contexts/invoices/domain/value-objects/invoice-serie.ts rename to modules/invoices/src/api/domain/value-objects/invoice-serie.ts index 282f6e9e..73d00b41 100644 --- a/apps/server/src/contexts/invoices/domain/value-objects/invoice-serie.ts +++ b/modules/invoices/src/api/domain/value-objects/invoice-serie.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod"; interface IInvoiceSerieProps { @@ -33,7 +33,7 @@ export class InvoiceSerie extends ValueObject { return Result.ok(Maybe.none()); } - return InvoiceSerie.create(value!).map((value) => Maybe.some(value)); + return InvoiceSerie.create(value).map((value) => Maybe.some(value)); } getValue(): string { diff --git a/apps/server/src/contexts/invoices/domain/value-objects/invoice-status.ts b/modules/invoices/src/api/domain/value-objects/invoice-status.ts similarity index 97% rename from apps/server/src/contexts/invoices/domain/value-objects/invoice-status.ts rename to modules/invoices/src/api/domain/value-objects/invoice-status.ts index 30304360..43254e58 100644 --- a/apps/server/src/contexts/invoices/domain/value-objects/invoice-status.ts +++ b/modules/invoices/src/api/domain/value-objects/invoice-status.ts @@ -1,5 +1,5 @@ import { ValueObject } from "@/core/common/domain"; -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; interface IInvoiceStatusProps { value: string; diff --git a/modules/invoices/src/api/index.ts b/modules/invoices/src/api/index.ts new file mode 100644 index 00000000..75623eb3 --- /dev/null +++ b/modules/invoices/src/api/index.ts @@ -0,0 +1,26 @@ +import { IModuleServer, ModuleParams } from "@erp/core"; + +export const invoicesModule: IModuleServer = { + metadata: { + name: "invoices", + version: "1.0.0", + dependencies: [], + }, + init(params: ModuleParams) { + // const contacts = getService("contacts"); + const { logger } = params; + //invoicesRouter(params); + logger.info({ message: "🚀 Invoices module initialized", label: "invoices" }); + }, + registerDependencies(params) { + const { database, logger } = params; + logger.info({ message: "🚀 Invoices module dependencies registered", label: "invoices" }); + return { + //models, + services: { + getInvoice: () => {}, + /*...*/ + }, + }; + }, +}; diff --git a/apps/server/src/contexts/invoices/intrastructure/Contact.repository.ts.bak b/modules/invoices/src/api/intrastructure/Contact.repository.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/Contact.repository.ts.bak rename to modules/invoices/src/api/intrastructure/Contact.repository.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/express/index.ts b/modules/invoices/src/api/intrastructure/express/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/express/index.ts rename to modules/invoices/src/api/intrastructure/express/index.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/express/invoices.routes.ts b/modules/invoices/src/api/intrastructure/express/invoices.routes.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/express/invoices.routes.ts rename to modules/invoices/src/api/intrastructure/express/invoices.routes.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/index.ts b/modules/invoices/src/api/intrastructure/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/index.ts rename to modules/invoices/src/api/intrastructure/index.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/mappers/contact.mapper.ts.bak b/modules/invoices/src/api/intrastructure/mappers/contact.mapper.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/mappers/contact.mapper.ts.bak rename to modules/invoices/src/api/intrastructure/mappers/contact.mapper.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/mappers/contactAddress.mapper.ts.bak b/modules/invoices/src/api/intrastructure/mappers/contactAddress.mapper.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/mappers/contactAddress.mapper.ts.bak rename to modules/invoices/src/api/intrastructure/mappers/contactAddress.mapper.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/mappers/index.ts b/modules/invoices/src/api/intrastructure/mappers/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/mappers/index.ts rename to modules/invoices/src/api/intrastructure/mappers/index.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/mappers/invoice-item.mapper.ts b/modules/invoices/src/api/intrastructure/mappers/invoice-item.mapper.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/mappers/invoice-item.mapper.ts rename to modules/invoices/src/api/intrastructure/mappers/invoice-item.mapper.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/mappers/invoice.mapper.ts b/modules/invoices/src/api/intrastructure/mappers/invoice.mapper.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/mappers/invoice.mapper.ts rename to modules/invoices/src/api/intrastructure/mappers/invoice.mapper.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/mappers/invoiceParticipant.mapper.ts.bak b/modules/invoices/src/api/intrastructure/mappers/invoiceParticipant.mapper.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/mappers/invoiceParticipant.mapper.ts.bak rename to modules/invoices/src/api/intrastructure/mappers/invoiceParticipant.mapper.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/mappers/invoiceParticipantAddress.mapper.ts.bak b/modules/invoices/src/api/intrastructure/mappers/invoiceParticipantAddress.mapper.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/mappers/invoiceParticipantAddress.mapper.ts.bak rename to modules/invoices/src/api/intrastructure/mappers/invoiceParticipantAddress.mapper.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/contact.mo.del.ts.bak b/modules/invoices/src/api/intrastructure/sequelize/contact.mo.del.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/contact.mo.del.ts.bak rename to modules/invoices/src/api/intrastructure/sequelize/contact.mo.del.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/contactAddress.mo.del.ts.bak b/modules/invoices/src/api/intrastructure/sequelize/contactAddress.mo.del.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/contactAddress.mo.del.ts.bak rename to modules/invoices/src/api/intrastructure/sequelize/contactAddress.mo.del.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/index.ts b/modules/invoices/src/api/intrastructure/sequelize/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/index.ts rename to modules/invoices/src/api/intrastructure/sequelize/index.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/invoice-item.model.ts b/modules/invoices/src/api/intrastructure/sequelize/invoice-item.model.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/invoice-item.model.ts rename to modules/invoices/src/api/intrastructure/sequelize/invoice-item.model.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/invoice.model.ts b/modules/invoices/src/api/intrastructure/sequelize/invoice.model.ts similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/invoice.model.ts rename to modules/invoices/src/api/intrastructure/sequelize/invoice.model.ts diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/invoice.repository.ts b/modules/invoices/src/api/intrastructure/sequelize/invoice.repository.ts similarity index 98% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/invoice.repository.ts rename to modules/invoices/src/api/intrastructure/sequelize/invoice.repository.ts index d275402c..6752d02b 100644 --- a/apps/server/src/contexts/invoices/intrastructure/sequelize/invoice.repository.ts +++ b/modules/invoices/src/api/intrastructure/sequelize/invoice.repository.ts @@ -1,5 +1,5 @@ import { Collection, Result, SequelizeRepository, UniqueID } from "@/core"; -import { logger } from "@/core/common/infrastructure/logger"; +import { logger } from "@/core/logger"; import { Sequelize, Transaction } from "sequelize"; import { IInvoiceRepository, Invoice } from "../../domain"; import { IInvoiceMapper } from "../mappers/invoice.mapper"; diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/invoiceParticipant.mo.del.ts.bak b/modules/invoices/src/api/intrastructure/sequelize/invoiceParticipant.mo.del.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/invoiceParticipant.mo.del.ts.bak rename to modules/invoices/src/api/intrastructure/sequelize/invoiceParticipant.mo.del.ts.bak diff --git a/apps/server/src/contexts/invoices/intrastructure/sequelize/invoiceParticipantAddress.mo.del.ts.bak b/modules/invoices/src/api/intrastructure/sequelize/invoiceParticipantAddress.mo.del.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/intrastructure/sequelize/invoiceParticipantAddress.mo.del.ts.bak rename to modules/invoices/src/api/intrastructure/sequelize/invoiceParticipantAddress.mo.del.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/create-invoice/create-invoice.controller.ts b/modules/invoices/src/api/presentation/controllers/create-invoice/create-invoice.controller.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/create-invoice/create-invoice.controller.ts rename to modules/invoices/src/api/presentation/controllers/create-invoice/create-invoice.controller.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/create-invoice/index.ts b/modules/invoices/src/api/presentation/controllers/create-invoice/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/create-invoice/index.ts rename to modules/invoices/src/api/presentation/controllers/create-invoice/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/InvoiceItem.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/create-invoice/presenter/InvoiceItem.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/InvoiceItem.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/create-invoice/presenter/InvoiceItem.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/InvoiceParticipant.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/create-invoice/presenter/InvoiceParticipant.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/InvoiceParticipant.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/create-invoice/presenter/InvoiceParticipant.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/create-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/create-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/create-invoice.presenter.ts b/modules/invoices/src/api/presentation/controllers/create-invoice/presenter/create-invoice.presenter.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/create-invoice.presenter.ts rename to modules/invoices/src/api/presentation/controllers/create-invoice/presenter/create-invoice.presenter.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/index.ts b/modules/invoices/src/api/presentation/controllers/create-invoice/presenter/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/create-invoice/presenter/index.ts rename to modules/invoices/src/api/presentation/controllers/create-invoice/presenter/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/delete-invoice/delete-invoice.controller.ts.bak b/modules/invoices/src/api/presentation/controllers/delete-invoice/delete-invoice.controller.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/delete-invoice/delete-invoice.controller.ts.bak rename to modules/invoices/src/api/presentation/controllers/delete-invoice/delete-invoice.controller.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/delete-invoice/index.ts.bak b/modules/invoices/src/api/presentation/controllers/delete-invoice/index.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/delete-invoice/index.ts.bak rename to modules/invoices/src/api/presentation/controllers/delete-invoice/index.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/get-invoice/get-invoice.controller.ts b/modules/invoices/src/api/presentation/controllers/get-invoice/get-invoice.controller.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/get-invoice/get-invoice.controller.ts rename to modules/invoices/src/api/presentation/controllers/get-invoice/get-invoice.controller.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/get-invoice/index.ts b/modules/invoices/src/api/presentation/controllers/get-invoice/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/get-invoice/index.ts rename to modules/invoices/src/api/presentation/controllers/get-invoice/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/InvoiceItem.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/get-invoice/presenter/InvoiceItem.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/InvoiceItem.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/get-invoice/presenter/InvoiceItem.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/InvoiceParticipant.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/get-invoice/presenter/InvoiceParticipant.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/InvoiceParticipant.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/get-invoice/presenter/InvoiceParticipant.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/get-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/get-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/get-invoice.presenter.ts b/modules/invoices/src/api/presentation/controllers/get-invoice/presenter/get-invoice.presenter.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/get-invoice.presenter.ts rename to modules/invoices/src/api/presentation/controllers/get-invoice/presenter/get-invoice.presenter.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/index.ts b/modules/invoices/src/api/presentation/controllers/get-invoice/presenter/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/get-invoice/presenter/index.ts rename to modules/invoices/src/api/presentation/controllers/get-invoice/presenter/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/index.ts b/modules/invoices/src/api/presentation/controllers/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/index.ts rename to modules/invoices/src/api/presentation/controllers/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/list-invoices/index.ts b/modules/invoices/src/api/presentation/controllers/list-invoices/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/list-invoices/index.ts rename to modules/invoices/src/api/presentation/controllers/list-invoices/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/list-invoices/list-invoices.controller.ts b/modules/invoices/src/api/presentation/controllers/list-invoices/list-invoices.controller.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/list-invoices/list-invoices.controller.ts rename to modules/invoices/src/api/presentation/controllers/list-invoices/list-invoices.controller.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/InvoiceParticipant.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/list-invoices/presenter/InvoiceParticipant.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/InvoiceParticipant.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/list-invoices/presenter/InvoiceParticipant.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/InvoiceParticipantAddress.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/list-invoices/presenter/InvoiceParticipantAddress.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/InvoiceParticipantAddress.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/list-invoices/presenter/InvoiceParticipantAddress.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/index.ts b/modules/invoices/src/api/presentation/controllers/list-invoices/presenter/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/index.ts rename to modules/invoices/src/api/presentation/controllers/list-invoices/presenter/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/list-invoices.presenter.ts b/modules/invoices/src/api/presentation/controllers/list-invoices/presenter/list-invoices.presenter.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/list-invoices/presenter/list-invoices.presenter.ts rename to modules/invoices/src/api/presentation/controllers/list-invoices/presenter/list-invoices.presenter.ts diff --git a/apps/server/src/contexts/invoices/presentation/controllers/update-invoice/index.ts.bak b/modules/invoices/src/api/presentation/controllers/update-invoice/index.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/update-invoice/index.ts.bak rename to modules/invoices/src/api/presentation/controllers/update-invoice/index.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/InvoiceItem.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/update-invoice/presenter/InvoiceItem.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/InvoiceItem.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/update-invoice/presenter/InvoiceItem.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/InvoiceParticipant.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/update-invoice/presenter/InvoiceParticipant.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/InvoiceParticipant.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/update-invoice/presenter/InvoiceParticipant.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/update-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/update-invoice/presenter/InvoiceParticipantAddress.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/UpdateInvoice.presenter.ts.bak b/modules/invoices/src/api/presentation/controllers/update-invoice/presenter/UpdateInvoice.presenter.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/UpdateInvoice.presenter.ts.bak rename to modules/invoices/src/api/presentation/controllers/update-invoice/presenter/UpdateInvoice.presenter.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/index.ts.bak b/modules/invoices/src/api/presentation/controllers/update-invoice/presenter/index.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/update-invoice/presenter/index.ts.bak rename to modules/invoices/src/api/presentation/controllers/update-invoice/presenter/index.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/controllers/update-invoice/update-invoice.controller.ts.bak b/modules/invoices/src/api/presentation/controllers/update-invoice/update-invoice.controller.ts.bak similarity index 100% rename from apps/server/src/contexts/invoices/presentation/controllers/update-invoice/update-invoice.controller.ts.bak rename to modules/invoices/src/api/presentation/controllers/update-invoice/update-invoice.controller.ts.bak diff --git a/apps/server/src/contexts/invoices/presentation/dto/index.ts b/modules/invoices/src/api/presentation/dto/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/dto/index.ts rename to modules/invoices/src/api/presentation/dto/index.ts diff --git a/apps/server/src/contexts/invoices/presentation/dto/invoices.request.dto.ts b/modules/invoices/src/api/presentation/dto/invoices.request.dto.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/dto/invoices.request.dto.ts rename to modules/invoices/src/api/presentation/dto/invoices.request.dto.ts diff --git a/apps/server/src/contexts/invoices/presentation/dto/invoices.response.dto.ts b/modules/invoices/src/api/presentation/dto/invoices.response.dto.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/dto/invoices.response.dto.ts rename to modules/invoices/src/api/presentation/dto/invoices.response.dto.ts diff --git a/apps/server/src/contexts/invoices/presentation/dto/invoices.schemas.ts b/modules/invoices/src/api/presentation/dto/invoices.schemas.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/dto/invoices.schemas.ts rename to modules/invoices/src/api/presentation/dto/invoices.schemas.ts diff --git a/apps/server/src/contexts/invoices/presentation/index.ts b/modules/invoices/src/api/presentation/index.ts similarity index 100% rename from apps/server/src/contexts/invoices/presentation/index.ts rename to modules/invoices/src/api/presentation/index.ts diff --git a/modules/invoices/tsconfig.json b/modules/invoices/tsconfig.json new file mode 100644 index 00000000..4401f691 --- /dev/null +++ b/modules/invoices/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "composite": true + }, + "include": ["src"] +} diff --git a/package.json b/package.json index dfc51c6b..43a12fd8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,11 @@ { "name": "uecko-erp-2025", "private": true, + "workspaces": [ + "apps/*", + "modules/*", + "packages/*" + ], "scripts": { "build": "turbo build", "dev": "turbo dev", @@ -10,11 +15,12 @@ "format-and-lint:fix": "biome check . --write", "ui:add": "pnpm --filter @repo/shadcn-ui ui:add", "create:package": "ts-node scripts/create-package.ts", - "volta:install": "curl https://get.volta.sh | bash" + "volta:install": "curl https://get.volta.sh | bash", + "clean": "find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \\;" }, "devDependencies": { "@biomejs/biome": "1.9.4", - "@types/node": "^22.14.1", + "@repo/typescript-config": "workspace:*", "fs": "0.0.1-security", "inquirer": "^12.5.2", "path": "^0.12.7", diff --git a/packages.bak/rdx-criteria/package.json b/packages.bak/rdx-criteria/package.json deleted file mode 100644 index 9649c591..00000000 --- a/packages.bak/rdx-criteria/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rdx/criteria", - "private": true, - "type": "module", - "scripts": { - "test": "node --import tsx --test test/*.test.ts", - "build": "tsc" - }, - "devDependencies": { - "@changesets/cli": "^2.27.5", - "@faker-js/faker": "^8.3.1", - "@repo/typescript-config": "workspace:*", - "@types/node": "^22.10.7", - "eslint-config-codely": "^3.1.4", - "tsx": "^4.13.2", - "typescript": "^5.8.3" - } -} diff --git a/packages.bak/rdx-criteria/src/pagination.ts/index.ts b/packages.bak/rdx-criteria/src/pagination.ts/index.ts deleted file mode 100644 index 85731be1..00000000 --- a/packages.bak/rdx-criteria/src/pagination.ts/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface ICriteriaProps {} - -export interface ICriteria {} - -class Criteria implements ICriteria {} diff --git a/packages.bak/rdx-criteria/tsconfig.json b/packages.bak/rdx-criteria/tsconfig.json deleted file mode 100644 index c23cdeef..00000000 --- a/packages.bak/rdx-criteria/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@repo/typescript-config/base.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["."], - "exclude": ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"] -} diff --git a/packages.bak/rdx-ddd-domain/package.json b/packages.bak/rdx-ddd-domain/package.json index e5cd34fe..259fbc79 100644 --- a/packages.bak/rdx-ddd-domain/package.json +++ b/packages.bak/rdx-ddd-domain/package.json @@ -5,9 +5,7 @@ "main": "dist/index.js", "module": "dist/index.mjs", "types": "dist/index.d.ts", - "files": [ - "dist/**" - ], + "files": ["dist/**"], "scripts": { "build": "tsc", "dev": "tsc --watch", @@ -20,12 +18,9 @@ "preset": "@repo/jest-presets/node" }, "devDependencies": { - "@rdx/utils": "workspace:*", - "@repo/eslint-config": "workspace:*", - "@repo/jest-presets": "workspace:*", "@repo/typescript-config": "workspace:*", + "@rdx/utils": "workspace:*", "@types/dinero.js": "^1.9.4", - "jest": "^29.7.0", "typescript": "^5.8.3" }, "dependencies": { diff --git a/packages.bak/rdx-ddd-domain/src/value-objects/email-address.ts b/packages.bak/rdx-ddd-domain/src/value-objects/email-address.ts index 5c1f7db3..89b1dc5e 100644 --- a/packages.bak/rdx-ddd-domain/src/value-objects/email-address.ts +++ b/packages.bak/rdx-ddd-domain/src/value-objects/email-address.ts @@ -21,7 +21,7 @@ export class EmailAddress extends ValueObject { return Result.ok(Maybe.none()); } - return EmailAddress.create(value!).map((value) => Maybe.some(value)); + return EmailAddress.create(value).map((value) => Maybe.some(value)); } private static validate(value: string) { diff --git a/packages.bak/rdx-ddd-domain/src/value-objects/name.ts b/packages.bak/rdx-ddd-domain/src/value-objects/name.ts index bd2ab175..90cac5a9 100644 --- a/packages.bak/rdx-ddd-domain/src/value-objects/name.ts +++ b/packages.bak/rdx-ddd-domain/src/value-objects/name.ts @@ -31,7 +31,7 @@ export class Name extends ValueObject { return Result.ok(Maybe.none()); } - return Name.create(value!).map((value) => Maybe.some(value)); + return Name.create(value).map((value) => Maybe.some(value)); } static generateAcronym(name: string): string { diff --git a/packages.bak/rdx-ddd-domain/src/value-objects/phone-number.ts b/packages.bak/rdx-ddd-domain/src/value-objects/phone-number.ts index 448bcbfa..e4a00716 100644 --- a/packages.bak/rdx-ddd-domain/src/value-objects/phone-number.ts +++ b/packages.bak/rdx-ddd-domain/src/value-objects/phone-number.ts @@ -22,7 +22,7 @@ export class PhoneNumber extends ValueObject { return Result.ok(Maybe.none()); } - return PhoneNumber.create(value!).map((value) => Maybe.some(value)); + return PhoneNumber.create(value).map((value) => Maybe.some(value)); } static validate(value: string) { diff --git a/packages.bak/rdx-ddd-domain/src/value-objects/postal-address.ts b/packages.bak/rdx-ddd-domain/src/value-objects/postal-address.ts index 3ebfc579..9ded6197 100644 --- a/packages.bak/rdx-ddd-domain/src/value-objects/postal-address.ts +++ b/packages.bak/rdx-ddd-domain/src/value-objects/postal-address.ts @@ -54,7 +54,7 @@ export class PostalAddress extends ValueObject { return Result.ok(Maybe.none()); } - return PostalAddress.create(values!).map((value) => Maybe.some(value)); + return PostalAddress.create(values).map((value) => Maybe.some(value)); } static update( diff --git a/packages.bak/rdx-ddd-domain/src/value-objects/slug.ts b/packages.bak/rdx-ddd-domain/src/value-objects/slug.ts index 355aa9a4..47f0af40 100644 --- a/packages.bak/rdx-ddd-domain/src/value-objects/slug.ts +++ b/packages.bak/rdx-ddd-domain/src/value-objects/slug.ts @@ -36,7 +36,7 @@ export class Slug extends ValueObject { return Result.ok(Maybe.none()); } - return Slug.create(value!).map((value: Slug) => Maybe.some(value)); + return Slug.create(value).map((value: Slug) => Maybe.some(value)); } getValue(): string { diff --git a/packages.bak/rdx-ddd-domain/src/value-objects/tin-number.ts b/packages.bak/rdx-ddd-domain/src/value-objects/tin-number.ts index 62029158..e51c3130 100644 --- a/packages.bak/rdx-ddd-domain/src/value-objects/tin-number.ts +++ b/packages.bak/rdx-ddd-domain/src/value-objects/tin-number.ts @@ -38,7 +38,7 @@ export class TINNumber extends ValueObject { return Result.ok(Maybe.none()); } - return TINNumber.create(value!).map((value) => Maybe.some(value)); + return TINNumber.create(value).map((value) => Maybe.some(value)); } getValue(): string { diff --git a/packages.bak/rdx-module/package.json b/packages.bak/rdx-module/package.json index c013843e..9ff75b02 100644 --- a/packages.bak/rdx-module/package.json +++ b/packages.bak/rdx-module/package.json @@ -5,9 +5,7 @@ "main": "dist/index.js", "module": "dist/index.mjs", "types": "dist/index.d.ts", - "files": [ - "dist/**" - ], + "files": ["dist/**"], "scripts": { "build": "tsc", "dev": "tsc --watch", @@ -20,7 +18,6 @@ "preset": "@repo/jest-presets/node" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/jest-presets": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/express": "^4.17.21", diff --git a/packages.bak/rdx-utils/package.json b/packages.bak/rdx-utils/package.json deleted file mode 100644 index 80fecc34..00000000 --- a/packages.bak/rdx-utils/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@rdx/utils", - "version": "0.0.0", - "private": true, - "main": "dist/index.js", - "module": "dist/index.mjs", - "types": "dist/index.d.ts", - "files": [ - "dist/**" - ], - "scripts": { - "build": "tsc", - "dev": "tsc --watch", - "lint": "eslint src/", - "lint:fix": "eslint src/ --fix", - "typecheck": "tsc --noEmit", - "test": "jest" - }, - "jest": { - "preset": "@repo/jest-presets/node" - }, - "devDependencies": { - "@repo/eslint-config": "workspace:*", - "@repo/jest-presets": "workspace:*", - "@repo/typescript-config": "workspace:*", - "@types/node": "^22.14.1", - "typescript": "^5.8.3" - }, - "dependencies": { - "cls-rtracer": "^2.6.3", - "dotenv": "^16.5.0", - "path": "^0.12.7", - "winston": "^3.17.0", - "winston-daily-rotate-file": "^5.0.0" - } -} diff --git a/packages.bak/rdx-utils/src/helpers/collection.ts b/packages.bak/rdx-utils/src/helpers/collection.ts deleted file mode 100644 index 4c08253f..00000000 --- a/packages.bak/rdx-utils/src/helpers/collection.ts +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Clase genérica para manejar una colección de elementos. - * Ofrece métodos básicos para manipular, consultar y recorrer los elementos. - */ -export class Collection { - private items: T[]; - private totalItems: number | null; - - /** - * Crea una nueva colección. - * @param items - Elementos iniciales de la colección. - * @param totalItems - Total de elementos esperados (opcional). Si no se define, se usa la longitud del array inicial. - */ - constructor(items: T[] = [], totalItems: number | null = null) { - this.items = [...items]; - this.totalItems = totalItems ?? items.length; - } - - /** - * Vacía la colección y reinicia el total de elementos. - */ - reset(): void { - this.items = []; - this.totalItems = 0; - } - - /** - * Agrega un nuevo elemento a la colección. - * @param item - Elemento a agregar. - */ - add(item: T): void { - this.items.push(item); - if (this.totalItems !== null) { - this.totalItems++; - } - } - - /** - * Elimina un elemento de la colección, si existe. - * @param item - Elemento a eliminar. - * @returns `true` si el elemento fue eliminado, `false` si no se encontró. - */ - remove(item: T): boolean { - const index = this.items.indexOf(item); - if (index !== -1) { - this.items.splice(index, 1); - if (this.totalItems !== null) { - this.totalItems--; - } - return true; - } - return false; - } - - /** - * Devuelve una copia de todos los elementos de la colección. - * @returns Array de elementos. - */ - getAll(): T[] { - return [...this.items]; - } - - /** - * Devuelve la cantidad actual de elementos en la colección. - * @returns Número de elementos presentes. - */ - size(): number { - return this.items.length; - } - - /** - * Devuelve el total de elementos esperados en la colección. - * Puede diferir de `size()` si los datos son paginados, por ejemplo. - * @returns Número total o `null` si no se especificó. - */ - total(): number | null { - return this.totalItems; - } - - /** - * Aplica una función a cada elemento y devuelve un nuevo array con los resultados. - * @param callback - Función transformadora. - * @returns Nuevo array con los elementos transformados. - */ - map(callback: (item: T, index: number, array: T[]) => U): U[] { - return this.items.map(callback); - } - - /** - * Devuelve un array con los elementos que cumplen la condición del callback. - * @param callback - Función de filtrado. - * @returns Nuevo array con los elementos filtrados. - */ - filter(callback: (item: T, index: number, array: T[]) => boolean): T[] { - return this.items.filter(callback); - } - - /** - * Devuelve el primer elemento que cumple la condición del callback. - * @param callback - Función de búsqueda. - * @returns El primer elemento que cumple la condición, o `undefined` si no hay coincidencias. - */ - find(callback: (item: T, index: number, array: T[]) => boolean): T | undefined { - return this.items.find(callback); - } - - /** - * Verifica si al menos un elemento cumple la condición dada. - * @param callback - Función de evaluación. - * @returns `true` si al menos un elemento cumple, `false` en caso contrario. - */ - some(callback: (item: T, index: number, array: T[]) => boolean): boolean { - return this.items.some(callback); - } - - /** - * Verifica si todos los elementos cumplen la condición dada. - * @param callback - Función de evaluación. - * @returns `true` si todos cumplen, `false` si alguno no. - */ - every(callback: (item: T, index: number, array: T[]) => boolean): boolean { - return this.items.every(callback); - } -} diff --git a/packages.bak/rdx-utils/src/helpers/maybe.ts b/packages.bak/rdx-utils/src/helpers/maybe.ts deleted file mode 100644 index 390c090b..00000000 --- a/packages.bak/rdx-utils/src/helpers/maybe.ts +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Uso: - * - * const maybeNumber = Maybe.some(10); - * const doubled = maybeNumber.map(n => n * 2); - * console.log(doubled.getValue()); // 20 - - * const noValue = Maybe.none(); - * console.log(noValue.isSome()); // false - **/ - -export class Maybe { - private constructor(private readonly value?: T) {} - - static fromNullable(value?: T): Maybe { - return value === undefined || value === null ? Maybe.none() : Maybe.some(value); - } - - static some(value: T): Maybe { - return new Maybe(value); - } - - static none(): Maybe { - return new Maybe(); - } - - isSome(): boolean { - return this.value !== undefined; - } - - isNone(): boolean { - return !this.isSome(); - } - - unwrap(): T | undefined { - return this.value; - } - - getOrUndefined(): T | undefined { - return this.unwrap(); - } - - map(fn: (value: T) => U): Maybe { - return this.isSome() ? Maybe.some(fn(this.value as T)) : Maybe.none(); - } -} diff --git a/packages.bak/rdx-utils/src/helpers/utils.ts b/packages.bak/rdx-utils/src/helpers/utils.ts deleted file mode 100644 index 3f3d0750..00000000 --- a/packages.bak/rdx-utils/src/helpers/utils.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Función genérica para asegurar valores básicos -function ensure(value: T | undefined | null, defaultValue: T): T { - return value ?? defaultValue; -} - -// Implementaciones específicas para tipos básicos -export const ensureString = (value?: string): string => ensure(value, ""); -export const ensureNumber = (value?: number): number => ensure(value, 0); -export const ensureBoolean = (value?: boolean): boolean => ensure(value, false); -export const ensureBigInt = (value?: bigint): bigint => ensure(value, BigInt(0)); -export const ensureSymbol = (value?: symbol, defaultSymbol = Symbol()): symbol => - ensure(value, defaultSymbol); diff --git a/packages.bak/rdx-utils/src/logger.ts b/packages.bak/rdx-utils/src/logger.ts deleted file mode 100644 index 98cb8ac3..00000000 --- a/packages.bak/rdx-utils/src/logger.ts +++ /dev/null @@ -1,98 +0,0 @@ -import rTracer from "cls-rtracer"; -import dotenv from "dotenv"; -import path from "path"; -import { createLogger, format, transports } from "winston"; -import DailyRotateFile from "winston-daily-rotate-file"; - -dotenv.config(); - -//const splatSymbol = Symbol.for("splat"); - -const initLogger = () => { - const isProduction = process.env.NODE_ENV === "production"; - - const consoleFormat = format.combine( - format.colorize(), - format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), - format.align(), - format.splat(), - format.errors({ stack: !isProduction }), - - format.printf((info) => { - const rid = rTracer.id(); - - if (typeof info.message === "object") { - info.message = JSON.stringify(info.message, null, 3); - } - - let out = - isProduction && rid - ? `${info.timestamp} [request-id:${rid}] - ${info.level}: [${info.label}]: ${info.message}` - : `${info.timestamp} - ${info.level}: [${info.label}]: ${info.message}`; - - /*if (info.metadata["error"]) { - out = `${out} ${info.metadata.error}`; - if (info.metadata?.error?.stack) { - out = `${out} ${info.metadata.error.stack}`; - } - }*/ - - return out; - }) - ); - - const fileFormat = format.combine( - format.timestamp(), - format.splat(), - format.label({ label: path.basename(String(require.main?.filename)) }), - //format.metadata(), - format.metadata({ fillExcept: ["message", "level", "timestamp", "label"] }), - format.simple(), - format.json() - ); - - const logger = createLogger({ - level: isProduction ? "error" : "debug", - - format: fileFormat, - - transports: [ - new DailyRotateFile({ - dirname: isProduction ? "/logs" : ".", - filename: "error-%DATE%.log", - datePattern: "YYYY-MM-DD", - utc: true, - level: "error", - maxSize: "5m", - maxFiles: "1d", - }), - new DailyRotateFile({ - dirname: isProduction ? "/logs" : ".", - filename: "debug-%DATE%.log", - datePattern: "YYYY-MM-DD", - utc: true, - level: "debug", - maxSize: "5m", - maxFiles: "1d", - }), - ], - }); - - // - // If we're not in production then log to the `console` with the format: - // `${info.level}: ${info.message} JSON.stringify({ ...rest }) ` - // - if (!isProduction) { - logger.add( - new transports.Console({ - format: consoleFormat, - level: "debug", - }) - ); - } - - return logger; -}; - -const logger = initLogger(); -export { logger }; diff --git a/packages.bak/rdx-utils/tsconfig.json b/packages.bak/rdx-utils/tsconfig.json deleted file mode 100644 index a40d12a9..00000000 --- a/packages.bak/rdx-utils/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "@repo/typescript-config/library.json", - "compilerOptions": { - "rootDir": "." - }, - "include": ["."] -} diff --git a/packages.bak/rdx-verifactu/.eslintrc.json b/packages.bak/rdx-verifactu/.eslintrc.json deleted file mode 100644 index f4e1b0c2..00000000 --- a/packages.bak/rdx-verifactu/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["eslint-config-codely/typescript"], - "overrides": [ - { - "files": ["*.ts"], - "parserOptions": { - "project": [ - "./tsconfig.json", - "./packages/criteria/tsconfig.json", - "./packages/criteria-mysql/tsconfig.json" - ] - }, - "rules": { - "@typescript-eslint/no-floating-promises": ["off"] - } - } - ] -} diff --git a/packages/eslint-config/README.md b/packages/eslint-config/README.md deleted file mode 100644 index 8b42d901..00000000 --- a/packages/eslint-config/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@turbo/eslint-config` - -Collection of internal eslint configurations. diff --git a/packages/eslint-config/base.js b/packages/eslint-config/base.js deleted file mode 100644 index 09d316ef..00000000 --- a/packages/eslint-config/base.js +++ /dev/null @@ -1,32 +0,0 @@ -import js from "@eslint/js"; -import eslintConfigPrettier from "eslint-config-prettier"; -import turboPlugin from "eslint-plugin-turbo"; -import tseslint from "typescript-eslint"; -import onlyWarn from "eslint-plugin-only-warn"; - -/** - * A shared ESLint configuration for the repository. - * - * @type {import("eslint").Linter.Config[]} - * */ -export const config = [ - js.configs.recommended, - eslintConfigPrettier, - ...tseslint.configs.recommended, - { - plugins: { - turbo: turboPlugin, - }, - rules: { - "turbo/no-undeclared-env-vars": "warn", - }, - }, - { - plugins: { - onlyWarn, - }, - }, - { - ignores: ["dist/**"], - }, -]; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json deleted file mode 100644 index 4e38076f..00000000 --- a/packages/eslint-config/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@repo/eslint-config", - "version": "0.0.0", - "type": "module", - "private": true, - "exports": { - "./base": "./base.js", - "./react-internal": "./react-internal.js" - }, - "devDependencies": { - "@eslint/js": "^9.25.0", - "@next/eslint-plugin-next": "^15.3.0", - "eslint": "^9.25.0", - "eslint-config-prettier": "^10.1.1", - "eslint-plugin-only-warn": "^1.1.0", - "eslint-plugin-react": "^7.37.4", - "eslint-plugin-react-hooks": "^5.2.0", - "eslint-plugin-turbo": "^2.5.0", - "globals": "^16.0.0", - "typescript": "^5.8.2", - "typescript-eslint": "^8.30.1" - } -} diff --git a/packages/eslint-config/react-internal.js b/packages/eslint-config/react-internal.js deleted file mode 100644 index daeccba2..00000000 --- a/packages/eslint-config/react-internal.js +++ /dev/null @@ -1,39 +0,0 @@ -import js from "@eslint/js"; -import eslintConfigPrettier from "eslint-config-prettier"; -import tseslint from "typescript-eslint"; -import pluginReactHooks from "eslint-plugin-react-hooks"; -import pluginReact from "eslint-plugin-react"; -import globals from "globals"; -import { config as baseConfig } from "./base.js"; - -/** - * A custom ESLint configuration for libraries that use React. - * - * @type {import("eslint").Linter.Config[]} */ -export const config = [ - ...baseConfig, - js.configs.recommended, - eslintConfigPrettier, - ...tseslint.configs.recommended, - pluginReact.configs.flat.recommended, - { - languageOptions: { - ...pluginReact.configs.flat.recommended.languageOptions, - globals: { - ...globals.serviceworker, - ...globals.browser, - }, - }, - }, - { - plugins: { - "react-hooks": pluginReactHooks, - }, - settings: { react: { version: "detect" } }, - rules: { - ...pluginReactHooks.configs.recommended.rules, - // React scope no longer necessary with new JSX transform. - "react/react-in-jsx-scope": "off", - }, - }, -]; diff --git a/packages/rdx-criteria/package.json b/packages/rdx-criteria/package.json new file mode 100644 index 00000000..782f8a79 --- /dev/null +++ b/packages/rdx-criteria/package.json @@ -0,0 +1,20 @@ +{ + "name": "@repo/rdx-criteria", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "scripts": { + "clean": "rm -rf node_modules" + }, + "exports": { + ".": "./src/index.ts" + }, + "devDependencies": { + "@repo/typescript-config": "workspace:*" + }, + "dependencies": { + "@repo/rdx-utils": "workspace:*", + "@repo/rdx-ddd": "workspace:*", + "joi": "^17.13.3" + } +} diff --git a/packages/rdx-criteria/src/Field/FieldCriteria.bak b/packages/rdx-criteria/src/Field/FieldCriteria.bak new file mode 100644 index 00000000..48e37eac --- /dev/null +++ b/packages/rdx-criteria/src/Field/FieldCriteria.bak @@ -0,0 +1,60 @@ +import { Result, UndefinedOr } from "@repo/rdx-utils"; +import { ResultCollection, RuleValidator } from "../helpers"; + +export interface IFieldCriteria { + toJSON(): string; + toString(): string; + toObject(): Record; +} + +export class FieldCriteria extends StringValueObject implements IFieldCriteria { + toJSON(): string { + throw new Error("Method not implemented."); + } + toString(): string { + throw new Error("Method not implemented."); + } + toObject(): Record { + throw new Error("Method not implemented."); + } + public static create(value: UndefinedOr) { + const validatedProps = FieldCriteria.validate(value); + + if (validatedProps.isFailure) { + return Result.fail(validatedProps.error); + } + + return Result.ok(new FieldCriteria(String(value))); + } + + protected static validate(value: UndefinedOr) { + if (RuleValidator.validate(RuleValidator.RULE_NOT_NULL_OR_UNDEFINED, value).isSuccess) { + const stringOrError = RuleValidator.validate(RuleValidator.RULE_IS_TYPE_STRING, value); + + if (stringOrError.isFailure) { + return stringOrError; + } + } + + const fieldString = String(value); + + const fieldsOrErrors = new ResultCollection(); + + // biome-ignore lint/complexity/noForEach: + this.parseFieldString(fieldString).forEach((token: string[]) => { + const fieldOrError = Field.create({ + field: token[2], + operator: String(token[3]).toUpperCase(), + value: token[4], + }); + + fieldsOrErrors.add(fieldOrError); + }); + + if (fieldsOrErrors.hasSomeFaultyResult()) { + return fieldsOrErrors.getFirstFaultyResult() as Result; + } + + return Result.ok(fieldString); + } +} diff --git a/packages/rdx-criteria/src/Field/index.ts b/packages/rdx-criteria/src/Field/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/rdx-criteria/src/Filters/Filter.ts b/packages/rdx-criteria/src/Filters/Filter.ts new file mode 100644 index 00000000..0a15e82c --- /dev/null +++ b/packages/rdx-criteria/src/Filters/Filter.ts @@ -0,0 +1,82 @@ +import { ValueObject } from "@repo/rdx-ddd"; +import { Result } from "@repo/rdx-utils"; + +export interface IFilterProps { + operator: string; + field?: string; + value: any; +} + +export interface IFilter { + operator: string; + field?: string; + value: any; + + toString(): string; + toObject(): Record; +} + +export class Filter extends ValueObject implements IFilter { + public static create(filterProps: IFilterProps): Result { + // Validación de props + const valid = Filter.validate(filterProps); + if (valid.isFailure) { + return Result.fail(valid.error); + } + + return Result.ok( + new Filter({ + ...filterProps, + operator: Filter.sanitizeOperator(filterProps.operator), + }) + ); + } + + protected static validate(filter: any): Result { + return Result.ok(filter); + } + + protected static sanitizeOperator(operator: string): string { + return operator.toUpperCase().trim(); + } + + protected constructor(props: IFilterProps) { + super(props); + } + + getValue() { + return this.props.value; + } + + get field(): string | undefined { + return this.props.field; + } + + get operator(): string { + return this.props.operator; + } + + get value(): any { + return this.props.value; + } + + public toString(): string { + return `${this.field} [${this.operator}] ${this.value}`; + } + + public toObject(): Record { + return { + operator: String(this.operator), + field: String(this.field), + value: this.value, + }; + } + + public toJSON(): string { + return this.toString(); + } + + public toPrimitive(): string { + return this.toString(); + } +} diff --git a/packages/rdx-criteria/src/Filters/FilterCollection.ts b/packages/rdx-criteria/src/Filters/FilterCollection.ts new file mode 100644 index 00000000..580de73d --- /dev/null +++ b/packages/rdx-criteria/src/Filters/FilterCollection.ts @@ -0,0 +1,33 @@ +import { Collection, Result } from "@repo/rdx-utils"; +import { Filter } from "./Filter"; + +export interface IFilterCollection extends Collection { + findByField(field: string): Filter | undefined; + removeByField(field: string): void; + toObject(): Record; +} + +export class FilterCollection extends Collection implements IFilterCollection { + static create(filters?: Filter[]): Result { + return Result.ok(new FilterCollection(filters)); + } + + protected constructor(initialValues?: Filter[]) { + super(initialValues, undefined); + } + + public findByField(field: string): Filter | undefined { + return this.find((filter) => filter.field === field); + } + + public removeByField(field: string): void { + const indexFound = this.getAll().findIndex((filter) => filter.field === field); + if (indexFound > -1) { + this.removeByIndex(indexFound); + } + } + + public toObject(): Record { + return this.getAll().map((filter: Filter) => filter.toObject()); + } +} diff --git a/packages/rdx-criteria/src/Filters/FilterCriteria.ts b/packages/rdx-criteria/src/Filters/FilterCriteria.ts new file mode 100644 index 00000000..f5bca612 --- /dev/null +++ b/packages/rdx-criteria/src/Filters/FilterCriteria.ts @@ -0,0 +1,151 @@ +import { Result, UndefinedOr } from "@repo/rdx-utils"; +import { ResultCollection, RuleValidator, StringValueObject } from "../helpers"; +import { Filter, IFilter } from "./Filter"; + +export interface IFilterCriteria { + getFilterRoot(): any; + toJSON(): string; + toString(): string; + toObject(): Record; +} + +interface IFilterNode { + connection: string | undefined; + filter: Filter; +} + +export class FilterCriteria extends StringValueObject implements IFilterCriteria { + protected _root: IFilterNode; + + protected static parseFilterString = (filterString: string): string[][] => { + // Ejemplo: lang_code[eq]pt|AND|dealer_id[eq]2222222|and|pepe[eq]assaas + + // eslint-disable-next-line no-useless-escape + const regex = /(?:\|([^\]]+)(?:\|))*([^\[|]+)\[([^\]]+)\]([^\[|]+)/gi; + const result: any[] = []; + let matches: any; + + // biome-ignore lint/suspicious/noAssignInExpressions: + while ((matches = regex.exec(filterString)) !== null) { + result.push([...matches]); + } + + return result; + }; + + public static create(value: UndefinedOr) { + const validatedProps = FilterCriteria.validate(value); + + if (validatedProps.isFailure) { + return Result.fail(validatedProps.error); + } + + return Result.ok(new FilterCriteria(String(value))); + } + + protected static validate(value: UndefinedOr) { + if (RuleValidator.validate(RuleValidator.RULE_NOT_NULL_OR_UNDEFINED, value).isSuccess) { + const stringOrError = RuleValidator.validate(RuleValidator.RULE_IS_TYPE_STRING, value); + + if (stringOrError.isFailure) { + return stringOrError; + } + } + + const filterString = String(value); + + const filtersOrErrors = new ResultCollection(); + + // biome-ignore lint/complexity/noForEach: + FilterCriteria.parseFilterString(filterString).forEach((token: string[]) => { + const filterOrError = Filter.create({ + field: token[2], + operator: String(token[3]).toUpperCase(), + value: token[4], + }); + + filtersOrErrors.add(filterOrError); + }); + + if (filtersOrErrors.hasSomeFaultyResult()) { + return filtersOrErrors.getFirstFaultyResult() as Result; + } + + return Result.ok(filterString); + } + + constructor(value: string) { + super(value); + this._root = this.buildFilterRoot(value); + } + + public getFilterRoot(): any { + return this._root; + } + + public toJSON(): string { + return JSON.stringify(this.toObject()); + } + + public toPrimitive(): string { + throw new Error("NOT IMPLEMENT FilterCriteria.toPrimitive()"); + } + + public toObject(): Record { + return this.getFilterRoot(); + } + + protected buildFilterRoot(filterString: string): IFilterNode { + const __processNodes: any = (nodes: any[], prevFilter?: IFilter) => { + const _node: any = nodes.shift(); + + if (!_node) { + return prevFilter; + } + + if (!_node.connection) { + return __processNodes(nodes, _node.filter); + } + + return { + operator: _node.connection, + value: [prevFilter, __processNodes(nodes, _node.filter)], + }; + }; + + const filterNodes = FilterCriteria.parseFilterString(filterString).map((token: string[]) => { + /** TOKEN + * [1] => and / or (optional) + * [2] => field + * [3] => operator + * [4] => value + */ + const connection = token[1] ? String(token[1]).toUpperCase() : undefined; + + const filterOrError = Filter.create({ + field: token[2], + operator: String(token[3]).toUpperCase(), + value: token[4], + }); + + if (filterOrError.isFailure) { + throw new Error(`Filter '${token.join()}' is not valid`); + } + + return { + connection, + filter: filterOrError.data, + }; + }); + + return __processNodes(filterNodes, null); + } + + public add(filter: Filter, connection = "AND"): void { + const newFilterString = `${connection.toLowerCase()}|${ + filter.field + }[${filter.operator.toLowerCase()}]${filter.value}`; + + this._root = this.buildFilterRoot(`${this.props}|${newFilterString}`); + } +} diff --git a/packages/rdx-criteria/src/Filters/index.ts b/packages/rdx-criteria/src/Filters/index.ts new file mode 100644 index 00000000..79a41613 --- /dev/null +++ b/packages/rdx-criteria/src/Filters/index.ts @@ -0,0 +1,3 @@ +export * from './FilterCollection'; +export * from './Filter'; +export * from './FilterCriteria'; \ No newline at end of file diff --git a/packages/rdx-criteria/src/Order/Order.ts b/packages/rdx-criteria/src/Order/Order.ts new file mode 100644 index 00000000..1f235374 --- /dev/null +++ b/packages/rdx-criteria/src/Order/Order.ts @@ -0,0 +1,103 @@ +import { ValueObject } from "@repo/rdx-ddd"; +import { Result } from "@repo/rdx-utils"; +import Joi from "joi"; +import { RuleValidator } from "../helpers"; + +export interface IOrderProps { + type: string; + field: string; +} + +export interface IOrder { + type: string; + field: string; + + toString(): string; + toObject(): Record; +} + +export class Order extends ValueObject implements IOrder { + public static create(orderProps: IOrderProps) { + // Validación de props + const valid = Order.validate(orderProps); + if (valid.isFailure) { + return Result.fail(valid.error); + } + + return Result.ok( + new Order({ + field: Order.sanitize(orderProps.field), + type: Order.sanitize(orderProps.type), + }) + ); + } + + protected static validate(orderProps: IOrderProps) { + const { type, field } = orderProps; + + // type + if (RuleValidator.validate(RuleValidator.RULE_NOT_NULL_OR_UNDEFINED, type).isSuccess) { + let typeOrError = RuleValidator.validate(RuleValidator.RULE_IS_TYPE_STRING, type); + + if (typeOrError.isFailure) { + return typeOrError; + } + + typeOrError = RuleValidator.validate(Joi.any().valid("+", "-"), type); + + if (typeOrError.isFailure) { + return typeOrError; + } + } + + // field + if (RuleValidator.validate(RuleValidator.RULE_NOT_NULL_OR_UNDEFINED, type).isSuccess) { + const fieldOrError = RuleValidator.validate(RuleValidator.RULE_IS_TYPE_STRING, field); + + if (fieldOrError.isFailure) { + return fieldOrError; + } + } + + return Result.ok(); + } + + protected static sanitize(value: string): string { + return String(Joi.string().trim().validate(value).value); + } + + protected constructor(props: IOrderProps) { + super(props); + } + + getValue() { + return this.props; + } + + get field(): string { + return this.props.field; + } + + get type(): string { + return this.props.type; + } + + public toString(): string { + return `${this.field} [${this.type}]`; + } + + public toPrimitive(): string { + return this.toString(); + } + + public toObject(): Record { + return { + type: this.type, + field: this.field, + }; + } + + public toJSON(): string { + return this.toString(); + } +} diff --git a/packages/rdx-criteria/src/Order/OrderCollection.ts b/packages/rdx-criteria/src/Order/OrderCollection.ts new file mode 100644 index 00000000..5f0becc9 --- /dev/null +++ b/packages/rdx-criteria/src/Order/OrderCollection.ts @@ -0,0 +1,33 @@ +import { Collection } from "@repo/rdx-utils"; +import { Order } from "./Order"; + +export interface IOrderCollection extends Collection { + findByField(field: string): Order | undefined; + removeByField(field: string): void; + toObject(): Record; +} + +export class OrderCollection extends Collection implements IOrderCollection { + public static createEmpty() { + return new OrderCollection(); + } + + public static create(initialValues: Order[], totalCount?: number) { + return new OrderCollection(initialValues, totalCount); + } + + public findByField(field: string): Order | undefined { + return this.find((order) => order.field === field); + } + + public removeByField(field: string): void { + const indexFound = this.getAll().findIndex((order) => order.field === field); + if (indexFound > -1) { + this.removeByIndex(indexFound); + } + } + + public toObject(): Record { + return this.getAll().map((order: Order) => order.toObject()); + } +} diff --git a/packages/rdx-criteria/src/Order/OrderCriteria.ts b/packages/rdx-criteria/src/Order/OrderCriteria.ts new file mode 100644 index 00000000..959b86e9 --- /dev/null +++ b/packages/rdx-criteria/src/Order/OrderCriteria.ts @@ -0,0 +1,127 @@ +import { Result, UndefinedOr } from "@repo/rdx-utils"; +import { ResultCollection, RuleValidator, StringValueObject } from "../helpers"; +import { IOrderProps, Order } from "./Order"; +import { IOrderCollection, OrderCollection } from "./OrderCollection"; + +export interface IOrderCriteria { + getOrderCollection(): IOrderCollection; + toJSON(): string; + toString(): string; + toObject(): Record; +} + +export class OrderCriteria extends StringValueObject implements IOrderCriteria { + private static parseOrderString = (orderString: UndefinedOr): string[][] => { + // eslint-disable-next-line no-useless-escape + //return OrderString.match(/(.+)(([\[])([\w]+)([\]]))([\w\W]+)*/i); + + const result: any[] = []; + + if (orderString) { + const regex = /([+-]?)([\w_.]+)/gi; + let matches: any; + + // biome-ignore lint/suspicious/noAssignInExpressions: + while ((matches = regex.exec(orderString)) !== null) { + result.push([...matches]); + } + } + + return result; + }; + + protected static validate(value: UndefinedOr) { + let orderString = value; + + if (RuleValidator.validate(RuleValidator.RULE_NOT_NULL_OR_UNDEFINED, orderString).isFailure) { + return Result.ok(value); + } + + const stringOrError = RuleValidator.validate( + RuleValidator.RULE_IS_TYPE_STRING, + orderString + ); + + if (stringOrError.isFailure) { + return stringOrError; + } + + orderString = String(value); + + const orderOrErrors = new ResultCollection(); + + // biome-ignore lint/complexity/noForEach: + OrderCriteria.parseOrderString(orderString).forEach((token: string[]) => { + const orderOrError = Order.create({ + type: token[1] || "+", + field: String(token[2]), + }); + + orderOrErrors.add(orderOrError); + }); + + if (orderOrErrors.hasSomeFaultyResult()) { + return orderOrErrors.getFirstFaultyResult() as Result; + } + + return Result.ok(orderString); + } + + public static create(value: UndefinedOr) { + const validatedProps = OrderCriteria.validate(value); + + if (validatedProps.isFailure) { + return Result.fail(validatedProps.error); + } + + return Result.ok(new OrderCriteria(validatedProps.data)); + } + + public getOrderCollection(): IOrderCollection { + return this.buildOrderCollection(); + } + + public toJSON(): string { + return JSON.stringify(this.toObject()); + } + + public toPrimitive(): string { + throw new Error("NOT IMPLEMENT OrderCriteria.toPrimitive()"); + } + + public toObject(): Record { + return this.getOrderCollection().toObject(); + } + + protected buildOrderCollection(): IOrderCollection { + let _orders: IOrderProps[] | undefined = undefined; + + if (!this.isEmpty()) { + _orders = OrderCriteria.parseOrderString(this.props).map((token: string[]) => { + /** TOKEN + * [1] => type + / - (opcional) + * [2] => field / model.field + */ + + const type = token[1] ? String(token[1]) : "+"; + + const orderOrError = Order.create({ + type, + field: String(token[2]), + }); + + if (orderOrError.isFailure) { + throw new Error(`Order '${token.join()}' is not valid`); + } + + return orderOrError.data; + }); + } + + return ( + _orders === undefined + ? OrderCollection.createEmpty() + : OrderCollection.create(_orders as Order[]) + ) as IOrderCollection; + } +} diff --git a/packages/rdx-criteria/src/Order/OrderRoot.ts b/packages/rdx-criteria/src/Order/OrderRoot.ts new file mode 100644 index 00000000..ed5ebeb2 --- /dev/null +++ b/packages/rdx-criteria/src/Order/OrderRoot.ts @@ -0,0 +1,108 @@ +import { DomainError } from "../../../errors"; +import { Result } from "../../Result"; +import { ValueObject } from "../../ValueObject"; +import { Order } from "./Order"; +import { OrderCollection } from "./OrderCollection"; + +interface IOrderRootProps { + type: string; + items: OrderCollection; +} + +export interface IOrderRoot { + type: string; + items: OrderCollection; + + toString(): string; + toObject(): Record; +} + +export class OrderRoot + extends ValueObject + implements IOrderRoot +{ + public static createASC(value: Order[]): Result { + return this.create({ + type: "asc", + value, + }); + } + + public static createDESC(value: Order[]): Result { + return this.create({ + type: "desc", + value, + }); + } + + public static create(orderRootProps: any): Result { + // Validación de props + const valid = this.validate(orderRootProps); + if (valid.isFailure) { + return Result.fail(valid.error); + } + + return Result.ok( + new OrderRoot({ + type: OrderRoot.sanitizeOperator(orderRootProps.type), + items: OrderCollection.create(orderRootProps.value), + }) + ); + } + + protected static validate(OrderRootRoot: IOrderRootProps): Result { + throw DomainError.create("NOT IMPLEMENT", "OrderRoot.validate()"); + + /*return Validator.isOneOf( + { + value: OrderRootRoot.type, + valueName: 'OrderRoot root type', + }, + ['asc', 'desc'] + );*/ + } + + protected static sanitizeOperator(type: string): string { + return type.toUpperCase().trim(); + } + + protected _type: string; + protected _items: OrderCollection; + + protected constructor(props: IOrderRootProps) { + super(props); + this._type = props.type; + this._items = props.items; + } + + get type(): string { + return this._type; + } + + get items(): OrderCollection { + return this._items; + } + + public toString(): string { + return `${this.type} ${this.items.toString()}`; + } + + public toObject(): Record { + return { + type: this.type, + items: this.items.toObject(), + }; + } + + public toPrimitive(): string { + return this.toString(); + } + + public toJSON(): string { + return this.toString(); + } + + public transform(transformerFunction: any, params: any): any { + return transformerFunction(this.toObject(), params); + } +} diff --git a/packages/rdx-criteria/src/Order/__test__/Order.test.ts b/packages/rdx-criteria/src/Order/__test__/Order.test.ts new file mode 100644 index 00000000..fc3ff39e --- /dev/null +++ b/packages/rdx-criteria/src/Order/__test__/Order.test.ts @@ -0,0 +1,52 @@ +import { Order } from "../Order"; + +describe("Order", () => { + it("Campo con orden ascendente +", () => { + const type = "+"; + const field = "name"; + const order = Order.create({ type, field }); + expect(order.isSuccess).toBeTruthy(); + }); + + it("Campo con orden descendente -", () => { + const type = "-"; + const field = "date"; + const order = Order.create({ type, field }); + expect(order.isSuccess).toBeTruthy(); + }); + + it("Error si el campo no indica orden", () => { + const type = ""; + const field = "id"; + const order = Order.create({ type, field }); + expect(order.isFailure).toBeTruthy(); + }); + + it("Error si el campo de orden tiene un valor diferente de + ó -", () => { + const type = "*"; + const field = "id"; + const order = Order.create({ type, field }); + expect(order.isFailure).toBeTruthy(); + }); + + it("Error si no hay valor para el campo (undefined)", () => { + const type = "-"; + const field = undefined; + const order = Order.create({ type, field }); + expect(order.isFailure).toBeTruthy(); + }); + + it("Error si no hay valor para el campo (null)", () => { + const type = "-"; + const field = null; + const order = Order.create({ type, field }); + expect(order.isFailure).toBeTruthy(); + }); + + it('Error si no hay valor para el campo ("")', () => { + const type = "-"; + const field = ""; + const order = Order.create({ type, field }); + expect(order.isFailure).toBeTruthy(); + }); +}); diff --git a/packages/rdx-criteria/src/Order/__test__/OrderCriteria.test.ts b/packages/rdx-criteria/src/Order/__test__/OrderCriteria.test.ts new file mode 100644 index 00000000..ead116fa --- /dev/null +++ b/packages/rdx-criteria/src/Order/__test__/OrderCriteria.test.ts @@ -0,0 +1,49 @@ +import { OrderCriteria } from "../OrderCriteria"; + +describe("OrderCriteria", () => { + it("Cadena con orden ascendente", () => { + const value = "name"; + const order = OrderCriteria.create(value); + expect(order.isSuccess).toBeTruthy(); + }); + + it("Cadena con orden ascendente +", () => { + const value = "+name"; + const order = OrderCriteria.create(value); + expect(order.isSuccess).toBeTruthy(); + }); + + it("Cadena con orden descendente -", () => { + const value = "-date"; + const order = OrderCriteria.create(value); + expect(order.isSuccess).toBeTruthy(); + }); + + it("Criterio vacio si no hay valor para el campo (undefined)", () => { + const value = undefined; + const order = OrderCriteria.create(value); + expect(order.isSuccess).toBeTruthy(); + expect(order.object.isEmpty()).toBeTruthy(); + }); + + it("Criterio vacio si no hay valor para el campo (null)", () => { + const value = null; + const order = OrderCriteria.create(value); + expect(order.isSuccess).toBeTruthy(); + expect(order.object.isEmpty()).toBeTruthy(); + }); + + it('Criterio vacio si no hay valor para el campo ("")', () => { + const value = ""; + const order = OrderCriteria.create(value); + expect(order.isSuccess).toBeTruthy(); + expect(order.object.isEmpty()).toBeTruthy(); + }); + + it("Analizar cadena de criterios (+date-)", () => { + const value = ""; + const order = OrderCriteria.create(value); + expect(order.isSuccess).toBeTruthy(); + expect(order.object.isEmpty()).toBeTruthy(); + }); +}); diff --git a/packages/rdx-criteria/src/Order/index.ts b/packages/rdx-criteria/src/Order/index.ts new file mode 100644 index 00000000..72d206ff --- /dev/null +++ b/packages/rdx-criteria/src/Order/index.ts @@ -0,0 +1,4 @@ +//export * from './OrderRoot'; +export * from "./Order"; +export * from "./OrderCriteria"; +export * from "./OrderCollection"; diff --git a/packages/rdx-criteria/src/Pagination/OffsetPaging.ts b/packages/rdx-criteria/src/Pagination/OffsetPaging.ts new file mode 100644 index 00000000..b96d14d2 --- /dev/null +++ b/packages/rdx-criteria/src/Pagination/OffsetPaging.ts @@ -0,0 +1,145 @@ +import Joi from "joi"; + +import { ValueObject } from "@repo/rdx-ddd"; +import { Result } from "@repo/rdx-utils"; +import { RuleValidator } from "../helpers"; +import { + INITIAL_PAGE_INDEX, + INITIAL_PAGE_SIZE, + MAX_PAGE_SIZE, + MIN_PAGE_INDEX, + MIN_PAGE_SIZE, +} from "./defaults"; + +export interface IOffsetPagingProps { + offset: number | string | undefined; + limit: number | string | undefined; +} + +export interface IOffsetPaging { + offset: number; + limit: number; +} + +export class OffsetPaging extends ValueObject { + public static readonly LIMIT_DEFAULT_VALUE: number = INITIAL_PAGE_SIZE; + public static readonly LIMIT_MINIMAL_VALUE: number = MIN_PAGE_SIZE; + public static readonly LIMIT_MAXIMAL_VALUE: number = MAX_PAGE_SIZE; + + public static readonly OFFSET_DEFAULT_VALUE: number = INITIAL_PAGE_INDEX; + public static readonly OFFSET_MINIMAL_VALUE: number = MIN_PAGE_INDEX; + public static readonly OFFSET_MAXIMAL_VALUE: number = Number.MAX_SAFE_INTEGER; + + public static createWithMaxLimit(): Result { + return OffsetPaging.create({ + offset: OffsetPaging.OFFSET_DEFAULT_VALUE, + limit: OffsetPaging.LIMIT_MAXIMAL_VALUE, + }); + } + + public static createWithDefaultValues(): Result { + return OffsetPaging.create({ + offset: OffsetPaging.OFFSET_DEFAULT_VALUE, + limit: OffsetPaging.LIMIT_DEFAULT_VALUE, + }); + } + + public static create(paginationProps: IOffsetPagingProps) { + const offset = paginationProps.offset || OffsetPaging.OFFSET_DEFAULT_VALUE; + const limit = paginationProps.limit || OffsetPaging.LIMIT_DEFAULT_VALUE; + + const validatedProps = OffsetPaging.validate(offset, limit); + + if (validatedProps.isFailure) { + return Result.fail(validatedProps.error); + } + + const paging: IOffsetPaging = validatedProps.data as IOffsetPaging; + + return Result.ok(new OffsetPaging(paging)); + } + + private static validate(offset: string | number, limit: string | number) { + const numberOrError = RuleValidator.validate(RuleValidator.RULE_IS_TYPE_NUMBER, offset); + + if (numberOrError.isFailure) { + return numberOrError; + } + + const _offset = typeof offset === "string" ? Number.parseInt(offset, 10) : offset; + + const offsetValidate = RuleValidator.validate( + Joi.number().min(OffsetPaging.OFFSET_MINIMAL_VALUE).max(OffsetPaging.OFFSET_MAXIMAL_VALUE), + offset + ); + + if (offsetValidate.isFailure) { + return Result.fail( + new Error(`Page need to be larger than or equal to ${OffsetPaging.OFFSET_MINIMAL_VALUE}.`) + ); + } + + // limit + const limitNumberOrError = RuleValidator.validate(RuleValidator.RULE_IS_TYPE_NUMBER, limit); + + if (limitNumberOrError.isFailure) { + return limitNumberOrError; + } + + const _limit = typeof limit === "string" ? Number.parseInt(limit, 10) : limit; + + const limitValidate = RuleValidator.validate( + Joi.number().min(0).max(OffsetPaging.LIMIT_MAXIMAL_VALUE), + offset + ); + + if (limitValidate.isFailure) { + return Result.fail( + new Error(`Page size need to be smaller than ${OffsetPaging.LIMIT_MAXIMAL_VALUE}`) + ); + } + + return Result.ok({ + offset: _offset, + limit: _limit, + }); + } + + private constructor(props: IOffsetPaging) { + super(props); + } + + getValue() { + return this.props; + } + + get offset(): number { + return this.props.offset; + } + + get limit(): number { + return this.props.limit; + } + + public next(): OffsetPaging { + return new OffsetPaging({ + offset: this.props.offset + this.props.limit, + limit: this.props.limit, + }); + } + + public toJSON(): string { + return JSON.stringify(this.toObject()); + } + + public toPrimitive(): string { + throw new Error("NOT IMPLEMENT OffsetPaging.toPrimitive()"); + } + + public toObject(): Record { + return { + limit: this.props.limit, + offset: this.props.offset, + }; + } +} diff --git a/packages/rdx-criteria/src/Pagination/__test__/PaginatedResult.test.ts.bak b/packages/rdx-criteria/src/Pagination/__test__/PaginatedResult.test.ts.bak new file mode 100644 index 00000000..766e16ac --- /dev/null +++ b/packages/rdx-criteria/src/Pagination/__test__/PaginatedResult.test.ts.bak @@ -0,0 +1,81 @@ +import { TFetchingRequest } from '../PaginatedResult'; +import { OffsetPaginatedResult } from "../OffsetPaginatedResult"; +import { OffsetPaging } from "../OffsetPaging"; + +const DATASOURCE_SIZE: number = 100; +let dataSource: string[] = []; + +const populateDataSource = () => { + dataSource = []; + for (let index = 0; index < DATASOURCE_SIZE; index++) { + dataSource.push(`Linea #${index}`); + } +}; + +const fetchingDataMock = jest.fn((request: TFetchingRequest) => { + const { paging } = request; + return dataSource.slice(paging.start, paging.start + paging.limit); +}); + +describe.skip('OffsetPaginatedResult', () => { + beforeEach(() => { + populateDataSource(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }) + + test('se recupera la primera página', () => { + let result: OffsetPaginatedResult = OffsetPaginatedResult.create({ + fetchingFn: fetchingDataMock, + fetchingParams: null, + totalCount: (DATASOURCE_SIZE), + }); + + result = result.start(OffsetPaging.create(0, 25), null); + result.getData(); + expect(fetchingDataMock.mock.calls.length).toBe(1); + }); + + test('se recuperan todos las páginas', () => { + let offset = 0; + let limit = 25; + let offsetPaging = OffsetPaging.create(offset, limit); + + let result: OffsetPaginatedResult = OffsetPaginatedResult.create({ + fetchingFn: fetchingDataMock, + fetchingParams: null, + totalCount: DATASOURCE_SIZE, + }); + + result = result.start(offsetPaging, null); + do { + result.getData(); + } while (result.next()); + + expect(fetchingDataMock.mock.calls.length).toBe(DATASOURCE_SIZE / limit); + }); + + test('se recuperan los datos correctos en cada página', () => { + let offset = 0; + let limit = 25; + let data: string[] = undefined; + let offsetPaging = OffsetPaging.create(offset, limit); + + let result: OffsetPaginatedResult = OffsetPaginatedResult.create({ + fetchingFn: fetchingDataMock, + fetchingParams: null, + totalCount: DATASOURCE_SIZE, + }); + + result = result.start(offsetPaging, null); + do { + data = result.getData(); + expect(data).toStrictEqual(dataSource.slice(offset, offset + limit)); + offset = offset + limit; + } while (result.next()); + + expect(fetchingDataMock.mock.calls.length).toBe(DATASOURCE_SIZE / limit); + }); +}); diff --git a/packages/rdx-criteria/src/Pagination/__test__/PagingStrategy.test.ts.bak b/packages/rdx-criteria/src/Pagination/__test__/PagingStrategy.test.ts.bak new file mode 100644 index 00000000..76e3896b --- /dev/null +++ b/packages/rdx-criteria/src/Pagination/__test__/PagingStrategy.test.ts.bak @@ -0,0 +1,84 @@ +/*import { CursorPaging } from "../CursorPaging";*/ +import { OffsetPaging } from "../OffsetPaging"; + +describe.skip('OffsetPaging', () => { + beforeAll(() => { }); + + beforeEach(() => { }); + + test('comprobar que se crea correctamente', () => { + const offset: number = 0; + const limit: number = 15; + + const offsetPaging = OffsetPaging.create(offset, limit); + + expect(offsetPaging.start).toEqual(offset); + expect(offsetPaging.limit).toEqual(limit); + }); + + test('comprobar que se calcula la siguiente página correctamente', () => { + const offset: number = 0; + const limit: number = 15; + const nextStart: number = offset + limit; + + const nextPaging = OffsetPaging.create(offset, limit).next(); + expect(nextPaging.start).toEqual(nextStart); + }); + + test('comprobar que el offset es obligatorio', () => { + const offset: number = undefined; + + try { + const offsetPaging = OffsetPaging.create(offset, 10); + } catch (error) { + expect(error).toBeInstanceOf(EvalError); + } + }); + + test('comprobar que el offset >= 0', () => { + const offset: number = -1; + + try { + const offsetPaging = OffsetPaging.create(offset, 100); + } catch (error) { + expect(error).toBeInstanceOf(RangeError); + } + }); + + test('comprobar que el offset <= MAXIMAL_LIMIT', () => { + const offset: number = 0; + const excedeMaximo: number = OffsetPaging.LIMIT_MAXIMAL_VALUE + 1; + + try { + const offsetPaging = OffsetPaging.create(offset, excedeMaximo); + } catch (error) { + expect(error).toBeInstanceOf(RangeError); + } + }); +}); + +describe.skip('CursorPaging', () => { + beforeAll(() => { }); + + beforeEach(() => { }); + + test('comprobar que se crea correctamente', () => { + const cursor: string = 'cursor'; + const limit: number = 10; + + const cursorPaging = CursorPaging.create(cursor, limit); + + expect(cursorPaging.start).toEqual(cursor); + expect(cursorPaging.limit).toEqual(limit); + }); + + test('comprobar que el cursor es obligatorio', () => { + const cursor: string = undefined; + + try { + const cursorPaging = CursorPaging.create(cursor, 10); + } catch (error) { + expect(error).toBeInstanceOf(EvalError); + } + }); +}); \ No newline at end of file diff --git a/packages.bak/rdx-criteria/src/pagination.ts/pagination-defaults.ts b/packages/rdx-criteria/src/Pagination/defaults.ts similarity index 100% rename from packages.bak/rdx-criteria/src/pagination.ts/pagination-defaults.ts rename to packages/rdx-criteria/src/Pagination/defaults.ts diff --git a/packages/rdx-criteria/src/Pagination/index.ts b/packages/rdx-criteria/src/Pagination/index.ts new file mode 100644 index 00000000..6915cb72 --- /dev/null +++ b/packages/rdx-criteria/src/Pagination/index.ts @@ -0,0 +1,2 @@ +export * from "./OffsetPaging"; +export * from "./defaults"; diff --git a/packages/rdx-criteria/src/QueryCriteria.ts b/packages/rdx-criteria/src/QueryCriteria.ts new file mode 100644 index 00000000..452fb27f --- /dev/null +++ b/packages/rdx-criteria/src/QueryCriteria.ts @@ -0,0 +1,76 @@ +import { ValueObject } from "@repo/rdx-ddd"; +import { Result } from "@repo/rdx-utils"; +import { FilterCriteria } from "./Filters"; +import { OrderCriteria } from "./Order"; +import { OffsetPaging } from "./Pagination"; +import { QuickSearchCriteria } from "./QuickSearch"; + +export interface IQueryCriteriaProps { + pagination: OffsetPaging; + order: OrderCriteria; + //fields: FieldCriteria; // fields=first_name,last_name,tin + filters: FilterCriteria; + quickSearch: QuickSearchCriteria; +} + +export interface IQueryCriteria { + pagination: OffsetPaging; + order: OrderCriteria; + //fields: string; + filters: FilterCriteria; + quickSearch: QuickSearchCriteria; + + toJSON(): string; + toObject(): Record; +} + +export class QueryCriteria extends ValueObject implements IQueryCriteria { + public static create(props: IQueryCriteriaProps): Result { + return Result.ok( + new QueryCriteria({ + pagination: props.pagination, + //fields: props.fields, + order: props.order, + filters: props.filters, + quickSearch: props.quickSearch, + }) + ); + } + + getValue() { + return this.props; + } + + public get pagination(): OffsetPaging { + return this.props.pagination; + } + + public get order(): OrderCriteria { + return this.props.order; + } + + public get filters(): FilterCriteria { + return this.props.filters; + } + + public get quickSearch(): QuickSearchCriteria { + return this.props.quickSearch; + } + + public toObject(): Record { + return { + pagination: this.pagination?.toObject(), + order: this.order?.toObject(), + filters: this.filters?.toObject(), + quickSearch: this.quickSearch?.toString(), + }; + } + + public toJSON(): string { + return JSON.stringify(this.toObject()); + } + + public toPrimitive(): string { + throw new Error("NOT IMPLEMENT QueryCriteria.toPrimitive()"); + } +} diff --git a/packages/rdx-criteria/src/QuickSearch/QuickSearchCriteria.ts b/packages/rdx-criteria/src/QuickSearch/QuickSearchCriteria.ts new file mode 100644 index 00000000..515f633b --- /dev/null +++ b/packages/rdx-criteria/src/QuickSearch/QuickSearchCriteria.ts @@ -0,0 +1,79 @@ +import { ValueObject } from "@repo/rdx-ddd"; +import { Result, UndefinedOr } from "@repo/rdx-utils"; +import Joi from "joi"; +import { RuleValidator } from "../helpers"; + +export interface IQuickSearchCriteria { + searchTerms: string[]; + isEmpty(): boolean; + toStringArray(): string[]; + toString(): string; + toJSON(): string; + toPrimitive(): string; +} + +export class QuickSearchCriteria + extends ValueObject> + implements IQuickSearchCriteria +{ + protected static validate(value: UndefinedOr) { + const searchStringArray = value; + const schema = Joi.array().items(Joi.string().trim().allow("")).default([]); + + const stringArrayOrError = RuleValidator.validate(schema, searchStringArray); + + if (stringArrayOrError.isFailure) { + return stringArrayOrError; + } + + return Result.ok(searchStringArray); + } + + public static create(value: UndefinedOr) { + const stringArrayOrError = QuickSearchCriteria.validate(value); + + if (stringArrayOrError.isFailure) { + return Result.fail(stringArrayOrError.error); + } + + const sanitizedTerms = QuickSearchCriteria.sanitize(stringArrayOrError.data); + + return Result.ok(new QuickSearchCriteria(sanitizedTerms)); + } + + private static sanitize(terms: string[] | undefined): string[] { + return terms ? terms.map((term) => term.trim()).filter((term) => term.length > 0) : []; + } + + getValue() { + return !this.isEmpty() ? this.props : undefined; + } + + get value(): UndefinedOr { + return this.getValue(); + } + + get searchTerms(): string[] { + return this.toStringArray(); + } + + public isEmpty = (): boolean => { + return this.props ? this.props.length === 0 : true; + }; + + public toStringArray = (): string[] => { + return this.props ? [...this.props] : []; + }; + + public toString = (): string => { + return this.toStringArray().toString(); + }; + + public toJSON(): string { + return JSON.stringify(this.toStringArray()); + } + + public toPrimitive(): string { + return this.toString(); + } +} diff --git a/packages/rdx-criteria/src/QuickSearch/index.ts b/packages/rdx-criteria/src/QuickSearch/index.ts new file mode 100644 index 00000000..1ca0ddc3 --- /dev/null +++ b/packages/rdx-criteria/src/QuickSearch/index.ts @@ -0,0 +1 @@ +export * from './QuickSearchCriteria'; \ No newline at end of file diff --git a/packages/rdx-criteria/src/helpers/ResultCollection.ts b/packages/rdx-criteria/src/helpers/ResultCollection.ts new file mode 100644 index 00000000..71297bb2 --- /dev/null +++ b/packages/rdx-criteria/src/helpers/ResultCollection.ts @@ -0,0 +1,44 @@ +import { Result } from "@repo/rdx-utils"; + +export interface IResultCollection { + add(result: Result): void; + hasSomeFaultyResult(): boolean; + getFirstFaultyResult(): Result; +} + +export class ResultCollection implements IResultCollection { + private _collection: Result[] = []; + + constructor(results?: Result[]) { + this._collection = results ?? []; + } + + public add(result: Result): void { + this._collection.push(result); + } + + public reset(): void { + this._collection = []; + } + + public hasSomeFaultyResult(): boolean { + return this._collection.some((result) => result.isFailure); + } + + public getFirstFaultyResult(): Result { + // biome-ignore lint/style/noNonNullAssertion: + return this._collection.find((result) => result.isFailure)!; + } + + public getAllFaultyResults(): Result[] { + return this._collection.filter((result) => result.isFailure); + } + + public get objects(): T[] { + return this._collection.filter((result) => result.isSuccess).map((result) => result.data); + } + + public get errors(): E[] { + return this._collection.filter((result) => result.isFailure).map((result) => result.error); + } +} diff --git a/packages/rdx-criteria/src/helpers/RuleValidator.ts b/packages/rdx-criteria/src/helpers/RuleValidator.ts new file mode 100644 index 00000000..0d1b82a9 --- /dev/null +++ b/packages/rdx-criteria/src/helpers/RuleValidator.ts @@ -0,0 +1,66 @@ +import { Result } from "@repo/rdx-utils"; +import Joi, { ValidationError } from "joi"; + +export type TRuleValidatorResult = Result; + +// biome-ignore lint/complexity/noStaticOnlyClass: +export class RuleValidator { + public static readonly RULE_NOT_NULL_OR_UNDEFINED = Joi.any() + .required() // <- undefined + .invalid(null); // <- null + + public static readonly RULE_ALLOW_NULL_OR_UNDEFINED = Joi.any() + .optional() // <- undefined + .valid(null); // <- null + + public static readonly RULE_ALLOW_NULL = Joi.any().valid(null); // <- null + + public static readonly RULE_ALLOW_EMPTY = Joi.any() + .optional() // <- undefined + .valid(null, ""); // + + public static readonly RULE_IS_TYPE_STRING = Joi.string(); + public static readonly RULE_IS_TYPE_NUMBER = Joi.number(); + + public static validate( + rule: Joi.AnySchema | Joi.AnySchema[], + value: any, + options: Joi.ValidationOptions = {} + ): TRuleValidatorResult { + if (!Joi.isSchema(rule)) { + throw new RuleValidator_Error("Rule provided is not a valid Joi schema!"); + } + + const _options: Joi.ValidationOptions = { + abortEarly: false, + errors: { + wrap: { + label: "{}", + }, + }, + //messages: SpanishJoiMessages, + ...options, + }; + + const validationResult = rule.validate(value, _options); + + if (validationResult.error) { + return Result.fail(validationResult.error); + } + + return Result.ok(validationResult.value); + } + + public static validateFnc(ruleFnc: (value: any) => any) { + return (value: any, helpers: any) => { + const result = ruleFnc(value); + return result.isSuccess + ? value + : helpers.message({ + custom: result.error.message, + }); + }; + } +} + +export class RuleValidator_Error extends Error {} diff --git a/packages/rdx-criteria/src/helpers/StringValueObject.ts b/packages/rdx-criteria/src/helpers/StringValueObject.ts new file mode 100644 index 00000000..91d3c745 --- /dev/null +++ b/packages/rdx-criteria/src/helpers/StringValueObject.ts @@ -0,0 +1,33 @@ +import { ValueObject } from "@repo/rdx-ddd"; +import { UndefinedOr } from "@repo/rdx-utils"; + +export type Primitive = string | boolean | number | null | undefined; + +export interface IValueObjectOptions { + label?: string; + path?: string; +} + +export interface IStringValueObjectOptions extends IValueObjectOptions {} + +export class StringValueObject extends ValueObject> { + public isEmpty = (): boolean => { + return this.toString().length === 0; + }; + + public toString = (): string => { + return this.props ? String(this.props) : ""; + }; + + public toPrimitive(): string { + return this.toString(); + } + + get value(): UndefinedOr { + return !this.isEmpty() ? this.props : undefined; + } + + getValue() { + return !this.isEmpty() ? this.props : undefined; + } +} diff --git a/packages/rdx-criteria/src/helpers/index.ts b/packages/rdx-criteria/src/helpers/index.ts new file mode 100644 index 00000000..e39a6944 --- /dev/null +++ b/packages/rdx-criteria/src/helpers/index.ts @@ -0,0 +1,3 @@ +export * from "./RuleValidator"; +export * from "./ResultCollection"; +export * from "./StringValueObject"; diff --git a/packages/rdx-criteria/src/index.ts b/packages/rdx-criteria/src/index.ts new file mode 100644 index 00000000..1497446b --- /dev/null +++ b/packages/rdx-criteria/src/index.ts @@ -0,0 +1,5 @@ +export * from "./QueryCriteria"; +export * from "./Filters"; +export * from "./Order"; +export * from "./Pagination"; +export * from "./QuickSearch"; diff --git a/packages/rdx-criteria/tsconfig.json b/packages/rdx-criteria/tsconfig.json new file mode 100644 index 00000000..4401f691 --- /dev/null +++ b/packages/rdx-criteria/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "composite": true + }, + "include": ["src"] +} diff --git a/packages/rdx-ddd/package.json b/packages/rdx-ddd/package.json new file mode 100644 index 00000000..03a20724 --- /dev/null +++ b/packages/rdx-ddd/package.json @@ -0,0 +1,26 @@ +{ + "name": "@repo/rdx-ddd", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "scripts": { + "clean": "rm -rf node_modules" + }, + "exports": { + ".": "./src/index.ts" + }, + "devDependencies": { + "@repo/typescript-config": "workspace:*", + "@types/node": "^22.15.12", + "@types/dinero.js": "^1.9.4", + "typescript": "^5.8.3" + }, + "dependencies": { + "@repo/rdx-utils": "workspace:*", + "dinero.js": "^1.9.1", + "libphonenumber-js": "^1.11.20", + "shallow-equal-object": "^1.1.1", + "uuid": "^11.0.5", + "zod": "^3.24.4" + } +} diff --git a/packages/rdx-ddd/src/aggregate-root-repository.interface.ts b/packages/rdx-ddd/src/aggregate-root-repository.interface.ts new file mode 100644 index 00000000..39ee4b20 --- /dev/null +++ b/packages/rdx-ddd/src/aggregate-root-repository.interface.ts @@ -0,0 +1,2 @@ +// biome-ignore lint/complexity/noBannedTypes: +export type IAggregateRootRepository = {}; diff --git a/apps/server/src/core/common/domain/aggregate-root.ts b/packages/rdx-ddd/src/aggregate-root.ts similarity index 83% rename from apps/server/src/core/common/domain/aggregate-root.ts rename to packages/rdx-ddd/src/aggregate-root.ts index 9dd652eb..32ffde8a 100644 --- a/apps/server/src/core/common/domain/aggregate-root.ts +++ b/packages/rdx-ddd/src/aggregate-root.ts @@ -1,4 +1,3 @@ -import { logger } from "../infrastructure/logger"; import { DomainEntity } from "./domain-entity"; import { IDomainEvent } from "./events"; @@ -8,9 +7,6 @@ export abstract class AggregateRoot extends DomainEntity { private logDomainEventAdded(event: IDomainEvent): void { const thisClass = Reflect.getPrototypeOf(this); const domainEventClass = Reflect.getPrototypeOf(event); - logger.info( - `[Domain Event Created]: ${thisClass?.constructor.name} ==> ${domainEventClass?.constructor.name}` - ); } /** diff --git a/apps/server/src/core/common/domain/domain-entity.ts b/packages/rdx-ddd/src/domain-entity.ts similarity index 93% rename from apps/server/src/core/common/domain/domain-entity.ts rename to packages/rdx-ddd/src/domain-entity.ts index d7d7dcf3..7ee3b2b8 100644 --- a/apps/server/src/core/common/domain/domain-entity.ts +++ b/packages/rdx-ddd/src/domain-entity.ts @@ -1,4 +1,4 @@ -import { UniqueID } from "./value-objects/unique-id"; +import { UniqueID } from "./value-objects"; export abstract class DomainEntity { protected readonly props: T; diff --git a/apps/server/src/core/common/domain/events/domain-event-handle.ts b/packages/rdx-ddd/src/events/domain-event-handle.ts similarity index 100% rename from apps/server/src/core/common/domain/events/domain-event-handle.ts rename to packages/rdx-ddd/src/events/domain-event-handle.ts diff --git a/apps/server/src/core/common/domain/events/domain-event.interface.ts b/packages/rdx-ddd/src/events/domain-event.interface.ts similarity index 100% rename from apps/server/src/core/common/domain/events/domain-event.interface.ts rename to packages/rdx-ddd/src/events/domain-event.interface.ts diff --git a/apps/server/src/core/common/domain/events/domain-event.ts b/packages/rdx-ddd/src/events/domain-event.ts similarity index 70% rename from apps/server/src/core/common/domain/events/domain-event.ts rename to packages/rdx-ddd/src/events/domain-event.ts index c95d61d9..f0c388e6 100644 --- a/apps/server/src/core/common/domain/events/domain-event.ts +++ b/packages/rdx-ddd/src/events/domain-event.ts @@ -1,9 +1,10 @@ // https://khalilstemmler.com/articles/typescript-domain-driven-design/chain-business-logic-domain-events/ import { AggregateRoot } from "../aggregate-root"; -import { UniqueID } from "../value-objects/unique-id"; +import { UniqueID } from "../value-objects"; import { IDomainEvent } from "./domain-event.interface"; +// biome-ignore lint/complexity/noStaticOnlyClass: export class DomainEvents { private static handlersMap: { [key: string]: Array<(event: IDomainEvent) => void> } = {}; private static markedAggregates: AggregateRoot[] = []; @@ -17,10 +18,10 @@ export class DomainEvents { */ public static markAggregateForDispatch(aggregate: AggregateRoot): void { - const aggregateFound = !!this.findMarkedAggregateByID(aggregate.id); + const aggregateFound = !!DomainEvents.findMarkedAggregateByID(aggregate.id); if (!aggregateFound) { - this.markedAggregates.push(aggregate); + DomainEvents.markedAggregates.push(aggregate); } } @@ -32,7 +33,7 @@ export class DomainEvents { */ private static dispatchAggregateEvents(aggregate: AggregateRoot): void { - aggregate.domainEvents.forEach((event: IDomainEvent) => this.dispatch(event)); + aggregate.domainEvents.forEach((event: IDomainEvent) => DomainEvents.dispatch(event)); } /** @@ -42,9 +43,9 @@ export class DomainEvents { */ private static removeAggregateFromMarkedDispatchList(aggregate: AggregateRoot): void { - const index = this.markedAggregates.findIndex((a) => a.equals(aggregate)); + const index = DomainEvents.markedAggregates.findIndex((a) => a.equals(aggregate)); - this.markedAggregates.splice(index, 1); + DomainEvents.markedAggregates.splice(index, 1); } /** @@ -56,7 +57,7 @@ export class DomainEvents { private static findMarkedAggregateByID(id: UniqueID): AggregateRoot { let found!: AggregateRoot; - for (const aggregate of this.markedAggregates) { + for (const aggregate of DomainEvents.markedAggregates) { if (aggregate.id.equals(id)) { found = aggregate; } @@ -74,12 +75,12 @@ export class DomainEvents { */ public static dispatchEventsForAggregate(id: UniqueID): void { - const aggregate = this.findMarkedAggregateByID(id); + const aggregate = DomainEvents.findMarkedAggregateByID(id); if (aggregate) { - this.dispatchAggregateEvents(aggregate); + DomainEvents.dispatchAggregateEvents(aggregate); aggregate.clearDomainEvents(); - this.removeAggregateFromMarkedDispatchList(aggregate); + DomainEvents.removeAggregateFromMarkedDispatchList(aggregate); } } @@ -90,10 +91,10 @@ export class DomainEvents { */ public static register(callback: (event: IDomainEvent) => void, eventClassName: string): void { - if (!this.handlersMap.hasOwnProperty(eventClassName)) { - this.handlersMap[eventClassName] = []; + if (!Object.prototype.hasOwnProperty.call(DomainEvents.handlersMap, eventClassName)) { + DomainEvents.handlersMap[eventClassName] = []; } - this.handlersMap[eventClassName].push(callback); + DomainEvents.handlersMap[eventClassName].push(callback); } /** @@ -103,7 +104,7 @@ export class DomainEvents { */ public static clearHandlers(): void { - this.handlersMap = {}; + DomainEvents.handlersMap = {}; } /** @@ -113,7 +114,7 @@ export class DomainEvents { */ public static clearMarkedAggregates(): void { - this.markedAggregates = []; + DomainEvents.markedAggregates = []; } /** @@ -125,8 +126,8 @@ export class DomainEvents { private static dispatch(event: IDomainEvent): void { const eventClassName: string = event.constructor.name; - if (this.handlersMap.hasOwnProperty(eventClassName)) { - const handlers: any[] = this.handlersMap[eventClassName]; + if (Object.hasOwn(DomainEvents.handlersMap, eventClassName)) { + const handlers: any[] = DomainEvents.handlersMap[eventClassName]; for (const handler of handlers) { handler(event); } diff --git a/apps/server/src/core/common/domain/events/index.ts b/packages/rdx-ddd/src/events/index.ts similarity index 100% rename from apps/server/src/core/common/domain/events/index.ts rename to packages/rdx-ddd/src/events/index.ts diff --git a/apps/server/src/core/common/domain/index.ts b/packages/rdx-ddd/src/index.ts similarity index 100% rename from apps/server/src/core/common/domain/index.ts rename to packages/rdx-ddd/src/index.ts diff --git a/apps/server/src/core/common/domain/value-objects/email-address.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/email-address.test.ts similarity index 97% rename from apps/server/src/core/common/domain/value-objects/email-address.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/email-address.test.ts index 20b59573..a1595a41 100644 --- a/apps/server/src/core/common/domain/value-objects/email-address.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/email-address.test.ts @@ -1,4 +1,4 @@ -import { EmailAddress } from "./email-address"; +import { EmailAddress } from "../email-address"; describe("EmailAddress Value Object", () => { it("should create a valid email", () => { diff --git a/apps/server/src/core/common/domain/value-objects/money-value.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/money-value.test.ts similarity index 98% rename from apps/server/src/core/common/domain/value-objects/money-value.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/money-value.test.ts index c990fb25..69ffda11 100644 --- a/apps/server/src/core/common/domain/value-objects/money-value.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/money-value.test.ts @@ -1,4 +1,4 @@ -import { MoneyValue } from "./money-value"; +import { MoneyValue } from "../money-value"; describe("MoneyValue", () => { test("should correctly instantiate with amount, scale, and currency", () => { diff --git a/apps/server/src/core/common/domain/value-objects/name.spec.ts b/packages/rdx-ddd/src/value-objects/__tests__/name.spec.ts similarity index 100% rename from apps/server/src/core/common/domain/value-objects/name.spec.ts rename to packages/rdx-ddd/src/value-objects/__tests__/name.spec.ts diff --git a/apps/server/src/core/common/domain/value-objects/percentage.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/percentage.test.ts similarity index 96% rename from apps/server/src/core/common/domain/value-objects/percentage.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/percentage.test.ts index 8b89ec03..dcda91d5 100644 --- a/apps/server/src/core/common/domain/value-objects/percentage.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/percentage.test.ts @@ -1,4 +1,4 @@ -import { Percentage } from "./percentage"; // Ajusta la ruta según sea necesario +import { Percentage } from "../percentage"; // Ajusta la ruta según sea necesario describe("Percentage Value Object", () => { test("Debe crear un porcentaje válido con escala por defecto", () => { diff --git a/apps/server/src/core/common/domain/value-objects/phone-number.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/phone-number.test.ts similarity index 98% rename from apps/server/src/core/common/domain/value-objects/phone-number.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/phone-number.test.ts index e888dee6..0015b971 100644 --- a/apps/server/src/core/common/domain/value-objects/phone-number.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/phone-number.test.ts @@ -1,6 +1,6 @@ import { parsePhoneNumberWithError } from "libphonenumber-js"; import { Maybe } from "../../helpers/maybe"; -import { PhoneNumber } from "./phone-number"; +import { PhoneNumber } from "../phone-number"; describe("PhoneNumber", () => { const validPhone = "+14155552671"; // Número válido en formato internacional diff --git a/apps/server/src/core/common/domain/value-objects/postal-address.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/postal-address.test.ts similarity index 97% rename from apps/server/src/core/common/domain/value-objects/postal-address.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/postal-address.test.ts index e1ca44e1..2b561032 100644 --- a/apps/server/src/core/common/domain/value-objects/postal-address.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/postal-address.test.ts @@ -1,4 +1,4 @@ -import { PostalAddress } from "./postal-address"; +import { PostalAddress } from "../postal-address"; describe("PostalAddress Value Object", () => { const validAddress = { diff --git a/apps/server/src/core/common/domain/value-objects/quantity.spec.ts b/packages/rdx-ddd/src/value-objects/__tests__/quantity.spec.ts similarity index 99% rename from apps/server/src/core/common/domain/value-objects/quantity.spec.ts rename to packages/rdx-ddd/src/value-objects/__tests__/quantity.spec.ts index 67e01d06..ad5409be 100644 --- a/apps/server/src/core/common/domain/value-objects/quantity.spec.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/quantity.spec.ts @@ -1,4 +1,4 @@ -import { Quantity } from "./quantity"; +import { Quantity } from "../quantity"; describe("Quantity", () => { describe("create", () => { diff --git a/apps/server/src/core/common/domain/value-objects/slug.spec.ts b/packages/rdx-ddd/src/value-objects/__tests__/slug.spec.ts similarity index 95% rename from apps/server/src/core/common/domain/value-objects/slug.spec.ts rename to packages/rdx-ddd/src/value-objects/__tests__/slug.spec.ts index 9172ddf7..f0a0e195 100644 --- a/apps/server/src/core/common/domain/value-objects/slug.spec.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/slug.spec.ts @@ -1,4 +1,4 @@ -import { Slug } from "./slug"; // Ajusta la ruta según corresponda +import { Slug } from "../slug"; // Ajusta la ruta según corresponda describe("Slug Value Object", () => { test("Debe crear un Slug válido", () => { diff --git a/apps/server/src/core/common/domain/value-objects/tin-number.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/tin-number.test.ts similarity index 97% rename from apps/server/src/core/common/domain/value-objects/tin-number.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/tin-number.test.ts index 39f7b6e1..4a63d29f 100644 --- a/apps/server/src/core/common/domain/value-objects/tin-number.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/tin-number.test.ts @@ -1,4 +1,4 @@ -import { TINNumber } from "./tin-number"; +import { TINNumber } from "../tin-number"; describe("TINNumber", () => { it("debería crear un TINNumber válido", () => { diff --git a/apps/server/src/core/common/domain/value-objects/unique-id.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/unique-id.test.ts similarity index 97% rename from apps/server/src/core/common/domain/value-objects/unique-id.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/unique-id.test.ts index c656b0aa..2b594d23 100644 --- a/apps/server/src/core/common/domain/value-objects/unique-id.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/unique-id.test.ts @@ -1,4 +1,4 @@ -import { UniqueID } from "./unique-id"; +import { UniqueID } from "../unique-id"; // Mock UUID generation to ensure predictable tests jest.mock("uuid", () => ({ v4: () => "123e4567-e89b-12d3-a456-426614174000" })); diff --git a/apps/server/src/core/common/domain/value-objects/utc-date.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/utc-date.test.ts similarity index 97% rename from apps/server/src/core/common/domain/value-objects/utc-date.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/utc-date.test.ts index 4eb2b57e..9713a947 100644 --- a/apps/server/src/core/common/domain/value-objects/utc-date.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/utc-date.test.ts @@ -1,4 +1,4 @@ -import { UtcDate } from "./utc-date"; +import { UtcDate } from "../utc-date"; describe("UtcDate Value Object con Zod y Result", () => { test("Debe crear una instancia con fecha y hora en UTC", () => { diff --git a/apps/server/src/core/common/domain/value-objects/value-objects.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/value-objects.test.ts similarity index 100% rename from apps/server/src/core/common/domain/value-objects/value-objects.test.ts rename to packages/rdx-ddd/src/value-objects/__tests__/value-objects.test.ts diff --git a/apps/server/src/core/common/domain/value-objects/email-address.ts b/packages/rdx-ddd/src/value-objects/email-address.ts similarity index 90% rename from apps/server/src/core/common/domain/value-objects/email-address.ts rename to packages/rdx-ddd/src/value-objects/email-address.ts index d140a5e7..aa2b075c 100644 --- a/apps/server/src/core/common/domain/value-objects/email-address.ts +++ b/packages/rdx-ddd/src/value-objects/email-address.ts @@ -1,4 +1,4 @@ -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod"; import { ValueObject } from "./value-object"; @@ -13,7 +13,8 @@ export class EmailAddress extends ValueObject { if (!valueIsValid.success) { return Result.fail(new Error(valueIsValid.error.errors[0].message)); } - return Result.ok(new EmailAddress({ value: valueIsValid.data! })); + + return Result.ok(new EmailAddress({ value: valueIsValid.data })); } static createNullable(value?: string): Result, Error> { @@ -21,7 +22,7 @@ export class EmailAddress extends ValueObject { return Result.ok(Maybe.none()); } - return EmailAddress.create(value!).map((value) => Maybe.some(value)); + return EmailAddress.create(value).map((value) => Maybe.some(value)); } private static validate(value: string) { diff --git a/apps/server/src/core/common/domain/value-objects/index.ts b/packages/rdx-ddd/src/value-objects/index.ts similarity index 100% rename from apps/server/src/core/common/domain/value-objects/index.ts rename to packages/rdx-ddd/src/value-objects/index.ts diff --git a/apps/server/src/core/common/domain/value-objects/money-value.ts b/packages/rdx-ddd/src/value-objects/money-value.ts similarity index 99% rename from apps/server/src/core/common/domain/value-objects/money-value.ts rename to packages/rdx-ddd/src/value-objects/money-value.ts index 26dab433..e3bbd52b 100644 --- a/apps/server/src/core/common/domain/value-objects/money-value.ts +++ b/packages/rdx-ddd/src/value-objects/money-value.ts @@ -1,4 +1,4 @@ -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import DineroFactory, { Currency, Dinero } from "dinero.js"; import { Percentage } from "./percentage"; import { Quantity } from "./quantity"; diff --git a/apps/server/src/core/common/domain/value-objects/name.ts b/packages/rdx-ddd/src/value-objects/name.ts similarity index 92% rename from apps/server/src/core/common/domain/value-objects/name.ts rename to packages/rdx-ddd/src/value-objects/name.ts index b362713c..2ade1977 100644 --- a/apps/server/src/core/common/domain/value-objects/name.ts +++ b/packages/rdx-ddd/src/value-objects/name.ts @@ -1,4 +1,4 @@ -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod"; import { ValueObject } from "./value-object"; @@ -31,7 +31,7 @@ export class Name extends ValueObject { return Result.ok(Maybe.none()); } - return Name.create(value!).map((value) => Maybe.some(value)); + return Name.create(value).map((value) => Maybe.some(value)); } static generateAcronym(name: string): string { diff --git a/apps/server/src/core/common/domain/value-objects/percentage.ts b/packages/rdx-ddd/src/value-objects/percentage.ts similarity index 97% rename from apps/server/src/core/common/domain/value-objects/percentage.ts rename to packages/rdx-ddd/src/value-objects/percentage.ts index 9f6dfbfb..1d4eebe3 100644 --- a/apps/server/src/core/common/domain/value-objects/percentage.ts +++ b/packages/rdx-ddd/src/value-objects/percentage.ts @@ -1,4 +1,4 @@ -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; import { ValueObject } from "./value-object"; diff --git a/apps/server/src/core/common/domain/value-objects/phone-number.ts b/packages/rdx-ddd/src/value-objects/phone-number.ts similarity index 86% rename from apps/server/src/core/common/domain/value-objects/phone-number.ts rename to packages/rdx-ddd/src/value-objects/phone-number.ts index 777b2ed5..5b5f602c 100644 --- a/apps/server/src/core/common/domain/value-objects/phone-number.ts +++ b/packages/rdx-ddd/src/value-objects/phone-number.ts @@ -1,7 +1,7 @@ +import { Result } from "@repo/rdx-utils"; +import { Maybe } from "@repo/rdx-utils"; import { isValidPhoneNumber, parsePhoneNumberWithError } from "libphonenumber-js"; import { z } from "zod"; -import { Maybe } from "../../helpers/maybe"; -import { Result } from "../../helpers/result"; import { ValueObject } from "./value-object"; interface PhoneNumberProps { @@ -15,7 +15,7 @@ export class PhoneNumber extends ValueObject { if (!valueIsValid.success) { return Result.fail(new Error(valueIsValid.error.errors[0].message)); } - return Result.ok(new PhoneNumber({ value: valueIsValid.data! })); + return Result.ok(new PhoneNumber({ value: valueIsValid.data })); } static createNullable(value?: string): Result, Error> { @@ -23,7 +23,7 @@ export class PhoneNumber extends ValueObject { return Result.ok(Maybe.none()); } - return PhoneNumber.create(value!).map((value) => Maybe.some(value)); + return PhoneNumber.create(value).map((value) => Maybe.some(value)); } static validate(value: string) { diff --git a/apps/server/src/core/common/domain/value-objects/postal-address.ts b/packages/rdx-ddd/src/value-objects/postal-address.ts similarity index 93% rename from apps/server/src/core/common/domain/value-objects/postal-address.ts rename to packages/rdx-ddd/src/value-objects/postal-address.ts index 6505dffa..d0d10df8 100644 --- a/apps/server/src/core/common/domain/value-objects/postal-address.ts +++ b/packages/rdx-ddd/src/value-objects/postal-address.ts @@ -1,5 +1,5 @@ +import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod"; -import { Maybe, Result } from "../../helpers"; import { ValueObject } from "./value-object"; // 📌 Validaciones usando `zod` @@ -54,7 +54,7 @@ export class PostalAddress extends ValueObject { return Result.ok(Maybe.none()); } - return PostalAddress.create(values!).map((value) => Maybe.some(value)); + return PostalAddress.create(values).map((value) => Maybe.some(value)); } static update( @@ -68,6 +68,7 @@ export class PostalAddress extends ValueObject { postalCode: data.postalCode ?? oldAddress.postalCode, state: data.state ?? oldAddress.state, country: data.country ?? oldAddress.country, + // biome-ignore lint/complexity/noThisInStatic: }).getOrElse(this); } diff --git a/apps/server/src/core/common/domain/value-objects/quantity.ts b/packages/rdx-ddd/src/value-objects/quantity.ts similarity index 98% rename from apps/server/src/core/common/domain/value-objects/quantity.ts rename to packages/rdx-ddd/src/value-objects/quantity.ts index faaf19d2..a3005af3 100644 --- a/apps/server/src/core/common/domain/value-objects/quantity.ts +++ b/packages/rdx-ddd/src/value-objects/quantity.ts @@ -1,4 +1,4 @@ -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; import { ValueObject } from "./value-object"; diff --git a/apps/server/src/core/common/domain/value-objects/slug.ts b/packages/rdx-ddd/src/value-objects/slug.ts similarity index 87% rename from apps/server/src/core/common/domain/value-objects/slug.ts rename to packages/rdx-ddd/src/value-objects/slug.ts index b7bb4881..328a1928 100644 --- a/apps/server/src/core/common/domain/value-objects/slug.ts +++ b/packages/rdx-ddd/src/value-objects/slug.ts @@ -1,4 +1,4 @@ -import { Maybe, Result } from "@/core/common/helpers"; +import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod"; import { ValueObject } from "./value-object"; @@ -28,6 +28,7 @@ export class Slug extends ValueObject { if (!valueIsValid.success) { return Result.fail(new Error(valueIsValid.error.errors[0].message)); } + // biome-ignore lint/style/noNonNullAssertion: return Result.ok(new Slug({ value: valueIsValid.data! })); } @@ -36,7 +37,7 @@ export class Slug extends ValueObject { return Result.ok(Maybe.none()); } - return Slug.create(value!).map((value: Slug) => Maybe.some(value)); + return Slug.create(value).map((value: Slug) => Maybe.some(value)); } getValue(): string { diff --git a/apps/server/src/core/common/domain/value-objects/tin-number.ts b/packages/rdx-ddd/src/value-objects/tin-number.ts similarity index 86% rename from apps/server/src/core/common/domain/value-objects/tin-number.ts rename to packages/rdx-ddd/src/value-objects/tin-number.ts index e6f6b602..65ead14a 100644 --- a/apps/server/src/core/common/domain/value-objects/tin-number.ts +++ b/packages/rdx-ddd/src/value-objects/tin-number.ts @@ -1,5 +1,5 @@ +import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod"; -import { Maybe, Result } from "../../helpers"; import { ValueObject } from "./value-object"; interface TINNumberProps { @@ -30,7 +30,7 @@ export class TINNumber extends ValueObject { if (!valueIsValid.success) { return Result.fail(new Error(valueIsValid.error.errors[0].message)); } - return Result.ok(new TINNumber({ value: valueIsValid.data! })); + return Result.ok(new TINNumber({ value: valueIsValid.data })); } static createNullable(value?: string): Result, Error> { @@ -38,7 +38,7 @@ export class TINNumber extends ValueObject { return Result.ok(Maybe.none()); } - return TINNumber.create(value!).map((value) => Maybe.some(value)); + return TINNumber.create(value).map((value) => Maybe.some(value)); } getValue(): string { diff --git a/apps/server/src/core/common/domain/value-objects/unique-id.ts b/packages/rdx-ddd/src/value-objects/unique-id.ts similarity index 91% rename from apps/server/src/core/common/domain/value-objects/unique-id.ts rename to packages/rdx-ddd/src/value-objects/unique-id.ts index 281de175..cec1f4b1 100644 --- a/apps/server/src/core/common/domain/value-objects/unique-id.ts +++ b/packages/rdx-ddd/src/value-objects/unique-id.ts @@ -1,6 +1,6 @@ +import { Result } from "@repo/rdx-utils"; import { v4 as uuidv4 } from "uuid"; import { z } from "zod"; -import { Result } from "../../helpers/result"; import { ValueObject } from "./value-object"; export class UniqueID extends ValueObject { @@ -12,6 +12,7 @@ export class UniqueID extends ValueObject { return UniqueID.generateNewID(); } + // biome-ignore lint/style/noNonNullAssertion: const result = UniqueID.validate(id!); return result.success diff --git a/apps/server/src/core/common/domain/value-objects/utc-date.ts b/packages/rdx-ddd/src/value-objects/utc-date.ts similarity index 97% rename from apps/server/src/core/common/domain/value-objects/utc-date.ts rename to packages/rdx-ddd/src/value-objects/utc-date.ts index 1fae725b..301e3a4b 100644 --- a/apps/server/src/core/common/domain/value-objects/utc-date.ts +++ b/packages/rdx-ddd/src/value-objects/utc-date.ts @@ -1,4 +1,4 @@ -import { Result } from "@/core/common/helpers"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod"; import { ValueObject } from "./value-object"; diff --git a/apps/server/src/core/common/domain/value-objects/value-object.ts b/packages/rdx-ddd/src/value-objects/value-object.ts similarity index 100% rename from apps/server/src/core/common/domain/value-objects/value-object.ts rename to packages/rdx-ddd/src/value-objects/value-object.ts diff --git a/packages/rdx-ddd/tsconfig.json b/packages/rdx-ddd/tsconfig.json new file mode 100644 index 00000000..ae0d7f37 --- /dev/null +++ b/packages/rdx-ddd/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "lib": ["es2022", "dom"], + "composite": true + }, + "include": ["src"] +} diff --git a/packages/ui/package.json b/packages/rdx-ui/package.json similarity index 64% rename from packages/ui/package.json rename to packages/rdx-ui/package.json index 31dfb53e..2f4e0ea6 100644 --- a/packages/ui/package.json +++ b/packages/rdx-ui/package.json @@ -4,10 +4,16 @@ "type": "module", "private": true, "scripts": { - "lint": "biome lint --fix" + "ui:lint": "biome lint --fix" + }, + "exports": { + "./components": "./src/components/index.tsx", + "./components/*": "./src/components/*.tsx", + "./hooks/*": ["./src/hooks/*.tsx", "./src/hooks/*.ts"] }, "dependencies": { "@repo/shadcn-ui": "workspace:*", + "esbuild-raw-plugin": "^0.2.0", "i18next": "^25.0.2", "lucide-react": "^0.503.0", "react": "^19.1.0", @@ -17,16 +23,18 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "@repo/typescript-config": "workspace:*", + "@tailwindcss/postcss": "^4.1.5", "@turbo/gen": "^2.5.2", - "@types/node": "^22.15.3", + "@types/node": "^22.15.12", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.3", + "@vitejs/plugin-react": "^4.4.1", + "esbuild-plugin-react18": "^0.2.6", + "esbuild-plugin-react18-css": "^0.0.4", "tailwindcss": "^4.1.5", - "typescript": "^5.8.3" - }, - "exports": { - "./components": "./src/components/index.tsx", - "./components/*": "./src/components/*.tsx", - "./hooks/*": ["./src/hooks/*.tsx", "./src/hooks/*.ts"] + "tsup": "^8.4.0", + "typescript": "^5.8.3", + "vite-tsconfig-paths": "^5.1.4", + "typescript-plugin-css-modules": "^5.1.0" } } diff --git a/packages/rdx-ui/postcss.config.mjs b/packages/rdx-ui/postcss.config.mjs new file mode 100644 index 00000000..c15b9985 --- /dev/null +++ b/packages/rdx-ui/postcss.config.mjs @@ -0,0 +1,6 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { "@tailwindcss/postcss": {} }, +}; + +export default config; diff --git a/packages/rdx-ui/src/components/custom-dialog.tsx b/packages/rdx-ui/src/components/custom-dialog.tsx new file mode 100644 index 00000000..f34b14a7 --- /dev/null +++ b/packages/rdx-ui/src/components/custom-dialog.tsx @@ -0,0 +1,55 @@ +import { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle, +} from "@repo/shadcn-ui/components"; +import { SyntheticEvent } from "react"; +import { Link } from "react-router-dom"; + +interface CustomDialogProps { + isOpen: boolean; + onCancel: (event: SyntheticEvent) => void; + onConfirm: (event: SyntheticEvent) => void; + title: React.ReactNode; + description: React.ReactNode; + cancelLabel: React.ReactNode; + confirmLabel: React.ReactNode; +} + +export const CustomDialog = ({ + isOpen, + onCancel, + onConfirm, + title, + description, + cancelLabel, + confirmLabel, +}: CustomDialogProps) => { + return ( + + + + {title} + {description} + + + + + {cancelLabel} + + + + + {confirmLabel} + + + + + + ); +}; diff --git a/packages/rdx-ui/src/components/index.tsx b/packages/rdx-ui/src/components/index.tsx new file mode 100644 index 00000000..41997db3 --- /dev/null +++ b/packages/rdx-ui/src/components/index.tsx @@ -0,0 +1,4 @@ +export * from "./tailwind-indicator.tsx"; +export * from "./loading-overlay/index.tsx"; +export * from "./custom-dialog.tsx"; +export * from "./prueba.tsx"; diff --git a/packages/rdx-ui/src/components/loading-overlay/index.tsx b/packages/rdx-ui/src/components/loading-overlay/index.tsx new file mode 100644 index 00000000..b229c338 --- /dev/null +++ b/packages/rdx-ui/src/components/loading-overlay/index.tsx @@ -0,0 +1 @@ +export * from "./loading-overlay.tsx"; diff --git a/packages/rdx-ui/src/components/loading-overlay/loading-indicator.tsx b/packages/rdx-ui/src/components/loading-overlay/loading-indicator.tsx new file mode 100644 index 00000000..85d6aacf --- /dev/null +++ b/packages/rdx-ui/src/components/loading-overlay/loading-indicator.tsx @@ -0,0 +1,53 @@ +import { cn } from "@repo/shadcn-ui/lib/utils"; +import { t } from "i18next"; +import { LoadingSpinIcon } from "./loading-spin-icon"; + +export type LoadingIndicatorProps = { + look?: "dark" | string; + size?: number; + active?: boolean; + title?: string; + subtitle?: string; +}; + +export const LoadingIndicator = ({ + active = true, + look = "dark", + title = t("components.loading_indicator.title"), + subtitle = "", +}: LoadingIndicatorProps) => { + const isDark = look === "dark"; + const loadingSpinClassName = isDark ? "text-brand" : "text-white"; + + if (!active) { + return; + } + + return ( +

+ + {/**/} + {title ? ( +

+ {title} +

+ ) : null} + {subtitle ? ( +

+ {subtitle} +

+ ) : null} +
+ ); +}; + +LoadingIndicator.displayName = "LoadingIndicator"; diff --git a/packages/rdx-ui/src/components/loading-overlay/loading-overlay.tsx b/packages/rdx-ui/src/components/loading-overlay/loading-overlay.tsx new file mode 100644 index 00000000..8708e2ff --- /dev/null +++ b/packages/rdx-ui/src/components/loading-overlay/loading-overlay.tsx @@ -0,0 +1,26 @@ +import { t } from "i18next"; +import { LoadingIndicator } from "./loading-indicator"; + +export type LoadingOverlayProps = { + title?: string; + subtitle?: string; +}; + +export const LoadingOverlay = ({ + title = t("components.loading_overlay.title"), + subtitle = t("components.loading_overlay.subtitle"), + ...props +}: LoadingOverlayProps) => { + return ( +
+ +
+ ); +}; + +LoadingOverlay.displayName = "LoadingOverlay"; diff --git a/packages/rdx-ui/src/components/loading-overlay/loading-spin-icon.tsx b/packages/rdx-ui/src/components/loading-overlay/loading-spin-icon.tsx new file mode 100644 index 00000000..a852496d --- /dev/null +++ b/packages/rdx-ui/src/components/loading-overlay/loading-spin-icon.tsx @@ -0,0 +1,27 @@ +import { JSX } from "react"; + +export const LoadingSpinIcon = ({ + size = 5, + color = "brand", + className, +}: { + size?: number; + color?: string; + className?: string; +}): JSX.Element => ( + + Loading spinner + + + + +); diff --git a/packages/rdx-ui/src/components/prueba.tsx b/packages/rdx-ui/src/components/prueba.tsx new file mode 100644 index 00000000..c32986f2 --- /dev/null +++ b/packages/rdx-ui/src/components/prueba.tsx @@ -0,0 +1,91 @@ +import { Alert, AlertDescription, AlertTitle, Button } from "@repo/shadcn-ui/components"; +import { + AlertCircleIcon, + BookmarkCheckIcon, + CheckCircle2Icon, + GiftIcon, + PopcornIcon, + ShieldAlertIcon, +} from "lucide-react"; + +export const Prueba = () => { + return ( +
+ + + Success! Your changes have been saved + This is an alert with icon, title and description. + + + Heads up! + This one has an icon and a description only. No title. + + + This one has a description only. No title. No icon. + + + + Let's try one with icon and title. + + + + + This is a very long alert title that demonstrates how the component handles extended text + content and potentially wraps across multiple lines + + + + + + This is a very long alert description that demonstrates how the component handles extended + text content and potentially wraps across multiple lines + + + + + + This is an extremely long alert title that spans multiple lines to demonstrate how the + component handles very lengthy headings while maintaining readability and proper text + wrapping behavior + + + This is an equally long description that contains detailed information about the alert. It + shows how the component can accommodate extensive content while preserving proper spacing, + alignment, and readability across different screen sizes and viewport widths. This helps + ensure the user experience remains consistent regardless of the content length. + + + + + Something went wrong! + Your session has expired. Please log in again. + + + + Unable to process your payment. + +

Please verify your billing information and try again.

+
    +
  • Check your card details
  • +
  • Ensure sufficient funds
  • +
  • Verify billing address
  • +
+
+
+ + + + The selected emails have been marked as spam. + + + + + + Plot Twist: This Alert is Actually Amber! + This one has custom colors for light and dark mode. + +
+ ); +}; diff --git a/packages/rdx-ui/src/components/tailwind-indicator.tsx b/packages/rdx-ui/src/components/tailwind-indicator.tsx new file mode 100644 index 00000000..91af9da0 --- /dev/null +++ b/packages/rdx-ui/src/components/tailwind-indicator.tsx @@ -0,0 +1,14 @@ +export function TailwindIndicator() { + if (process.env.NODE_ENV === "production") return null; + + return ( +
+
xs
+
sm
+
md
+
lg
+
xl
+
2xl
+
+ ); +} diff --git a/packages/rdx-ui/src/global.d.ts b/packages/rdx-ui/src/global.d.ts new file mode 100644 index 00000000..f2d12bb5 --- /dev/null +++ b/packages/rdx-ui/src/global.d.ts @@ -0,0 +1,4 @@ +declare module "*.module.css" { + const classes: { [key: string]: string }; + export default classes; +} diff --git a/packages/rdx-ui/src/index.ts b/packages/rdx-ui/src/index.ts new file mode 100644 index 00000000..a29b9fab --- /dev/null +++ b/packages/rdx-ui/src/index.ts @@ -0,0 +1,3 @@ +"use client"; + +export * from "./components"; diff --git a/packages/rdx-ui/tsconfig-build.json b/packages/rdx-ui/tsconfig-build.json new file mode 100644 index 00000000..a3624056 --- /dev/null +++ b/packages/rdx-ui/tsconfig-build.json @@ -0,0 +1,31 @@ +{ + // using tsc for type declarations as "Note that declaration files generated by any tool other than tsc are not guaranteed to be error-free, so it's a good idea to test the output with tsc" - https://tsup.egoist.dev/#generate-declaration-file + // "extends": "@repo/typescript-config/react-library.json", + "compilerOptions": { + "composite": false, + "declaration": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "allowImportingTsExtensions": true, + "inlineSources": false, + "isolatedModules": true, + "moduleResolution": "Bundler", + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "strictNullChecks": true, + + "lib": ["ES2015", "DOM"], + "module": "ESNext", + "target": "ES6", + "jsx": "react-jsx", + "outDir": "dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": true + }, + "include": ["src"], + "exclude": ["dist", "node_modules", "**/*.test.*", "**/*.spec.*"] +} diff --git a/packages/ui/tsconfig.json b/packages/rdx-ui/tsconfig.json similarity index 83% rename from packages/ui/tsconfig.json rename to packages/rdx-ui/tsconfig.json index 8329c76e..e3fcefc1 100644 --- a/packages/ui/tsconfig.json +++ b/packages/rdx-ui/tsconfig.json @@ -9,7 +9,9 @@ "baseUrl": ".", "paths": { "@repo/ui/*": ["./src/*"] - } + }, + + "plugins": [{ "name": "typescript-plugin-css-modules" }] }, "include": ["."], "exclude": ["node_modules", "dist"] diff --git a/packages/rdx-ui/tsup.config.ts b/packages/rdx-ui/tsup.config.ts new file mode 100644 index 00000000..1f34ef1f --- /dev/null +++ b/packages/rdx-ui/tsup.config.ts @@ -0,0 +1,25 @@ +import react18Plugin from "esbuild-plugin-react18"; +import cssPlugin from "esbuild-plugin-react18-css"; +import { raw } from "esbuild-raw-plugin"; +import { type Options, defineConfig } from "tsup"; + +export default defineConfig( + (options: Options) => + ({ + format: ["cjs", "esm"], + target: "es2019", + entry: ["./src/**"], + sourcemap: false, + clean: !options.watch, + bundle: true, + minify: !options.watch, + esbuildPlugins: [ + raw(), + react18Plugin(), + cssPlugin(), + //rdiPlugin(), + ], + external: ["react"], + ...options, + }) as Options +); diff --git a/packages.bak/rdx-utils/turbo.json b/packages/rdx-ui/turbo.json similarity index 100% rename from packages.bak/rdx-utils/turbo.json rename to packages/rdx-ui/turbo.json diff --git a/packages/rdx-utils/package.json b/packages/rdx-utils/package.json new file mode 100644 index 00000000..c1b4c2ed --- /dev/null +++ b/packages/rdx-utils/package.json @@ -0,0 +1,17 @@ +{ + "name": "@repo/rdx-utils", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "scripts": { + "clean": "rm -rf node_modules" + }, + "exports": { + ".": "./src/index.ts" + }, + "devDependencies": { + "@repo/typescript-config": "workspace:*", + "@types/node": "^22.15.12", + "typescript": "^5.8.3" + } +} diff --git a/apps/server/src/core/common/helpers/collection.test.ts b/packages/rdx-utils/src/helpers/__tests__/collection.test.ts similarity index 96% rename from apps/server/src/core/common/helpers/collection.test.ts rename to packages/rdx-utils/src/helpers/__tests__/collection.test.ts index 312b75e9..c5bf7a3b 100644 --- a/apps/server/src/core/common/helpers/collection.test.ts +++ b/packages/rdx-utils/src/helpers/__tests__/collection.test.ts @@ -1,4 +1,4 @@ -import { Collection } from "./collection"; +import { Collection } from "../collection"; describe("Collection", () => { let collection: Collection; diff --git a/apps/server/src/core/common/helpers/maybe.test.ts b/packages/rdx-utils/src/helpers/__tests__/maybe.test.ts similarity index 96% rename from apps/server/src/core/common/helpers/maybe.test.ts rename to packages/rdx-utils/src/helpers/__tests__/maybe.test.ts index 8865a40f..503b00b5 100644 --- a/apps/server/src/core/common/helpers/maybe.test.ts +++ b/packages/rdx-utils/src/helpers/__tests__/maybe.test.ts @@ -1,4 +1,4 @@ -import { Maybe } from "./maybe"; +import { Maybe } from "../maybe"; describe("Maybe", () => { test("debe contener un valor cuando se usa Some", () => { diff --git a/apps/server/src/core/common/helpers/result.test.ts b/packages/rdx-utils/src/helpers/__tests__/result.test.ts similarity index 98% rename from apps/server/src/core/common/helpers/result.test.ts rename to packages/rdx-utils/src/helpers/__tests__/result.test.ts index 57a6969e..34d9537b 100644 --- a/apps/server/src/core/common/helpers/result.test.ts +++ b/packages/rdx-utils/src/helpers/__tests__/result.test.ts @@ -1,4 +1,4 @@ -import { Result } from "./result"; +import { Result } from "../result"; describe("Result", () => { test("debe crear un resultado exitoso con datos", () => { diff --git a/apps/server/src/core/common/helpers/utils.test.ts b/packages/rdx-utils/src/helpers/__tests__/utils.test.ts similarity index 100% rename from apps/server/src/core/common/helpers/utils.test.ts rename to packages/rdx-utils/src/helpers/__tests__/utils.test.ts diff --git a/apps/server/src/core/common/helpers/collection.ts b/packages/rdx-utils/src/helpers/collection.ts similarity index 97% rename from apps/server/src/core/common/helpers/collection.ts rename to packages/rdx-utils/src/helpers/collection.ts index 4c08253f..a73046c5 100644 --- a/apps/server/src/core/common/helpers/collection.ts +++ b/packages/rdx-utils/src/helpers/collection.ts @@ -42,6 +42,10 @@ export class Collection { */ remove(item: T): boolean { const index = this.items.indexOf(item); + return this.removeByIndex(index); + } + + public removeByIndex(index: number) { if (index !== -1) { this.items.splice(index, 1); if (this.totalItems !== null) { diff --git a/packages.bak/rdx-utils/src/helpers/index.ts b/packages/rdx-utils/src/helpers/index.ts similarity index 100% rename from packages.bak/rdx-utils/src/helpers/index.ts rename to packages/rdx-utils/src/helpers/index.ts diff --git a/apps/server/src/core/common/helpers/maybe.ts b/packages/rdx-utils/src/helpers/maybe.ts similarity index 100% rename from apps/server/src/core/common/helpers/maybe.ts rename to packages/rdx-utils/src/helpers/maybe.ts diff --git a/packages.bak/rdx-utils/src/helpers/result.ts b/packages/rdx-utils/src/helpers/result.ts similarity index 92% rename from packages.bak/rdx-utils/src/helpers/result.ts rename to packages/rdx-utils/src/helpers/result.ts index a0136f04..78dc34f7 100644 --- a/packages.bak/rdx-utils/src/helpers/result.ts +++ b/packages/rdx-utils/src/helpers/result.ts @@ -6,10 +6,10 @@ export class Result { private constructor(props: { isSuccess: boolean; error?: E; data?: T }) { const { isSuccess, error, data } = props; if (isSuccess && error) { - throw new Error(`InvalidOperation: A result cannot be successful and contain an error`); + throw new Error("InvalidOperation: A result cannot be successful and contain an error"); } if (!isSuccess && !error) { - throw new Error(`InvalidOperation: A failing result needs to contain an error message`); + throw new Error("InvalidOperation: A failing result needs to contain an error message"); } this._isSuccess = isSuccess; diff --git a/apps/server/src/core/common/helpers/utils.ts b/packages/rdx-utils/src/helpers/utils.ts similarity index 100% rename from apps/server/src/core/common/helpers/utils.ts rename to packages/rdx-utils/src/helpers/utils.ts diff --git a/packages.bak/rdx-utils/src/index.ts b/packages/rdx-utils/src/index.ts similarity index 50% rename from packages.bak/rdx-utils/src/index.ts rename to packages/rdx-utils/src/index.ts index 33ab11f9..872ef39c 100644 --- a/packages.bak/rdx-utils/src/index.ts +++ b/packages/rdx-utils/src/index.ts @@ -1,2 +1,2 @@ export * from "./helpers"; -export * from "./logger"; +export * from "./types"; diff --git a/packages/rdx-utils/src/types.ts b/packages/rdx-utils/src/types.ts new file mode 100644 index 00000000..317759de --- /dev/null +++ b/packages/rdx-utils/src/types.ts @@ -0,0 +1,3 @@ +export type NullOr = T | null; +export type UndefinedOr = T | undefined; +export type EmptyOr = NullOr>; diff --git a/packages/rdx-utils/tsconfig.json b/packages/rdx-utils/tsconfig.json new file mode 100644 index 00000000..38f86a52 --- /dev/null +++ b/packages/rdx-utils/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "composite": true + }, + "include": ["src"], + "exclude": ["src/**/__tests__/*"] +} diff --git a/packages/shadcn-ui/package.json b/packages/shadcn-ui/package.json index 2e633e4e..fc4ef239 100644 --- a/packages/shadcn-ui/package.json +++ b/packages/shadcn-ui/package.json @@ -60,7 +60,7 @@ "@repo/typescript-config": "workspace:*", "@tailwindcss/postcss": "^4.1.5", "@turbo/gen": "^2.5.2", - "@types/node": "^22.15.3", + "@types/node": "^22.15.12", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.3", "tailwindcss": "^4.1.5", diff --git a/packages/shadcn-ui/postcss.config.mjs b/packages/shadcn-ui/postcss.config.mjs index c15b9985..d2bc192d 100644 --- a/packages/shadcn-ui/postcss.config.mjs +++ b/packages/shadcn-ui/postcss.config.mjs @@ -1,6 +1,8 @@ /** @type {import('postcss-load-config').Config} */ -const config = { - plugins: { "@tailwindcss/postcss": {} }, +export default { + plugins: { + "postcss-import": {}, + tailwindcss: {}, + autoprefixer: {}, + }, }; - -export default config; diff --git a/packages/typescript-config/express.json b/packages/typescript-config/express.json index 944bbe72..6bbcfbed 100644 --- a/packages/typescript-config/express.json +++ b/packages/typescript-config/express.json @@ -2,13 +2,13 @@ "$schema": "https://json.schemastore.org/tsconfig", "display": "ExpressJS Server", -"compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "Node", - "importsNotUsedAsValues": "remove", - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": false, - }, + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "importsNotUsedAsValues": "remove", + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": false + } } diff --git a/packages/typescript-config/root.json b/packages/typescript-config/root.json new file mode 100644 index 00000000..e76f2436 --- /dev/null +++ b/packages/typescript-config/root.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Root", + + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@erp/core/*": ["modules/core/src/*"], + "@erp/auth/*": ["modules/auth/src/*"], + "@erp/invoices/*": ["modules/invoices/src/*"] + }, + + "target": "ES2021", + "module": "CommonJS", + "moduleResolution": "Node", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/packages/ui/src/components/loading-overlay/loading-indicator.module.css b/packages/ui/src/components/loading-overlay/loading-indicator.module.css deleted file mode 100644 index a44435be..00000000 --- a/packages/ui/src/components/loading-overlay/loading-indicator.module.css +++ /dev/null @@ -1,24 +0,0 @@ -@tailwind components; - -@layer components { - .LoadingIndicator { - @apply flex flex-col items-center justify-center max-w-xs; - @apply justify-center w-full h-full mx-auto; - } - - .LoadingIndicator__title { - @apply mt-6 text-xl font-semibold text-center text-white; - } - - .LoadingIndicator__subtitle { - @apply text-center text-white; - } - - .LoadingIndicator__lighttext { - @apply text-white; - } - - .LoadingIndicator__darktext { - @apply text-slate-600; - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eca10abc..37985373 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,30 +11,36 @@ importers: '@biomejs/biome': specifier: 1.9.4 version: 1.9.4 - '@types/node': - specifier: ^22.14.1 - version: 22.15.3 + '@repo/typescript-config': + specifier: workspace:* + version: link:packages/typescript-config fs: specifier: 0.0.1-security version: 0.0.1-security inquirer: specifier: ^12.5.2 - version: 12.5.2(@types/node@22.15.3) + version: 12.6.0(@types/node@22.15.12) path: specifier: ^0.12.7 version: 0.12.7 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) + version: 10.9.2(@types/node@22.15.12)(typescript@5.8.3) turbo: specifier: ^2.5.1 - version: 2.5.1 + version: 2.5.2 typescript: specifier: 5.8.3 version: 5.8.3 apps/server: dependencies: + '@erp/auth': + specifier: workspace:* + version: link:../../modules/auth + '@erp/core': + specifier: workspace:* + version: link:../../modules/core bcrypt: specifier: ^5.1.1 version: 5.1.1 @@ -50,15 +56,9 @@ importers: dotenv: specifier: ^16.5.0 version: 16.5.0 - esbuild: - specifier: ^0.24.0 - version: 0.24.2 express: specifier: ^4.18.2 version: 4.21.2 - glob: - specifier: ^11.0.1 - version: 11.0.2 helmet: specifier: ^8.0.0 version: 8.1.0 @@ -109,7 +109,7 @@ importers: version: 1.1.1 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) + version: 10.9.2(@types/node@22.15.12)(typescript@5.8.3) uuid: specifier: ^11.0.5 version: 11.1.0 @@ -121,7 +121,7 @@ importers: version: 5.0.0(winston@3.17.0) zod: specifier: ^3.24.1 - version: 3.24.3 + version: 3.24.4 devDependencies: '@biomejs/biome': specifier: 1.9.4 @@ -154,8 +154,8 @@ importers: specifier: ^3.4.2 version: 3.6.2 '@types/node': - specifier: ^22.10.7 - version: 22.15.3 + specifier: ^22.15.12 + version: 22.15.12 '@types/passport': specifier: ^1.0.16 version: 1.0.17 @@ -170,16 +170,16 @@ importers: version: 2.3.8 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) ts-jest: specifier: ^29.2.5 - version: 29.3.2(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.3.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)))(typescript@5.8.3) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 tsup: specifier: 8.4.0 - version: 8.4.0(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3) + version: 8.4.0(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) tsx: specifier: 4.19.4 version: 4.19.4 @@ -189,21 +189,33 @@ importers: apps/web: dependencies: + '@erp/auth': + specifier: workspace:* + version: link:../../modules/auth + '@erp/core': + specifier: workspace:* + version: link:../../modules/core + '@repo/rdx-criteria': + specifier: workspace:* + version: link:../../packages/rdx-criteria '@repo/rdx-ui': specifier: workspace:* - version: link:../../packages/ui + version: link:../../packages/rdx-ui '@repo/shadcn-ui': specifier: workspace:* version: link:../../packages/shadcn-ui + '@tailwindcss/vite': + specifier: ^4.1.5 + version: 4.1.5(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) '@tanstack/react-query': specifier: ^5.74.11 - version: 5.75.2(react@19.1.0) + version: 5.75.4(react@19.1.0) axios: specifier: ^1.9.0 version: 1.9.0 i18next: specifier: ^25.0.2 - version: 25.0.2(typescript@5.8.3) + version: 25.1.1(typescript@5.8.3) i18next-browser-languagedetector: specifier: ^8.1.0 version: 8.1.0 @@ -221,38 +233,53 @@ importers: version: 3.0.0(react-hook-form@7.56.2(react@19.1.0))(react@19.1.0) react-i18next: specifier: ^15.0.1 - version: 15.5.1(i18next@25.0.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + version: 15.5.1(i18next@25.1.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) react-router-dom: specifier: ^6.26.0 version: 6.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-secure-storage: specifier: ^1.3.2 version: 1.3.2 + tailwindcss: + specifier: ^4.1.5 + version: 4.1.5 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@4.1.5) vite-plugin-html: specifier: ^3.2.2 - version: 3.2.2(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4)) + version: 3.2.2(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) devDependencies: '@biomejs/biome': specifier: 1.9.4 version: 1.9.4 '@hookform/devtools': specifier: ^4.4.0 - version: 4.4.0(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 4.4.0(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@repo/typescript-config': specifier: workspace:* version: link:../../packages/typescript-config '@tanstack/react-query-devtools': specifier: ^5.74.11 - version: 5.75.2(@tanstack/react-query@5.75.2(react@19.1.0))(react@19.1.0) + version: 5.75.4(@tanstack/react-query@5.75.4(react@19.1.0))(react@19.1.0) + '@types/axios': + specifier: ^0.14.4 + version: 0.14.4 + '@types/node': + specifier: ^22.15.12 + version: 22.15.12 '@types/react': specifier: ^19.1.2 - version: 19.1.2 + version: 19.1.3 '@types/react-dom': specifier: ^19.1.3 - version: 19.1.3(@types/react@19.1.2) + version: 19.1.3(@types/react@19.1.3) '@vitejs/plugin-react': specifier: ^4.4.1 - version: 4.4.1(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4)) + version: 4.4.1(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) + autoprefixer: + specifier: ^10.4.20 + version: 10.4.21(postcss@8.5.3) globals: specifier: ^16.0.0 version: 16.0.0 @@ -260,50 +287,164 @@ importers: specifier: ~5.8.3 version: 5.8.3 vite: - specifier: ^6.3.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4) + specifier: ^6.3.5 + version: 6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) vite-plugin-robots: specifier: ^1.0.5 - version: 1.0.5(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4)) + version: 1.0.5(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) vite-plugin-static-copy: specifier: ^2.3.1 - version: 2.3.1(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4)) + version: 2.3.1(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) - packages/eslint-config: + modules/auth: + dependencies: + '@erp/core': + specifier: workspace:* + version: link:../core + + modules/core: + dependencies: + sequelize: + specifier: ^6.37.5 + version: 6.37.7(mysql2@3.14.1) + + modules/invoices: + dependencies: + '@erp/core': + specifier: workspace:* + version: link:../core + + packages/rdx-criteria: + dependencies: + '@repo/rdx-ddd': + specifier: workspace:* + version: link:../rdx-ddd + '@repo/rdx-utils': + specifier: workspace:* + version: link:../rdx-utils + joi: + specifier: ^17.13.3 + version: 17.13.3 devDependencies: - '@eslint/js': - specifier: ^9.25.0 - version: 9.25.1 - '@next/eslint-plugin-next': - specifier: ^15.3.0 - version: 15.3.1 - eslint: - specifier: ^9.25.0 - version: 9.25.1(jiti@2.4.2) - eslint-config-prettier: - specifier: ^10.1.1 - version: 10.1.2(eslint@9.25.1(jiti@2.4.2)) - eslint-plugin-only-warn: - specifier: ^1.1.0 - version: 1.1.0 - eslint-plugin-react: - specifier: ^7.37.4 - version: 7.37.5(eslint@9.25.1(jiti@2.4.2)) - eslint-plugin-react-hooks: - specifier: ^5.2.0 - version: 5.2.0(eslint@9.25.1(jiti@2.4.2)) - eslint-plugin-turbo: - specifier: ^2.5.0 - version: 2.5.1(eslint@9.25.1(jiti@2.4.2))(turbo@2.5.1) - globals: - specifier: ^16.0.0 - version: 16.0.0 + '@repo/typescript-config': + specifier: workspace:* + version: link:../typescript-config + + packages/rdx-ddd: + dependencies: + '@repo/rdx-utils': + specifier: workspace:* + version: link:../rdx-utils + dinero.js: + specifier: ^1.9.1 + version: 1.9.1 + libphonenumber-js: + specifier: ^1.11.20 + version: 1.12.7 + shallow-equal-object: + specifier: ^1.1.1 + version: 1.1.1 + uuid: + specifier: ^11.0.5 + version: 11.1.0 + zod: + specifier: ^3.24.4 + version: 3.24.4 + devDependencies: + '@repo/typescript-config': + specifier: workspace:* + version: link:../typescript-config + '@types/dinero.js': + specifier: ^1.9.4 + version: 1.9.4 + '@types/node': + specifier: ^22.15.12 + version: 22.15.12 typescript: - specifier: ^5.8.2 + specifier: ^5.8.3 + version: 5.8.3 + + packages/rdx-ui: + dependencies: + '@repo/shadcn-ui': + specifier: workspace:* + version: link:../shadcn-ui + esbuild-raw-plugin: + specifier: ^0.2.0 + version: 0.2.0 + i18next: + specifier: ^25.0.2 + version: 25.1.1(typescript@5.8.3) + lucide-react: + specifier: ^0.503.0 + version: 0.503.0(react@19.1.0) + react: + specifier: ^19.1.0 + version: 19.1.0 + react-dom: + specifier: ^19.1.0 + version: 19.1.0(react@19.1.0) + react-router-dom: + specifier: ^6.26.0 + version: 6.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 + '@repo/typescript-config': + specifier: workspace:* + version: link:../typescript-config + '@tailwindcss/postcss': + specifier: ^4.1.5 + version: 4.1.5 + '@turbo/gen': + specifier: ^2.5.2 + version: 2.5.2(@types/node@22.15.12)(typescript@5.8.3) + '@types/node': + specifier: ^22.15.12 + version: 22.15.12 + '@types/react': + specifier: ^19.1.2 + version: 19.1.3 + '@types/react-dom': + specifier: ^19.1.3 + version: 19.1.3(@types/react@19.1.3) + '@vitejs/plugin-react': + specifier: ^4.4.1 + version: 4.4.1(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) + esbuild-plugin-react18: + specifier: ^0.2.6 + version: 0.2.6 + esbuild-plugin-react18-css: + specifier: ^0.0.4 + version: 0.0.4 + tailwindcss: + specifier: ^4.1.5 + version: 4.1.5 + tsup: + specifier: ^8.4.0 + version: 8.4.0(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + typescript: + specifier: ^5.8.3 + version: 5.8.3 + typescript-plugin-css-modules: + specifier: ^5.1.0 + version: 5.1.0(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3))(typescript@5.8.3) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) + + packages/rdx-utils: + devDependencies: + '@repo/typescript-config': + specifier: workspace:* + version: link:../typescript-config + '@types/node': + specifier: ^22.15.12 + version: 22.15.12 + typescript: + specifier: ^5.8.3 version: 5.8.3 - typescript-eslint: - specifier: ^8.30.1 - version: 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) packages/shadcn-ui: dependencies: @@ -312,82 +453,82 @@ importers: version: 5.0.1(react-hook-form@7.56.2(react@19.1.0)) '@radix-ui/react-accordion': specifier: ^1.2.8 - version: 1.2.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.10(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-alert-dialog': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-aspect-ratio': specifier: ^1.1.4 - version: 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-avatar': specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-checkbox': specifier: ^1.2.3 - version: 1.2.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.1(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-collapsible': specifier: ^1.1.8 - version: 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.10(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-context-menu': specifier: ^2.2.12 - version: 2.2.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.2.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dialog': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dropdown-menu': specifier: ^2.1.12 - version: 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-hover-card': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-label': specifier: ^2.1.4 - version: 2.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-menubar': specifier: ^1.1.12 - version: 1.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-navigation-menu': specifier: ^1.2.10 - version: 1.2.10(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.12(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-popover': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-progress': specifier: ^1.1.4 - version: 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-radio-group': specifier: ^1.3.4 - version: 1.3.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-scroll-area': specifier: ^1.2.6 - version: 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-select': specifier: ^2.2.2 - version: 2.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.2.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-separator': specifier: ^1.1.4 - version: 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slider': specifier: ^1.3.2 - version: 1.3.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: ^1.2.0 - version: 1.2.0(@types/react@19.1.2)(react@19.1.0) + version: 1.2.2(@types/react@19.1.3)(react@19.1.0) '@radix-ui/react-switch': specifier: ^1.2.2 - version: 1.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tabs': specifier: ^1.1.9 - version: 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-toggle': specifier: ^1.1.6 - version: 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-toggle-group': specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tooltip': specifier: ^1.2.4 - version: 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -396,7 +537,7 @@ importers: version: 2.1.1 cmdk: specifier: ^1.1.1 - version: 1.1.1(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.1(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -441,10 +582,10 @@ importers: version: 1.2.9 vaul: specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) zod: specifier: ^3.24.3 - version: 3.24.3 + version: 3.24.4 devDependencies: '@biomejs/biome': specifier: 1.9.4 @@ -457,16 +598,16 @@ importers: version: 4.1.5 '@turbo/gen': specifier: ^2.5.2 - version: 2.5.2(@types/node@22.15.3)(typescript@5.8.3) + version: 2.5.2(@types/node@22.15.12)(typescript@5.8.3) '@types/node': - specifier: ^22.15.3 - version: 22.15.3 + specifier: ^22.15.12 + version: 22.15.12 '@types/react': specifier: ^19.1.2 - version: 19.1.2 + version: 19.1.3 '@types/react-dom': specifier: ^19.1.3 - version: 19.1.3(@types/react@19.1.2) + version: 19.1.3(@types/react@19.1.3) tailwindcss: specifier: ^4.1.5 version: 4.1.5 @@ -476,54 +617,11 @@ importers: packages/typescript-config: {} - packages/ui: - dependencies: - '@repo/shadcn-ui': - specifier: workspace:* - version: link:../shadcn-ui - i18next: - specifier: ^25.0.2 - version: 25.0.2(typescript@5.8.3) - lucide-react: - specifier: ^0.503.0 - version: 0.503.0(react@19.1.0) - react: - specifier: ^19.1.0 - version: 19.1.0 - react-dom: - specifier: ^19.1.0 - version: 19.1.0(react@19.1.0) - react-router-dom: - specifier: ^6.26.0 - version: 6.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - devDependencies: - '@biomejs/biome': - specifier: 1.9.4 - version: 1.9.4 - '@repo/typescript-config': - specifier: workspace:* - version: link:../typescript-config - '@turbo/gen': - specifier: ^2.5.2 - version: 2.5.2(@types/node@22.15.3)(typescript@5.8.3) - '@types/node': - specifier: ^22.15.3 - version: 22.15.3 - '@types/react': - specifier: ^19.1.2 - version: 19.1.2 - '@types/react-dom': - specifier: ^19.1.3 - version: 19.1.3(@types/react@19.1.2) - tailwindcss: - specifier: ^4.1.5 - version: 4.1.5 - typescript: - specifier: ^5.8.3 - version: 5.8.3 - packages: + '@adobe/css-tools@4.3.3': + resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -532,62 +630,58 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + '@babel/compat-data@7.27.1': + resolution: {integrity: sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.10': - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} + '@babel/core@7.27.1': + resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.0': - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} + '@babel/generator@7.27.1': + resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.0': - resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} + '@babel/helper-compilation-targets@7.27.1': + resolution: {integrity: sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-transforms@7.27.1': + resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.0': - resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} + '@babel/helpers@7.27.1': + resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.0': - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} + '@babel/parser@7.27.1': + resolution: {integrity: sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -612,8 +706,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -628,8 +722,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -676,8 +770,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -702,16 +796,16 @@ packages: resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.0': - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} + '@babel/template@7.27.1': + resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.0': - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} + '@babel/traverse@7.27.1': + resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.0': - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} + '@babel/types@7.27.1': + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -835,344 +929,156 @@ packages: '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.3': - resolution: {integrity: sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.3': - resolution: {integrity: sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.3': - resolution: {integrity: sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.3': - resolution: {integrity: sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.3': - resolution: {integrity: sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.3': - resolution: {integrity: sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.3': - resolution: {integrity: sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.3': - resolution: {integrity: sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.3': - resolution: {integrity: sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.3': - resolution: {integrity: sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.3': - resolution: {integrity: sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.3': - resolution: {integrity: sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.3': - resolution: {integrity: sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.3': - resolution: {integrity: sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.3': - resolution: {integrity: sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.3': - resolution: {integrity: sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.3': - resolution: {integrity: sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.3': - resolution: {integrity: sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.3': - resolution: {integrity: sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.3': - resolution: {integrity: sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.3': - resolution: {integrity: sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.3': - resolution: {integrity: sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.3': - resolution: {integrity: sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.3': - resolution: {integrity: sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.3': - resolution: {integrity: sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.6.1': - resolution: {integrity: sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.20.0': - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.2.1': - resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.13.0': - resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.25.1': - resolution: {integrity: sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.8': - resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.7.0': resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==} @@ -1188,6 +1094,12 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hookform/devtools@4.4.0': resolution: {integrity: sha512-Mtlic+uigoYBPXlfvPBfiYYUZuyMrD3pTjDpVIhL6eCZTvQkHsKBSKeZCvXWUZr8fqrkzDg27N+ZuazLKq6Vmg==} peerDependencies: @@ -1199,26 +1111,6 @@ packages: peerDependencies: react-hook-form: ^7.55.0 - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} - engines: {node: '>=18.18'} - '@inquirer/checkbox@4.1.5': resolution: {integrity: sha512-swPczVU+at65xa5uPfNP9u3qx/alNwiaykiI/ExpsmMSQW55trmZcwhYWzw/7fj+n6Q8z1eENvR7vFfq9oPSAQ==} engines: {node: '>=18'} @@ -1295,8 +1187,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.4.1': - resolution: {integrity: sha512-UlmM5FVOZF0gpoe1PT/jN4vk8JmpIWBlMvTL8M+hlvPmzN89K6z03+IFmyeu/oFCenwdwHDr2gky7nIGSEVvlA==} + '@inquirer/prompts@7.5.0': + resolution: {integrity: sha512-tk8Bx7l5AX/CR0sVfGj3Xg6v7cYlFBkEahH+EgBB+cZib6Fc83dwerTbzj7f2+qKckjIUGsviWRI1d7lx6nqQA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1304,8 +1196,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.0.12': - resolution: {integrity: sha512-wNPJZy8Oc7RyGISPxp9/MpTOqX8lr0r+lCCWm7hQra+MDtYRgINv1hxw7R+vKP71Bu/3LszabxOodfV/uTfsaA==} + '@inquirer/rawlist@4.1.0': + resolution: {integrity: sha512-6ob45Oh9pXmfprKqUiEeMz/tjtVTFQTgDDz1xAMKMrIvyrYjAmRbQZjMJfsictlL4phgjLhdLu27IkHNnNjB7g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1322,8 +1214,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.1.1': - resolution: {integrity: sha512-IUXzzTKVdiVNMA+2yUvPxWsSgOG4kfX93jOM4Zb5FgujeInotv5SPIJVeXQ+fO4xu7tW8VowFhdG5JRmmCyQ1Q==} + '@inquirer/select@4.2.0': + resolution: {integrity: sha512-KkXQ4aSySWimpV4V/TUJWdB3tdfENZUU765GjOIZ0uPwdbGIG6jrxD4dDf1w68uP+DVtfNhr1A92B+0mbTZ8FA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1446,9 +1338,6 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true - '@next/eslint-plugin-next@15.3.1': - resolution: {integrity: sha512-oEs4dsfM6iyER3jTzMm4kDSbrQJq8wZw5fmT6fg2V3SMo+kgG+cShzLfEV20senZzv8VF+puNLheiGPlBGsv2A==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1461,6 +1350,88 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -1471,8 +1442,8 @@ packages: '@radix-ui/primitive@1.1.2': resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - '@radix-ui/react-accordion@1.2.8': - resolution: {integrity: sha512-c7OKBvO36PfQIUGIjj1Wko0hH937pYFU2tR5zbIJDUsmTzHoZVHHt4bmb7OOJbzTaWJtVELKWojBHa7OcnUHmQ==} + '@radix-ui/react-accordion@1.2.10': + resolution: {integrity: sha512-x+URzV1siKmeXPSUIQ22L81qp2eOhjpy3tgteF+zOr4d1u0qJnFuyBF4MoQRhmKP6ivDxlvDAvqaF77gh7DOIw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1484,8 +1455,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-alert-dialog@1.1.11': - resolution: {integrity: sha512-4KfkwrFnAw3Y5Jeoq6G+JYSKW0JfIS3uDdFC/79Jw9AsMayZMizSSMxk1gkrolYXsa/WzbbDfOA7/D8N5D+l1g==} + '@radix-ui/react-alert-dialog@1.1.13': + resolution: {integrity: sha512-/uPs78OwxGxslYOG5TKeUsv9fZC0vo376cXSADdKirTmsLJU2au6L3n34c3p6W26rFDDDze/hwy4fYeNd0qdGA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1497,8 +1468,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-arrow@1.1.4': - resolution: {integrity: sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==} + '@radix-ui/react-arrow@1.1.6': + resolution: {integrity: sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1510,8 +1481,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-aspect-ratio@1.1.4': - resolution: {integrity: sha512-ie2mUDtM38LBqVU+Xn+GIY44tWM5yVbT5uXO+th85WZxUUsgEdWNNZWecqqGzkQ4Af+Fq1mYT6TyQ/uUf5gfcw==} + '@radix-ui/react-aspect-ratio@1.1.6': + resolution: {integrity: sha512-cZvNiIKqWQjf3DsQk1+wktF3DD73kUbWQ2E/XSh8m2IcpFGwg4IiIvGlVNdovxuozK/9+4QXd2zVlzUMiexSDg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1523,8 +1494,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-avatar@1.1.7': - resolution: {integrity: sha512-V7ODUt4mUoJTe3VUxZw6nfURxaPALVqmDQh501YmaQsk3D8AZQrOPRnfKn4H7JGDLBc0KqLhT94H79nV88ppNg==} + '@radix-ui/react-avatar@1.1.9': + resolution: {integrity: sha512-10tQokfvZdFvnvDkcOJPjm2pWiP8A0R4T83MoD7tb15bC/k2GU7B1YBuzJi8lNQ8V1QqhP8ocNqp27ByZaNagQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1536,8 +1507,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-checkbox@1.2.3': - resolution: {integrity: sha512-pHVzDYsnaDmBlAuwim45y3soIN8H4R7KbkSVirGhXO+R/kO2OLCe0eucUEbddaTcdMHHdzcIGHtZSMSQlA+apw==} + '@radix-ui/react-checkbox@1.3.1': + resolution: {integrity: sha512-xTaLKAO+XXMPK/BpVTSaAAhlefmvMSACjIhK9mGsImvX2ljcTDm8VGR1CuS1uYcNdR5J+oiOhoJZc5un6bh3VQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1549,8 +1520,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collapsible@1.1.8': - resolution: {integrity: sha512-hxEsLvK9WxIAPyxdDRULL4hcaSjMZCfP7fHB0Z1uUnDoDBat1Zh46hwYfa69DeZAbJrPckjf0AGAtEZyvDyJbw==} + '@radix-ui/react-collapsible@1.1.10': + resolution: {integrity: sha512-O2mcG3gZNkJ/Ena34HurA3llPOEA/M4dJtIRMa6y/cknRDC8XY5UZBInKTsUwW5cUue9A4k0wi1XU5fKBzKe1w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1562,8 +1533,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.4': - resolution: {integrity: sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==} + '@radix-ui/react-collection@1.1.6': + resolution: {integrity: sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1584,8 +1555,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-context-menu@2.2.12': - resolution: {integrity: sha512-5UFKuTMX8F2/KjHvyqu9IYT8bEtDSCJwwIx1PghBo4jh9S6jJVsceq9xIjqsOVcxsynGwV5eaqPE3n/Cu+DrSA==} + '@radix-ui/react-context-menu@2.2.14': + resolution: {integrity: sha512-RUHvrJE2qKAd9pQ50HZZsePio4SMWEh8v6FWQwg/4t6K1fuxfb4Ec40VEVvni6V7nFxmj9srU4UZc7aYp8x0LQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1606,8 +1577,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.11': - resolution: {integrity: sha512-yI7S1ipkP5/+99qhSI6nthfo/tR6bL6Zgxi/+1UO6qPa6UeM6nlafWcQ65vB4rU2XjgjMfMhI3k9Y5MztA62VQ==} + '@radix-ui/react-dialog@1.1.13': + resolution: {integrity: sha512-ARFmqUyhIVS3+riWzwGTe7JLjqwqgnODBUZdqpWar/z1WFs9z76fuOs/2BOWCR+YboRn4/WN9aoaGVwqNRr8VA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1628,8 +1599,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.7': - resolution: {integrity: sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==} + '@radix-ui/react-dismissable-layer@1.1.9': + resolution: {integrity: sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1641,8 +1612,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dropdown-menu@2.1.12': - resolution: {integrity: sha512-VJoMs+BWWE7YhzEQyVwvF9n22Eiyr83HotCVrMQzla/OwRovXCgah7AcaEr4hMNj4gJxSdtIbcHGvmJXOoJVHA==} + '@radix-ui/react-dropdown-menu@2.1.14': + resolution: {integrity: sha512-lzuyNjoWOoaMFE/VC5FnAAYM16JmQA8ZmucOXtlhm2kKR5TSU95YLAueQ4JYuRmUJmBvSqXaVFGIfuukybwZJQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1663,8 +1634,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.4': - resolution: {integrity: sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==} + '@radix-ui/react-focus-scope@1.1.6': + resolution: {integrity: sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1676,8 +1647,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-hover-card@1.1.11': - resolution: {integrity: sha512-q9h9grUpGZKR3MNhtVCLVnPGmx1YnzBgGR+O40mhSNGsUnkR+LChVH8c7FB0mkS+oudhd8KAkZGTJPJCjdAPIg==} + '@radix-ui/react-hover-card@1.1.13': + resolution: {integrity: sha512-Wtjvx0d/6Bgd/jAYS1mW6IPSUQ25y0hkUSOS1z5/4+U8+DJPwKroqJlM/AlVFl3LywGoruiPmcvB9Aks9mSOQw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1698,8 +1669,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-label@2.1.4': - resolution: {integrity: sha512-wy3dqizZnZVV4ja0FNnUhIWNwWdoldXrneEyUcVtLYDAt8ovGS4ridtMAOGgXBBIfggL4BOveVWsjXDORdGEQg==} + '@radix-ui/react-label@2.1.6': + resolution: {integrity: sha512-S/hv1mTlgcPX2gCTJrWuTjSXf7ER3Zf7zWGtOprxhIIY93Qin3n5VgNA0Ez9AgrK/lEtlYgzLd4f5x6AVar4Yw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1711,8 +1682,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-menu@2.1.12': - resolution: {integrity: sha512-+qYq6LfbiGo97Zz9fioX83HCiIYYFNs8zAsVCMQrIakoNYylIzWuoD/anAD3UzvvR6cnswmfRFJFq/zYYq/k7Q==} + '@radix-ui/react-menu@2.1.14': + resolution: {integrity: sha512-0zSiBAIFq9GSKoSH5PdEaQeRB3RnEGxC+H2P0egtnKoKKLNBH8VBHyVO6/jskhjAezhOIplyRUj7U2lds9A+Yg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1724,8 +1695,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-menubar@1.1.12': - resolution: {integrity: sha512-bM2vT5nxRqJH/d1vFQ9jLsW4qR70yFQw2ZD1TUPWUNskDsV0eYeMbbNJqxNjGMOVogEkOJaHtu11kzYdTJvVJg==} + '@radix-ui/react-menubar@1.1.14': + resolution: {integrity: sha512-nWLOS7EG3iYhT/zlE/Pbip17rrMnV/0AS7ueb3pKHTSAnpA6/N9rXQYowulZw4owZ9P+qSilHsFzSx/kU7yplQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1737,8 +1708,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-navigation-menu@1.2.10': - resolution: {integrity: sha512-kGDqMVPj2SRB1vJmXN/jnhC66REAXNyDmDRubbbmJ+360zSIJUDmWGMKIJOf72PHMwPENrbtJVb3CMAUJDjEIA==} + '@radix-ui/react-navigation-menu@1.2.12': + resolution: {integrity: sha512-iExvawdu7n6DidDJRU5pMTdi+Z3DaVPN4UZbAGuTs7nJA8P4RvvkEz+XYI2UJjb/Hh23RrH19DakgZNLdaq9Bw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1750,8 +1721,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popover@1.1.11': - resolution: {integrity: sha512-yFMfZkVA5G3GJnBgb2PxrrcLKm1ZLWXrbYVgdyTl//0TYEIHS9LJbnyz7WWcZ0qCq7hIlJZpRtxeSeIG5T5oJw==} + '@radix-ui/react-popover@1.1.13': + resolution: {integrity: sha512-84uqQV3omKDR076izYgcha6gdpN8m3z6w/AeJ83MSBJYVG/AbOHdLjAgsPZkeC/kt+k64moXFCnio8BbqXszlw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1763,8 +1734,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.4': - resolution: {integrity: sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==} + '@radix-ui/react-popper@1.2.6': + resolution: {integrity: sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1776,8 +1747,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.6': - resolution: {integrity: sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==} + '@radix-ui/react-portal@1.1.8': + resolution: {integrity: sha512-hQsTUIn7p7fxCPvao/q6wpbxmCwgLrlz+nOrJgC+RwfZqWY/WN+UMqkXzrtKbPrF82P43eCTl3ekeKuyAQbFeg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1802,8 +1773,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.0': - resolution: {integrity: sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==} + '@radix-ui/react-primitive@2.1.2': + resolution: {integrity: sha512-uHa+l/lKfxuDD2zjN/0peM/RhhSmRjr5YWdk/37EnSv1nJ88uvG85DPexSm8HdFQROd2VdERJ6ynXbkCFi+APw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1815,8 +1786,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-progress@1.1.4': - resolution: {integrity: sha512-8rl9w7lJdcVPor47Dhws9mUHRHLE+8JEgyJRdNWCpGPa6HIlr3eh+Yn9gyx1CnCLbw5naHsI2gaO9dBWO50vzw==} + '@radix-ui/react-progress@1.1.6': + resolution: {integrity: sha512-QzN9a36nKk2eZKMf9EBCia35x3TT+SOgZuzQBVIHyRrmYYi73VYBRK3zKwdJ6az/F5IZ6QlacGJBg7zfB85liA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1828,8 +1799,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-radio-group@1.3.4': - resolution: {integrity: sha512-N4J9QFdW5zcJNxxY/zwTXBN4Uc5VEuRM7ZLjNfnWoKmNvgrPtNNw4P8zY532O3qL6aPkaNO+gY9y6bfzmH4U1g==} + '@radix-ui/react-radio-group@1.3.6': + resolution: {integrity: sha512-1tfTAqnYZNVwSpFhCT273nzK8qGBReeYnNTPspCggqk1fvIrfVxJekIuBFidNivzpdiMqDwVGnQvHqXrRPM4Og==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1841,8 +1812,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.7': - resolution: {integrity: sha512-C6oAg451/fQT3EGbWHbCQjYTtbyjNO1uzQgMzwyivcHT3GKNEmu1q3UuREhN+HzHAVtv3ivMVK08QlC+PkYw9Q==} + '@radix-ui/react-roving-focus@1.1.9': + resolution: {integrity: sha512-ZzrIFnMYHHCNqSNCsuN6l7wlewBEq0O0BCSBkabJMFXVO51LRUTq71gLP1UxFvmrXElqmPjA5VX7IqC9VpazAQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1854,8 +1825,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-scroll-area@1.2.6': - resolution: {integrity: sha512-lj8OMlpPERXrQIHlEQdlXHJoRT52AMpBrgyPYylOhXYq5e/glsEdtOc/kCQlsTdtgN5U0iDbrrolDadvektJGQ==} + '@radix-ui/react-scroll-area@1.2.8': + resolution: {integrity: sha512-K5h1RkYA6M0Sn61BV5LQs686zqBsSC0sGzL4/Gw4mNnjzrQcGSc6YXfC6CRFNaGydSdv5+M8cb0eNsOGo0OXtQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1867,8 +1838,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-select@2.2.2': - resolution: {integrity: sha512-HjkVHtBkuq+r3zUAZ/CvNWUGKPfuicGDbgtZgiQuFmNcV5F+Tgy24ep2nsAW2nFgvhGPJVqeBZa6KyVN0EyrBA==} + '@radix-ui/react-select@2.2.4': + resolution: {integrity: sha512-/OOm58Gil4Ev5zT8LyVzqfBcij4dTHYdeyuF5lMHZ2bIp0Lk9oETocYiJ5QC0dHekEQnK6L/FNJCceeb4AkZ6Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1880,8 +1851,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.4': - resolution: {integrity: sha512-2fTm6PSiUm8YPq9W0E4reYuv01EE3aFSzt8edBiXqPHshF8N9+Kymt/k0/R+F3dkY5lQyB/zPtrP82phskLi7w==} + '@radix-ui/react-separator@1.1.6': + resolution: {integrity: sha512-Izof3lPpbCfTM7WDta+LRkz31jem890VjEvpVRoWQNKpDUMMVffuyq854XPGP1KYGWWmjmYvHvPFeocWhFCy1w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1893,8 +1864,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slider@1.3.2': - resolution: {integrity: sha512-oQnqfgSiYkxZ1MrF6672jw2/zZvpB+PJsrIc3Zm1zof1JHf/kj7WhmROw7JahLfOwYQ5/+Ip0rFORgF1tjSiaQ==} + '@radix-ui/react-slider@1.3.4': + resolution: {integrity: sha512-Cp6hEmQtRJFci285vkdIJ+HCDLTRDk+25VhFwa1fcubywjMUE3PynBgtN5RLudOgSCYMlT4jizCXdmV+8J7Y2w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1906,8 +1877,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.2.0': - resolution: {integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==} + '@radix-ui/react-slot@1.2.2': + resolution: {integrity: sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1915,8 +1886,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.2.2': - resolution: {integrity: sha512-7Z8n6L+ifMIIYZ83f28qWSceUpkXuslI2FJ34+kDMTiyj91ENdpdQ7VCidrzj5JfwfZTeano/BnGBbu/jqa5rQ==} + '@radix-ui/react-switch@1.2.4': + resolution: {integrity: sha512-yZCky6XZFnR7pcGonJkr9VyNRu46KcYAbyg1v/gVVCZUr8UJ4x+RpncC27hHtiZ15jC+3WS8Yg/JSgyIHnYYsQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1928,8 +1899,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tabs@1.1.9': - resolution: {integrity: sha512-KIjtwciYvquiW/wAFkELZCVnaNLBsYNhTNcvl+zfMAbMhRkcvNuCLXDDd22L0j7tagpzVh/QwbFpwAATg7ILPw==} + '@radix-ui/react-tabs@1.1.11': + resolution: {integrity: sha512-4FiKSVoXqPP/KfzlB7lwwqoFV6EPwkrrqGp9cUYXjwDYHhvpnqq79P+EPHKcdoTE7Rl8w/+6s9rTlsfXHES9GA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1941,8 +1912,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle-group@1.1.7': - resolution: {integrity: sha512-GRaPJhxrRSOqAcmcX3MwRL/SZACkoYdmoY9/sg7Bd5DhBYsB2t4co0NxTvVW8H7jUmieQDQwRtUlZ5Ta8UbgJA==} + '@radix-ui/react-toggle-group@1.1.9': + resolution: {integrity: sha512-HJ6gXdYVN38q/5KDdCcd+JTuXUyFZBMJbwXaU/82/Gi+V2ps6KpiZ2sQecAeZCV80POGRfkUBdUIj6hIdF6/MQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1954,8 +1925,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.6': - resolution: {integrity: sha512-3SeJxKeO3TO1zVw1Nl++Cp0krYk6zHDHMCUXXVkosIzl6Nxcvb07EerQpyD2wXQSJ5RZajrYAmPaydU8Hk1IyQ==} + '@radix-ui/react-toggle@1.1.8': + resolution: {integrity: sha512-hrpa59m3zDnsa35LrTOH5s/a3iGv/VD+KKQjjiCTo/W4r0XwPpiWQvAv6Xl1nupSoaZeNNxW6sJH9ZydsjKdYQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1967,8 +1938,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.2.4': - resolution: {integrity: sha512-DyW8VVeeMSSLFvAmnVnCwvI3H+1tpJFHT50r+tdOoMse9XqYDBCcyux8u3G2y+LOpt7fPQ6KKH0mhs+ce1+Z5w==} + '@radix-ui/react-tooltip@1.2.6': + resolution: {integrity: sha512-zYb+9dc9tkoN2JjBDIIPLQtk3gGyz8FMKoqYTb8EMVQ5a5hBcdHPECrsZVI4NpPAUOixhkoqg7Hj5ry5USowfA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2061,8 +2032,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.2.0': - resolution: {integrity: sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==} + '@radix-ui/react-visually-hidden@1.2.2': + resolution: {integrity: sha512-ORCmRUbNiZIv6uV5mhFrhsIKw4UX/N3syZtyqvry61tbGm4JlgQuSn0hk5TwCARsCjkcnuRkSdCE3xfb+ADHew==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2085,106 +2056,115 @@ packages: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - '@rollup/rollup-android-arm-eabi@4.40.1': - resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==} + '@rollup/rollup-android-arm-eabi@4.40.2': + resolution: {integrity: sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.40.1': - resolution: {integrity: sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==} + '@rollup/rollup-android-arm64@4.40.2': + resolution: {integrity: sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.40.1': - resolution: {integrity: sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==} + '@rollup/rollup-darwin-arm64@4.40.2': + resolution: {integrity: sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.40.1': - resolution: {integrity: sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==} + '@rollup/rollup-darwin-x64@4.40.2': + resolution: {integrity: sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.40.1': - resolution: {integrity: sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==} + '@rollup/rollup-freebsd-arm64@4.40.2': + resolution: {integrity: sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.40.1': - resolution: {integrity: sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==} + '@rollup/rollup-freebsd-x64@4.40.2': + resolution: {integrity: sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.40.1': - resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==} + '@rollup/rollup-linux-arm-gnueabihf@4.40.2': + resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.40.1': - resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==} + '@rollup/rollup-linux-arm-musleabihf@4.40.2': + resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.40.1': - resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==} + '@rollup/rollup-linux-arm64-gnu@4.40.2': + resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.40.1': - resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==} + '@rollup/rollup-linux-arm64-musl@4.40.2': + resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.40.1': - resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==} + '@rollup/rollup-linux-loongarch64-gnu@4.40.2': + resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': - resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': + resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.40.1': - resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==} + '@rollup/rollup-linux-riscv64-gnu@4.40.2': + resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.40.1': - resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==} + '@rollup/rollup-linux-riscv64-musl@4.40.2': + resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.40.1': - resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==} + '@rollup/rollup-linux-s390x-gnu@4.40.2': + resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.40.1': - resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==} + '@rollup/rollup-linux-x64-gnu@4.40.2': + resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.40.1': - resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==} + '@rollup/rollup-linux-x64-musl@4.40.2': + resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.40.1': - resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==} + '@rollup/rollup-win32-arm64-msvc@4.40.2': + resolution: {integrity: sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.40.1': - resolution: {integrity: sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==} + '@rollup/rollup-win32-ia32-msvc@4.40.2': + resolution: {integrity: sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.40.1': - resolution: {integrity: sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==} + '@rollup/rollup-win32-x64-msvc@4.40.2': + resolution: {integrity: sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==} cpu: [x64] os: [win32] + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -2285,20 +2265,25 @@ packages: '@tailwindcss/postcss@4.1.5': resolution: {integrity: sha512-5lAC2/pzuyfhsFgk6I58HcNy6vPK3dV/PoPxSDuOTVbDvCddYHzHiJZZInGIY0venvzzfrTEUAXJFULAfFmObg==} - '@tanstack/query-core@5.75.0': - resolution: {integrity: sha512-rk8KQuCdhoRkzjRVF3QxLgAfFUyS0k7+GCQjlGEpEGco+qazJ0eMH6aO1DjDjibH7/ik383nnztua3BG+lOnwg==} + '@tailwindcss/vite@4.1.5': + resolution: {integrity: sha512-FE1stRoqdHSb7RxesMfCXE8icwI1W6zGE/512ae3ZDrpkQYTTYeSyUJPRCjZd8CwVAhpDUbi1YR8pcZioFJQ/w==} + peerDependencies: + vite: ^5.2.0 || ^6 + + '@tanstack/query-core@5.75.4': + resolution: {integrity: sha512-pcqOUgWG9oGlzkfRQQMMsEFmtQu0wq81A414CtELZGq+ztVwSTAaoB3AZRAXQJs88LmNMk2YpUKuQbrvzNDyRg==} '@tanstack/query-devtools@5.74.7': resolution: {integrity: sha512-nSNlfuGdnHf4yB0S+BoNYOE1o3oAH093weAYZolIHfS2stulyA/gWfSk/9H4ZFk5mAAHb5vNqAeJOmbdcGPEQw==} - '@tanstack/react-query-devtools@5.75.2': - resolution: {integrity: sha512-bOwfNBka4Xc4Q2EhOW15arll7UkavwMgEAbbqnEDbrpHFxbZR33EYIMh9SyUmqVsZEv0rGmbvzK8OsXRjTTTuA==} + '@tanstack/react-query-devtools@5.75.4': + resolution: {integrity: sha512-CSJZWa316EFtLZtr6RQLAnqWb1MESzyZ7j0bMQjuhYas5FDp/3MA7G6RE4hWauqCCDsNIfIm2Rnm1zJTZVye/w==} peerDependencies: - '@tanstack/react-query': ^5.75.2 + '@tanstack/react-query': ^5.75.4 react: ^18 || ^19 - '@tanstack/react-query@5.75.2': - resolution: {integrity: sha512-8F8VOsWUfSkCFoi62O9HSZT9jDgg28Ln8Z2dYKfRo/O2A0sgvr0uxTuNoon3PPXoDuHofv5V3elBI1M2Gh1MPg==} + '@tanstack/react-query@5.75.4': + resolution: {integrity: sha512-Vf65pzYRkf8fk9SP1ncIZjvaXszBhtsvpf+h45Y/9kOywOrVZfBGUpCdffdsVzbmBzmz6TCFes9bM0d3pRrIsA==} peerDependencies: react: ^18 || ^19 @@ -2325,6 +2310,10 @@ packages: resolution: {integrity: sha512-NxPRAT/mywJ6agqLuVsOag1btEUbPYacVqCndQjvkm5EN0DfjvBIYCsXA/i2Q+Z0hqX84UeIIfIXAQiXpAXZmA==} hasBin: true + '@types/axios@0.14.4': + resolution: {integrity: sha512-9JgOaunvQdsQ/qW2OPmE5+hCeUB52lQSolecrFrthct55QekhmXEwT203s20RL+UHtCQc15y3VXpby9E7Kkh/g==} + deprecated: This is a stub types definition. axios provides its own type definitions, so you do not need this installed. + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -2419,9 +2408,6 @@ packages: '@types/jest@29.5.14': resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/jsonwebtoken@9.0.9': resolution: {integrity: sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==} @@ -2440,8 +2426,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@22.15.3': - resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==} + '@types/node@22.15.12': + resolution: {integrity: sha512-K0fpC/ZVeb8G9rm7bH7vI0KAec4XHEhBam616nVJCV51bKzJ6oA3luG4WdKoaztxe70QaNjS/xBmcDLmr4PiGw==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -2458,6 +2444,12 @@ packages: '@types/passport@1.0.17': resolution: {integrity: sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==} + '@types/postcss-modules-local-by-default@4.0.2': + resolution: {integrity: sha512-CtYCcD+L+trB3reJPny+bKWKMzPfxEyQpKIwit7kErnOexf5/faaGpkFy4I5AwbV4hp1sk7/aTg0tt0B67VkLQ==} + + '@types/postcss-modules-scope@3.0.4': + resolution: {integrity: sha512-//ygSisVq9kVI0sqx3UPLzWIMCmtSVrzdljtuaAEJtGoGnpjBikZ2sXO5MpH9SnWX9HRfXxHifDAXcQjupWnIQ==} + '@types/qs@6.9.18': resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} @@ -2469,8 +2461,8 @@ packages: peerDependencies: '@types/react': ^19.0.0 - '@types/react@19.1.2': - resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==} + '@types/react@19.1.3': + resolution: {integrity: sha512-dLWQ+Z0CkIvK1J8+wrDPwGxEYFA4RAyHoZPxHVGspYmFVnwGSNT24cGIhFJrtfRnWVuW8X7NO52gCXmhkVUWGQ==} '@types/response-time@2.3.8': resolution: {integrity: sha512-7qGaNYvdxc0zRab8oHpYx7AW17qj+G0xuag1eCrw3M2VWPJQ/HyKaaghWygiaOUl0y9x7QGQwppDpqLJ5V9pzw==} @@ -2502,53 +2494,6 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.31.1': - resolution: {integrity: sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/parser@8.31.1': - resolution: {integrity: sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/scope-manager@8.31.1': - resolution: {integrity: sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.31.1': - resolution: {integrity: sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/types@8.31.1': - resolution: {integrity: sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.31.1': - resolution: {integrity: sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.31.1': - resolution: {integrity: sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/visitor-keys@8.31.1': - resolution: {integrity: sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitejs/plugin-react@4.4.1': resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2562,11 +2507,6 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} @@ -2588,9 +2528,6 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -2651,58 +2588,29 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 aws-ssl-profiles@1.1.2: resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} @@ -2778,8 +2686,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + browserslist@4.24.5: + resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2817,10 +2725,6 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -2843,8 +2747,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001715: - resolution: {integrity: sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==} + caniuse-lite@1.0.30001717: + resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -3032,6 +2936,9 @@ packages: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} + copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + core-js-pure@3.42.0: resolution: {integrity: sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==} @@ -3065,6 +2972,11 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -3116,18 +3028,6 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} @@ -3151,8 +3051,8 @@ packages: decimal.js-light@2.5.1: resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + dedent@1.6.0: + resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -3163,9 +3063,6 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -3173,14 +3070,6 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -3212,6 +3101,11 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} @@ -3238,10 +3132,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} @@ -3268,10 +3158,6 @@ packages: resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} engines: {node: '>=12'} - dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} - dotenv@16.5.0: resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} engines: {node: '>=12'} @@ -3297,8 +3183,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.140: - resolution: {integrity: sha512-o82Rj+ONp4Ip7Cl1r7lrqx/pXhbp/lh9DpKcMNscFJdh8ebyRofnc7Sh01B4jx403RI0oqTBvlZ7OBIZLMr2+Q==} + electron-to-chromium@1.5.150: + resolution: {integrity: sha512-rOOkP2ZUMx1yL4fCxXQKDHQ8ZXwisb2OycOQVKHgvB3ZI4CvehOd4y2tfnnLDieJ3Zs1RL1Dlp3cMkyIn7nnXA==} embla-carousel-react@8.6.0: resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} @@ -3341,13 +3227,13 @@ packages: entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -3356,10 +3242,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -3368,21 +3250,17 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} + esbuild-plugin-react18-css@0.0.4: + resolution: {integrity: sha512-dg/6DB8c0ODubeahYa/4rWO5lk/Bn22lRD6n3+1ZFOvNU4d+Q/gGMiRq01ndrX7p70QYEnrjYmV8p59zrjTtIg==} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} + esbuild-plugin-react18@0.2.6: + resolution: {integrity: sha512-ckg4Nmj0pHiS+QGyQUc1+aXDawTyVXRUb4jE8say8JL0V2BlTjJ8Z2CTmF6Lr89MQ0jToa/2bIqmVENtifxe1g==} - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} - engines: {node: '>=18'} - hasBin: true + esbuild-raw-plugin@0.2.0: + resolution: {integrity: sha512-e7fCTfnKe3JRMtNd+GuuFGxKO9GhguX/Wt+wHEjeW6Eq7DXiP/HxL7Zf798OEfPebyprHEjr6A3+yBqIDUif8w==} - esbuild@0.25.3: - resolution: {integrity: sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==} + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true @@ -3410,73 +3288,11 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@10.1.2: - resolution: {integrity: sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-only-warn@1.1.0: - resolution: {integrity: sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==} - engines: {node: '>=6'} - - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-plugin-turbo@2.5.1: - resolution: {integrity: sha512-liyy40BXnlQP37EX9Z03gqUeH8X8GetqDcOG6EhNqnFktJT3fq+XTLvWzhU+s62JFS5/Njcpm3QTOY9VjD4yAQ==} - peerDependencies: - eslint: '>6.6.0' - turbo: '>2.0.0' - - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.25.1: - resolution: {integrity: sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -3515,17 +3331,10 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-equals@5.2.2: resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} engines: {node: '>=6.0.0'} - fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -3533,9 +3342,6 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -3557,10 +3363,6 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - file-stream-rotator@0.6.1: resolution: {integrity: sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==} @@ -3582,17 +3384,6 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} @@ -3605,10 +3396,6 @@ packages: debug: optional: true - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -3621,6 +3408,9 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -3651,13 +3441,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -3666,6 +3449,9 @@ packages: generate-function@2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + generic-names@4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3694,10 +3480,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - get-tsconfig@4.10.0: resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} @@ -3709,19 +3491,10 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@11.0.2: - resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==} - engines: {node: 20 || >=22} - hasBin: true - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -3730,22 +3503,17 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globals@16.0.0: resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} engines: {node: '>=18'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - globby@10.0.2: resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} engines: {node: '>=8'} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -3757,18 +3525,11 @@ packages: resolution: {integrity: sha512-rEDCuqUQ4tbD78TpzsMtt5OIf0cBCSDWSJtUDaF6JsAh+k0v9r++NzxNEG87oDZx9ZwGhD8DaezR2L/yrw0Jdw==} engines: {node: '>=10'} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -3777,13 +3538,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -3854,8 +3608,8 @@ packages: i18next-browser-languagedetector@8.1.0: resolution: {integrity: sha512-mHZxNx1Lq09xt5kCauZ/4bsXOEA2pfpwSoU11/QTJB+pD94iONFwp+ohqi///PwiFvjFOxe1akYCdHyFo1ng5Q==} - i18next@25.0.2: - resolution: {integrity: sha512-xWxgK8GAaPYkV9ia2tdgbtdM+qiC+ysVTBPvXhpCORU/+QkeQe3BSI7Crr+c4ZXULN1PfnXG/HY2n7HGx4KKBg==} + i18next@25.1.1: + resolution: {integrity: sha512-FZcp3vk3PXc8onasbsWYahfeDIWX4LkKr4vd01xeXrmqyNXlVNtVecEIw2K1o8z3xYrHMcd1bwYQub+3g7zqCw==} peerDependencies: typescript: ^5 peerDependenciesMeta: @@ -3870,6 +3624,12 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3877,6 +3637,14 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + immutable@5.1.2: + resolution: {integrity: sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -3917,8 +3685,8 @@ packages: react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc - inquirer@12.5.2: - resolution: {integrity: sha512-qoDk/vdSTIaXNXAoNnlg7ubexpJfUo7t8GT2vylxvE49BrLhToFuPPdMViidG2boHV7+AcP1TCkJs/+PPoF2QQ==} + inquirer@12.6.0: + resolution: {integrity: sha512-3zmmccQd/8o65nPOZJZ+2wqt76Ghw3+LaMrmc6JE/IzcvQhJ1st+QLCOo/iLS85/tILU0myG31a2TAZX0ysAvg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3934,10 +3702,6 @@ packages: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - internmap@2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} @@ -3950,56 +3714,24 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -4008,10 +3740,6 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4023,14 +3751,6 @@ packages: is-lower-case@1.1.3: resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4046,34 +3766,10 @@ packages: is-property@1.0.2: resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -4081,20 +3777,8 @@ packages: is-upper-case@1.1.2: resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} isbinaryfile@4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} @@ -4127,17 +3811,9 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.1.0: - resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} - engines: {node: 20 || >=22} - jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -4276,6 +3952,9 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -4299,18 +3978,9 @@ packages: engines: {node: '>=6'} hasBin: true - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -4323,19 +3993,12 @@ packages: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} jws@3.2.2: resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -4343,14 +4006,15 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + less@4.3.0: + resolution: {integrity: sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==} + engines: {node: '>=14'} + hasBin: true + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - libphonenumber-js@1.12.7: resolution: {integrity: sha512-0nYZSNj/QEikyhcM5RZFXGlCB/mr4PVamnT1C2sKBnDDTYndrvbybYjvg+PMqAndQHlLbwQ3socolnL3WWTUFA==} @@ -4418,6 +4082,10 @@ packages: resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} engines: {node: '>= 12.0.0'} + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -4434,13 +4102,16 @@ packages: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} + engines: {node: '>= 12.13.0'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} @@ -4467,9 +4138,6 @@ packages: lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} @@ -4510,10 +4178,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.1.0: - resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} - engines: {node: 20 || >=22} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4534,6 +4198,10 @@ packages: resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} engines: {node: '>=12'} + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -4591,10 +4259,6 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -4678,6 +4342,11 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -4704,6 +4373,9 @@ packages: node-addon-api@5.1.0: resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -4735,6 +4407,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -4758,26 +4434,6 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -4796,10 +4452,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - ora@4.1.1: resolution: {integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==} engines: {node: '>=8'} @@ -4812,10 +4464,6 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -4828,10 +4476,6 @@ packages: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - p-map@3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} @@ -4869,6 +4513,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -4916,10 +4564,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -4953,6 +4597,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -4961,9 +4609,17 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true postcss-load-config@6.0.1: resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} @@ -4983,14 +4639,46 @@ packages: yaml: optional: true + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules@6.0.1: + resolution: {integrity: sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==} + peerDependencies: + postcss: ^8.0.0 + + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5017,6 +4705,9 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -5190,14 +4881,6 @@ packages: reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - registry-auth-token@3.3.2: resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} @@ -5213,6 +4896,9 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + reserved-words@0.1.2: + resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==} + resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -5237,10 +4923,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - response-time@2.3.3: resolution: {integrity: sha512-SsjjOPHl/FfrTQNgmc5oen8Hr1Jxpn6LlHNXxCIFdYMHuK1kMeYMobb9XN3mvxaGQm3dbegqYFMX4+GDORfbWg==} engines: {node: '>= 0.8.0'} @@ -5261,8 +4943,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.40.1: - resolution: {integrity: sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==} + rollup@4.40.2: + resolution: {integrity: sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -5284,21 +4966,9 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} @@ -5306,9 +4976,24 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sass@1.87.0: + resolution: {integrity: sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==} + engines: {node: '>=14.0.0'} + hasBin: true + + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -5377,18 +5062,6 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -5475,6 +5148,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} @@ -5500,6 +5177,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + string-hash@1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -5512,25 +5192,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -5565,6 +5226,10 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + stylus@0.62.0: + resolution: {integrity: sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==} + hasBin: true + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -5592,6 +5257,11 @@ packages: tailwind-merge@3.2.0: resolution: {integrity: sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==} + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + tailwindcss@4.1.5: resolution: {integrity: sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA==} @@ -5676,12 +5346,6 @@ packages: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -5723,6 +5387,16 @@ packages: '@swc/wasm': optional: true + tsconfck@3.1.5: + resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -5757,47 +5431,43 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - turbo-darwin-64@2.5.1: - resolution: {integrity: sha512-U9lT1rZ20PQjEYDiNE0aZrU6K+StAE8rood9xn3pV1w+CSby56HkdR2AffzMdFf8iPTeZfcY1qL62rDcCeRPTw==} + turbo-darwin-64@2.5.2: + resolution: {integrity: sha512-2aIl0Sx230nLk+Cg2qSVxvPOBWCZpwKNuAMKoROTvWKif6VMpkWWiR9XEPoz7sHeLmCOed4GYGMjL1bqAiIS/g==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.5.1: - resolution: {integrity: sha512-1Mp0LeP9JENqHnurGNyD557sndPt2BYUbgzUX87tYIdu/26dHyqlobiRzPpEfkOGB/sV4exhJUJGXB1h72szLQ==} + turbo-darwin-arm64@2.5.2: + resolution: {integrity: sha512-MrFYhK/jYu8N6QlqZtqSHi3e4QVxlzqU3ANHTKn3/tThuwTLbNHEvzBPWSj5W7nZcM58dCqi6gYrfRz6bJZyAA==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.5.1: - resolution: {integrity: sha512-Cl2yKumJQAlNG5UA7vjCU6SPBLrcKaGhOjTaUjGHeD9WLL8vh4FwOlhOD2wk7zCUlhpJaM73WHY+oOZGMqmzOg==} + turbo-linux-64@2.5.2: + resolution: {integrity: sha512-LxNqUE2HmAJQ/8deoLgMUDzKxd5bKxqH0UBogWa+DF+JcXhtze3UTMr6lEr0dEofdsEUYK1zg8FRjglmwlN5YA==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.5.1: - resolution: {integrity: sha512-OFpb/9YZJG8v3nttD4K5dxW3bwsZp++oxAykpYsPhp552EX6r+dJrt2dzX3C0azls2JLf/UzTpA83fRoM8mC4g==} + turbo-linux-arm64@2.5.2: + resolution: {integrity: sha512-0MI1Ao1q8zhd+UUbIEsrM+yLq1BsrcJQRGZkxIsHFlGp7WQQH1oR3laBgfnUCNdCotCMD6w4moc9pUbXdOR3bg==} cpu: [arm64] os: [linux] - turbo-windows-64@2.5.1: - resolution: {integrity: sha512-6XnfSxE8xPETVAlAwfMqCuVuZbq9gXTj8H/Eggv/i3Tjoh2l5xMVTOmg3/zV4RlDtTcwhnvXgXx8LEXrSRZmQQ==} + turbo-windows-64@2.5.2: + resolution: {integrity: sha512-hOLcbgZzE5ttACHHyc1ajmWYq4zKT42IC3G6XqgiXxMbS+4eyVYTL+7UvCZBd3Kca1u4TLQdLQjeO76zyDJc2A==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.5.1: - resolution: {integrity: sha512-Nc9abxTCpRL8ejzzIm5j6jze3jFi23ZtU83Fwz2N9StquYHGEi72isyeCkrhzCiUvZZEPlFyFaXOSShcJUK58Q==} + turbo-windows-arm64@2.5.2: + resolution: {integrity: sha512-fMU41ABhSLa18H8V3Z7BMCGynQ8x+wj9WyBMvWm1jeyRKgkvUYJsO2vkIsy8m0vrwnIeVXKOIn6eSe1ddlBVqw==} cpu: [arm64] os: [win32] - turbo@2.5.1: - resolution: {integrity: sha512-LT0wYyT+HY4StvmGMq1k2tHCIwauaWSXwyP+tCUked9vja5xEisW8b8NIJGi9BWH5HYH9Og1DysaQFTf8BiydQ==} + turbo@2.5.2: + resolution: {integrity: sha512-Qo5lfuStr6LQh3sPQl7kIi243bGU4aHGDQJUf6ylAdGwks30jJFloc9NYHP7Y373+gGU9OS0faA4Mb5Sy8X9Xw==} hasBin: true tw-animate-css@1.2.9: resolution: {integrity: sha512-9O4k1at9pMQff9EAcCEuy1UNO43JmaPQvq+0lwza9Y0BQ6LB38NiMj+qHqjoQf40355MX+gs6wtlR6H9WsSXFg==} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -5806,36 +5476,18 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@4.40.0: - resolution: {integrity: sha512-ABHZ2/tS2JkvH1PEjxFDTUWC8dB5OsIGZP4IFLhR293GqT5Y5qB1WwL2kMPYhQW9DVgVD8Hd7I8gjwPIf5GFkw==} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typescript-eslint@8.31.1: - resolution: {integrity: sha512-j6DsEotD/fH39qKzXTQRwYYWlt7D+0HmfpOK+DVhwJOFLcdmn92hq3mBb7HlKJHbjjI/gTOqEcc9d6JfpFf/VA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript-plugin-css-modules@5.1.0: + resolution: {integrity: sha512-6h+sLBa4l+XYSTn/31vZHd/1c3SvAbLpobY6FxDiUOHJQG1eD9Gh3eCs12+Eqc+TCOAdxcO+zAPvUq0jBfdciw==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.0.0' typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} @@ -5847,10 +5499,6 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -5877,9 +5525,6 @@ packages: upper-case@1.1.3: resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -5978,6 +5623,14 @@ packages: peerDependencies: vite: ^5.0.0 || ^6.0.0 + vite-tsconfig-paths@5.1.4: + resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + vite@6.3.5: resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -6040,22 +5693,6 @@ packages: whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -6081,10 +5718,6 @@ packages: wkx@0.5.0: resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -6121,6 +5754,11 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + yaml@2.7.1: + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -6141,11 +5779,13 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} - zod@3.24.3: - resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==} + zod@3.24.4: + resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} snapshots: + '@adobe/css-tools@4.3.3': {} + '@alloc/quick-lru@5.2.0': {} '@ampproject/remapping@2.3.0': @@ -6153,26 +5793,26 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.26.2': + '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.8': {} + '@babel/compat-data@7.27.1': {} - '@babel/core@7.26.10': + '@babel/core@7.27.1': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/helper-compilation-targets': 7.27.1 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helpers': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -6181,150 +5821,148 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.27.0': + '@babel/generator@7.27.1': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.27.0': + '@babel/helper-compilation-targets@7.27.1': dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 + '@babel/compat-data': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.5 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': + '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.26.5': {} - '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.27.0': + '@babel/helpers@7.27.1': dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 - '@babel/parser@7.27.0': + '@babel/parser@7.27.1': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.26.10)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/runtime-corejs3@7.27.1': @@ -6333,28 +5971,28 @@ snapshots: '@babel/runtime@7.27.1': {} - '@babel/template@7.27.0': + '@babel/template@7.27.1': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 - '@babel/traverse@7.27.0': + '@babel/traverse@7.27.1': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.27.0': + '@babel/types@7.27.1': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 '@bcoe/v8-coverage@0.2.3': {} @@ -6407,7 +6045,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: - '@babel/helper-module-imports': 7.25.9 + '@babel/helper-module-imports': 7.27.1 '@babel/runtime': 7.27.1 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 @@ -6437,7 +6075,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0)': + '@emotion/react@11.14.0(@types/react@19.1.3)(react@19.1.0)': dependencies: '@babel/runtime': 7.27.1 '@emotion/babel-plugin': 11.13.5 @@ -6449,7 +6087,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 transitivePeerDependencies: - supports-color @@ -6463,18 +6101,18 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0))(@types/react@19.1.2)(react@19.1.0)': + '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.1.3)(react@19.1.0))(@types/react@19.1.3)(react@19.1.0)': dependencies: '@babel/runtime': 7.27.1 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.1 - '@emotion/react': 11.14.0(@types/react@19.1.2)(react@19.1.0) + '@emotion/react': 11.14.0(@types/react@19.1.3)(react@19.1.0) '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.0) '@emotion/utils': 1.4.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 transitivePeerDependencies: - supports-color @@ -6488,200 +6126,81 @@ snapshots: '@emotion/weak-memoize@0.4.0': {} - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.4': optional: true - '@esbuild/aix-ppc64@0.25.3': + '@esbuild/android-arm64@0.25.4': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm@0.25.4': optional: true - '@esbuild/android-arm64@0.25.3': + '@esbuild/android-x64@0.25.4': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/darwin-arm64@0.25.4': optional: true - '@esbuild/android-arm@0.25.3': + '@esbuild/darwin-x64@0.25.4': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/freebsd-arm64@0.25.4': optional: true - '@esbuild/android-x64@0.25.3': + '@esbuild/freebsd-x64@0.25.4': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.4': optional: true - '@esbuild/darwin-arm64@0.25.3': + '@esbuild/linux-arm@0.25.4': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/linux-ia32@0.25.4': optional: true - '@esbuild/darwin-x64@0.25.3': + '@esbuild/linux-loong64@0.25.4': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/linux-mips64el@0.25.4': optional: true - '@esbuild/freebsd-arm64@0.25.3': + '@esbuild/linux-ppc64@0.25.4': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/linux-riscv64@0.25.4': optional: true - '@esbuild/freebsd-x64@0.25.3': + '@esbuild/linux-s390x@0.25.4': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-x64@0.25.4': optional: true - '@esbuild/linux-arm64@0.25.3': + '@esbuild/netbsd-arm64@0.25.4': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/netbsd-x64@0.25.4': optional: true - '@esbuild/linux-arm@0.25.3': + '@esbuild/openbsd-arm64@0.25.4': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/openbsd-x64@0.25.4': optional: true - '@esbuild/linux-ia32@0.25.3': + '@esbuild/sunos-x64@0.25.4': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/win32-arm64@0.25.4': optional: true - '@esbuild/linux-loong64@0.25.3': + '@esbuild/win32-ia32@0.25.4': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/win32-x64@0.25.4': optional: true - '@esbuild/linux-mips64el@0.25.3': - optional: true - - '@esbuild/linux-ppc64@0.24.2': - optional: true - - '@esbuild/linux-ppc64@0.25.3': - optional: true - - '@esbuild/linux-riscv64@0.24.2': - optional: true - - '@esbuild/linux-riscv64@0.25.3': - optional: true - - '@esbuild/linux-s390x@0.24.2': - optional: true - - '@esbuild/linux-s390x@0.25.3': - optional: true - - '@esbuild/linux-x64@0.24.2': - optional: true - - '@esbuild/linux-x64@0.25.3': - optional: true - - '@esbuild/netbsd-arm64@0.24.2': - optional: true - - '@esbuild/netbsd-arm64@0.25.3': - optional: true - - '@esbuild/netbsd-x64@0.24.2': - optional: true - - '@esbuild/netbsd-x64@0.25.3': - optional: true - - '@esbuild/openbsd-arm64@0.24.2': - optional: true - - '@esbuild/openbsd-arm64@0.25.3': - optional: true - - '@esbuild/openbsd-x64@0.24.2': - optional: true - - '@esbuild/openbsd-x64@0.25.3': - optional: true - - '@esbuild/sunos-x64@0.24.2': - optional: true - - '@esbuild/sunos-x64@0.25.3': - optional: true - - '@esbuild/win32-arm64@0.24.2': - optional: true - - '@esbuild/win32-arm64@0.25.3': - optional: true - - '@esbuild/win32-ia32@0.24.2': - optional: true - - '@esbuild/win32-ia32@0.25.3': - optional: true - - '@esbuild/win32-x64@0.24.2': - optional: true - - '@esbuild/win32-x64@0.25.3': - optional: true - - '@eslint-community/eslint-utils@4.6.1(eslint@9.25.1(jiti@2.4.2))': - dependencies: - eslint: 9.25.1(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/config-array@0.20.0': - dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.2.1': {} - - '@eslint/core@0.13.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.3.1': - dependencies: - ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.25.1': {} - - '@eslint/object-schema@2.1.6': {} - - '@eslint/plugin-kit@0.2.8': - dependencies: - '@eslint/core': 0.13.0 - levn: 0.4.1 - '@floating-ui/core@1.7.0': dependencies: '@floating-ui/utils': 0.2.9 @@ -6699,10 +6218,16 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@hookform/devtools@4.4.0(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@hapi/hoek@9.3.0': {} + + '@hapi/topo@5.1.0': dependencies: - '@emotion/react': 11.14.0(@types/react@19.1.2)(react@19.1.0) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0))(@types/react@19.1.2)(react@19.1.0) + '@hapi/hoek': 9.3.0 + + '@hookform/devtools@4.4.0(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@emotion/react': 11.14.0(@types/react@19.1.3)(react@19.1.0) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@19.1.3)(react@19.1.0))(@types/react@19.1.3)(react@19.1.0) '@types/lodash': 4.17.16 little-state-machine: 4.8.1(react@19.1.0) lodash: 4.17.21 @@ -6720,40 +6245,27 @@ snapshots: '@standard-schema/utils': 0.3.0 react-hook-form: 7.56.2(react@19.1.0) - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': + '@inquirer/checkbox@4.1.5(@types/node@22.15.12)': dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.2': {} - - '@inquirer/checkbox@4.1.5(@types/node@22.15.3)': - dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/type': 3.0.6(@types/node@22.15.12) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/confirm@5.1.9(@types/node@22.15.3)': + '@inquirer/confirm@5.1.9(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/core@10.1.10(@types/node@22.15.3)': + '@inquirer/core@10.1.10(@types/node@22.15.12)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/type': 3.0.6(@types/node@22.15.12) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -6761,93 +6273,93 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/editor@4.2.10(@types/node@22.15.3)': + '@inquirer/editor@4.2.10(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) external-editor: 3.1.0 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/expand@4.0.12(@types/node@22.15.3)': + '@inquirer/expand@4.0.12(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@inquirer/figures@1.0.11': {} - '@inquirer/input@4.1.9(@types/node@22.15.3)': + '@inquirer/input@4.1.9(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/number@3.0.12(@types/node@22.15.3)': + '@inquirer/number@3.0.12(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/password@4.0.12(@types/node@22.15.3)': + '@inquirer/password@4.0.12(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/prompts@7.4.1(@types/node@22.15.3)': + '@inquirer/prompts@7.5.0(@types/node@22.15.12)': dependencies: - '@inquirer/checkbox': 4.1.5(@types/node@22.15.3) - '@inquirer/confirm': 5.1.9(@types/node@22.15.3) - '@inquirer/editor': 4.2.10(@types/node@22.15.3) - '@inquirer/expand': 4.0.12(@types/node@22.15.3) - '@inquirer/input': 4.1.9(@types/node@22.15.3) - '@inquirer/number': 3.0.12(@types/node@22.15.3) - '@inquirer/password': 4.0.12(@types/node@22.15.3) - '@inquirer/rawlist': 4.0.12(@types/node@22.15.3) - '@inquirer/search': 3.0.12(@types/node@22.15.3) - '@inquirer/select': 4.1.1(@types/node@22.15.3) + '@inquirer/checkbox': 4.1.5(@types/node@22.15.12) + '@inquirer/confirm': 5.1.9(@types/node@22.15.12) + '@inquirer/editor': 4.2.10(@types/node@22.15.12) + '@inquirer/expand': 4.0.12(@types/node@22.15.12) + '@inquirer/input': 4.1.9(@types/node@22.15.12) + '@inquirer/number': 3.0.12(@types/node@22.15.12) + '@inquirer/password': 4.0.12(@types/node@22.15.12) + '@inquirer/rawlist': 4.1.0(@types/node@22.15.12) + '@inquirer/search': 3.0.12(@types/node@22.15.12) + '@inquirer/select': 4.2.0(@types/node@22.15.12) optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/rawlist@4.0.12(@types/node@22.15.3)': + '@inquirer/rawlist@4.1.0(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/search@3.0.12(@types/node@22.15.3)': + '@inquirer/search@3.0.12(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/type': 3.0.6(@types/node@22.15.12) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/select@4.1.1(@types/node@22.15.3)': + '@inquirer/select@4.2.0(@types/node@22.15.12)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/type': 3.0.6(@types/node@22.15.12) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 - '@inquirer/type@3.0.6(@types/node@22.15.3)': + '@inquirer/type@3.0.6(@types/node@22.15.12)': optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@isaacs/cliui@8.0.2': dependencies: @@ -6871,27 +6383,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -6916,7 +6428,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -6934,7 +6446,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.3 + '@types/node': 22.15.12 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -6956,7 +6468,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.3 + '@types/node': 22.15.12 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -7003,7 +6515,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -7026,7 +6538,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -7072,10 +6584,6 @@ snapshots: - encoding - supports-color - '@next/eslint-plugin-next@15.3.1': - dependencies: - fast-glob: 3.3.1 - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7088,6 +6596,67 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + optional: true + '@pkgjs/parseargs@0.11.0': optional: true @@ -7095,652 +6664,652 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-accordion@1.2.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-accordion@1.2.10(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collapsible': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-collapsible': 1.1.10(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-alert-dialog@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-alert-dialog@1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dialog': 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dialog': 1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-arrow@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-arrow@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-aspect-ratio@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-aspect-ratio@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-avatar@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-avatar@1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-checkbox@1.2.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-checkbox@1.3.1(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-collapsible@1.1.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collapsible@1.1.10(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-collection@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-context-menu@2.2.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-context-menu@2.2.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-menu': 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-menu': 2.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-context@1.1.2(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-dialog@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dialog@1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.3)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-dismissable-layer@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-dropdown-menu@2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dropdown-menu@2.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-menu': 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-menu': 2.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-focus-scope@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-hover-card@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-hover-card@1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-id@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-label@2.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-label@2.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-menu@2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-menu@2.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.3)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-menubar@1.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-menubar@1.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-menu': 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-menu': 2.1.14(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-navigation-menu@1.2.10(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-navigation-menu@1.2.12(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-popover@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popover@1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.3)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-popper@1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popper@1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-arrow': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-arrow': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.3)(react@19.1.0) '@radix-ui/rect': 1.1.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-portal@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-primitive@2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-progress@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-progress@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-radio-group@1.3.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-radio-group@1.3.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-roving-focus@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-roving-focus@1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-scroll-area@1.2.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-scroll-area@1.2.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-select@2.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-select@2.2.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.3)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-separator@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-separator@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-slider@1.3.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-slider@1.3.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-slot@1.2.0(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-slot@1.2.2(@types/react@19.1.3)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-switch@1.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-switch@1.2.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-tabs@1.1.9(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tabs@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-toggle-group@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-toggle-group@1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-toggle': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-toggle': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-toggle@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-toggle@1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-tooltip@1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tooltip@1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.3)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.3)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 use-sync-external-store: 1.5.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.2)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.3)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.3)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@radix-ui/react-visually-hidden@1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-visually-hidden@1.2.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 - '@types/react-dom': 19.1.3(@types/react@19.1.2) + '@types/react': 19.1.3 + '@types/react-dom': 19.1.3(@types/react@19.1.3) '@radix-ui/rect@1.1.1': {} @@ -7751,66 +7320,74 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/rollup-android-arm-eabi@4.40.1': + '@rollup/rollup-android-arm-eabi@4.40.2': optional: true - '@rollup/rollup-android-arm64@4.40.1': + '@rollup/rollup-android-arm64@4.40.2': optional: true - '@rollup/rollup-darwin-arm64@4.40.1': + '@rollup/rollup-darwin-arm64@4.40.2': optional: true - '@rollup/rollup-darwin-x64@4.40.1': + '@rollup/rollup-darwin-x64@4.40.2': optional: true - '@rollup/rollup-freebsd-arm64@4.40.1': + '@rollup/rollup-freebsd-arm64@4.40.2': optional: true - '@rollup/rollup-freebsd-x64@4.40.1': + '@rollup/rollup-freebsd-x64@4.40.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.40.1': + '@rollup/rollup-linux-arm-gnueabihf@4.40.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.40.1': + '@rollup/rollup-linux-arm-musleabihf@4.40.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.40.1': + '@rollup/rollup-linux-arm64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.40.1': + '@rollup/rollup-linux-arm64-musl@4.40.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.40.1': + '@rollup/rollup-linux-loongarch64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.40.1': + '@rollup/rollup-linux-riscv64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.40.1': + '@rollup/rollup-linux-riscv64-musl@4.40.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.40.1': + '@rollup/rollup-linux-s390x-gnu@4.40.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.40.1': + '@rollup/rollup-linux-x64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-x64-musl@4.40.1': + '@rollup/rollup-linux-x64-musl@4.40.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.40.1': + '@rollup/rollup-win32-arm64-msvc@4.40.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.40.1': + '@rollup/rollup-win32-ia32-msvc@4.40.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.40.1': + '@rollup/rollup-win32-x64-msvc@4.40.2': optional: true + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + + '@sideway/formula@3.0.1': {} + + '@sideway/pinpoint@2.0.0': {} + '@sinclair/typebox@0.27.8': {} '@sinonjs/commons@3.0.1': @@ -7889,19 +7466,26 @@ snapshots: postcss: 8.5.3 tailwindcss: 4.1.5 - '@tanstack/query-core@5.75.0': {} + '@tailwindcss/vite@4.1.5(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1))': + dependencies: + '@tailwindcss/node': 4.1.5 + '@tailwindcss/oxide': 4.1.5 + tailwindcss: 4.1.5 + vite: 6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) + + '@tanstack/query-core@5.75.4': {} '@tanstack/query-devtools@5.74.7': {} - '@tanstack/react-query-devtools@5.75.2(@tanstack/react-query@5.75.2(react@19.1.0))(react@19.1.0)': + '@tanstack/react-query-devtools@5.75.4(@tanstack/react-query@5.75.4(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/query-devtools': 5.74.7 - '@tanstack/react-query': 5.75.2(react@19.1.0) + '@tanstack/react-query': 5.75.4(react@19.1.0) react: 19.1.0 - '@tanstack/react-query@5.75.2(react@19.1.0)': + '@tanstack/react-query@5.75.4(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.75.0 + '@tanstack/query-core': 5.75.4 react: 19.1.0 '@tootallnate/quickjs-emscripten@0.23.0': {} @@ -7914,7 +7498,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@turbo/gen@2.5.2(@types/node@22.15.3)(typescript@5.8.3)': + '@turbo/gen@2.5.2(@types/node@22.15.12)(typescript@5.8.3)': dependencies: '@turbo/workspaces': 2.5.2 commander: 10.0.1 @@ -7924,7 +7508,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) + ts-node: 10.9.2(@types/node@22.15.12)(typescript@5.8.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -7948,39 +7532,45 @@ snapshots: semver: 7.6.2 update-check: 1.5.4 + '@types/axios@0.14.4': + dependencies: + axios: 1.9.0 + transitivePeerDependencies: + - debug + '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.7 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@types/babel__traverse@7.20.7': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 '@types/bcrypt@5.0.2': dependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/d3-array@3.2.1': {} @@ -8020,7 +7610,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -8035,16 +7625,16 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/http-errors@2.0.4': {} @@ -8068,12 +7658,10 @@ snapshots: expect: 29.7.0 pretty-format: 29.7.0 - '@types/json-schema@7.0.15': {} - '@types/jsonwebtoken@9.0.9': dependencies: '@types/ms': 2.1.0 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/lodash@4.17.16': {} @@ -8085,7 +7673,7 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@22.15.3': + '@types/node@22.15.12': dependencies: undici-types: 6.21.0 @@ -8111,39 +7699,47 @@ snapshots: dependencies: '@types/express': 4.17.21 + '@types/postcss-modules-local-by-default@4.0.2': + dependencies: + postcss: 8.5.3 + + '@types/postcss-modules-scope@3.0.4': + dependencies: + postcss: 8.5.3 + '@types/qs@6.9.18': {} '@types/range-parser@1.2.7': {} - '@types/react-dom@19.1.3(@types/react@19.1.2)': + '@types/react-dom@19.1.3(@types/react@19.1.3)': dependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - '@types/react@19.1.2': + '@types/react@19.1.3': dependencies: csstype: 3.1.3 '@types/response-time@2.3.8': dependencies: '@types/express': 4.17.21 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/send': 0.17.4 '@types/stack-utils@2.0.3': {} '@types/through@0.0.33': dependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 '@types/tinycolor2@1.4.6': {} @@ -8157,91 +7753,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': + '@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1))': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.31.1 - '@typescript-eslint/type-utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.31.1 - eslint: 9.25.1(jiti@2.4.2) - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.31.1 - '@typescript-eslint/types': 8.31.1 - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.31.1 - debug: 4.4.0 - eslint: 9.25.1(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.31.1': - dependencies: - '@typescript-eslint/types': 8.31.1 - '@typescript-eslint/visitor-keys': 8.31.1 - - '@typescript-eslint/type-utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.0 - eslint: 9.25.1(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.31.1': {} - - '@typescript-eslint/typescript-estree@8.31.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.31.1 - '@typescript-eslint/visitor-keys': 8.31.1 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.31.1 - '@typescript-eslint/types': 8.31.1 - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) - eslint: 9.25.1(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.31.1': - dependencies: - '@typescript-eslint/types': 8.31.1 - eslint-visitor-keys: 4.2.0 - - '@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4))': - dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.26.10) + '@babel/core': 7.27.1 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.1) '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -8252,10 +7771,6 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.14.1): - dependencies: - acorn: 8.14.1 - acorn-walk@8.3.4: dependencies: acorn: 8.14.1 @@ -8275,13 +7790,6 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - ansi-colors@4.1.3: {} ansi-escapes@4.3.2: @@ -8330,78 +7838,27 @@ snapshots: dependencies: tslib: 2.8.1 - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - array-flatten@1.1.1: {} - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - array-union@2.1.0: {} - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - ast-types@0.13.4: dependencies: tslib: 2.8.1 - async-function@1.0.0: {} - async@3.2.6: {} asynckit@0.4.0: {} - available-typed-arrays@1.0.7: + autoprefixer@10.4.21(postcss@8.5.3): dependencies: - possible-typed-array-names: 1.1.0 + browserslist: 4.24.5 + caniuse-lite: 1.0.30001717 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.3 + postcss-value-parser: 4.2.0 aws-ssl-profiles@1.1.2: {} @@ -8413,13 +7870,13 @@ snapshots: transitivePeerDependencies: - debug - babel-jest@29.7.0(@babel/core@7.26.10): + babel-jest@29.7.0(@babel/core@7.27.1): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.10) + babel-preset-jest: 29.6.3(@babel/core@7.27.1) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -8428,7 +7885,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -8438,8 +7895,8 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 @@ -8449,30 +7906,30 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.10 - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10): + babel-preset-current-node-syntax@1.1.0(@babel/core@7.27.1): dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10) + '@babel/core': 7.27.1 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.1) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.1) - babel-preset-jest@29.6.3(@babel/core@7.26.10): + babel-preset-jest@29.6.3(@babel/core@7.27.1): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.1) balanced-match@1.0.2: {} @@ -8528,12 +7985,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.4: + browserslist@4.24.5: dependencies: - caniuse-lite: 1.0.30001715 - electron-to-chromium: 1.5.140 + caniuse-lite: 1.0.30001717 + electron-to-chromium: 1.5.150 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.4) + update-browserslist-db: 1.1.3(browserslist@4.24.5) bs-logger@0.2.6: dependencies: @@ -8552,9 +8009,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bundle-require@5.1.0(esbuild@0.25.3): + bundle-require@5.1.0(esbuild@0.25.4): dependencies: - esbuild: 0.25.3 + esbuild: 0.25.4 load-tsconfig: 0.2.5 bytes@3.1.2: {} @@ -8566,13 +8023,6 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 @@ -8594,7 +8044,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001715: {} + caniuse-lite@1.0.30001717: {} chalk@2.4.2: dependencies: @@ -8693,12 +8143,12 @@ snapshots: clsx@2.1.1: {} - cmdk@1.1.1(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + cmdk@1.1.1(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-dialog': 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-dialog': 1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.3)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -8781,6 +8231,10 @@ snapshots: cookie@0.7.1: {} + copy-anything@2.0.6: + dependencies: + is-what: 3.14.1 + core-js-pure@3.42.0: {} cors@2.8.5: @@ -8796,13 +8250,13 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - create-jest@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -8831,6 +8285,8 @@ snapshots: css-what@6.1.0: {} + cssesc@3.0.0: {} + csstype@3.1.3: {} d3-array@3.2.4: @@ -8873,24 +8329,6 @@ snapshots: data-uri-to-buffer@6.0.2: {} - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - date-fns@4.1.0: {} debug@2.6.9: @@ -8903,32 +8341,18 @@ snapshots: decimal.js-light@2.5.1: {} - dedent@1.5.3(babel-plugin-macros@3.1.0): + dedent@1.6.0(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 deep-extend@0.6.0: {} - deep-is@0.1.4: {} - deepmerge@4.3.1: {} defaults@1.0.4: dependencies: clone: 1.0.4 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -8958,6 +8382,9 @@ snapshots: destroy@1.2.0: {} + detect-libc@1.0.3: + optional: true + detect-libc@2.0.4: {} detect-newline@3.1.0: {} @@ -8974,10 +8401,6 @@ snapshots: dependencies: path-type: 4.0.0 - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - dom-helpers@5.2.1: dependencies: '@babel/runtime': 7.27.1 @@ -9012,8 +8435,6 @@ snapshots: dotenv-expand@8.0.3: {} - dotenv@16.0.3: {} - dotenv@16.5.0: {} dottie@2.0.6: {} @@ -9036,7 +8457,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.140: {} + electron-to-chromium@1.5.150: {} embla-carousel-react@8.6.0(react@19.1.0): dependencies: @@ -9069,87 +8490,19 @@ snapshots: entities@2.2.0: {} + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.9: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -9161,71 +8514,44 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.1.0: + esbuild-plugin-react18-css@0.0.4: dependencies: - hasown: 2.0.2 + autoprefixer: 10.4.21(postcss@8.5.3) + postcss: 8.5.3 + postcss-modules: 6.0.1(postcss@8.5.3) + sass: 1.87.0 - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 + esbuild-plugin-react18@0.2.6: {} - esbuild@0.24.2: + esbuild-raw-plugin@0.2.0: {} + + esbuild@0.25.4: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 - - esbuild@0.25.3: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.3 - '@esbuild/android-arm': 0.25.3 - '@esbuild/android-arm64': 0.25.3 - '@esbuild/android-x64': 0.25.3 - '@esbuild/darwin-arm64': 0.25.3 - '@esbuild/darwin-x64': 0.25.3 - '@esbuild/freebsd-arm64': 0.25.3 - '@esbuild/freebsd-x64': 0.25.3 - '@esbuild/linux-arm': 0.25.3 - '@esbuild/linux-arm64': 0.25.3 - '@esbuild/linux-ia32': 0.25.3 - '@esbuild/linux-loong64': 0.25.3 - '@esbuild/linux-mips64el': 0.25.3 - '@esbuild/linux-ppc64': 0.25.3 - '@esbuild/linux-riscv64': 0.25.3 - '@esbuild/linux-s390x': 0.25.3 - '@esbuild/linux-x64': 0.25.3 - '@esbuild/netbsd-arm64': 0.25.3 - '@esbuild/netbsd-x64': 0.25.3 - '@esbuild/openbsd-arm64': 0.25.3 - '@esbuild/openbsd-x64': 0.25.3 - '@esbuild/sunos-x64': 0.25.3 - '@esbuild/win32-arm64': 0.25.3 - '@esbuild/win32-ia32': 0.25.3 - '@esbuild/win32-x64': 0.25.3 + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 escalade@3.2.0: {} @@ -9245,111 +8571,8 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@10.1.2(eslint@9.25.1(jiti@2.4.2)): - dependencies: - eslint: 9.25.1(jiti@2.4.2) - - eslint-plugin-only-warn@1.1.0: {} - - eslint-plugin-react-hooks@5.2.0(eslint@9.25.1(jiti@2.4.2)): - dependencies: - eslint: 9.25.1(jiti@2.4.2) - - eslint-plugin-react@7.37.5(eslint@9.25.1(jiti@2.4.2)): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 9.25.1(jiti@2.4.2) - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-plugin-turbo@2.5.1(eslint@9.25.1(jiti@2.4.2))(turbo@2.5.1): - dependencies: - dotenv: 16.0.3 - eslint: 9.25.1(jiti@2.4.2) - turbo: 2.5.1 - - eslint-scope@8.3.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.0: {} - - eslint@9.25.1(jiti@2.4.2): - dependencies: - '@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.0 - '@eslint/config-helpers': 0.2.1 - '@eslint/core': 0.13.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.25.1 - '@eslint/plugin-kit': 0.2.8 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.7 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.4.2 - transitivePeerDependencies: - - supports-color - - espree@10.3.0: - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 - esprima@4.0.1: {} - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - estraverse@5.3.0: {} estree-walker@2.0.2: {} @@ -9424,18 +8647,8 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - fast-deep-equal@3.1.3: {} - fast-equals@5.2.2: {} - fast-glob@3.3.1: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9446,8 +8659,6 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-levenshtein@2.0.6: {} - fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -9466,10 +8677,6 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - file-stream-rotator@0.6.1: dependencies: moment: 2.30.1 @@ -9501,26 +8708,10 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@4.0.1: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - - flatted@3.3.3: {} - fn.name@1.1.0: {} follow-redirects@1.15.9: {} - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -9535,6 +8726,8 @@ snapshots: forwarded@0.2.0: {} + fraction.js@4.3.7: {} + fresh@0.5.2: {} fs-extra@10.1.0: @@ -9562,17 +8755,6 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - gauge@3.0.2: dependencies: aproba: 2.0.0 @@ -9589,6 +8771,10 @@ snapshots: dependencies: is-property: 1.0.2 + generic-names@4.0.0: + dependencies: + loader-utils: 3.3.1 + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -9617,12 +8803,6 @@ snapshots: get-stream@6.0.1: {} - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - get-tsconfig@4.10.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -9639,10 +8819,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - glob@10.4.5: dependencies: foreground-child: 3.3.1 @@ -9652,15 +8828,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.2: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.0 - minimatch: 10.0.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -9672,15 +8839,8 @@ snapshots: globals@11.12.0: {} - globals@14.0.0: {} - globals@16.0.0: {} - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - globby@10.0.2: dependencies: '@types/glob': 7.2.0 @@ -9692,6 +8852,8 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globrex@0.1.2: {} + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -9701,8 +8863,6 @@ snapshots: chalk: 4.1.2 tinygradient: 1.1.5 - graphemer@1.4.0: {} - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -9712,20 +8872,10 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - has-bigints@1.1.0: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -9806,7 +8956,7 @@ snapshots: dependencies: '@babel/runtime': 7.27.1 - i18next@25.0.2(typescript@5.8.3): + i18next@25.1.1(typescript@5.8.3): dependencies: '@babel/runtime': 7.27.1 optionalDependencies: @@ -9820,10 +8970,19 @@ snapshots: dependencies: safer-buffer: 2.1.2 + icss-utils@5.1.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + ieee754@1.2.1: {} ignore@5.3.2: {} + image-size@0.5.5: + optional: true + + immutable@5.1.2: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -9856,17 +9015,17 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - inquirer@12.5.2(@types/node@22.15.3): + inquirer@12.6.0(@types/node@22.15.12): dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/prompts': 7.4.1(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.12) + '@inquirer/prompts': 7.5.0(@types/node@22.15.12) + '@inquirer/type': 3.0.6(@types/node@22.15.12) ansi-escapes: 4.3.2 mute-stream: 2.0.0 run-async: 3.0.0 rxjs: 7.8.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 inquirer@7.3.3: dependencies: @@ -9902,12 +9061,6 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - internmap@2.0.3: {} ip-address@9.0.5: @@ -9917,71 +9070,24 @@ snapshots: ipaddr.js@1.9.1: {} - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - is-fullwidth-code-point@3.0.0: {} is-generator-fn@2.1.0: {} - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -9992,13 +9098,6 @@ snapshots: dependencies: lower-case: 1.1.4 - is-map@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-number@7.0.0: {} is-path-cwd@2.2.0: {} @@ -10007,54 +9106,15 @@ snapshots: is-property@1.0.2: {} - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - is-stream@2.0.1: {} - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - is-unicode-supported@0.1.0: {} is-upper-case@1.1.2: dependencies: upper-case: 1.1.3 - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - isarray@2.0.5: {} + is-what@3.14.1: {} isbinaryfile@4.0.10: {} @@ -10064,8 +9124,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/core': 7.27.1 + '@babel/parser': 7.27.1 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -10074,8 +9134,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/core': 7.27.1 + '@babel/parser': 7.27.1 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.1 @@ -10101,25 +9161,12 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.1.0: - dependencies: - '@isaacs/cliui': 8.0.2 - jake@10.9.2: dependencies: async: 3.2.6 @@ -10139,10 +9186,10 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.3(babel-plugin-macros@3.1.0) + dedent: 1.6.0(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -10159,16 +9206,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -10178,12 +9225,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.10) + babel-jest: 29.7.0(@babel/core@7.27.1) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -10203,8 +9250,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.3 - ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) + '@types/node': 22.15.12 + ts-node: 10.9.2(@types/node@22.15.12)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -10233,7 +9280,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -10243,7 +9290,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.3 + '@types/node': 22.15.12 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -10269,7 +9316,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -10282,7 +9329,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -10317,7 +9364,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -10345,7 +9392,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -10365,15 +9412,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 + '@babel/core': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) + '@babel/types': 7.27.1 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.1) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -10391,7 +9438,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -10410,7 +9457,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.3 + '@types/node': 22.15.12 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -10419,17 +9466,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): + jest@29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -10438,6 +9485,14 @@ snapshots: jiti@2.4.2: {} + joi@17.13.3: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + joycon@3.1.1: {} js-tokens@4.0.0: {} @@ -10455,14 +9510,8 @@ snapshots: jsesc@3.1.0: {} - json-buffer@3.0.1: {} - json-parse-even-better-errors@2.3.1: {} - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - json5@2.2.3: {} jsonfile@6.1.0: @@ -10484,13 +9533,6 @@ snapshots: ms: 2.1.3 semver: 7.7.1 - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - jwa@1.4.1: dependencies: buffer-equal-constant-time: 1.0.1 @@ -10502,20 +9544,25 @@ snapshots: jwa: 1.4.1 safe-buffer: 5.2.1 - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - kleur@3.0.3: {} kuler@2.0.0: {} - leven@3.1.0: {} - - levn@0.4.1: + less@4.3.0: dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.8.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + + leven@3.1.0: {} libphonenumber-js@1.12.7: {} @@ -10564,6 +9611,8 @@ snapshots: lightningcss-win32-arm64-msvc: 1.29.2 lightningcss-win32-x64-msvc: 1.29.2 + lilconfig@2.1.0: {} + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -10574,13 +9623,13 @@ snapshots: load-tsconfig@0.2.5: {} + loader-utils@3.3.1: {} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 + lodash.camelcase@4.3.0: {} lodash.get@4.4.2: {} @@ -10598,8 +9647,6 @@ snapshots: lodash.memoize@4.1.2: {} - lodash.merge@4.6.2: {} - lodash.once@4.1.1: {} lodash.sortby@4.7.0: {} @@ -10642,8 +9689,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.1.0: {} - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -10658,6 +9703,12 @@ snapshots: luxon@3.6.1: {} + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + optional: true + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -10699,10 +9750,6 @@ snapshots: mimic-fn@2.1.0: {} - minimatch@10.0.1: - dependencies: - brace-expansion: 2.0.1 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -10780,6 +9827,12 @@ snapshots: natural-compare@1.4.0: {} + needle@3.3.1: + dependencies: + iconv-lite: 0.6.3 + sax: 1.4.1 + optional: true + negotiator@0.6.3: {} neo-async@2.6.2: {} @@ -10802,6 +9855,9 @@ snapshots: node-addon-api@5.1.0: {} + node-addon-api@7.1.1: + optional: true + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -10835,6 +9891,8 @@ snapshots: normalize-path@3.0.0: {} + normalize-range@0.1.2: {} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -10856,38 +9914,6 @@ snapshots: object-inspect@1.13.4: {} - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -10906,15 +9932,6 @@ snapshots: dependencies: mimic-fn: 2.1.0 - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - ora@4.1.1: dependencies: chalk: 3.0.0 @@ -10940,12 +9957,6 @@ snapshots: os-tmpdir@1.0.2: {} - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -10958,10 +9969,6 @@ snapshots: dependencies: p-limit: 2.3.0 - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - p-map@3.0.0: dependencies: aggregate-error: 3.1.0 @@ -11005,11 +10012,13 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-node-version@1.0.1: {} + parseurl@1.3.3: {} pascal-case@2.0.1: @@ -11056,11 +10065,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-scurry@2.0.0: - dependencies: - lru-cache: 11.1.0 - minipass: 7.1.2 - path-to-regexp@0.1.12: {} path-type@4.0.0: {} @@ -11084,21 +10088,71 @@ snapshots: picomatch@4.0.2: {} + pify@4.0.1: + optional: true + pirates@4.0.7: {} pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - possible-typed-array-names@1.1.0: {} + postcss-load-config@3.1.4(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.5.3 + ts-node: 10.9.2(@types/node@22.15.12)(typescript@5.8.3) - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(yaml@2.7.1): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.4.2 postcss: 8.5.3 tsx: 4.19.4 + yaml: 2.7.1 + + postcss-modules-extract-imports@3.1.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + + postcss-modules-local-by-default@4.2.0(postcss@8.5.3): + dependencies: + icss-utils: 5.1.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + + postcss-modules-scope@3.2.1(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 + + postcss-modules-values@4.0.0(postcss@8.5.3): + dependencies: + icss-utils: 5.1.0(postcss@8.5.3) + postcss: 8.5.3 + + postcss-modules@6.0.1(postcss@8.5.3): + dependencies: + generic-names: 4.0.0 + icss-utils: 5.1.0(postcss@8.5.3) + lodash.camelcase: 4.3.0 + postcss: 8.5.3 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.3) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.3) + postcss-modules-scope: 3.2.1(postcss@8.5.3) + postcss-modules-values: 4.0.0(postcss@8.5.3) + string-hash: 1.1.3 + + postcss-selector-parser@7.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} postcss@8.5.3: dependencies: @@ -11106,8 +10160,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prelude-ls@1.2.1: {} - pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -11147,6 +10199,9 @@ snapshots: proxy-from-env@1.1.0: {} + prr@1.0.1: + optional: true + punycode@2.3.1: {} pure-rand@6.1.0: {} @@ -11192,11 +10247,11 @@ snapshots: dependencies: react: 19.1.0 - react-i18next@15.5.1(i18next@25.0.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3): + react-i18next@15.5.1(i18next@25.1.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3): dependencies: '@babel/runtime': 7.27.1 html-parse-stringify: 3.0.1 - i18next: 25.0.2(typescript@5.8.3) + i18next: 25.1.1(typescript@5.8.3) react: 19.1.0 optionalDependencies: react-dom: 19.1.0(react@19.1.0) @@ -11208,24 +10263,24 @@ snapshots: react-refresh@0.17.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.2)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.3)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.3)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 - react-remove-scroll@2.6.3(@types/react@19.1.2)(react@19.1.0): + react-remove-scroll@2.6.3(@types/react@19.1.3)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.2)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.3)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.3)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.2)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.2)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.3)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.3)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 react-resizable-panels@3.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: @@ -11261,13 +10316,13 @@ snapshots: react-dom: 19.1.0(react@19.1.0) react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-style-singleton@2.2.3(@types/react@19.1.2)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.3)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 react-transition-group@4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: @@ -11311,26 +10366,6 @@ snapshots: reflect-metadata@0.2.2: {} - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - registry-auth-token@3.3.2: dependencies: rc: 1.2.8 @@ -11344,6 +10379,8 @@ snapshots: require-directory@2.1.1: {} + reserved-words@0.1.2: {} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -11362,12 +10399,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - response-time@2.3.3: dependencies: depd: 2.0.0 @@ -11386,30 +10417,30 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.40.1: + rollup@4.40.2: dependencies: '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.40.1 - '@rollup/rollup-android-arm64': 4.40.1 - '@rollup/rollup-darwin-arm64': 4.40.1 - '@rollup/rollup-darwin-x64': 4.40.1 - '@rollup/rollup-freebsd-arm64': 4.40.1 - '@rollup/rollup-freebsd-x64': 4.40.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.40.1 - '@rollup/rollup-linux-arm-musleabihf': 4.40.1 - '@rollup/rollup-linux-arm64-gnu': 4.40.1 - '@rollup/rollup-linux-arm64-musl': 4.40.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.40.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.40.1 - '@rollup/rollup-linux-riscv64-gnu': 4.40.1 - '@rollup/rollup-linux-riscv64-musl': 4.40.1 - '@rollup/rollup-linux-s390x-gnu': 4.40.1 - '@rollup/rollup-linux-x64-gnu': 4.40.1 - '@rollup/rollup-linux-x64-musl': 4.40.1 - '@rollup/rollup-win32-arm64-msvc': 4.40.1 - '@rollup/rollup-win32-ia32-msvc': 4.40.1 - '@rollup/rollup-win32-x64-msvc': 4.40.1 + '@rollup/rollup-android-arm-eabi': 4.40.2 + '@rollup/rollup-android-arm64': 4.40.2 + '@rollup/rollup-darwin-arm64': 4.40.2 + '@rollup/rollup-darwin-x64': 4.40.2 + '@rollup/rollup-freebsd-arm64': 4.40.2 + '@rollup/rollup-freebsd-x64': 4.40.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.40.2 + '@rollup/rollup-linux-arm-musleabihf': 4.40.2 + '@rollup/rollup-linux-arm64-gnu': 4.40.2 + '@rollup/rollup-linux-arm64-musl': 4.40.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.40.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.40.2 + '@rollup/rollup-linux-riscv64-gnu': 4.40.2 + '@rollup/rollup-linux-riscv64-musl': 4.40.2 + '@rollup/rollup-linux-s390x-gnu': 4.40.2 + '@rollup/rollup-linux-x64-gnu': 4.40.2 + '@rollup/rollup-linux-x64-musl': 4.40.2 + '@rollup/rollup-win32-arm64-msvc': 4.40.2 + '@rollup/rollup-win32-ia32-msvc': 4.40.2 + '@rollup/rollup-win32-x64-msvc': 4.40.2 fsevents: 2.3.3 run-async@2.4.1: {} @@ -11428,33 +10459,30 @@ snapshots: dependencies: tslib: 2.8.1 - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} + sass@1.87.0: + dependencies: + chokidar: 4.0.3 + immutable: 5.1.2 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.1 + + sax@1.3.0: {} + + sax@1.4.1: + optional: true + scheduler@0.26.0: {} + semver@5.7.2: + optional: true + semver@6.3.1: {} semver@7.6.2: {} @@ -11522,28 +10550,6 @@ snapshots: set-blocking@2.0.0: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - setprototypeof@1.2.0: {} shallow-equal-object@1.1.1: {} @@ -11634,6 +10640,8 @@ snapshots: source-map@0.6.1: {} + source-map@0.7.4: {} + source-map@0.8.0-beta.0: dependencies: whatwg-url: 7.1.0 @@ -11652,6 +10660,8 @@ snapshots: statuses@2.0.1: {} + string-hash@1.1.3: {} + string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -11669,50 +10679,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -11737,6 +10703,16 @@ snapshots: stylis@4.2.0: {} + stylus@0.62.0: + dependencies: + '@adobe/css-tools': 4.3.3 + debug: 4.4.0 + glob: 7.2.3 + sax: 1.3.0 + source-map: 0.7.4 + transitivePeerDependencies: + - supports-color + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -11768,6 +10744,10 @@ snapshots: tailwind-merge@3.2.0: {} + tailwindcss-animate@1.0.7(tailwindcss@4.1.5): + dependencies: + tailwindcss: 4.1.5 + tailwindcss@4.1.5: {} tapable@2.2.1: {} @@ -11851,41 +10831,37 @@ snapshots: triple-beam@1.4.1: {} - ts-api-utils@2.1.0(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - ts-interface-checker@0.1.13: {} - ts-jest@29.3.2(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.3.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + jest: 29.7.0(@types/node@22.15.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.7.1 - type-fest: 4.40.0 + type-fest: 4.41.0 typescript: 5.8.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.10) - esbuild: 0.24.2 + babel-jest: 29.7.0(@babel/core@7.27.1) + esbuild: 0.25.4 - ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3): + ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.3 + '@types/node': 22.15.12 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -11896,6 +10872,10 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + tsconfck@3.1.5(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -11906,19 +10886,19 @@ snapshots: tslib@2.8.1: {} - tsup@8.4.0(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3): + tsup@8.4.0(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1): dependencies: - bundle-require: 5.1.0(esbuild@0.25.3) + bundle-require: 5.1.0(esbuild@0.25.4) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.0 - esbuild: 0.25.3 + esbuild: 0.25.4 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4) + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(yaml@2.7.1) resolve-from: 5.0.0 - rollup: 4.40.1 + rollup: 4.40.2 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -11935,119 +10915,88 @@ snapshots: tsx@4.19.4: dependencies: - esbuild: 0.25.3 + esbuild: 0.25.4 get-tsconfig: 4.10.0 optionalDependencies: fsevents: 2.3.3 - turbo-darwin-64@2.5.1: + turbo-darwin-64@2.5.2: optional: true - turbo-darwin-arm64@2.5.1: + turbo-darwin-arm64@2.5.2: optional: true - turbo-linux-64@2.5.1: + turbo-linux-64@2.5.2: optional: true - turbo-linux-arm64@2.5.1: + turbo-linux-arm64@2.5.2: optional: true - turbo-windows-64@2.5.1: + turbo-windows-64@2.5.2: optional: true - turbo-windows-arm64@2.5.1: + turbo-windows-arm64@2.5.2: optional: true - turbo@2.5.1: + turbo@2.5.2: optionalDependencies: - turbo-darwin-64: 2.5.1 - turbo-darwin-arm64: 2.5.1 - turbo-linux-64: 2.5.1 - turbo-linux-arm64: 2.5.1 - turbo-windows-64: 2.5.1 - turbo-windows-arm64: 2.5.1 + turbo-darwin-64: 2.5.2 + turbo-darwin-arm64: 2.5.2 + turbo-linux-64: 2.5.2 + turbo-linux-arm64: 2.5.2 + turbo-windows-64: 2.5.2 + turbo-windows-arm64: 2.5.2 tw-animate-css@1.2.9: {} - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - type-detect@4.0.8: {} type-fest@0.21.3: {} - type-fest@4.40.0: {} + type-fest@4.41.0: {} type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - typed-array-buffer@1.0.3: + typescript-plugin-css-modules@5.1.0(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3))(typescript@5.8.3): dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typescript-eslint@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.25.1(jiti@2.4.2) + '@types/postcss-modules-local-by-default': 4.0.2 + '@types/postcss-modules-scope': 3.0.4 + dotenv: 16.5.0 + icss-utils: 5.1.0(postcss@8.5.3) + less: 4.3.0 + lodash.camelcase: 4.3.0 + postcss: 8.5.3 + postcss-load-config: 3.1.4(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.12)(typescript@5.8.3)) + postcss-modules-extract-imports: 3.1.0(postcss@8.5.3) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.3) + postcss-modules-scope: 3.2.1(postcss@8.5.3) + reserved-words: 0.1.2 + sass: 1.87.0 + source-map-js: 1.2.1 + stylus: 0.62.0 + tsconfig-paths: 4.2.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color + - ts-node typescript@5.8.3: {} uglify-js@3.19.3: optional: true - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} universalify@2.0.1: {} unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.24.4): + update-browserslist-db@1.1.3(browserslist@4.24.5): dependencies: - browserslist: 4.24.4 + browserslist: 4.24.5 escalade: 3.2.0 picocolors: 1.1.1 @@ -12062,16 +11011,12 @@ snapshots: upper-case@1.1.3: {} - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - use-callback-ref@1.3.3(@types/react@19.1.2)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.3)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 use-deep-compare-effect@1.8.1(react@19.1.0): dependencies: @@ -12079,13 +11024,13 @@ snapshots: dequal: 2.0.3 react: 19.1.0 - use-sidecar@1.1.3(@types/react@19.1.2)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.3)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.2 + '@types/react': 19.1.3 use-sync-external-store@1.5.0(react@19.1.0): dependencies: @@ -12119,9 +11064,9 @@ snapshots: vary@1.1.2: {} - vaul@1.1.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + vaul@1.1.2(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-dialog': 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': 1.1.13(@types/react-dom@19.1.3(@types/react@19.1.3))(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -12145,7 +11090,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-plugin-html@3.2.2(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4)): + vite-plugin-html@3.2.2(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -12159,37 +11104,52 @@ snapshots: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) - vite-plugin-robots@1.0.5(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4)): + vite-plugin-robots@1.0.5(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)): dependencies: ansi-colors: 4.1.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) - vite-plugin-static-copy@2.3.1(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4)): + vite-plugin-static-copy@2.3.1(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)): dependencies: chokidar: 3.6.0 fast-glob: 3.3.3 fs-extra: 11.3.0 p-map: 7.0.3 picocolors: 1.1.1 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) - vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.4): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)): dependencies: - esbuild: 0.25.3 + debug: 4.4.0 + globrex: 0.1.2 + tsconfck: 3.1.5(typescript@5.8.3) + optionalDependencies: + vite: 6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) + transitivePeerDependencies: + - supports-color + - typescript + + vite@6.3.5(@types/node@22.15.12)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.87.0)(stylus@0.62.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1): + dependencies: + esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.3 - rollup: 4.40.1 + rollup: 4.40.2 tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.12 fsevents: 2.3.3 jiti: 2.4.2 + less: 4.3.0 lightningcss: 1.29.2 + sass: 1.87.0 + stylus: 0.62.0 terser: 5.39.0 tsx: 4.19.4 + yaml: 2.7.1 void-elements@3.1.0: {} @@ -12216,47 +11176,6 @@ snapshots: tr46: 1.0.1 webidl-conversions: 4.0.2 - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -12295,9 +11214,7 @@ snapshots: wkx@0.5.0: dependencies: - '@types/node': 22.15.3 - - word-wrap@1.2.5: {} + '@types/node': 22.15.12 wordwrap@1.0.0: {} @@ -12334,6 +11251,9 @@ snapshots: yaml@1.10.2: {} + yaml@2.7.1: + optional: true + yargs-parser@21.1.1: {} yargs@17.7.2: @@ -12352,4 +11272,4 @@ snapshots: yoctocolors-cjs@2.1.2: {} - zod@3.24.3: {} + zod@3.24.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 089d23bc..b0580448 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,10 +1,13 @@ packages: - apps/* - - '!modules/*' + - modules/* - packages/* onlyBuiltDependencies: - '@biomejs/biome' + - '@parcel/watcher' - bcrypt - core-js-pure + +ignoredBuiltDependencies: - esbuild diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..24e2a1ef --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@repo/typescript-config/root.json", + "include": ["apps", "modules", "packages"] +} diff --git a/turbo.json b/turbo.json index 940a7fbd..ffc77dcf 100644 --- a/turbo.json +++ b/turbo.json @@ -16,6 +16,9 @@ "dependsOn": ["^build"], "inputs": ["$TURBO_DEFAULT$", ".env*"], "outputs": ["dist/**"] + }, + "clean": { + "cache": false } } }