diff --git a/apps/core-rest-api/src/app/adapters/controllers/api/api.module.ts b/apps/core-rest-api/src/app/adapters/controllers/api/api.module.ts index dedf0c2..bc2463b 100644 --- a/apps/core-rest-api/src/app/adapters/controllers/api/api.module.ts +++ b/apps/core-rest-api/src/app/adapters/controllers/api/api.module.ts @@ -5,38 +5,46 @@ import { AuthModule } from '../../auth/auth.module'; import { CryptographyModule } from '../../cryptography/cryptography.module'; import { envSchema } from '../../env/env'; import { EnvModule } from '../../env/env.module'; -import { UpdatePsychologistController } from './use-cases/psychologist/update-psychologist/update-psychologist.controller'; +// import { UpdatePsychologistController } from './use-cases/psychologist/update-psychologist/update-psychologist.controller'; -import { BcryptHasherService } from '../../../core/shared/cryptography/use-cases/bcrypt-hasher.service'; -import { PostgreSqlPrismaOrmService } from '../../database/infra/prisma/prisma.service'; +// import { BcryptHasherService } from '../../../core/shared/cryptography/use-cases/bcrypt-hasher.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Appointment } from '../../database/infra/typeorm/entities/Appointment'; +import { Clinic } from '../../database/infra/typeorm/entities/Clinic'; +import { Patient } from '../../database/infra/typeorm/entities/Patient'; +import { PatientAppointmentRegistry } from '../../database/infra/typeorm/entities/PatientAppointmentRegistry'; +import { Psychologist } from '../../database/infra/typeorm/entities/psychologist.entitie'; +import { PostgresTypeOrmRepository } from '../../database/repositories/psychologist/teste'; import { DatabaseRepositoriesModule } from '../../database/repositories/repositories.module'; +import { TestetController } from './use-cases/teste-controller'; -import { CreateClinicController } from './use-cases/clinic/create-clinic/create-clinic.controller'; -import { DeleteClinicController } from './use-cases/clinic/delete-clinic/delete-clinic.controller'; -import { UpdateClinicController } from './use-cases/clinic/update-clinic/update-clinic.controller'; -import { CreatePatientController } from './use-cases/patient/create-patient/create-patient.controller'; -import { DeletePatientController } from './use-cases/patient/delete-patient/delete-patient.controller'; -import { AuthenticatePsychologistController } from './use-cases/psychologist/authenticate-psychologist/authenticate-psychologist.controller'; -import { CreatePsychologistController } from './use-cases/psychologist/create-psychologist/create-psychologist.controller'; -import { DeletePsychologistController } from './use-cases/psychologist/delete-psychologist/delete-psychologist.controller'; +// import { CreateClinicController } from './use-cases/clinic/create-clinic/create-clinic.controller'; +// import { DeleteClinicController } from './use-cases/clinic/delete-clinic/delete-clinic.controller'; +// import { UpdateClinicController } from './use-cases/clinic/update-clinic/update-clinic.controller'; +// import { CreatePatientController } from './use-cases/patient/create-patient/create-patient.controller'; +// import { DeletePatientController } from './use-cases/patient/delete-patient/delete-patient.controller'; +// import { AuthenticatePsychologistController } from './use-cases/psychologist/authenticate-psychologist/authenticate-psychologist.controller'; +// import { CreatePsychologistController } from './use-cases/psychologist/create-psychologist/create-psychologist.controller'; +// import { DeletePsychologistController } from './use-cases/psychologist/delete-psychologist/delete-psychologist.controller'; -import { CreateAppointmentController } from './use-cases/appointment/create-appointment/create-appointment.controller'; -import { NestjsCreateAppointmentService } from './use-cases/appointment/create-appointment/nestjs-create-appointment.service'; -import { NestjsCreateClinicService } from './use-cases/clinic/create-clinic/nestjs-create-clinic.service'; -import { NestjsDeleteClinicService } from './use-cases/clinic/delete-clinic/nestjs-delete-clinic.service'; -import { NestjsUpdateClinicService } from './use-cases/clinic/update-clinic/nestjs-update-clinic.service'; -import { CreatePatientAppointmentRegistryController } from './use-cases/patient-appointment-registry/create-patient-appointment-registry/create-patient-appointment-registry.controller'; -import { NestjsCreatePatientAppointmentRegistryService } from './use-cases/patient-appointment-registry/create-patient-appointment-registry/nestjs-create-patient-appointment-registry.service'; -import { DeletePatientAppointmentRegistryController } from './use-cases/patient-appointment-registry/delete-patient-appointment-registry/delete-patient-appointment-registry.controller'; -import { NestjsDeletePatientAppointmentRegistryService } from './use-cases/patient-appointment-registry/delete-patient-appointment-registry/nestjs-delete-patient-appointment-registry.service'; -import { NestjsUpdatePatientAppointmentRegistryService } from './use-cases/patient-appointment-registry/update-patient-appointment-registry/nestjs-update-patient-appointment-registry.service'; -import { UpdatePatientAppointmentRegistryController } from './use-cases/patient-appointment-registry/update-patient-appointment-registry/update-patient-appointment-registry.controller'; -import { NestjsCreatePatientService } from './use-cases/patient/create-patient/nestjs-create-patient.service'; -import { NestjsDeletePatientService } from './use-cases/patient/delete-patient/nestjs-delete-patient.service'; -import { NestjsAuthenticatePsychologistService } from './use-cases/psychologist/authenticate-psychologist/nestjs-authenticate-psychologist.service'; -import { NestjsCreatePsychologistService } from './use-cases/psychologist/create-psychologist/nestjs-create-psychologist.service'; -import { NestjsDeletePsychologistService } from './use-cases/psychologist/delete-psychologist/nestjs-delete-psychologist.service'; -import { NestjsUpdatePsychologistService } from './use-cases/psychologist/update-psychologist/nestjs-update-psychologist.service'; +// import { typeOrmService } from '../../database/infra/typeorm/typeorm.service'; +// import { CreateAppointmentController } from './use-cases/appointment/create-appointment/create-appointment.controller'; +// import { NestjsCreateAppointmentService } from './use-cases/appointment/create-appointment/nestjs-create-appointment.service'; +// import { NestjsCreateClinicService } from './use-cases/clinic/create-clinic/nestjs-create-clinic.service'; +// import { NestjsDeleteClinicService } from './use-cases/clinic/delete-clinic/nestjs-delete-clinic.service'; +// import { NestjsUpdateClinicService } from './use-cases/clinic/update-clinic/nestjs-update-clinic.service'; +// import { CreatePatientAppointmentRegistryController } from './use-cases/patient-appointment-registry/create-patient-appointment-registry/create-patient-appointment-registry.controller'; +// import { NestjsCreatePatientAppointmentRegistryService } from './use-cases/patient-appointment-registry/create-patient-appointment-registry/nestjs-create-patient-appointment-registry.service'; +// import { DeletePatientAppointmentRegistryController } from './use-cases/patient-appointment-registry/delete-patient-appointment-registry/delete-patient-appointment-registry.controller'; +// import { NestjsDeletePatientAppointmentRegistryService } from './use-cases/patient-appointment-registry/delete-patient-appointment-registry/nestjs-delete-patient-appointment-registry.service'; +// import { NestjsUpdatePatientAppointmentRegistryService } from './use-cases/patient-appointment-registry/update-patient-appointment-registry/nestjs-update-patient-appointment-registry.service'; +// import { UpdatePatientAppointmentRegistryController } from './use-cases/patient-appointment-registry/update-patient-appointment-registry/update-patient-appointment-registry.controller'; +// import { NestjsCreatePatientService } from './use-cases/patient/create-patient/nestjs-create-patient.service'; +// import { NestjsDeletePatientService } from './use-cases/patient/delete-patient/nestjs-delete-patient.service'; +// import { NestjsAuthenticatePsychologistService } from './use-cases/psychologist/authenticate-psychologist/nestjs-authenticate-psychologist.service'; +// import { NestjsCreatePsychologistService } from './use-cases/psychologist/create-psychologist/nestjs-create-psychologist.service'; +// import { NestjsDeletePsychologistService } from './use-cases/psychologist/delete-psychologist/nestjs-delete-psychologist.service'; +// import { NestjsUpdatePsychologistService } from './use-cases/psychologist/update-psychologist/nestjs-update-psychologist.service'; @Module({ imports: [ @@ -44,42 +52,64 @@ import { NestjsUpdatePsychologistService } from './use-cases/psychologist/update validate: (env) => envSchema.parse(env), isGlobal: true, }), + TypeOrmModule.forFeature([ + Psychologist, + Appointment, + Clinic, + Patient, + PatientAppointmentRegistry, + ]), + TypeOrmModule.forRoot({ + type: 'postgres', + host: 'localhost', + port: 5432, + username: 'cliniccontrol', + password: 'cliniccontrolpassword', + database: 'core-rest-api', + entities: [__dirname + '../../database/infra/typeorm/entities/*.{js,ts}'], + synchronize: false, + autoLoadEntities: true, + }), DatabaseRepositoriesModule, EnvModule, AuthModule, CryptographyModule, ], controllers: [ - AuthenticatePsychologistController, - CreatePsychologistController, - UpdatePsychologistController, - DeletePsychologistController, - CreateClinicController, - UpdateClinicController, - DeleteClinicController, - CreatePatientController, - DeletePatientController, - CreatePatientAppointmentRegistryController, - CreateAppointmentController, - DeletePatientAppointmentRegistryController, - UpdatePatientAppointmentRegistryController + TestetController, + // UpdatePsychologistController, + // AuthenticatePsychologistController, + // CreatePsychologistController, + // UpdatePsychologistController, + // DeletePsychologistController, + // CreateClinicController, + // UpdateClinicController, + // DeleteClinicController, + // CreatePatientController, + // DeletePatientController, + // CreatePatientAppointmentRegistryController, + // CreateAppointmentController, + // DeletePatientAppointmentRegistryController, + // UpdatePatientAppointmentRegistryController, ], providers: [ - BcryptHasherService, - PostgreSqlPrismaOrmService, - NestjsAuthenticatePsychologistService, - NestjsCreatePsychologistService, - NestjsUpdatePsychologistService, - NestjsDeletePsychologistService, - NestjsCreateClinicService, - NestjsUpdateClinicService, - NestjsDeleteClinicService, - NestjsCreatePatientService, - NestjsDeletePatientService, - NestjsCreatePatientAppointmentRegistryService, - NestjsCreateAppointmentService, - NestjsDeletePatientAppointmentRegistryService, - NestjsUpdatePatientAppointmentRegistryService + PostgresTypeOrmRepository, + // BcryptHasherService, + // // PostgreSqlPrismaOrmService, + // NestjsAuthenticatePsychologistService, + // NestjsCreatePsychologistService, + // NestjsUpdatePsychologistService, + // NestjsDeletePsychologistService, + // NestjsCreateClinicService, + // NestjsUpdateClinicService, + // NestjsDeleteClinicService, + // NestjsCreatePatientService, + // NestjsDeletePatientService, + // NestjsCreatePatientAppointmentRegistryService, + // NestjsCreateAppointmentService, + // NestjsDeletePatientAppointmentRegistryService, + // NestjsUpdatePatientAppointmentRegistryService, ], + exports: [], }) export class ApiModule {} diff --git a/apps/core-rest-api/src/app/adapters/controllers/api/use-cases/teste-controller.ts b/apps/core-rest-api/src/app/adapters/controllers/api/use-cases/teste-controller.ts new file mode 100644 index 0000000..d172c19 --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/controllers/api/use-cases/teste-controller.ts @@ -0,0 +1,27 @@ +import { Controller, Get } from '@nestjs/common'; +import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'; +import { Public } from '../../../auth/public'; + +import { GlobalAppHttpException } from '../../../../shared/errors/globalAppHttpException'; +import { PostgresTypeOrmRepository } from '../../../database/repositories/psychologist/teste'; + +@ApiTags('teste') +@ApiBearerAuth() +@Controller({ + path: 'teste', +}) +export class TestetController { + constructor(private postgresTypeOrmRepository: PostgresTypeOrmRepository) {} + + @Get() + @Public() + async execute() { + try { + const teste = await this.postgresTypeOrmRepository.getDataSource(); + return teste; + } catch (error: unknown) { + console.log(error); + throw new GlobalAppHttpException(error); + } + } +} diff --git a/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Appointment.ts b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Appointment.ts new file mode 100644 index 0000000..b5d1757 --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Appointment.ts @@ -0,0 +1,79 @@ +import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm'; +import { PaymentMethod } from '../../../../../core/shared/interfaces/payments'; +import { Clinic } from './Clinic'; +import { Patient } from './Patient'; +import { Psychologist } from './psychologist.entitie'; + +@Index('appointment_pkey', ['id'], { unique: true }) +@Entity('appointment', { schema: 'public' }) +export class Appointment { + @Column('text', { primary: true, name: 'id' }) + id!: string; + + @Column('timestamp with time zone', { name: 'date' }) + date!: Date; + + @Column('boolean', { name: 'online', default: () => 'false' }) + online!: boolean; + + @Column('boolean', { name: 'confirmed', default: () => 'false' }) + confirmed!: boolean; + + @Column('timestamp with time zone', { name: 'confirmation_date', nullable: true }) + confirmationDate!: Date | null; + + @Column('boolean', { name: 'cancelled', default: () => 'false' }) + cancelled!: boolean; + + @Column('timestamp with time zone', { name: 'cancellation_date', nullable: true }) + cancellationDate!: Date | null; + + @Column('boolean', { name: 'done', default: () => 'false' }) + done!: boolean; + + @Column('boolean', { name: 'missed', nullable: true }) + missed!: boolean | null; + + @Column('boolean', { name: 'paid', nullable: true, default: () => 'false' }) + paid!: boolean | null; + + @Column('enum', { + name: 'payment_method', + enum: PaymentMethod, + default: () => PaymentMethod.HEALTH_INSURANCE, + }) + paymentMethod!: PaymentMethod; + + @Column('timestamp with time zone', { + name: 'created_at', + default: () => 'CURRENT_TIMESTAMP', + }) + createdAt!: Date; + + @Column('timestamp with time zone', { + name: 'updated_at', + default: () => 'CURRENT_TIMESTAMP', + }) + updatedAt!: Date; + + @ManyToOne(() => Clinic, (clinic) => clinic.appointments, { + onDelete: 'RESTRICT', + onUpdate: 'CASCADE', + }) + @JoinColumn([{ name: 'clinic_id', referencedColumnName: 'id' }]) + clinic!: Clinic; + + @ManyToOne(() => Patient, (patient) => patient.appointments, { + onDelete: 'RESTRICT', + onUpdate: 'CASCADE', + }) + @JoinColumn([{ name: 'patient_id', referencedColumnName: 'id' }]) + patient!: Patient; + + @ManyToOne(() => Psychologist, (psychologist) => psychologist.appointments, { + onDelete: 'RESTRICT', + onUpdate: 'CASCADE', + }) + @JoinColumn([{ name: 'psychologist_id', referencedColumnName: 'id' }]) + psychologist!: Psychologist; +} diff --git a/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Clinic.ts b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Clinic.ts new file mode 100644 index 0000000..fa3b4f0 --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Clinic.ts @@ -0,0 +1,48 @@ +import { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany } from 'typeorm'; +import { Appointment } from './Appointment'; +import { Patient } from './Patient'; +import { Psychologist } from './psychologist.entitie'; + +@Index('clinic_pkey', ['id'], { unique: true }) +@Entity('clinic', { schema: 'public' }) +export class Clinic { + @Column('text', { primary: true, name: 'id' }) + id!: string; + + @Column('text', { name: 'name' }) + name!: string; + + @Column('text', { name: 'address', nullable: true }) + address!: string | null; + + @Column('text', { name: 'city' }) + city!: string; + + @Column('text', { name: 'state' }) + state!: string; + + @Column('timestamp with time zone', { + name: 'created_at', + default: () => 'CURRENT_TIMESTAMP', + }) + createdAt!: Date; + + @Column('timestamp with time zone', { + name: 'updated_at', + default: () => 'CURRENT_TIMESTAMP', + }) + updatedAt!: Date; + + @OneToMany(() => Appointment, (appointment) => appointment.clinic) + appointments!: Appointment[]; + + @ManyToOne(() => Psychologist, (psychologist) => psychologist.clinics, { + onDelete: 'CASCADE', + onUpdate: 'CASCADE', + }) + @JoinColumn([{ name: 'psychologist_id', referencedColumnName: 'id' }]) + psychologist!: Psychologist; + + @OneToMany(() => Patient, (patient) => patient.clinic) + patients!: Patient[]; +} diff --git a/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Patient.ts b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Patient.ts new file mode 100644 index 0000000..ae7d60c --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/Patient.ts @@ -0,0 +1,75 @@ +import { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany } from 'typeorm'; +import { PaymentMethod } from '../../../../../core/shared/interfaces/payments'; +import { Appointment } from './Appointment'; +import { Clinic } from './Clinic'; +import { PatientAppointmentRegistry } from './PatientAppointmentRegistry'; +import { Psychologist } from './psychologist.entitie'; + +@Index('patient_cpf_key', ['cpf'], { unique: true }) +@Index('patient_email_key', ['email'], { unique: true }) +@Index('patient_pkey', ['id'], { unique: true }) +@Entity('patient', { schema: 'public' }) +export class Patient { + @Column('text', { primary: true, name: 'id' }) + id!: string; + + @Column('text', { name: 'name' }) + name!: string; + + @Column('text', { name: 'email' }) + email!: string; + + @Column('text', { name: 'cpf' }) + cpf!: string; + + @Column('text', { name: 'telephone' }) + telephone!: string; + + @Column('enum', { + name: 'payment_method', + enum: PaymentMethod, + default: () => PaymentMethod.HEALTH_INSURANCE, + }) + paymentMethod!: + | 'CREDIT_CARD' + | 'DEBIT_CARD' + | 'PIX' + | 'MONEY' + | 'HEALTH_INSURANCE' + | 'OTHER'; + + @Column('timestamp with time zone', { + name: 'created_at', + default: () => 'CURRENT_TIMESTAMP', + }) + createdAt!: Date; + + @Column('timestamp with time zone', { + name: 'updated_at', + default: () => 'CURRENT_TIMESTAMP', + }) + updatedAt!: Date; + + @OneToMany(() => Appointment, (appointment) => appointment.patient) + appointments!: Appointment[]; + + @ManyToOne(() => Clinic, (clinic) => clinic.patients, { + onDelete: 'CASCADE', + onUpdate: 'CASCADE', + }) + @JoinColumn([{ name: 'clinic_id', referencedColumnName: 'id' }]) + clinic!: Clinic; + + @ManyToOne(() => Psychologist, (psychologist) => psychologist.patients, { + onDelete: 'CASCADE', + onUpdate: 'CASCADE', + }) + @JoinColumn([{ name: 'psychologist_id', referencedColumnName: 'id' }]) + psychologist!: Psychologist; + + @OneToMany( + () => PatientAppointmentRegistry, + (patientAppointmentRegistry) => patientAppointmentRegistry.patient, + ) + patientAppointmentRegistries!: PatientAppointmentRegistry[]; +} diff --git a/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/PatientAppointmentRegistry.ts b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/PatientAppointmentRegistry.ts new file mode 100644 index 0000000..d52fc8b --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/PatientAppointmentRegistry.ts @@ -0,0 +1,40 @@ +import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm'; +import { Patient } from './Patient'; +import { Psychologist } from './psychologist.entitie'; + +@Index('patient_appointment_registry_pkey', ['id'], { unique: true }) +@Entity('patient_appointment_registry', { schema: 'public' }) +export class PatientAppointmentRegistry { + @Column('text', { primary: true, name: 'id' }) + id!: string; + + @Column('timestamp with time zone', { + name: 'updated_at', + default: () => 'CURRENT_TIMESTAMP', + }) + updatedAt!: Date; + + @Column('timestamp with time zone', { + name: 'created_at', + default: () => 'CURRENT_TIMESTAMP', + }) + createdAt!: Date; + + @Column('json', { name: 'registry' }) + registry!: object; + + @ManyToOne(() => Patient, (patient) => patient.patientAppointmentRegistries, { + onDelete: 'CASCADE', + onUpdate: 'CASCADE', + }) + @JoinColumn([{ name: 'patient_id', referencedColumnName: 'id' }]) + patient!: Patient; + + @ManyToOne( + () => Psychologist, + (psychologist) => psychologist.patientAppointmentRegistries, + { onDelete: 'CASCADE', onUpdate: 'CASCADE' }, + ) + @JoinColumn([{ name: 'psychologist_id', referencedColumnName: 'id' }]) + psychologist!: Psychologist; +} diff --git a/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/psychologist.entitie.ts b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/psychologist.entitie.ts new file mode 100644 index 0000000..5804cf3 --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/entities/psychologist.entitie.ts @@ -0,0 +1,69 @@ +import { Column, Entity, Index, OneToMany } from 'typeorm'; +import { Plan, Role } from '../../../../../core/shared/interfaces/payments'; +import { Appointment } from './Appointment'; +import { Clinic } from './Clinic'; +import { Patient } from './Patient'; +import { PatientAppointmentRegistry } from './PatientAppointmentRegistry'; + +@Index('psychologist_email_key', ['email'], { unique: true }) +@Index('psychologist_pkey', ['id'], { unique: true }) +@Entity('psychologist', { schema: 'public' }) +export class Psychologist { + @Column('text', { primary: true, name: 'id' }) + id!: string; + + @Column('text', { name: 'name' }) + name!: string; + + @Column('text', { name: 'email' }) + email!: string; + + @Column('text', { name: 'password' }) + password!: string; + + @Column('enum', { + name: 'role', + enum: Role, + default: () => Role, + }) + role!: 'ADMIN' | 'PSYCHOLOGIST' | 'PATIENT'; + + @Column('integer', { name: 'price', nullable: true, default: () => '0' }) + price!: number | null; + + @Column('enum', { name: 'plan', enum: Plan, default: () => Plan }) + plan!: 'FREE' | 'BASIC' | 'PREMIUM'; + + @Column('integer', { name: 'total_year_earnings', nullable: true, default: () => '0' }) + totalYearEarnings!: number | null; + + @Column('integer', { name: 'total_month_earnings', nullable: true, default: () => '0' }) + totalMonthEarnings!: number | null; + + @Column('timestamp with time zone', { + name: 'created_at', + default: () => 'CURRENT_TIMESTAMP', + }) + createdAt!: Date; + + @Column('timestamp with time zone', { + name: 'updated_at', + default: () => 'CURRENT_TIMESTAMP', + }) + updatedAt!: Date; + + @OneToMany(() => Appointment, (appointment) => appointment.psychologist) + appointments!: Appointment[]; + + @OneToMany(() => Clinic, (clinic) => clinic.psychologist) + clinics!: Clinic[]; + + @OneToMany(() => Patient, (patient) => patient.psychologist) + patients!: Patient[]; + + @OneToMany( + () => PatientAppointmentRegistry, + (patientAppointmentRegistry) => patientAppointmentRegistry.psychologist, + ) + patientAppointmentRegistries!: PatientAppointmentRegistry[]; +} diff --git a/apps/core-rest-api/src/app/adapters/database/infra/typeorm/typeorm.service.ts b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/typeorm.service.ts new file mode 100644 index 0000000..f6a84e0 --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/database/infra/typeorm/typeorm.service.ts @@ -0,0 +1,21 @@ +import { DataSource } from 'typeorm'; + +export const typeOrmService = [ + { + provide: 'DATA_SOURCE', + useFactory: async () => { + const dataSource = new DataSource({ + type: 'postgres', + host: 'localhost', + port: 3306, + username: 'root', + password: 'root', + database: 'test', + entities: [__dirname + '/../**/*.entity{.ts,.js}'], + synchronize: true, + }); + + return dataSource.initialize(); + }, + }, +]; diff --git a/apps/core-rest-api/src/app/adapters/database/mappers/postgres-prisma-registry-mapper.ts b/apps/core-rest-api/src/app/adapters/database/mappers/postgres-prisma-registry-mapper.ts deleted file mode 100644 index c4920c0..0000000 --- a/apps/core-rest-api/src/app/adapters/database/mappers/postgres-prisma-registry-mapper.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { - Prisma, - PatientAppointmentRegistry as PrismaPatientAppointmentRegistryDto, -} from '@prisma/client'; -import { Registry } from '../../../core/domains/patient-appointment-registry/entities/registry/dto'; -import { PatientAppointmentRegistryEntity } from '../../../core/domains/patient-appointment-registry/entities/registry/entity'; -import { CreatePatientAppointmentRegistryDto } from '../../../core/domains/patient-appointment-registry/use-cases/create-appointment-registry/create-appointment-registry-dto'; -import { UpdatePatientAppointmentRegistryDto } from '../../../core/domains/patient-appointment-registry/use-cases/update-appointment-registry/update-appointment-registry-dto'; - -export class PostgresqlPrismaPatientAppointmentRegistryMapper { - static toDomain( - raw: PrismaPatientAppointmentRegistryDto, - ): PatientAppointmentRegistryEntity { - return new PatientAppointmentRegistryEntity({ - ...raw, - registry: raw.registry as unknown as Registry, - }); - } - - static toDomainMany( - raw: PrismaPatientAppointmentRegistryDto[], - ): PatientAppointmentRegistryEntity[] { - return raw.map((patientAppointmentRegistry) => - this.toDomain(patientAppointmentRegistry), - ); - } - - static toPrismaCreate( - raw: CreatePatientAppointmentRegistryDto, - ): Prisma.PatientAppointmentRegistryCreateArgs { - return { - data: { - ...raw, - registry: raw.registry as object, - }, - }; - } - - static toPrismaUpdate( - raw: UpdatePatientAppointmentRegistryDto, - ): Prisma.PatientAppointmentRegistryUpdateArgs { - return { - data: { - ...raw, - registry: raw.registry as object, - }, - where: { - id: raw.id, - }, - }; - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-appointment-mapper.ts b/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-appointment-mapper.ts deleted file mode 100644 index 95f6f73..0000000 --- a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-appointment-mapper.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { - Prisma, - Appointment as PrismaAppointmentDto, - PaymentMethod as PrismaPaymentMethod, -} from '@prisma/client'; - -import { AppointmentEntity } from '../../../core/domains/appointment/entities/appointment/entity'; -import { CreateSingleAppointmentDto } from '../../../core/domains/appointment/use-cases/create-single-appointment/create-single-appointment-dto'; -import { UpdateAppointmentInfoDto } from '../../../core/domains/appointment/use-cases/update-appointment-info/update-appointment-info-dto'; -import { PaymentMethod } from '../../../core/shared/interfaces/payments'; - -export class PostgresqlPrismaAppointmentMapper { - static toDomain(raw: PrismaAppointmentDto): AppointmentEntity { - return new AppointmentEntity({ - ...raw, - paymentMethod: raw.paymentMethod as unknown as PaymentMethod, - }); - } - - static toPrismaCreate(raw: CreateSingleAppointmentDto): Prisma.AppointmentCreateArgs { - return { - data: { - ...raw, - paymentMethod: raw.paymentMethod as unknown as PrismaPaymentMethod, - date: new Date(raw.date), - }, - }; - } - - static toPrismaUpdate(raw: UpdateAppointmentInfoDto): Prisma.AppointmentUpdateArgs { - return { - data: { - ...raw, - done: raw.done as boolean, - }, - where: { - id: raw.id, - }, - }; - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-clinic-mapper.ts b/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-clinic-mapper.ts deleted file mode 100644 index 112d5d2..0000000 --- a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-clinic-mapper.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { - Prisma, - Clinic as PrismaClinicDto, -} from '@prisma/client'; -import { ClinicEntity } from '../../../core/domains/clinic/entities/clinic/entity'; -import { CreateClinicDto } from '../../../core/domains/clinic/use-cases/create-clinic/create-clinic-dto'; -import { UpdateClinicDto } from '../../../core/domains/clinic/use-cases/update-clinic/update-clinic-dto'; - -export class PostgresqlPrismaClinicMapper { - static toDomain(raw: PrismaClinicDto): ClinicEntity { - return new ClinicEntity({ - ...raw, - }); - } - - static toDomainMany(raw: PrismaClinicDto[]): ClinicEntity[] { - return raw.map((clinic) => this.toDomain(clinic)); - } - - static toPrismaCreate(raw: CreateClinicDto): Prisma.ClinicCreateArgs { - - return { - data: { - ...raw, - city: raw.city, - name: raw.name, - state: raw.state, - } - }; - } - - static toPrismaUpdate(raw: UpdateClinicDto): Prisma.ClinicUpdateArgs { - return { - data: { - ...raw, - }, - where: { - id: raw.id, - }, - }; - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-patient-mapper.ts b/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-patient-mapper.ts deleted file mode 100644 index 77e95d0..0000000 --- a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-patient-mapper.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { - Prisma, - Patient as PrismaPatientDto, - PaymentMethod as PrismaPaymentMethod, -} from '@prisma/client'; - -import { PatientEntity } from '../../../core/domains/patient/entities/patient/entity'; -import { CreatePatientDto } from '../../../core/domains/patient/use-cases/create-patient/create-patient-dto'; -import { UpdatePatientDto } from '../../../core/domains/patient/use-cases/update-patient/update-patient-dto'; -import { PaymentMethod } from '../../../core/shared/interfaces/payments'; - -export class PostgresqlPrismaPatientMapper { - static toDomain(raw: PrismaPatientDto): PatientEntity { - return new PatientEntity({ - ...raw, - paymentMethod: raw.paymentMethod as unknown as PaymentMethod, - }); - } - - static toPrismaCreate(raw: CreatePatientDto): Prisma.PatientCreateArgs { - return { - data: { - ...raw, - paymentMethod: raw.paymentMethod as unknown as PrismaPaymentMethod, - }, - }; - } - - static toPrismaUpdate(raw: UpdatePatientDto): Prisma.PatientUpdateArgs { - return { - data: { - ...raw, - paymentMethod: raw.paymentMethod as unknown as PrismaPaymentMethod, - }, - where: { - id: raw.id, - }, - }; - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-psychologist-mapper.ts b/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-psychologist-mapper.ts deleted file mode 100644 index 10acd96..0000000 --- a/apps/core-rest-api/src/app/adapters/database/mappers/postgresql-prisma-psychologist-mapper.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - Prisma, - Plan as PrismaPlan, - Psychologist as PrismaPsychologistDto, - Role as PrismaRole, -} from '@prisma/client'; -import { PsychologistEntity } from '../../../core/domains/psychologist/entities/psychologist/entity'; -import { CreatePsychologistDto } from '../../../core/domains/psychologist/use-cases/create-psychologist/create-psychologist-dto'; -import { UpdatePsychologistDto } from '../../../core/domains/psychologist/use-cases/update-psychologist/update-psychologist-dto'; -import { Plan, Role } from '../../../core/shared/interfaces/payments'; - -export class PostgresqlPrismaPsychologistMapper { - static toDomain(raw: PrismaPsychologistDto): PsychologistEntity { - return new PsychologistEntity({ - ...raw, - role: raw.role as unknown as Role, - plan: raw.plan as unknown as Plan, - }); - } - - static toDomainMany(raw: PrismaPsychologistDto[]): PsychologistEntity[] { - return raw.map((psychologist) => this.toDomain(psychologist)); - } - - static toPrismaCreate(raw: CreatePsychologistDto): Prisma.PsychologistCreateArgs { - raw.role as unknown as PrismaRole; - - return { - data: { - ...raw, - role: raw.role as unknown as PrismaRole, - plan: raw.plan as unknown as PrismaPlan, - }, - }; - } - - static toPrismaUpdate(raw: UpdatePsychologistDto): Prisma.PsychologistUpdateArgs { - return { - data: { - ...raw, - role: raw.role as unknown as PrismaRole, - plan: raw.plan as unknown as PrismaPlan, - }, - where: { - id: raw.id, - }, - }; - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/repositories/appointment/postgres-prisma-orm-appointment-repository.ts b/apps/core-rest-api/src/app/adapters/database/repositories/appointment/postgres-prisma-orm-appointment-repository.ts deleted file mode 100644 index 201770f..0000000 --- a/apps/core-rest-api/src/app/adapters/database/repositories/appointment/postgres-prisma-orm-appointment-repository.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { ConflictException, Injectable } from '@nestjs/common'; -import { AppointmentEntity } from '../../../../core/domains/appointment/entities/appointment/entity'; -import { AppointmentDatabaseRepository } from '../../../../core/domains/appointment/repositories/database-repository'; -import { CreateSingleAppointmentDto } from '../../../../core/domains/appointment/use-cases/create-single-appointment/create-single-appointment-dto'; -import { UpdatedAppointmentDateDto } from '../../../../core/domains/appointment/use-cases/update-appointment-date/update-appointment-date-dto'; -import { UpdateAppointmentInfoDto } from '../../../../core/domains/appointment/use-cases/update-appointment-info/update-appointment-info-dto'; -import { APPOINTMENT_ERROR_MESSAGES } from '../../../../shared/errors/error-messages'; -import { PostgreSqlPrismaOrmService } from "../../infra/prisma/prisma.service"; -import { PostgresqlPrismaAppointmentMapper } from '../../mappers/postgresql-prisma-appointment-mapper'; - -@Injectable() -export class PostgresqlPrismaOrmAppointmentRepository implements AppointmentDatabaseRepository { - constructor(private postgresqlPrismaOrmService: PostgreSqlPrismaOrmService) {} - - async findSingleAppointmentById(appointmentId: string): Promise { - const appointment = await this.postgresqlPrismaOrmService['appointment'].findUnique({where: { - id: appointmentId - }}) - if (!appointment) { - return null; - } - - return PostgresqlPrismaAppointmentMapper.toDomain(appointment); - } - - async findSingleAppointmentByDate(appointmentDate: Date): Promise { - const appointment = await this.postgresqlPrismaOrmService['appointment'].findFirst({ - where: { - date: appointmentDate, - } - }) - - if (!appointment) { - return null; - } - - return PostgresqlPrismaAppointmentMapper.toDomain(appointment); - } - - async createSingleAppointment(appointment: CreateSingleAppointmentDto): Promise { - const isAppointmentExists = await this.findSingleAppointmentByDate(new Date(appointment.date)); - - if (isAppointmentExists) { - throw new ConflictException(APPOINTMENT_ERROR_MESSAGES['CONFLICTING_DATE_TIME']); - } - - const toPrismaEntity = PostgresqlPrismaAppointmentMapper.toPrismaCreate({ - ...appointment, - }); - - const newAppointment = - await this.postgresqlPrismaOrmService['appointment'].create(toPrismaEntity); - - return PostgresqlPrismaAppointmentMapper.toDomain(newAppointment); - } - - async getAppointments(): Promise { - const appointments = await this.postgresqlPrismaOrmService['appointment'].findMany(); - - return appointments.map((appointment) => PostgresqlPrismaAppointmentMapper.toDomain(appointment)) - } - - async updateAppointmentInfo(newAppointmentInfo: UpdateAppointmentInfoDto): Promise { - const oldAppointmentInfo = await this.findSingleAppointmentById(newAppointmentInfo.id); - - if (!oldAppointmentInfo) { - throw new ConflictException(APPOINTMENT_ERROR_MESSAGES['APPOINTMENT_NOT_FOUND']); - } - - const toPrismaEntity = PostgresqlPrismaAppointmentMapper.toPrismaUpdate({ - ...newAppointmentInfo, - }); - - await this.postgresqlPrismaOrmService['appointment'].update(toPrismaEntity); - } - - async updateAppointmentDate(newAppointmentInfo: UpdatedAppointmentDateDto): Promise { - const oldAppointmentInfo = await this.findSingleAppointmentById(newAppointmentInfo.id); - - if (!oldAppointmentInfo) { - throw new ConflictException(APPOINTMENT_ERROR_MESSAGES['APPOINTMENT_NOT_FOUND']); - } - - const toPrismaEntity = PostgresqlPrismaAppointmentMapper.toPrismaUpdate({ - ...newAppointmentInfo, - }); - - await this.postgresqlPrismaOrmService['appointment'].update(toPrismaEntity); - } - - async deleteSingleAppointment(appointmentId: string): Promise { - const isAppointmentExists = await this.findSingleAppointmentById(appointmentId); - - if (!isAppointmentExists) { - throw new ConflictException(APPOINTMENT_ERROR_MESSAGES['APPOINTMENT_NOT_FOUND']); - } - - await this.postgresqlPrismaOrmService['appointment'].delete({ - where: { - id: appointmentId, - }, - }); - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/repositories/clinic/postgres-prisma-orm-clinic-repository.ts b/apps/core-rest-api/src/app/adapters/database/repositories/clinic/postgres-prisma-orm-clinic-repository.ts deleted file mode 100644 index 0d369e4..0000000 --- a/apps/core-rest-api/src/app/adapters/database/repositories/clinic/postgres-prisma-orm-clinic-repository.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { ConflictException, Injectable } from '@nestjs/common'; -import { ClinicEntity } from '../../../../core/domains/clinic/entities/clinic/entity'; -import { ClinicDatabaseRepository } from '../../../../core/domains/clinic/repositories/database-repository'; -import { CreateClinicDto } from '../../../../core/domains/clinic/use-cases/create-clinic/create-clinic-dto'; -import { DeletedClinicInfo } from '../../../../core/domains/clinic/use-cases/delete-clinic/dto'; -import { UpdateClinicDto } from '../../../../core/domains/clinic/use-cases/update-clinic/update-clinic-dto'; -import { CLINIC_ERROR_MESSAGES } from '../../../../shared/errors/error-messages'; -import { PostgreSqlPrismaOrmService } from '../../../database/infra/prisma/prisma.service'; -import { PostgresqlPrismaClinicMapper } from '../../mappers/postgresql-prisma-clinic-mapper'; - -@Injectable() -export class PostgresqlPrismaOrmClinicRepository implements ClinicDatabaseRepository { - constructor(private postgreSqlPrismaOrmService: PostgreSqlPrismaOrmService) {} - async createClinic(clinic: CreateClinicDto): Promise { - const isClinicExists = await this.findClinicByNameAndPsychologistId( - clinic.name, - clinic.psychologistId - ); - - if (isClinicExists) { - throw new ConflictException(CLINIC_ERROR_MESSAGES['CONFLICTING_CREDENTIALS']); - } - - const toPrismaEntity = PostgresqlPrismaClinicMapper.toPrismaCreate({ - ...clinic, - }); - - const newClinic = await this.postgreSqlPrismaOrmService['clinic'].create( - toPrismaEntity - ); - - return PostgresqlPrismaClinicMapper.toDomain(newClinic); - } - - async findClinicByNameAndPsychologistId( - name: string, - psychologistId: string - ): Promise { - const clinic = await this.postgreSqlPrismaOrmService['clinic'].findFirst({ - where: { - name, - psychologistId: psychologistId, - }, - }); - - if (!clinic) { - return null; - } - - return PostgresqlPrismaClinicMapper.toDomain(clinic); - } - - async findClinicById(id: string): Promise { - const clinic = await this.postgreSqlPrismaOrmService['clinic'].findUnique({ - where: { - id, - }, - }); - - if (!clinic) { - return null; - } - - return PostgresqlPrismaClinicMapper.toDomain(clinic); - } - - async findClinicByPsychologistId( - psychologistId: string - ): Promise { - console.log(psychologistId) - throw new Error('Method not implemented.'); - } - - async getClinics(): Promise { - const clinics = await this.postgreSqlPrismaOrmService['clinic'].findMany(); - - return PostgresqlPrismaClinicMapper.toDomainMany(clinics); - } - - async updateClinic(newClinic: UpdateClinicDto): Promise { - const oldClinic = await this.findClinicById(newClinic.id); - - if (!oldClinic) { - throw new ConflictException(CLINIC_ERROR_MESSAGES['CONFLICTING_CREDENTIALS']); - } - - const toPrismaEntity = PostgresqlPrismaClinicMapper.toPrismaUpdate(newClinic); - - await this.postgreSqlPrismaOrmService['clinic'].update(toPrismaEntity); - } - - async deleteClinic(id: string): Promise { - const isClinicExists = await this.findClinicById( - id - ); - - if (!isClinicExists) { - throw new ConflictException(CLINIC_ERROR_MESSAGES['CLINIC_NOT_FOUND']); - } - - const clinicId = isClinicExists.id; - const deletedClinic = await this.postgreSqlPrismaOrmService['clinic'].delete({ - where: { - id: clinicId, - }, - }); - - const responseObject = { - deletedClinic: PostgresqlPrismaClinicMapper.toDomain(deletedClinic), - } - - return responseObject - } - - async deleteAllClinicsByPsychologistId( - psychologistId: string - ): Promise { - console.log(psychologistId) - throw new Error('Method not implemented.'); - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/repositories/patient-appointment-registry/postgresql-prisma-orm-registry-repository.ts b/apps/core-rest-api/src/app/adapters/database/repositories/patient-appointment-registry/postgresql-prisma-orm-registry-repository.ts deleted file mode 100644 index 7a9852b..0000000 --- a/apps/core-rest-api/src/app/adapters/database/repositories/patient-appointment-registry/postgresql-prisma-orm-registry-repository.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { Injectable, NotFoundException } from '@nestjs/common'; -import { PatientAppointmentRegistryEntity } from '../../../../core/domains/patient-appointment-registry/entities/registry/entity'; -import { ICreatePatientAppointmentRegistry, IFindPatientAppointmentRegistryByIdAndDate, IFindPatientAppointmentRegistryByIdAndPeriod, IUpdatePatientAppointmentRegistry } from '../../../../core/domains/patient-appointment-registry/interfaces/registry'; -import { PatientAppointmentRegistryDatabaseRepository } from '../../../../core/domains/patient-appointment-registry/repositories/database-repository'; -import { PATIENT_APPOINTMENT_REGISTRY_ERROR_MESSAGES } from '../../../../shared/errors/error-messages'; -import { PostgreSqlPrismaOrmService } from "../../infra/prisma/prisma.service"; -import { PostgresqlPrismaPatientAppointmentRegistryMapper } from '../../mappers/postgres-prisma-registry-mapper'; - -@Injectable() -export class PostgresqlPrismaOrmPatientAppointmentRegistryRepository - implements PatientAppointmentRegistryDatabaseRepository -{ - constructor(private postgreSqlPrismaOrmService: PostgreSqlPrismaOrmService) {} - - async createPatientAppointmentRegistry(params: ICreatePatientAppointmentRegistry): Promise { - const toPrismaEntity = - PostgresqlPrismaPatientAppointmentRegistryMapper.toPrismaCreate(params); - - const newPatientAppointmentRegistry = await this.postgreSqlPrismaOrmService['patientAppointmentRegistry'].create( - toPrismaEntity - ); - - return PostgresqlPrismaPatientAppointmentRegistryMapper.toDomain(newPatientAppointmentRegistry); - } - - async getAllAppointmentsRegistryByPatient(patientId: string): Promise { - const patientAppointmentRegistries = await this.postgreSqlPrismaOrmService['patientAppointmentRegistry'].findMany({where: {patientId}}) - - return PostgresqlPrismaPatientAppointmentRegistryMapper.toDomainMany(patientAppointmentRegistries); - } - - async findPatientAppointmentRegistryById(id: string): Promise { - const patientAppointmentRegistry = await this.postgreSqlPrismaOrmService['patientAppointmentRegistry'].findUnique({where: {id}}) - - if (!patientAppointmentRegistry) { - throw new NotFoundException(PATIENT_APPOINTMENT_REGISTRY_ERROR_MESSAGES['REGISTRY_NOT_FOUND']); - } - - return PostgresqlPrismaPatientAppointmentRegistryMapper.toDomain(patientAppointmentRegistry); - } - - async findPatientAppointmentRegistryByIdAndDate(params: IFindPatientAppointmentRegistryByIdAndDate): Promise { - const patientAppointmentRegistry = - await this.postgreSqlPrismaOrmService['patientAppointmentRegistry'] - .findFirst( - { where: - { - patientId: params.patientId, - createdAt: params.date - }, - } - ) - - if (!patientAppointmentRegistry) { - throw new NotFoundException(PATIENT_APPOINTMENT_REGISTRY_ERROR_MESSAGES['REGISTRY_NOT_FOUND']); - } - - return PostgresqlPrismaPatientAppointmentRegistryMapper.toDomain(patientAppointmentRegistry); - } - - async findPatientAppointmentRegistryByIdAndPeriod(params: IFindPatientAppointmentRegistryByIdAndPeriod): Promise { - const patientAppointmentRegistries = - await this.postgreSqlPrismaOrmService['patientAppointmentRegistry'] - .findMany( - { where: - { - patientId: params.patientId, - OR: [ - { - createdAt: {gte: params.startDate} - }, - { - createdAt: {lte: params.endDate} - }, - ] - }, - } - ) - - return PostgresqlPrismaPatientAppointmentRegistryMapper.toDomainMany(patientAppointmentRegistries); - } - - async updatePatientAppointmentRegistry(params: IUpdatePatientAppointmentRegistry): Promise { - const oldPatientAppointmentRegistry = await this.findPatientAppointmentRegistryById(params.id); - - if (!oldPatientAppointmentRegistry) { - throw new NotFoundException(PATIENT_APPOINTMENT_REGISTRY_ERROR_MESSAGES['REGISTRY_NOT_FOUND']); - } - - const toPrismaEntity = PostgresqlPrismaPatientAppointmentRegistryMapper.toPrismaUpdate(params); - const updatedRegistry = await this.postgreSqlPrismaOrmService['patientAppointmentRegistry'].update(toPrismaEntity); - - return PostgresqlPrismaPatientAppointmentRegistryMapper.toDomain(updatedRegistry); - } - - async deletePatientAppointmentRegistry(id: string): Promise { - const isPatientAppointmentRegistryExists = await this.findPatientAppointmentRegistryById( - id - ); - - if (!isPatientAppointmentRegistryExists) { - throw new NotFoundException(PATIENT_APPOINTMENT_REGISTRY_ERROR_MESSAGES['REGISTRY_NOT_FOUND']); - } - - const patientAppointmentRegistryId = isPatientAppointmentRegistryExists.id; - - await this.postgreSqlPrismaOrmService['patientAppointmentRegistry'].delete({ - where: { - id: patientAppointmentRegistryId, - }, - }); - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/repositories/patient/postgres-prisma-orm-patient-repository.ts b/apps/core-rest-api/src/app/adapters/database/repositories/patient/postgres-prisma-orm-patient-repository.ts deleted file mode 100644 index 9f2717d..0000000 --- a/apps/core-rest-api/src/app/adapters/database/repositories/patient/postgres-prisma-orm-patient-repository.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { ConflictException, Injectable } from '@nestjs/common'; -import { PATIENT_ERROR_MESSAGES } from '../../../../shared/errors/error-messages'; - -import { PatientEntity } from '../../../../core/domains/patient/entities/patient/entity'; -import { PatientDatabaseRepository } from '../../../../core/domains/patient/repositories/database-repository'; -import { CreatePatientDto } from '../../../../core/domains/patient/use-cases/create-patient/create-patient-dto'; -import { UpdatePatientDto } from '../../../../core/domains/patient/use-cases/update-patient/update-patient-dto'; -import { PostgreSqlPrismaOrmService } from '../../infra/prisma/prisma.service'; -import { PostgresqlPrismaPatientMapper } from '../../mappers/postgresql-prisma-patient-mapper'; - -@Injectable() -export class PostgresqlPrismaOrmPatientRepository implements PatientDatabaseRepository { - constructor(private postgresqlPrismaOrmService: PostgreSqlPrismaOrmService) {} - - async createPatient(patient: CreatePatientDto): Promise { - const isPatientExists = await this.findPatientByEmail(patient.email); - - if (isPatientExists) { - throw new ConflictException(PATIENT_ERROR_MESSAGES['CONFLICTING_CREDENTIALS']); - } - - const toPrismaEntity = PostgresqlPrismaPatientMapper.toPrismaCreate({ - ...patient, - }); - - const newPatient = - await this.postgresqlPrismaOrmService['patient'].create(toPrismaEntity); - - return PostgresqlPrismaPatientMapper.toDomain(newPatient); - } - - async findPatientByEmail(email: string): Promise { - const patient = await this.postgresqlPrismaOrmService['patient'].findUnique({ - where: { - email: email, - }, - }); - - if (!patient) { - return null; - } - - return PostgresqlPrismaPatientMapper.toDomain(patient); - } - - async findPatientById(patientId: string): Promise { - const patient = await this.postgresqlPrismaOrmService['patient'].findUnique({ - where: { - id: patientId, - }, - }); - - if (!patient) { - return null; - } - - return PostgresqlPrismaPatientMapper.toDomain(patient); - } - - async getPatients(): Promise { - const patients = await this.postgresqlPrismaOrmService['patient'].findMany(); - - return patients.map((patient) => PostgresqlPrismaPatientMapper.toDomain(patient)); - } - - async updatePatient(newPatientInfo: UpdatePatientDto): Promise { - const oldPatientInfo = await this.findPatientById(newPatientInfo.id); - - if (!oldPatientInfo) { - throw new ConflictException(PATIENT_ERROR_MESSAGES['PATIENT_NOT_FOUND']); - } - - const toPrismaEntity = PostgresqlPrismaPatientMapper.toPrismaUpdate({ - ...newPatientInfo, - }); - - await this.postgresqlPrismaOrmService['patient'].update(toPrismaEntity); - } - - async deletePatient(patientId: string): Promise { - const isPatientExists = await this.findPatientById(patientId); - - if (!isPatientExists) { - throw new ConflictException(PATIENT_ERROR_MESSAGES['PATIENT_NOT_FOUND']); - } - - await this.postgresqlPrismaOrmService['patient'].delete({ - where: { - id: patientId, - }, - }); - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/repositories/psychologist/postgresql-prisma-orm-psychologist-repository.ts b/apps/core-rest-api/src/app/adapters/database/repositories/psychologist/postgresql-prisma-orm-psychologist-repository.ts deleted file mode 100644 index 5433445..0000000 --- a/apps/core-rest-api/src/app/adapters/database/repositories/psychologist/postgresql-prisma-orm-psychologist-repository.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { ConflictException, Injectable } from '@nestjs/common'; -import { PsychologistEntity } from '../../../../core/domains/psychologist/entities/psychologist/entity'; -import { PsychologistDatabaseRepository } from '../../../../core/domains/psychologist/repositories/database-repository'; -import { CreatePsychologistDto } from '../../../../core/domains/psychologist/use-cases/create-psychologist/create-psychologist-dto'; -import { UpdatePsychologistDto } from '../../../../core/domains/psychologist/use-cases/update-psychologist/update-psychologist-dto'; -import { PSYCHOLOGIST_ERROR_MESSAGES } from '../../../../shared/errors/error-messages'; -import { PostgreSqlPrismaOrmService } from '../../infra/prisma/prisma.service'; -import { PostgresqlPrismaPsychologistMapper } from '../../mappers/postgresql-prisma-psychologist-mapper'; - -@Injectable() -export class PostgresqlPrismaOrmPsychologistRepository - implements PsychologistDatabaseRepository -{ - constructor(private postgreSqlPrismaOrmService: PostgreSqlPrismaOrmService) {} - - async createPsychologist( - psychologist: CreatePsychologistDto - ): Promise { - const isPsychologistExists = await this.findPsychologistByEmail(psychologist.email); - - if (isPsychologistExists) { - throw new ConflictException( - PSYCHOLOGIST_ERROR_MESSAGES['PSYCHOLOGIST_ALREADY_EXISTS'] - ); - } - - const toPrismaEntity = - PostgresqlPrismaPsychologistMapper.toPrismaCreate(psychologist); - - const newPsychologist = await this.postgreSqlPrismaOrmService['psychologist'].create( - toPrismaEntity - ); - - return PostgresqlPrismaPsychologistMapper.toDomain(newPsychologist); - } - - async findPsychologistByEmail(email: string): Promise { - const psychologist = await this.postgreSqlPrismaOrmService['psychologist'].findUnique( - { - where: { - email: email, - }, - } - ); - - if (!psychologist) { - return null; - } - - return PostgresqlPrismaPsychologistMapper.toDomain(psychologist); - } - - async findPsychologistById(id: string): Promise { - const psychologist = await this.postgreSqlPrismaOrmService['psychologist'].findUnique( - { - where: { - id: id, - }, - } - ); - - if (!psychologist) { - return null; - } - - return PostgresqlPrismaPsychologistMapper.toDomain(psychologist); - } - - async getPsychologists(): Promise { - const psychologists = await this.postgreSqlPrismaOrmService[ - 'psychologist' - ].findMany(); - - return PostgresqlPrismaPsychologistMapper.toDomainMany(psychologists); - } - - async updatePsychologist(newPsychologist: UpdatePsychologistDto): Promise { - const oldPsychologist = await this.findPsychologistById(newPsychologist.id); - - if (!oldPsychologist) { - throw new ConflictException(PSYCHOLOGIST_ERROR_MESSAGES['PSYCHOLOGIST_NOT_FOUND']); - } - - const toPrismaEntity = - PostgresqlPrismaPsychologistMapper.toPrismaUpdate(newPsychologist); - - await this.postgreSqlPrismaOrmService['psychologist'].update(toPrismaEntity); - } - - async deletePsychologist(email: string) { - const psychologist = await this.postgreSqlPrismaOrmService['psychologist'].findUnique( - { - where: { email: email }, - include: { clinic: true }, // Inclui as clínicas associadas - } - ); - - if (!psychologist) { - throw new ConflictException(PSYCHOLOGIST_ERROR_MESSAGES['PSYCHOLOGIST_NOT_FOUND']); - } - - const clinicNames = psychologist.clinic.map((clinic) => { - return { name: clinic.name, id: clinic.id }; - }); - - const deletedPsychologist = await this.postgreSqlPrismaOrmService[ - 'psychologist' - ].delete({ - where: { - email: email, - }, - }); - - // Retorna as informações requeridas - const responseObject = { - deletedPsychologist: - PostgresqlPrismaPsychologistMapper.toDomain(deletedPsychologist), - associatedClinics: clinicNames, - }; - - return responseObject; - } -} diff --git a/apps/core-rest-api/src/app/adapters/database/repositories/psychologist/teste.ts b/apps/core-rest-api/src/app/adapters/database/repositories/psychologist/teste.ts new file mode 100644 index 0000000..4683d06 --- /dev/null +++ b/apps/core-rest-api/src/app/adapters/database/repositories/psychologist/teste.ts @@ -0,0 +1,65 @@ +import { Injectable } from '@nestjs/common'; + +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { PsychologistEntity } from '../../../../core/domains/psychologist/entities/psychologist/entity'; +import { PsychologistDatabaseRepository } from '../../../../core/domains/psychologist/repositories/database-repository'; +import { CreatePsychologistDto } from '../../../../core/domains/psychologist/use-cases/create-psychologist/create-psychologist-dto'; +import { DeletedPsychologistInfo } from '../../../../core/domains/psychologist/use-cases/delete-psychologist/dto'; +import { UpdatePsychologistDto } from '../../../../core/domains/psychologist/use-cases/update-psychologist/update-psychologist-dto'; +import { Psychologist } from '../../infra/typeorm/entities/psychologist.entitie'; + +// const dataSource = new DataSource({ +// type: 'postgres', +// host: 'localhost', +// port: 5432, +// username: 'cliniccontrol', +// password: 'cliniccontrolpassword', +// database: 'core-rest-api', +// entities: ['../../infra/typeorm/entities/*.ts'], +// synchronize: false, +// }); + +@Injectable() +export class PostgresTypeOrmRepository extends PsychologistDatabaseRepository { + constructor( + @InjectRepository(Psychologist) + private psychologistRepository: Repository, + ) { + super(); + } + + async createPsychologist( + psychologist: CreatePsychologistDto, + ): Promise { + const newPsychologist = this.psychologistRepository.create(psychologist); + await this.psychologistRepository.save(newPsychologist); + return newPsychologist as unknown as PsychologistEntity; + } + override findPsychologistByEmail(email: string): Promise { + const psychologist = this.psychologistRepository.findOne({ where: { email } }); + return psychologist as unknown as Promise; + } + async findPsychologistById(id: string): Promise { + const psychologist = this.psychologistRepository.findOne({ where: { id } }); + return psychologist as unknown as Promise; + } + async getPsychologists(): Promise { + const psychologists = await this.psychologistRepository.find(); + return psychologists as unknown as PsychologistEntity[]; + } + async updatePsychologist(newPsychologist: UpdatePsychologistDto): Promise { + await this.psychologistRepository.update(newPsychologist.id, newPsychologist); + } + async deletePsychologist(email: string): Promise { + const psychologist = await this.psychologistRepository.findOne({ where: { email } }); + await this.psychologistRepository.delete({ email }); + + return psychologist as unknown as DeletedPsychologistInfo; + } + + async getDataSource() { + const teste = await this.psychologistRepository.manager.exists(Psychologist); + return teste; + } +} diff --git a/apps/core-rest-api/src/app/adapters/database/repositories/repositories.module.ts b/apps/core-rest-api/src/app/adapters/database/repositories/repositories.module.ts index 69611da..beb125c 100644 --- a/apps/core-rest-api/src/app/adapters/database/repositories/repositories.module.ts +++ b/apps/core-rest-api/src/app/adapters/database/repositories/repositories.module.ts @@ -1,66 +1,70 @@ import { Module } from '@nestjs/common'; - -import { ClinicDatabaseRepository } from '../../../core/domains/clinic/repositories/database-repository'; -import { PatientDatabaseRepository } from '../../../core/domains/patient/repositories/database-repository'; -import { PsychologistDatabaseRepository } from '../../../core/domains/psychologist/repositories/database-repository'; - -import { AppointmentDatabaseRepository } from '../../../core/domains/appointment/repositories/database-repository'; -import { PatientAppointmentRegistryDatabaseRepository } from '../../../core/domains/patient-appointment-registry/repositories/database-repository'; -import { PostgreSqlPrismaOrmService } from '../infra/prisma/prisma.service'; -import { PostgresqlPrismaOrmAppointmentRepository } from './appointment/postgres-prisma-orm-appointment-repository'; -import { PostgresqlPrismaOrmClinicRepository } from './clinic/postgres-prisma-orm-clinic-repository'; -import { PostgresqlPrismaOrmPatientAppointmentRegistryRepository } from './patient-appointment-registry/postgresql-prisma-orm-registry-repository'; -import { PostgresqlPrismaOrmPatientRepository } from './patient/postgres-prisma-orm-patient-repository'; -import { PostgresqlPrismaOrmPsychologistRepository } from './psychologist/postgresql-prisma-orm-psychologist-repository'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Appointment } from '../infra/typeorm/entities/Appointment'; +import { Clinic } from '../infra/typeorm/entities/Clinic'; +import { Patient } from '../infra/typeorm/entities/Patient'; +import { PatientAppointmentRegistry } from '../infra/typeorm/entities/PatientAppointmentRegistry'; +import { Psychologist } from '../infra/typeorm/entities/psychologist.entitie'; +import { PostgresTypeOrmRepository } from './psychologist/teste'; @Module({ - imports: [], + imports: [ + TypeOrmModule.forFeature([ + Psychologist, + Appointment, + Clinic, + Patient, + PatientAppointmentRegistry, + ]), + ], controllers: [], providers: [ - PostgreSqlPrismaOrmService, - { - provide: PsychologistDatabaseRepository, - useClass: PostgresqlPrismaOrmPsychologistRepository, - }, - { - provide: ClinicDatabaseRepository, - useClass: PostgresqlPrismaOrmClinicRepository, - }, - { - provide: PatientDatabaseRepository, - useClass: PostgresqlPrismaOrmPatientRepository, - }, - { - provide: PatientAppointmentRegistryDatabaseRepository, - useClass: PostgresqlPrismaOrmPatientAppointmentRegistryRepository, - }, - { - provide: AppointmentDatabaseRepository, - useClass: PostgresqlPrismaOrmAppointmentRepository, - }, + PostgresTypeOrmRepository, + // PostgreSqlPrismaOrmService, + // { + // provide: PsychologistDatabaseRepository, + // useClass: PostgresqlPrismaOrmPsychologistRepository, + // }, + // { + // provide: ClinicDatabaseRepository, + // useClass: PostgresqlPrismaOrmClinicRepository, + // }, + // { + // provide: PatientDatabaseRepository, + // useClass: PostgresqlPrismaOrmPatientRepository, + // }, + // { + // provide: PatientAppointmentRegistryDatabaseRepository, + // useClass: PostgresqlPrismaOrmPatientAppointmentRegistryRepository, + // }, + // { + // provide: AppointmentDatabaseRepository, + // useClass: PostgresqlPrismaOrmAppointmentRepository, + // }, ], exports: [ - PostgreSqlPrismaOrmService, - { - provide: PsychologistDatabaseRepository, - useClass: PostgresqlPrismaOrmPsychologistRepository, - }, - { - provide: ClinicDatabaseRepository, - useClass: PostgresqlPrismaOrmClinicRepository, - }, - { - provide: PatientDatabaseRepository, - useClass: PostgresqlPrismaOrmPatientRepository, - }, - { - provide: PatientAppointmentRegistryDatabaseRepository, - useClass: PostgresqlPrismaOrmPatientAppointmentRegistryRepository, - }, - { - provide: AppointmentDatabaseRepository, - useClass: PostgresqlPrismaOrmAppointmentRepository, - }, + PostgresTypeOrmRepository, + // PostgreSqlPrismaOrmService, + // { + // provide: PsychologistDatabaseRepository, + // useClass: PostgresqlPrismaOrmPsychologistRepository, + // }, + // { + // provide: ClinicDatabaseRepository, + // useClass: PostgresqlPrismaOrmClinicRepository, + // }, + // { + // provide: PatientDatabaseRepository, + // useClass: PostgresqlPrismaOrmPatientRepository, + // }, + // { + // provide: PatientAppointmentRegistryDatabaseRepository, + // useClass: PostgresqlPrismaOrmPatientAppointmentRegistryRepository, + // }, + // { + // provide: AppointmentDatabaseRepository, + // useClass: PostgresqlPrismaOrmAppointmentRepository, + // }, ], }) export class DatabaseRepositoriesModule {} diff --git a/apps/core-rest-api/src/app/shared/errors/globalAppHttpException.ts b/apps/core-rest-api/src/app/shared/errors/globalAppHttpException.ts index 31098b0..219d94d 100644 --- a/apps/core-rest-api/src/app/shared/errors/globalAppHttpException.ts +++ b/apps/core-rest-api/src/app/shared/errors/globalAppHttpException.ts @@ -1,5 +1,4 @@ import { HttpException, HttpStatus, Logger } from '@nestjs/common'; -import { Prisma } from '@prisma/client'; import { ValidationException } from './validation-exception'; const className = 'GlobalAppHttpException'; @@ -8,7 +7,6 @@ export class GlobalAppHttpException { constructor(error: unknown, message?: string, status?: HttpStatus) { this.bubbleUpHttpException(error, message, status); this.bubbleUpValidationException(error, message, status); - this.bubbleUpPrismaException(error); } bubbleUpHttpException(error: unknown, message?: string, status?: HttpStatus) { @@ -40,33 +38,4 @@ export class GlobalAppHttpException { ); } } - - bubbleUpPrismaException(error: unknown) { - if (error instanceof Prisma.PrismaClientKnownRequestError) { - let exceptionMessage = 'An error occurred while processing your request.'; - let exceptionStatus = HttpStatus.INTERNAL_SERVER_ERROR; // ou outro status HTTP apropriado - - // Adicionando detalhes específicos do erro Prisma - exceptionMessage += ` Details: ${error.message}`; - - // Incluindo código de erro do Prisma para identificação específica - if (error.code) { - exceptionMessage += ` Prisma Error Code: ${error.code}.`; - } - - if (error.code === 'P2002' || error.code === 'P2003') { - // Remover linhas e espaços extras - const relevantLines = error.message - .split('\n') - .filter((line) => line.trim() !== '') - .map((line) => line.trim()) - .join(' '); - - exceptionMessage = relevantLines; - exceptionStatus = HttpStatus.BAD_REQUEST; - } - - throw new HttpException(exceptionMessage, exceptionStatus); - } - } } diff --git a/package.json b/package.json index 594b38c..6d87a01 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.3.0", "@nestjs/swagger": "^7.1.17", + "@nestjs/typeorm": "^10.0.2", "@prisma/client": "^5.7.1", "@swc/helpers": "~0.5.3", "bcryptjs": "^2.4.3", @@ -54,6 +55,8 @@ "reflect-metadata": "^0.1.14", "rxjs": "^7.8.1", "tslib": "^2.6.2", + "typeorm": "^0.3.20", + "typeorm-model-generator": "^0.4.6", "zod": "^3.22.4", "zod-validation-error": "^2.1.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e2ebd9..692331b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ dependencies: '@nestjs/swagger': specifier: ^7.1.17 version: 7.2.0(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14) + '@nestjs/typeorm': + specifier: ^10.0.2 + version: 10.0.2(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(reflect-metadata@0.1.14)(rxjs@7.8.1)(typeorm@0.3.20) '@prisma/client': specifier: ^5.7.1 version: 5.9.0(prisma@5.9.0) @@ -62,6 +65,12 @@ dependencies: tslib: specifier: ^2.6.2 version: 2.6.2 + typeorm: + specifier: ^0.3.20 + version: 0.3.20(pg@8.11.3)(ts-node@10.9.2) + typeorm-model-generator: + specifier: ^0.4.6 + version: 0.4.6 zod: specifier: ^3.22.4 version: 3.22.4 @@ -284,6 +293,60 @@ packages: - chokidar dev: true + /@azure/abort-controller@2.0.0: + resolution: {integrity: sha512-RP/mR/WJchR+g+nQFJGOec+nzeN/VvjlwbinccoqfhTsTHbb8X5+mLDp48kHT0ueyum0BNSwGm0kX0UZuIqTGg==} + engines: {node: '>=18.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + + /@azure/core-auth@1.6.0: + resolution: {integrity: sha512-3X9wzaaGgRaBCwhLQZDtFp5uLIXCPrGbwJNWPPugvL4xbIGgScv77YzzxToKGLAKvG9amDoofMoP+9hsH1vs1w==} + engines: {node: '>=18.0.0'} + dependencies: + '@azure/abort-controller': 2.0.0 + '@azure/core-util': 1.7.0 + tslib: 2.6.2 + dev: false + + /@azure/core-util@1.7.0: + resolution: {integrity: sha512-Zq2i3QO6k9DA8vnm29mYM4G8IE9u1mhF1GUabVEqPNX8Lj833gdxQ2NAFxt2BZsfAL+e9cT8SyVN7dFVJ/Hf0g==} + engines: {node: '>=18.0.0'} + dependencies: + '@azure/abort-controller': 2.0.0 + tslib: 2.6.2 + dev: false + + /@azure/ms-rest-azure-env@2.0.0: + resolution: {integrity: sha512-dG76W7ElfLi+fbTjnZVGj+M9e0BIEJmRxU6fHaUQ12bZBe8EJKYb2GV50YWNaP2uJiVQ5+7nXEVj1VN1UQtaEw==} + dev: false + + /@azure/ms-rest-js@2.7.0: + resolution: {integrity: sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==} + dependencies: + '@azure/core-auth': 1.6.0 + abort-controller: 3.0.0 + form-data: 2.5.1 + node-fetch: 2.7.0 + tslib: 1.14.1 + tunnel: 0.0.6 + uuid: 8.3.2 + xml2js: 0.5.0 + transitivePeerDependencies: + - encoding + dev: false + + /@azure/ms-rest-nodeauth@3.1.1(debug@4.3.4): + resolution: {integrity: sha512-UA/8dgLy3+ZiwJjAZHxL4MUB14fFQPkaAOZ94jsTW/Z6WmoOeny2+cLk0+dyIX/iH6qSrEWKwbStEeB970B9pA==} + dependencies: + '@azure/ms-rest-azure-env': 2.0.0 + '@azure/ms-rest-js': 2.7.0 + adal-node: 0.2.4(debug@4.3.4) + transitivePeerDependencies: + - debug + - encoding + dev: false + /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -1737,7 +1800,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 - dev: true /@esbuild/aix-ppc64@0.19.12: resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} @@ -1988,6 +2050,12 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} dev: true + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + requiresBuild: true + dev: false + optional: true + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -2023,7 +2091,6 @@ packages: strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -2224,7 +2291,6 @@ packages: /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} @@ -2240,7 +2306,6 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.22: resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} @@ -2254,7 +2319,6 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - dev: true /@leichtgewicht/ip-codec@2.0.4: resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} @@ -2642,6 +2706,23 @@ packages: tslib: 2.6.2 dev: true + /@nestjs/typeorm@10.0.2(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(reflect-metadata@0.1.14)(rxjs@7.8.1)(typeorm@0.3.20): + resolution: {integrity: sha512-H738bJyydK4SQkRCTeh1aFBxoO1E9xdL/HaLGThwrqN95os5mEyAtK7BLADOS+vldP4jDZ2VQPLj4epWwRqCeQ==} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 + '@nestjs/core': ^8.0.0 || ^9.0.0 || ^10.0.0 + reflect-metadata: ^0.1.13 || ^0.2.0 + rxjs: ^7.2.0 + typeorm: ^0.3.0 + dependencies: + '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1) + '@nestjs/core': 10.3.1(@nestjs/common@10.3.1)(@nestjs/microservices@10.3.1)(@nestjs/platform-express@10.3.1)(reflect-metadata@0.1.14)(rxjs@7.8.1) + reflect-metadata: 0.1.14 + rxjs: 7.8.1 + typeorm: 0.3.20(pg@8.11.3)(ts-node@10.9.2) + uuid: 9.0.1 + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2676,6 +2757,15 @@ packages: - supports-color dev: true + /@npmcli/fs@1.1.1: + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + requiresBuild: true + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.5.4 + dev: false + optional: true + /@npmcli/fs@3.1.0: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2708,6 +2798,17 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true + /@npmcli/move-file@1.1.2: + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + requiresBuild: true + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: false + optional: true + /@npmcli/node-gyp@3.0.0: resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3607,7 +3708,6 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true - dev: true optional: true /@polka/url@1.0.0-next.24: @@ -3903,6 +4003,10 @@ packages: '@sinonjs/commons': 3.0.1 dev: true + /@sqltools/formatter@1.2.5: + resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} + dev: false + /@swc-node/core@1.10.6(@swc/core@1.3.107): resolution: {integrity: sha512-lDIi/rPosmKIknWzvs2/Fi9zWRtbkx8OJ9pQaevhsoGzJSal8Pd315k1W5AIrnknfdAB4HqRN12fk6AhqnrEEw==} engines: {node: '>= 10'} @@ -3964,7 +4068,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@swc/core-darwin-x64@1.3.107: @@ -3973,7 +4076,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@swc/core-linux-arm-gnueabihf@1.3.107: @@ -3982,7 +4084,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-arm64-gnu@1.3.107: @@ -3991,7 +4092,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-arm64-musl@1.3.107: @@ -4000,7 +4100,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-x64-gnu@1.3.107: @@ -4009,7 +4108,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-x64-musl@1.3.107: @@ -4018,7 +4116,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-win32-arm64-msvc@1.3.107: @@ -4027,7 +4124,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@swc/core-win32-ia32-msvc@1.3.107: @@ -4036,7 +4132,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@swc/core-win32-x64-msvc@1.3.107: @@ -4045,7 +4140,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@swc/core@1.3.107(@swc/helpers@0.5.3): @@ -4072,11 +4166,9 @@ packages: '@swc/core-win32-arm64-msvc': 1.3.107 '@swc/core-win32-ia32-msvc': 1.3.107 '@swc/core-win32-x64-msvc': 1.3.107 - dev: true /@swc/counter@0.1.2: resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} - dev: true /@swc/helpers@0.5.3: resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==} @@ -4085,7 +4177,6 @@ packages: /@swc/types@0.1.5: resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - dev: true /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -4098,6 +4189,13 @@ packages: resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} dev: true + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + requiresBuild: true + dev: false + optional: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -4110,19 +4208,15 @@ packages: /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true /@tsconfig/node16@1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true /@tufjs/canonical-json@1.0.0: resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} @@ -4343,6 +4437,10 @@ packages: '@types/node': 20.10.4 dev: true + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + dev: false + /@types/node@20.10.4: resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} dependencies: @@ -4385,6 +4483,13 @@ packages: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true + /@types/readable-stream@2.3.15: + resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} + dependencies: + '@types/node': 20.10.4 + safe-buffer: 5.1.2 + dev: false + /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: @@ -4463,6 +4568,10 @@ packages: '@types/yargs-parser': 21.0.3 dev: true + /@types/zen-observable@0.8.3: + resolution: {integrity: sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==} + dev: false + /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4938,6 +5047,11 @@ packages: '@xtuc/long': 4.2.2 dev: true + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + dev: false + /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} dev: true @@ -4978,11 +5092,24 @@ packages: deprecated: Use your platform's native atob() and btoa() methods instead dev: true + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + requiresBuild: true + dev: false + optional: true + /abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: false + /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -5009,13 +5136,28 @@ packages: /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - dev: true /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - dev: true + + /adal-node@0.2.4(debug@4.3.4): + resolution: {integrity: sha512-zIcvbwQFKMUtKxxj8YMHeTT1o/TPXfVNsTXVgXD8sxwV6h4AFQgK77dRciGhuEF9/Sdm3UQPJVPc/6XxrccSeA==} + engines: {node: '>= 0.6.15'} + deprecated: This package is no longer supported. Please migrate to @azure/msal-node. + dependencies: + '@xmldom/xmldom': 0.8.10 + async: 2.6.4 + axios: 0.21.4(debug@4.3.4) + date-utils: 1.2.21 + jws: 3.2.2 + underscore: 1.13.6 + uuid: 3.4.0 + xpath.js: 1.1.0 + transitivePeerDependencies: + - debug + dev: false /add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} @@ -5033,7 +5175,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} @@ -5049,7 +5190,6 @@ packages: engines: {node: '>= 8.0.0'} dependencies: humanize-ms: 1.2.1 - dev: true /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -5057,7 +5197,6 @@ packages: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: true /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} @@ -5115,7 +5254,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.21.3 - dev: true /ansi-html-community@0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} @@ -5126,12 +5264,10 @@ packages: /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -5154,7 +5290,10 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -5164,12 +5303,16 @@ packages: picomatch: 2.3.1 dev: true + /app-root-path@3.1.0: + resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==} + engines: {node: '>= 6.0.0'} + dev: false + /append-field@1.0.0: resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true /arch@2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} @@ -5181,11 +5324,9 @@ packages: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - dev: true /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -5312,6 +5453,12 @@ packages: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: false + /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: true @@ -5324,7 +5471,11 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: false /autoprefixer@10.4.17(postcss@8.4.33): resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} @@ -5352,10 +5503,18 @@ packages: engines: {node: '>=4'} dev: true + /axios@0.21.4(debug@4.3.4): + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + dependencies: + follow-redirects: 1.15.5(debug@4.3.4) + transitivePeerDependencies: + - debug + dev: false + /axios@1.6.7: resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} dependencies: - follow-redirects: 1.15.5 + follow-redirects: 1.15.5(debug@4.3.4) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -5525,11 +5684,9 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true /batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -5577,13 +5734,24 @@ packages: engines: {node: '>=8'} dev: true + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: false + + /bl@3.0.1: + resolution: {integrity: sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==} + dependencies: + readable-stream: 3.6.2 + dev: false + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - dev: true /body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} @@ -5639,13 +5807,11 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -5678,12 +5844,23 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + /buffer-writer@2.0.0: + resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} + engines: {node: '>=4'} + dev: false + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false /builtins@1.0.3: resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} @@ -5720,6 +5897,34 @@ packages: engines: {node: '>=8'} dev: true + /cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + requiresBuild: true + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.1.2 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.3 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.1.11 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: false + optional: true + /cacache@17.1.4: resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5786,6 +5991,13 @@ packages: engines: {node: '>=6'} dev: true + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: false + /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -5818,6 +6030,14 @@ packages: resolution: {integrity: sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==} dev: true + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: false + /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -5855,6 +6075,23 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.2 + dev: false + /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -5862,7 +6099,6 @@ packages: /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true /check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} @@ -5885,10 +6121,13 @@ packages: fsevents: 2.3.3 dev: true + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - dev: true /chrome-trace-event@1.0.3: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} @@ -5917,14 +6156,25 @@ packages: /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - dev: true /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 - dev: true + + /cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + dev: false /cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} @@ -5939,7 +6189,6 @@ packages: /cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} - dev: true /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -5947,7 +6196,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -5956,7 +6204,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone-deep@4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} @@ -6014,7 +6261,6 @@ packages: /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true - dev: true /colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -6042,7 +6288,6 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - dev: true /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -6114,7 +6359,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /concat-stream@1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} @@ -6149,7 +6393,14 @@ packages: /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: true + + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case: 2.0.2 + dev: false /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} @@ -6361,7 +6612,6 @@ packages: /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -6378,7 +6628,6 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true /css-declaration-sorter@7.1.1(postcss@8.4.33): resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} @@ -6557,10 +6806,19 @@ packages: engines: {node: '>=8'} dev: true + /date-utils@1.2.21: + resolution: {integrity: sha512-wJMBjqlwXR0Iv0wUo/lFbhSQ7MmG1hl36iuxuE91kW+5b5sWbase73manEqNH9sOLFAMG83B4ffNKq9/Iq0FVA==} + engines: {node: '>0.4.0'} + dev: false + /dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true @@ -6596,7 +6854,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} @@ -6616,7 +6873,6 @@ packages: engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 - dev: true /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -6638,6 +6894,11 @@ packages: type-detect: 4.0.8 dev: true + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -6690,11 +6951,14 @@ packages: /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dev: true /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: true + + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + dev: false /depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} @@ -6723,6 +6987,11 @@ packages: engines: {node: '>=4'} dev: true + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + dev: false + /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -6757,7 +7026,6 @@ packages: /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - dev: true /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -6814,6 +7082,13 @@ packages: domhandler: 5.0.3 dev: true + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: false + /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -6840,13 +7115,17 @@ packages: engines: {node: '>=12'} dev: false + /dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + dev: false + /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true /ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} @@ -6876,11 +7155,9 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true /emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} @@ -6896,14 +7173,12 @@ packages: requiresBuild: true dependencies: iconv-lite: 0.6.3 - dev: true optional: true /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - dev: true /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} @@ -6928,7 +7203,6 @@ packages: /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - dev: true /envinfo@7.8.1: resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} @@ -6938,7 +7212,6 @@ packages: /err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true /errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} @@ -7081,7 +7354,6 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -7089,7 +7361,6 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} @@ -7334,6 +7605,11 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: false + /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true @@ -7413,6 +7689,11 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + /expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7488,7 +7769,6 @@ packages: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -7555,7 +7835,6 @@ packages: engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 - dev: true /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} @@ -7573,6 +7852,10 @@ packages: token-types: 5.0.1 dev: true + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: false + /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: @@ -7678,7 +7961,7 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /follow-redirects@1.15.5: + /follow-redirects@1.15.5(debug@4.3.4): resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} engines: {node: '>=4.0'} peerDependencies: @@ -7686,7 +7969,8 @@ packages: peerDependenciesMeta: debug: optional: true - dev: true + dependencies: + debug: 4.3.4 /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -7700,7 +7984,6 @@ packages: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true /fork-ts-checker-webpack-plugin@7.2.13(typescript@5.3.3)(webpack@5.90.0): resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==} @@ -7729,6 +8012,15 @@ packages: webpack: 5.90.0(@swc/core@1.3.107) dev: true + /form-data@2.5.1: + resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -7761,7 +8053,6 @@ packages: /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true /fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} @@ -7790,12 +8081,21 @@ packages: universalify: 0.1.2 dev: true + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: false + /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - dev: true /fs-minipass@3.0.3: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} @@ -7810,7 +8110,6 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -7849,7 +8148,12 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 - dev: true + + /generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + dependencies: + is-property: 1.0.2 + dev: false /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -7859,7 +8163,6 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} @@ -7987,6 +8290,10 @@ packages: ini: 1.3.8 dev: true + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -8015,7 +8322,6 @@ packages: minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.1 - dev: true /glob@7.1.4: resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} @@ -8037,7 +8343,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -8138,7 +8443,6 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -8159,7 +8463,6 @@ packages: wordwrap: 1.0.0 optionalDependencies: uglify-js: 3.17.4 - dev: true /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} @@ -8210,7 +8513,6 @@ packages: /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: true /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} @@ -8223,11 +8525,22 @@ packages: hasBin: true dev: true + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + dependencies: + capital-case: 1.0.4 + tslib: 2.6.2 + dev: false + /hexoid@1.0.0: resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} engines: {node: '>=8'} dev: true + /highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + dev: false + /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -8279,7 +8592,6 @@ packages: /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true /http-deceiver@1.2.7: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} @@ -8309,6 +8621,19 @@ packages: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} dev: true + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + requiresBuild: true + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -8354,7 +8679,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.5 + follow-redirects: 1.15.5(debug@4.3.4) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -8376,7 +8701,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /https-proxy-agent@7.0.2: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} @@ -8402,7 +8726,6 @@ packages: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.3 - dev: true /husky@8.0.3: resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} @@ -8416,12 +8739,18 @@ packages: dependencies: safer-buffer: 2.1.2 + /iconv-lite@0.5.2: + resolution: {integrity: sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: true /icss-utils@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} @@ -8441,7 +8770,6 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true /ignore-walk@5.0.1: resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} @@ -8499,19 +8827,22 @@ packages: /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - dev: true + + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + requiresBuild: true + dev: false + optional: true /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits@2.0.3: resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} @@ -8522,7 +8853,6 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true /init-package-json@5.0.0: resolution: {integrity: sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw==} @@ -8537,6 +8867,25 @@ packages: validate-npm-package-name: 5.0.0 dev: true + /inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + dev: false + /inquirer@8.2.6: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} @@ -8569,7 +8918,6 @@ packages: /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - dev: true /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -8665,7 +9013,6 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true /is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} @@ -8693,7 +9040,6 @@ packages: /is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - dev: true /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} @@ -8748,6 +9094,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + dev: false + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -8869,7 +9219,6 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true /isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} @@ -8961,7 +9310,6 @@ packages: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true /jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} @@ -9353,6 +9701,10 @@ packages: dependencies: argparse: 2.0.1 + /jsbi@3.2.5: + resolution: {integrity: sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==} + dev: false + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -9440,7 +9792,6 @@ packages: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - dev: true /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} @@ -9884,12 +10235,22 @@ packages: is-unicode-supported: 0.1.0 dev: true + /long@4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + dev: false + /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 dev: true + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: false + /lowercase-keys@2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} @@ -9898,7 +10259,6 @@ packages: /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} - dev: true /lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -9922,7 +10282,6 @@ packages: /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - dev: true /magic-string@0.30.0: resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} @@ -9970,7 +10329,6 @@ packages: /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true /make-fetch-happen@11.1.1: resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} @@ -10014,6 +10372,33 @@ packages: - supports-color dev: true + /make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + requiresBuild: true + dependencies: + agentkeepalive: 4.5.0 + cacache: 15.3.0 + http-cache-semantics: 4.1.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + optional: true + /makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: @@ -10119,7 +10504,6 @@ packages: /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - dev: true /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} @@ -10134,7 +10518,6 @@ packages: /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -10165,7 +10548,6 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -10186,7 +10568,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: true /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} @@ -10205,7 +10586,6 @@ packages: engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - dev: true /minipass-collect@2.0.1: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} @@ -10214,6 +10594,19 @@ packages: minipass: 7.0.4 dev: true + /minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: false + optional: true + /minipass-fetch@3.0.4: resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -10230,7 +10623,6 @@ packages: engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - dev: true /minipass-json-stream@1.0.1: resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} @@ -10244,21 +10636,18 @@ packages: engines: {node: '>=8'} dependencies: minipass: 3.3.6 - dev: true /minipass-sized@1.0.3: resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} dependencies: minipass: 3.3.6 - dev: true /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} dependencies: yallist: 4.0.0 - dev: true /minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} @@ -10273,7 +10662,6 @@ packages: /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} - dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -10281,7 +10669,10 @@ packages: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: true + + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} @@ -10293,7 +10684,12 @@ packages: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - dev: true + + /mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + dev: false /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} @@ -10319,11 +10715,23 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + /mssql@6.4.1: + resolution: {integrity: sha512-G1I7mM0gfxcH5TGSNoVmxq13Mve5YnQgRAlonqaMlHEjHjMn1g04bsrIQbVHFRdI6++dw/FGWlh8GoItJMoUDw==} + engines: {node: '>=6'} + hasBin: true + dependencies: + debug: 4.3.4 + tarn: 1.1.5 + tedious: 6.7.1(debug@4.3.4) + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /muggle-string@0.3.1: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true @@ -10361,19 +10769,55 @@ packages: /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true /mute-stream@1.0.0: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true + /mysql2@2.3.3: + resolution: {integrity: sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==} + engines: {node: '>= 8.0'} + dependencies: + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.6.3 + long: 4.0.0 + lru-cache: 6.0.0 + named-placeholders: 1.1.3 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + + /named-placeholders@1.1.3: + resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} + engines: {node: '>=12.0.0'} + dependencies: + lru-cache: 7.18.3 + dev: false + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + + /native-duplexpair@1.0.0: + resolution: {integrity: sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==} + dev: false + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -10395,12 +10839,30 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: false + + /node-abi@3.56.0: + resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: false /node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: true + /node-addon-api@7.1.0: + resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} + engines: {node: ^16 || ^18 || >= 20} + dev: false + /node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} @@ -10448,6 +10910,28 @@ packages: - supports-color dev: true + /node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + requiresBuild: true + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 9.1.0 + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.5.4 + tar: 6.1.11 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + optional: true + /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true @@ -10460,6 +10944,16 @@ packages: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + requiresBuild: true + dependencies: + abbrev: 1.1.1 + dev: false + optional: true + /nopt@7.2.0: resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -10567,7 +11061,7 @@ packages: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 - semver: 7.5.3 + semver: 7.5.4 validate-npm-package-name: 5.0.0 dev: true @@ -10667,7 +11161,6 @@ packages: console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 - dev: true /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -10816,14 +11309,12 @@ packages: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - dev: true /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} @@ -10892,7 +11383,6 @@ packages: /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - dev: true /p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} @@ -10977,7 +11467,6 @@ packages: engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 - dev: true /p-pipe@3.1.0: resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} @@ -11029,6 +11518,10 @@ packages: p-reduce: 2.1.0 dev: true + /packet-reader@1.0.0: + resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} + dev: false + /pacote@17.0.6: resolution: {integrity: sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==} engines: {node: ^16.14.0 || >=18.0.0} @@ -11057,6 +11550,13 @@ packages: - supports-color dev: true + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: false + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -11099,14 +11599,35 @@ packages: parse-path: 7.0.0 dev: true + /parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + dependencies: + parse5: 6.0.1 + dev: false + /parse5@4.0.0: resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} dev: true + /parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + dev: false + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: false + /passport-jwt@4.0.1: resolution: {integrity: sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==} dependencies: @@ -11132,6 +11653,13 @@ packages: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: false + /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -11150,7 +11678,6 @@ packages: /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true /path-key@2.0.1: resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} @@ -11160,7 +11687,6 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} @@ -11177,7 +11703,6 @@ packages: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - dev: true /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -11214,6 +11739,70 @@ packages: engines: {node: '>=14.16'} dev: true + /pg-cloudflare@1.1.1: + resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + requiresBuild: true + dev: false + optional: true + + /pg-connection-string@2.6.2: + resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + dev: false + + /pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + dev: false + + /pg-pool@3.6.1(pg@8.11.3): + resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} + peerDependencies: + pg: '>=8.0' + dependencies: + pg: 8.11.3 + dev: false + + /pg-protocol@1.6.0: + resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} + dev: false + + /pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + dev: false + + /pg@8.11.3: + resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + dependencies: + buffer-writer: 2.0.0 + packet-reader: 1.0.0 + pg-connection-string: 2.6.2 + pg-pool: 3.6.1(pg@8.11.3) + pg-protocol: 1.6.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.1.1 + dev: false + + /pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + dependencies: + split2: 4.2.0 + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -11278,7 +11867,6 @@ packages: /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - dev: true /postcss-calc@9.0.1(postcss@8.4.33): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} @@ -11650,11 +12238,58 @@ packages: source-map-js: 1.0.2 dev: true + /postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + dev: false + + /postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + dev: false + + /postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + dev: false + + /postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + dependencies: + xtend: 4.0.2 + dev: false + + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.56.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: false + /prettier@3.2.4: resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} engines: {node: '>=14'} @@ -11693,7 +12328,6 @@ packages: peerDependenciesMeta: bluebird: optional: true - dev: true /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} @@ -11701,7 +12335,6 @@ packages: dependencies: err-code: 2.0.3 retry: 0.12.0 - dev: true /promzard@1.0.0: resolution: {integrity: sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig==} @@ -11740,12 +12373,10 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - dev: true /pure-rand@6.0.4: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} @@ -11806,6 +12437,16 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: false + /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -11915,7 +12556,6 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true /readable-web-to-node-stream@3.0.2: resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} @@ -11942,6 +12582,10 @@ packages: /reflect-metadata@0.1.14: resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} + /reflect-metadata@0.2.1: + resolution: {integrity: sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==} + dev: false + /reflect.getprototypeof@1.0.4: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} engines: {node: '>= 0.4'} @@ -12011,7 +12655,6 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -12088,12 +12731,10 @@ packages: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - dev: true /retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} @@ -12110,7 +12751,6 @@ packages: hasBin: true dependencies: glob: 7.2.3 - dev: true /rimraf@4.4.1: resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} @@ -12146,7 +12786,6 @@ packages: /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} - dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -12154,6 +12793,13 @@ packages: queue-microtask: 1.2.3 dev: true + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: false + /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: @@ -12229,8 +12875,6 @@ packages: /sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} requiresBuild: true - dev: true - optional: true /schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -12320,6 +12964,18 @@ packages: transitivePeerDependencies: - supports-color + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: false + + /seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + dev: false + /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: @@ -12354,7 +13010,6 @@ packages: /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true /set-function-length@1.2.0: resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} @@ -12382,6 +13037,14 @@ packages: /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + /shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -12401,7 +13064,6 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} @@ -12411,7 +13073,6 @@ packages: /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true /shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} @@ -12430,12 +13091,10 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true /sigstore@1.9.0: resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} @@ -12465,6 +13124,18 @@ packages: - supports-color dev: true + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + /sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -12487,7 +13158,13 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true + + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: false /sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} @@ -12497,6 +13174,19 @@ packages: websocket-driver: 0.7.4 dev: true + /socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + requiresBuild: true + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + /socks-proxy-agent@7.0.0: resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} engines: {node: '>= 10'} @@ -12525,7 +13215,6 @@ packages: dependencies: ip: 2.0.0 smart-buffer: 4.2.0 - dev: true /sort-keys-length@1.0.1: resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} @@ -12589,7 +13278,6 @@ packages: /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - dev: true /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -12653,7 +13341,6 @@ packages: /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} - dev: true /split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} @@ -12665,6 +13352,33 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + dev: false + + /sqlite3@5.1.7: + resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} + requiresBuild: true + peerDependenciesMeta: + node-gyp: + optional: true + dependencies: + bindings: 1.5.0 + node-addon-api: 7.1.0 + prebuild-install: 7.1.2 + tar: 6.1.11 + optionalDependencies: + node-gyp: 8.4.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + + /sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + dev: false + /ssri@10.0.5: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -12672,6 +13386,15 @@ packages: minipass: 7.0.4 dev: true + /ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + requiresBuild: true + dependencies: + minipass: 3.3.6 + dev: false + optional: true + /ssri@9.0.1: resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -12727,7 +13450,6 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -12736,7 +13458,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} @@ -12772,21 +13493,18 @@ packages: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - dev: true /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - dev: true /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: true /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -12820,6 +13538,11 @@ packages: min-indent: 1.0.1 dev: true + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -12976,6 +13699,15 @@ packages: engines: {node: '>=6'} dev: true + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -12985,7 +13717,6 @@ packages: fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 - dev: true /tar@6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} @@ -12997,7 +13728,31 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true + + /tarn@1.1.5: + resolution: {integrity: sha512-PMtJ3HCLAZeedWjJPgGnCvcphbCOMbtZpjKgLq3qM5Qq9aQud+XHrL0WlrlgnTyS8U+jrjGbEXprFcQrxPy52g==} + engines: {node: '>=4.0.0'} + dev: false + + /tedious@6.7.1(debug@4.3.4): + resolution: {integrity: sha512-61eg/mvUa5vIqZcRizcqw/82dY65kR2uTll1TaUFh0aJ45XOrgbc8axiVR48dva8BahIAlJByaHNfAJ/KmPV0g==} + engines: {node: '>= 6'} + dependencies: + '@azure/ms-rest-nodeauth': 3.1.1(debug@4.3.4) + '@types/node': 12.20.55 + '@types/readable-stream': 2.3.15 + bl: 3.0.1 + depd: 2.0.0 + iconv-lite: 0.5.2 + jsbi: 3.2.5 + native-duplexpair: 1.0.0 + punycode: 2.3.1 + readable-stream: 3.6.2 + sprintf-js: 1.1.3 + transitivePeerDependencies: + - debug + - encoding + dev: false /temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} @@ -13063,6 +13818,19 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -13078,7 +13846,6 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true /thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} @@ -13103,7 +13870,6 @@ packages: engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 - dev: true /tmp@0.2.1: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} @@ -13279,7 +14045,6 @@ packages: typescript: 5.3.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true /tsconfck@2.1.2(typescript@5.3.3): resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==} @@ -13321,6 +14086,10 @@ packages: strip-bom: 3.0.0 dev: true + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -13346,6 +14115,17 @@ packages: - supports-color dev: true + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: false + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -13371,7 +14151,6 @@ packages: /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - dev: true /type-fest@0.4.1: resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} @@ -13440,6 +14219,195 @@ packages: /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + /typeorm-model-generator@0.4.6: + resolution: {integrity: sha512-pasuH/afAxBXWbuFO3bI9GLxIaDV6/uzkjOZ/W5tHJmQ7AkJqdS+5BBKAhlxypDi5l9DB8eNs9+HoM0/pLgnbw==} + hasBin: true + dependencies: + change-case: 4.1.2 + fs-extra: 9.1.0 + handlebars: 4.7.8 + inquirer: 7.3.3 + mssql: 6.4.1 + mysql2: 2.3.3 + pg: 8.11.3 + pluralize: 8.0.0 + prettier: 2.8.8 + reflect-metadata: 0.1.14 + sqlite3: 5.1.7 + typeorm: 0.2.45(mssql@6.4.1)(mysql2@2.3.3)(pg@8.11.3)(sqlite3@5.1.7) + yargs: 16.2.0 + transitivePeerDependencies: + - '@sap/hana-client' + - better-sqlite3 + - bluebird + - encoding + - hdb-pool + - ioredis + - mongodb + - oracledb + - pg-native + - pg-query-stream + - redis + - sql.js + - supports-color + - typeorm-aurora-data-api-driver + dev: false + + /typeorm@0.2.45(mssql@6.4.1)(mysql2@2.3.3)(pg@8.11.3)(sqlite3@5.1.7): + resolution: {integrity: sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==} + hasBin: true + peerDependencies: + '@sap/hana-client': ^2.11.14 + better-sqlite3: ^7.1.2 + hdb-pool: ^0.1.6 + ioredis: ^4.28.3 + mongodb: ^3.6.0 + mssql: ^6.3.1 + mysql2: ^2.2.5 + oracledb: ^5.1.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 + sql.js: ^1.4.0 + sqlite3: ^5.0.2 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + '@sap/hana-client': + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + typeorm-aurora-data-api-driver: + optional: true + dependencies: + '@sqltools/formatter': 1.2.5 + app-root-path: 3.1.0 + buffer: 6.0.3 + chalk: 4.1.2 + cli-highlight: 2.1.11 + debug: 4.3.4 + dotenv: 8.6.0 + glob: 7.2.3 + js-yaml: 4.1.0 + mkdirp: 1.0.4 + mssql: 6.4.1 + mysql2: 2.3.3 + pg: 8.11.3 + reflect-metadata: 0.1.14 + sha.js: 2.4.11 + sqlite3: 5.1.7 + tslib: 2.6.2 + uuid: 8.3.2 + xml2js: 0.4.23 + yargs: 17.7.2 + zen-observable-ts: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /typeorm@0.3.20(pg@8.11.3)(ts-node@10.9.2): + resolution: {integrity: sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==} + engines: {node: '>=16.13.0'} + hasBin: true + peerDependencies: + '@google-cloud/spanner': ^5.18.0 + '@sap/hana-client': ^2.12.25 + better-sqlite3: ^7.1.2 || ^8.0.0 || ^9.0.0 + hdb-pool: ^0.1.6 + ioredis: ^5.0.4 + mongodb: ^5.8.0 + mssql: ^9.1.1 || ^10.0.1 + mysql2: ^2.2.5 || ^3.0.1 + oracledb: ^6.3.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 || ^4.0.0 + sql.js: ^1.4.0 + sqlite3: ^5.0.3 + ts-node: ^10.7.0 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + '@google-cloud/spanner': + optional: true + '@sap/hana-client': + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + ts-node: + optional: true + typeorm-aurora-data-api-driver: + optional: true + dependencies: + '@sqltools/formatter': 1.2.5 + app-root-path: 3.1.0 + buffer: 6.0.3 + chalk: 4.1.2 + cli-highlight: 2.1.11 + dayjs: 1.11.10 + debug: 4.3.4 + dotenv: 16.4.1 + glob: 10.3.10 + mkdirp: 2.1.6 + pg: 8.11.3 + reflect-metadata: 0.2.1 + sha.js: 2.4.11 + ts-node: 10.9.2(@swc/core@1.3.107)(@types/node@20.10.4)(typescript@5.3.3) + tslib: 2.6.2 + uuid: 9.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: false + /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} @@ -13450,7 +14418,6 @@ packages: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true - dev: true /ufo@1.3.2: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} @@ -13461,7 +14428,6 @@ packages: engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true - dev: true optional: true /uid@2.0.2: @@ -13479,6 +14445,10 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /underscore@1.13.6: + resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + dev: false + /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -13505,6 +14475,14 @@ packages: engines: {node: '>=4'} dev: true + /unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + requiresBuild: true + dependencies: + unique-slug: 2.0.2 + dev: false + optional: true + /unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -13512,6 +14490,14 @@ packages: unique-slug: 4.0.0 dev: true + /unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + requiresBuild: true + dependencies: + imurmurhash: 0.1.4 + dev: false + optional: true + /unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -13531,7 +14517,6 @@ packages: /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - dev: true /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} @@ -13575,6 +14560,18 @@ packages: picocolors: 1.0.0 dev: true + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: 2.6.2 + dev: false + + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + dependencies: + tslib: 2.6.2 + dev: false + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -13588,10 +14585,15 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: false + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - dev: true /uuid@9.0.0: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} @@ -13601,11 +14603,9 @@ packages: /uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - dev: true /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true /v8-to-istanbul@9.2.0: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} @@ -14064,7 +15064,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /which@4.0.0: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} @@ -14087,11 +15086,9 @@ packages: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 - dev: true /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -14109,7 +15106,6 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} @@ -14118,11 +15114,9 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true /write-file-atomic@2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} @@ -14182,6 +15176,32 @@ packages: optional: true dev: true + /xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.3.0 + xmlbuilder: 11.0.1 + dev: false + + /xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.3.0 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: false + + /xpath.js@1.1.0: + resolution: {integrity: sha512-jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ==} + engines: {node: '>=0.4.0'} + dev: false + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -14189,7 +15209,6 @@ packages: /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - dev: true /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} @@ -14210,12 +15229,10 @@ packages: /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} - dev: true /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - dev: true /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} @@ -14228,7 +15245,6 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} @@ -14241,12 +15257,10 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - dev: true /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} @@ -14270,6 +15284,17 @@ packages: commander: 9.5.0 dev: true + /zen-observable-ts@1.1.0: + resolution: {integrity: sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==} + dependencies: + '@types/zen-observable': 0.8.3 + zen-observable: 0.8.15 + dev: false + + /zen-observable@0.8.15: + resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} + dev: false + /zod-validation-error@2.1.0(zod@3.22.4): resolution: {integrity: sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==} engines: {node: '>=18.0.0'}