From 0efe830adbe4c12ba9ba235fd624177b437a4161 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Tue, 15 Sep 2026 22:06:23 -0300 Subject: [PATCH 01/58] =?UTF-8?q?feat:=20implementa=20cole=C3=A7=C3=B5es?= =?UTF-8?q?=20Evidencia=20e=20Expedi=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20260914100000_cria_tabela_expedicoes.ts | 44 ++ ...01_cria_tabela_expedicoes_participantes.ts | 47 ++ ...0914100002_cria_tabela_expedicoes_rotas.ts | 50 ++ .../20260915100000_cria_tabela_eventos.ts | 56 ++ ...60915100001_cria_tabela_eventos_coletas.ts | 52 ++ .../20260915100002_cria_tabela_evidencias.ts | 43 ++ src/domain/evento/Evento.ts | 107 ++++ src/domain/evento/EventoCollection.ts | 24 + src/domain/evidencia/Evidencia.ts | 52 ++ src/domain/evidencia/EvidenciaCollection.ts | 20 + src/domain/expedicao/Expedicao.ts | 64 +++ src/domain/expedicao/ExpedicaoCollection.ts | 22 + .../EventoCollectionKnexAdapter.ts | 185 +++++++ .../EvidenciaCollectionKnexAdapter.ts | 104 ++++ .../ExpedicaoCollectionKnexAdapter.ts | 152 ++++++ src/infrastructure/pg-column.ts | 7 + .../evento/evento-collection.test.ts | 227 ++++++++ .../evidencia/evidencia-collection.test.ts | 123 +++++ .../expedicao/expedicao-collection.test.ts | 137 +++++ test/integration/setup/app-factory.ts | 2 +- test/integration/setup/global-setup.ts | 8 +- test/integration/setup/schema.sql | 499 ++++++++++++++++++ .../integration/setup/seeds/expedicao.seed.ts | 77 +++ test/unit/domain/evento/Evento.test.ts | 101 ++++ test/unit/domain/evidencia/Evidencia.test.ts | 38 ++ test/unit/domain/expedicao/Expedicao.test.ts | 56 ++ 26 files changed, 2295 insertions(+), 2 deletions(-) create mode 100644 src/database/migration/20260914100000_cria_tabela_expedicoes.ts create mode 100644 src/database/migration/20260914100001_cria_tabela_expedicoes_participantes.ts create mode 100644 src/database/migration/20260914100002_cria_tabela_expedicoes_rotas.ts create mode 100644 src/database/migration/20260915100000_cria_tabela_eventos.ts create mode 100644 src/database/migration/20260915100001_cria_tabela_eventos_coletas.ts create mode 100644 src/database/migration/20260915100002_cria_tabela_evidencias.ts create mode 100644 src/domain/evento/Evento.ts create mode 100644 src/domain/evento/EventoCollection.ts create mode 100644 src/domain/evidencia/Evidencia.ts create mode 100644 src/domain/evidencia/EvidenciaCollection.ts create mode 100644 src/domain/expedicao/Expedicao.ts create mode 100644 src/domain/expedicao/ExpedicaoCollection.ts create mode 100644 src/infrastructure/EventoCollectionKnexAdapter.ts create mode 100644 src/infrastructure/EvidenciaCollectionKnexAdapter.ts create mode 100644 src/infrastructure/ExpedicaoCollectionKnexAdapter.ts create mode 100644 src/infrastructure/pg-column.ts create mode 100644 test/integration/evento/evento-collection.test.ts create mode 100644 test/integration/evidencia/evidencia-collection.test.ts create mode 100644 test/integration/expedicao/expedicao-collection.test.ts create mode 100644 test/integration/setup/seeds/expedicao.seed.ts create mode 100644 test/unit/domain/evento/Evento.test.ts create mode 100644 test/unit/domain/evidencia/Evidencia.test.ts create mode 100644 test/unit/domain/expedicao/Expedicao.test.ts diff --git a/src/database/migration/20260914100000_cria_tabela_expedicoes.ts b/src/database/migration/20260914100000_cria_tabela_expedicoes.ts new file mode 100644 index 00000000..3a789a3a --- /dev/null +++ b/src/database/migration/20260914100000_cria_tabela_expedicoes.ts @@ -0,0 +1,44 @@ +import { Knex } from 'knex' + +export async function run(knex: Knex): Promise { + const hasTable = await knex.schema.hasTable('expedicoes') + if (hasTable) { + return + } + + await knex.transaction(async trx => { + await trx.schema.createTable('expedicoes', table => { + table.increments('id').primary() + + table.text('descricao').nullable() + table.date('data_inicio').notNullable() + table.date('data_fim').notNullable() + + table.bigInteger('cidade_id').notNullable() + table.foreign('cidade_id') + .references('id') + .inTable('cidades') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.timestamp('created_at').notNullable().defaultTo(trx.fn.now()) + table.timestamp('updated_at').notNullable().defaultTo(trx.fn.now()) + + table.bigInteger('created_by').nullable() + table.foreign('created_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.bigInteger('updated_by').nullable() + table.foreign('updated_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.index('cidade_id', 'expedicoes_cidade_id_index') + }) + }) +} diff --git a/src/database/migration/20260914100001_cria_tabela_expedicoes_participantes.ts b/src/database/migration/20260914100001_cria_tabela_expedicoes_participantes.ts new file mode 100644 index 00000000..5eebd384 --- /dev/null +++ b/src/database/migration/20260914100001_cria_tabela_expedicoes_participantes.ts @@ -0,0 +1,47 @@ +import { Knex } from 'knex' + +export async function run(knex: Knex): Promise { + const hasTable = await knex.schema.hasTable('expedicoes_participantes') + if (hasTable) { + return + } + + await knex.transaction(async trx => { + await trx.schema.createTable('expedicoes_participantes', table => { + table.increments('id').primary() + + table.integer('expedicao_id').notNullable() + table.foreign('expedicao_id') + .references('id') + .inTable('expedicoes') + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table.bigInteger('usuario_id').notNullable() + table.foreign('usuario_id') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.timestamp('created_at').notNullable().defaultTo(trx.fn.now()) + table.timestamp('updated_at').notNullable().defaultTo(trx.fn.now()) + + table.bigInteger('created_by').nullable() + table.foreign('created_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.bigInteger('updated_by').nullable() + table.foreign('updated_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.unique(['expedicao_id', 'usuario_id'], { indexName: 'expedicoes_participantes_expedicao_id_usuario_id_unique' }) + }) + }) +} diff --git a/src/database/migration/20260914100002_cria_tabela_expedicoes_rotas.ts b/src/database/migration/20260914100002_cria_tabela_expedicoes_rotas.ts new file mode 100644 index 00000000..ba2844da --- /dev/null +++ b/src/database/migration/20260914100002_cria_tabela_expedicoes_rotas.ts @@ -0,0 +1,50 @@ +import { Knex } from 'knex' + +export async function run(knex: Knex): Promise { + const hasTable = await knex.schema.hasTable('expedicoes_rotas') + if (hasTable) { + return + } + + await knex.transaction(async trx => { + await trx.schema.createTable('expedicoes_rotas', table => { + table.increments('id').primary() + + table.integer('expedicao_id').notNullable() + table.foreign('expedicao_id') + .references('id') + .inTable('expedicoes') + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table.bigInteger('cidade_id').notNullable() + table.foreign('cidade_id') + .references('id') + .inTable('cidades') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.specificType('ordem', 'smallint').notNullable() + + table.timestamp('created_at').notNullable().defaultTo(trx.fn.now()) + table.timestamp('updated_at').notNullable().defaultTo(trx.fn.now()) + + table.bigInteger('created_by').nullable() + table.foreign('created_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.bigInteger('updated_by').nullable() + table.foreign('updated_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.unique(['expedicao_id', 'ordem'], { indexName: 'expedicoes_rotas_expedicao_id_ordem_unique' }) + table.index('cidade_id', 'expedicoes_rotas_cidade_id_index') + }) + }) +} diff --git a/src/database/migration/20260915100000_cria_tabela_eventos.ts b/src/database/migration/20260915100000_cria_tabela_eventos.ts new file mode 100644 index 00000000..446e928e --- /dev/null +++ b/src/database/migration/20260915100000_cria_tabela_eventos.ts @@ -0,0 +1,56 @@ +import { Knex } from 'knex' + +export async function run(knex: Knex): Promise { + const hasTable = await knex.schema.hasTable('eventos') + if (hasTable) { + return + } + + await knex.transaction(async trx => { + await trx.schema.createTable('eventos', table => { + table.increments('id').primary() + + table.integer('expedicao_id').notNullable() + table.foreign('expedicao_id') + .references('id') + .inTable('expedicoes') + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table.text('tipo').notNullable() + table.timestamp('capturado_em').notNullable() + + table.double('latitude').nullable() + table.double('longitude').nullable() + table.double('altitude').nullable() + + table.text('observacoes').nullable() + + table.timestamp('created_at').notNullable().defaultTo(trx.fn.now()) + table.timestamp('updated_at').notNullable().defaultTo(trx.fn.now()) + + table.bigInteger('created_by').nullable() + table.foreign('created_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.bigInteger('updated_by').nullable() + table.foreign('updated_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.check('?? in (?, ?)', [ + 'tipo', + 'DIARIO', + 'COLETA' + ], 'eventos_tipo_check') + + table.index('expedicao_id', 'eventos_expedicao_id_index') + table.index('capturado_em', 'eventos_capturado_em_index') + }) + }) +} diff --git a/src/database/migration/20260915100001_cria_tabela_eventos_coletas.ts b/src/database/migration/20260915100001_cria_tabela_eventos_coletas.ts new file mode 100644 index 00000000..1b49ea90 --- /dev/null +++ b/src/database/migration/20260915100001_cria_tabela_eventos_coletas.ts @@ -0,0 +1,52 @@ +import { Knex } from 'knex' + +/** + * Ficha botânica de campo. Existe apenas para eventos com tipo = 'COLETA'; a + * garantia de que toda coleta tem a sua é da transação do adapter, já que uma + * constraint entre tabelas não é expressável aqui. + * + * Os campos são strings planas, não FKs para familias/cidades/vegetacoes/solos/ + * relevos: a captura é offline e a determinação é provisória. A normalização + * acontece na promoção a tombo. + */ +const CAMPOS_DA_FICHA = [ + 'familia', + 'nome_popular', + 'nome_cientifico', + 'municipio', + 'estado', + 'referencia_local', + 'tipo_vegetacao', + 'solo', + 'relevo', + 'substrato', + 'tronco_com_casca', + 'associacoes', + 'folhas', + 'habito', + 'frutos', + 'flores', + 'luminosidade' +] + +export async function run(knex: Knex): Promise { + const hasTable = await knex.schema.hasTable('eventos_coletas') + if (hasTable) { + return + } + + await knex.transaction(async trx => { + await trx.schema.createTable('eventos_coletas', table => { + table.integer('evento_id').primary() + table.foreign('evento_id') + .references('id') + .inTable('eventos') + .onDelete('CASCADE') + .onUpdate('CASCADE') + + CAMPOS_DA_FICHA.forEach(campo => { + table.text(campo).nullable() + }) + }) + }) +} diff --git a/src/database/migration/20260915100002_cria_tabela_evidencias.ts b/src/database/migration/20260915100002_cria_tabela_evidencias.ts new file mode 100644 index 00000000..5b871010 --- /dev/null +++ b/src/database/migration/20260915100002_cria_tabela_evidencias.ts @@ -0,0 +1,43 @@ +import { Knex } from 'knex' + +export async function run(knex: Knex): Promise { + const hasTable = await knex.schema.hasTable('evidencias') + if (hasTable) { + return + } + + await knex.transaction(async trx => { + await trx.schema.createTable('evidencias', table => { + table.increments('id').primary() + + table.integer('evento_id').notNullable() + table.foreign('evento_id') + .references('id') + .inTable('eventos') + .onDelete('CASCADE') + .onUpdate('CASCADE') + + table.string('nome', 255).notNullable() + table.timestamp('capturado_em').notNullable() + + table.timestamp('created_at').notNullable().defaultTo(trx.fn.now()) + table.timestamp('updated_at').notNullable().defaultTo(trx.fn.now()) + + table.bigInteger('created_by').nullable() + table.foreign('created_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.bigInteger('updated_by').nullable() + table.foreign('updated_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.index('evento_id', 'evidencias_evento_id_index') + }) + }) +} diff --git a/src/domain/evento/Evento.ts b/src/domain/evento/Evento.ts new file mode 100644 index 00000000..7813a99c --- /dev/null +++ b/src/domain/evento/Evento.ts @@ -0,0 +1,107 @@ +import { Either } from '@/library/either/Either' + +export const EVENTO_TIPOS = ['DIARIO', 'COLETA'] as const + +export type EventoTipo = typeof EVENTO_TIPOS[number] + +export interface ColetaAttributes { + familia: string | null + nome_popular: string | null + nome_cientifico: string | null + municipio: string | null + estado: string | null + referencia_local: string | null + tipo_vegetacao: string | null + solo: string | null + relevo: string | null + substrato: string | null + tronco_com_casca: string | null + associacoes: string | null + folhas: string | null + habito: string | null + frutos: string | null + flores: string | null + luminosidade: string | null +} + +export interface Attributes { + id: number + expedicao_id: number + tipo: EventoTipo + capturado_em: Date + latitude: number | null + longitude: number | null + altitude: number | null + observacoes: string | null + coleta: ColetaAttributes | null + created_at: Date + updated_at: Date + created_by: number | null + updated_by: number | null +} + +export type CreateAttributes = Omit + +export class Evento { + readonly id: number + readonly expedicao_id: number + readonly tipo: EventoTipo + readonly capturado_em: Date + readonly latitude: number | null + readonly longitude: number | null + readonly altitude: number | null + readonly observacoes: string | null + readonly coleta: ColetaAttributes | null + readonly created_at: Date + readonly updated_at: Date + readonly created_by: number | null + readonly updated_by: number | null + + private constructor(attributes: Attributes) { + this.id = attributes.id + this.expedicao_id = attributes.expedicao_id + this.tipo = attributes.tipo + this.capturado_em = attributes.capturado_em + this.latitude = attributes.latitude + this.longitude = attributes.longitude + this.altitude = attributes.altitude + this.observacoes = attributes.observacoes + this.coleta = attributes.coleta + this.created_at = attributes.created_at + this.updated_at = attributes.updated_at + this.created_by = attributes.created_by + this.updated_by = attributes.updated_by + } + + static create(attributes: Attributes): Either { + if (!Number.isInteger(attributes.expedicao_id) || attributes.expedicao_id <= 0) { + return Either.left(new Error('Expedição do evento é obrigatória')) + } + + if (!EVENTO_TIPOS.includes(attributes.tipo)) { + return Either.left(new Error(`Tipo do evento deve ser um de: ${EVENTO_TIPOS.join(', ')}`)) + } + + if (Number.isNaN(attributes.capturado_em.getTime())) { + return Either.left(new Error('Instante de captura do evento é inválido')) + } + + if (attributes.tipo === 'COLETA' && !attributes.coleta) { + return Either.left(new Error('Evento de coleta exige a ficha de coleta')) + } + + if (attributes.tipo === 'DIARIO' && attributes.coleta) { + return Either.left(new Error('Evento de diário não pode ter ficha de coleta')) + } + + if (attributes.latitude !== null && (attributes.latitude < -90 || attributes.latitude > 90)) { + return Either.left(new Error('Latitude do evento deve estar entre -90 e 90')) + } + + if (attributes.longitude !== null && (attributes.longitude < -180 || attributes.longitude > 180)) { + return Either.left(new Error('Longitude do evento deve estar entre -180 e 180')) + } + + return Either.right(new Evento(attributes)) + } +} diff --git a/src/domain/evento/EventoCollection.ts b/src/domain/evento/EventoCollection.ts new file mode 100644 index 00000000..f329460d --- /dev/null +++ b/src/domain/evento/EventoCollection.ts @@ -0,0 +1,24 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, CreateAttributes, EventoTipo +} from './Evento' + +export interface EventoOrder { + column: 'id' | 'capturado_em' + direction: 'asc' | 'desc' +} + +export interface EventoFilters { + expedicao_id?: number + tipo?: EventoTipo + capturado_de?: Date + capturado_ate?: Date + order?: EventoOrder +} + +export interface EventoCollection { + findAll(filters: EventoFilters): Promise> + findById(id: number): Promise> + create(attributes: CreateAttributes): Promise> +} diff --git a/src/domain/evidencia/Evidencia.ts b/src/domain/evidencia/Evidencia.ts new file mode 100644 index 00000000..b1b4708d --- /dev/null +++ b/src/domain/evidencia/Evidencia.ts @@ -0,0 +1,52 @@ +import { Either } from '@/library/either/Either' + +export interface Attributes { + id: number + evento_id: number + nome: string + capturado_em: Date + created_at: Date + updated_at: Date + created_by: number | null + updated_by: number | null +} + +export type CreateAttributes = Omit + +export class Evidencia { + readonly id: number + readonly evento_id: number + readonly nome: string + readonly capturado_em: Date + readonly created_at: Date + readonly updated_at: Date + readonly created_by: number | null + readonly updated_by: number | null + + private constructor(attributes: Attributes) { + this.id = attributes.id + this.evento_id = attributes.evento_id + this.nome = attributes.nome + this.capturado_em = attributes.capturado_em + this.created_at = attributes.created_at + this.updated_at = attributes.updated_at + this.created_by = attributes.created_by + this.updated_by = attributes.updated_by + } + + static create(attributes: Attributes): Either { + if (!Number.isInteger(attributes.evento_id) || attributes.evento_id <= 0) { + return Either.left(new Error('Evento da evidência é obrigatório')) + } + + if (!attributes.nome.trim()) { + return Either.left(new Error('Nome da evidência não pode ser vazio')) + } + + if (Number.isNaN(attributes.capturado_em.getTime())) { + return Either.left(new Error('Instante de captura da evidência é inválido')) + } + + return Either.right(new Evidencia(attributes)) + } +} diff --git a/src/domain/evidencia/EvidenciaCollection.ts b/src/domain/evidencia/EvidenciaCollection.ts new file mode 100644 index 00000000..d6fbae1e --- /dev/null +++ b/src/domain/evidencia/EvidenciaCollection.ts @@ -0,0 +1,20 @@ +import { Either } from '@/library/either/Either' + +import { Attributes, CreateAttributes } from './Evidencia' + +export interface EvidenciaOrder { + column: 'id' | 'nome' | 'capturado_em' + direction: 'asc' | 'desc' +} + +export interface EvidenciaFilters { + evento_id?: number + nome?: string + order?: EvidenciaOrder +} + +export interface EvidenciaCollection { + findAll(filters: EvidenciaFilters): Promise> + findById(id: number): Promise> + create(attributes: CreateAttributes): Promise> +} diff --git a/src/domain/expedicao/Expedicao.ts b/src/domain/expedicao/Expedicao.ts new file mode 100644 index 00000000..1c99f99e --- /dev/null +++ b/src/domain/expedicao/Expedicao.ts @@ -0,0 +1,64 @@ +import { Either } from '@/library/either/Either' + +export interface Attributes { + id: number + descricao: string | null + data_inicio: string + data_fim: string + cidade_id: number + created_at: Date + updated_at: Date + created_by: number | null + updated_by: number | null +} + +export type CreateAttributes = + Omit + & { + participantes: number[] + rotas: number[] + } + +export class Expedicao { + readonly id: number + readonly descricao: string | null + readonly data_inicio: string + readonly data_fim: string + readonly cidade_id: number + readonly created_at: Date + readonly updated_at: Date + readonly created_by: number | null + readonly updated_by: number | null + + private constructor(attributes: Attributes) { + this.id = attributes.id + this.descricao = attributes.descricao + this.data_inicio = attributes.data_inicio + this.data_fim = attributes.data_fim + this.cidade_id = attributes.cidade_id + this.created_at = attributes.created_at + this.updated_at = attributes.updated_at + this.created_by = attributes.created_by + this.updated_by = attributes.updated_by + } + + static create(attributes: Attributes): Either { + if (!attributes.data_inicio) { + return Either.left(new Error('Data de início da expedição é obrigatória')) + } + + if (!attributes.data_fim) { + return Either.left(new Error('Data de fim da expedição é obrigatória')) + } + + if (attributes.data_fim < attributes.data_inicio) { + return Either.left(new Error('Data de fim da expedição não pode ser anterior à data de início')) + } + + if (!Number.isInteger(attributes.cidade_id) || attributes.cidade_id <= 0) { + return Either.left(new Error('Cidade de destino da expedição é obrigatória')) + } + + return Either.right(new Expedicao(attributes)) + } +} diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts new file mode 100644 index 00000000..fbeaa0a4 --- /dev/null +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -0,0 +1,22 @@ +import { Either } from '@/library/either/Either' + +import { Attributes, CreateAttributes } from './Expedicao' + +export interface ExpedicaoOrder { + column: 'id' | 'data_inicio' | 'data_fim' + direction: 'asc' | 'desc' +} + +export interface ExpedicaoFilters { + cidade_id?: number + usuario_id?: number + data_inicio_de?: string + data_fim_ate?: string + order?: ExpedicaoOrder +} + +export interface ExpedicaoCollection { + findAll(filters: ExpedicaoFilters): Promise> + findById(id: number): Promise> + create(attributes: CreateAttributes): Promise> +} diff --git a/src/infrastructure/EventoCollectionKnexAdapter.ts b/src/infrastructure/EventoCollectionKnexAdapter.ts new file mode 100644 index 00000000..bda60696 --- /dev/null +++ b/src/infrastructure/EventoCollectionKnexAdapter.ts @@ -0,0 +1,185 @@ +import { Knex } from 'knex' + +import { + Attributes, ColetaAttributes, CreateAttributes, EventoTipo +} from '@/domain/evento/Evento' +import { EventoCollection, EventoFilters } from '@/domain/evento/EventoCollection' +import { Either } from '@/library/either/Either' + +import { CollectionError } from './error/CollectionError' +import { toNullableNumber } from './pg-column' + +interface Dependencies { + knex: Knex +} + +const CAMPOS_DA_FICHA = [ + 'familia', + 'nome_popular', + 'nome_cientifico', + 'municipio', + 'estado', + 'referencia_local', + 'tipo_vegetacao', + 'solo', + 'relevo', + 'substrato', + 'tronco_com_casca', + 'associacoes', + 'folhas', + 'habito', + 'frutos', + 'flores', + 'luminosidade' +] as const + +interface Row { + id: number + expedicao_id: number + tipo: EventoTipo + capturado_em: Date + latitude: number | null + longitude: number | null + altitude: number | null + observacoes: string | null + created_at: Date + updated_at: Date + created_by: string | null + updated_by: string | null + coleta_evento_id: number | null +} + +function toAttributes(row: Row & Record): Attributes { + let coleta: ColetaAttributes | null = null + + if (row.coleta_evento_id !== null) { + coleta = Object.fromEntries( + CAMPOS_DA_FICHA.map(campo => [campo, row[`coleta_${campo}`] ?? null]) + ) as unknown as ColetaAttributes + } + + return { + id: row.id, + expedicao_id: row.expedicao_id, + tipo: row.tipo, + capturado_em: row.capturado_em, + latitude: row.latitude, + longitude: row.longitude, + altitude: row.altitude, + observacoes: row.observacoes, + coleta, + created_at: row.created_at, + updated_at: row.updated_at, + created_by: toNullableNumber(row.created_by), + updated_by: toNullableNumber(row.updated_by) + } +} + +export class EventoCollectionKnexAdapter implements EventoCollection { + private readonly knex: Knex + + constructor(dependencies: Dependencies) { + this.knex = dependencies.knex + } + + private select(trx?: Knex.Transaction): Knex.QueryBuilder { + const knex = trx ?? this.knex + + return knex('eventos') + .leftJoin('eventos_coletas', 'eventos_coletas.evento_id', 'eventos.id') + .select([ + 'eventos.id', + 'eventos.expedicao_id', + 'eventos.tipo', + 'eventos.capturado_em', + 'eventos.latitude', + 'eventos.longitude', + 'eventos.altitude', + 'eventos.observacoes', + 'eventos.created_at', + 'eventos.updated_at', + 'eventos.created_by', + 'eventos.updated_by', + 'eventos_coletas.evento_id as coleta_evento_id', + ...CAMPOS_DA_FICHA.map(campo => `eventos_coletas.${campo} as coleta_${campo}`) + ]) + } + + async findAll(filters: EventoFilters): Promise> { + try { + const query = this.select() + + if (filters.expedicao_id) { + query.where('eventos.expedicao_id', filters.expedicao_id) + } + + if (filters.tipo) { + query.where('eventos.tipo', filters.tipo) + } + + if (filters.capturado_de) { + query.where('eventos.capturado_em', '>=', filters.capturado_de) + } + + if (filters.capturado_ate) { + query.where('eventos.capturado_em', '<=', filters.capturado_ate) + } + + const order = filters.order ?? { column: 'capturado_em' as const, direction: 'desc' as const } + query.orderBy(`eventos.${order.column}`, order.direction) + + const rows = await query as Array> + return Either.right(rows.map(toAttributes)) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to list eventos', cause: error })) + } + } + + async findById(id: number): Promise> { + try { + const row = await this.select() + .where('eventos.id', id) + .first() as (Row & Record) | undefined + + return Either.right(row ? toAttributes(row) : null) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to find evento by id', cause: error })) + } + } + + /** + * O evento e sua ficha nascem juntos ou não nascem: é a transação que garante + * que todo tipo='COLETA' tem linha em `eventos_coletas`. + */ + async create(attributes: CreateAttributes): Promise> { + try { + const created = await this.knex.transaction(async trx => { + const [{ id }] = await trx('eventos') + .insert({ + expedicao_id: attributes.expedicao_id, + tipo: attributes.tipo, + capturado_em: attributes.capturado_em, + latitude: attributes.latitude, + longitude: attributes.longitude, + altitude: attributes.altitude, + observacoes: attributes.observacoes, + created_by: attributes.created_by, + updated_by: attributes.created_by + }) + .returning>(['id']) + + if (attributes.coleta) { + await trx('eventos_coletas').insert({ evento_id: id, ...attributes.coleta }) + } + + return await this.select(trx) + .where('eventos.id', id) + .first() as Row & Record + }) + + return Either.right(toAttributes(created)) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to create evento', cause: error })) + } + } +} diff --git a/src/infrastructure/EvidenciaCollectionKnexAdapter.ts b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts new file mode 100644 index 00000000..48bf1fd0 --- /dev/null +++ b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts @@ -0,0 +1,104 @@ +import { Knex } from 'knex' + +import { Attributes, CreateAttributes } from '@/domain/evidencia/Evidencia' +import { EvidenciaCollection, EvidenciaFilters } from '@/domain/evidencia/EvidenciaCollection' +import { Either } from '@/library/either/Either' + +import { CollectionError } from './error/CollectionError' +import { toNullableNumber } from './pg-column' + +interface Dependencies { + knex: Knex +} + +interface Row { + id: number + evento_id: number + nome: string + capturado_em: Date + created_at: Date + updated_at: Date + created_by: string | null + updated_by: string | null +} + +const COLUMNS = [ + 'id', + 'evento_id', + 'nome', + 'capturado_em', + 'created_at', + 'updated_at', + 'created_by', + 'updated_by' +] + +function toAttributes(row: Row): Attributes { + return { + id: row.id, + evento_id: row.evento_id, + nome: row.nome, + capturado_em: row.capturado_em, + created_at: row.created_at, + updated_at: row.updated_at, + created_by: toNullableNumber(row.created_by), + updated_by: toNullableNumber(row.updated_by) + } +} + +export class EvidenciaCollectionKnexAdapter implements EvidenciaCollection { + private readonly knex: Knex + + constructor(dependencies: Dependencies) { + this.knex = dependencies.knex + } + + async findAll(filters: EvidenciaFilters): Promise> { + try { + const query = this.knex('evidencias').select(COLUMNS) + + if (filters.evento_id) { + query.where({ evento_id: filters.evento_id }) + } + + if (filters.nome) { + query.whereILike('nome', `%${filters.nome}%`) + } + + const order = filters.order ?? { column: 'id' as const, direction: 'desc' as const } + query.orderBy(order.column, order.direction) + + const rows = await query as Row[] + return Either.right(rows.map(toAttributes)) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to list evidências', cause: error })) + } + } + + async findById(id: number): Promise> { + try { + const row = await this.knex('evidencias').select(COLUMNS).where({ id }).first() as Row | undefined + return Either.right(row ? toAttributes(row) : null) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to find evidência by id', cause: error })) + } + } + + async create(attributes: CreateAttributes): Promise> { + try { + const [row] = await this.knex('evidencias') + .insert({ + evento_id: attributes.evento_id, + nome: attributes.nome, + capturado_em: attributes.capturado_em, + created_by: attributes.created_by, + updated_by: attributes.created_by + }) + .returning(COLUMNS) + + return Either.right(toAttributes(row)) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to create evidência', cause: error })) + } + } +} diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts new file mode 100644 index 00000000..85fcf963 --- /dev/null +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -0,0 +1,152 @@ +import { Knex } from 'knex' + +import { Attributes, CreateAttributes } from '@/domain/expedicao/Expedicao' +import { ExpedicaoCollection, ExpedicaoFilters } from '@/domain/expedicao/ExpedicaoCollection' +import { Either } from '@/library/either/Either' + +import { CollectionError } from './error/CollectionError' +import { toNullableNumber, toNumber } from './pg-column' + +interface Dependencies { + knex: Knex +} + +interface Row { + id: number + descricao: string | null + data_inicio: string + data_fim: string + cidade_id: string + created_at: Date + updated_at: Date + created_by: string | null + updated_by: string | null +} + +function toAttributes(row: Row): Attributes { + return { + id: row.id, + descricao: row.descricao, + data_inicio: row.data_inicio, + data_fim: row.data_fim, + cidade_id: toNumber(row.cidade_id), + created_at: row.created_at, + updated_at: row.updated_at, + created_by: toNullableNumber(row.created_by), + updated_by: toNullableNumber(row.updated_by) + } +} + +export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { + private readonly knex: Knex + + constructor(dependencies: Dependencies) { + this.knex = dependencies.knex + } + + private select(trx?: Knex.Transaction): Knex.QueryBuilder { + const knex = trx ?? this.knex + return knex('expedicoes').select([ + 'expedicoes.id', + 'expedicoes.descricao', + knex.raw('to_char(expedicoes.data_inicio, \'YYYY-MM-DD\') as data_inicio'), + knex.raw('to_char(expedicoes.data_fim, \'YYYY-MM-DD\') as data_fim'), + 'expedicoes.cidade_id', + 'expedicoes.created_at', + 'expedicoes.updated_at', + 'expedicoes.created_by', + 'expedicoes.updated_by' + ]) + } + + async findAll(filters: ExpedicaoFilters): Promise> { + try { + const query = this.select() + + if (filters.cidade_id) { + query.where('expedicoes.cidade_id', filters.cidade_id) + } + + if (filters.usuario_id) { + query.whereIn('expedicoes.id', this.knex('expedicoes_participantes') + .select('expedicao_id') + .where('usuario_id', filters.usuario_id)) + } + + if (filters.data_inicio_de) { + query.where('expedicoes.data_inicio', '>=', filters.data_inicio_de) + } + + if (filters.data_fim_ate) { + query.where('expedicoes.data_fim', '<=', filters.data_fim_ate) + } + + const order = filters.order ?? { column: 'id' as const, direction: 'desc' as const } + query.orderBy(`expedicoes.${order.column}`, order.direction) + + const rows = await query as Row[] + return Either.right(rows.map(toAttributes)) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to list expedições', cause: error })) + } + } + + async findById(id: number): Promise> { + try { + const row = await this.select().where('expedicoes.id', id).first() as Row | undefined + return Either.right(row ? toAttributes(row) : null) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to find expedição by id', cause: error })) + } + } + + /** + * Escrita multi-tabela: a expedição e suas junções nascem juntas ou não nascem. + * A posição de cada cidade em `rotas` define a coluna `ordem`. + */ + async create(attributes: CreateAttributes): Promise> { + const { + participantes, rotas, ...expedicao + } = attributes + + try { + const created = await this.knex.transaction(async trx => { + const [{ id }] = await trx('expedicoes') + .insert({ + descricao: expedicao.descricao, + data_inicio: expedicao.data_inicio, + data_fim: expedicao.data_fim, + cidade_id: expedicao.cidade_id, + created_by: expedicao.created_by, + updated_by: expedicao.created_by + }) + .returning<{ id: number }[]>(['id']) + + if (participantes.length > 0) { + await trx('expedicoes_participantes').insert(participantes.map(usuarioId => ({ + expedicao_id: id, + usuario_id: usuarioId, + created_by: expedicao.created_by, + updated_by: expedicao.created_by + }))) + } + + if (rotas.length > 0) { + await trx('expedicoes_rotas').insert(rotas.map((cidadeId, ordem) => ({ + expedicao_id: id, + cidade_id: cidadeId, + ordem, + created_by: expedicao.created_by, + updated_by: expedicao.created_by + }))) + } + + return await this.select(trx).where('expedicoes.id', id).first() as Row + }) + + return Either.right(toAttributes(created)) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to create expedição', cause: error })) + } + } +} diff --git a/src/infrastructure/pg-column.ts b/src/infrastructure/pg-column.ts new file mode 100644 index 00000000..a8626eab --- /dev/null +++ b/src/infrastructure/pg-column.ts @@ -0,0 +1,7 @@ +export function toNumber(value: unknown): number { + return Number(value) +} + +export function toNullableNumber(value: unknown): number | null { + return value === null || value === undefined ? null : Number(value) +} diff --git a/test/integration/evento/evento-collection.test.ts b/test/integration/evento/evento-collection.test.ts new file mode 100644 index 00000000..3a515dfb --- /dev/null +++ b/test/integration/evento/evento-collection.test.ts @@ -0,0 +1,227 @@ +import { + afterAll, beforeAll, describe, expect, test +} from 'vitest' + +import { ColetaAttributes, CreateAttributes } from '@/domain/evento/Evento' +import { EventoCollectionKnexAdapter } from '@/infrastructure/EventoCollectionKnexAdapter' + +import { createTestKnex } from '../setup/app-factory' +import { + cleanupExpedicaoFixtures, ExpedicaoFixtures, seedExpedicaoFixtures +} from '../setup/seeds/expedicao.seed' + +const ficha: ColetaAttributes = { + familia: 'Velloziaceae', + nome_popular: 'canela-de-ema', + nome_cientifico: 'Vellozia squamata', + municipio: 'Serra do Cipó', + estado: 'MG', + referencia_local: 'Trilha da cachoeira', + tipo_vegetacao: 'Campo rupestre', + solo: 'Arenoso', + relevo: 'Ondulado', + substrato: 'Afloramento rochoso', + tronco_com_casca: 'Sim, gretada', + associacoes: 'Lychnophora ericoides', + folhas: 'Lineares', + habito: 'Herbácea', + frutos: 'Ausentes', + flores: 'Lilases', + luminosidade: 'Pleno sol' +} + +describe('EventoCollectionKnexAdapter', () => { + const knex = createTestKnex() + const collection = new EventoCollectionKnexAdapter({ knex }) + + let fixtures: ExpedicaoFixtures + let expedicaoId: number + + beforeAll(async () => { + fixtures = await seedExpedicaoFixtures(knex) + + const [expedicao] = await knex('expedicoes') + .insert({ + descricao: 'XEXP eventos', + data_inicio: '2026-02-14', + data_fim: '2026-02-18', + cidade_id: fixtures.cidades[0] + }) + .returning>(['id']) + + expedicaoId = expedicao.id + }) + + afterAll(async () => { + await knex('expedicoes').where({ id: expedicaoId }).delete() + await cleanupExpedicaoFixtures(knex, fixtures) + await knex.destroy() + }) + + function novoDiario(): CreateAttributes { + return { + expedicao_id: expedicaoId, + tipo: 'DIARIO', + capturado_em: new Date('2026-02-15T13:15:00.000Z'), + latitude: -20.2510, + longitude: -46.4170, + altitude: 1200, + observacoes: 'Área de transição entre cerrado e campo rupestre.', + coleta: null, + created_by: fixtures.usuarios[0] + } + } + + function novaColeta(): CreateAttributes { + return { + ...novoDiario(), + tipo: 'COLETA', + capturado_em: new Date('2026-02-15T14:32:00.000Z'), + observacoes: null, + coleta: ficha + } + } + + test('grava o evento e sua ficha na mesma transação', async () => { + const created = await collection.create(novaColeta()) + + expect(created.right()).toBe(true) + if (!created.right()) return + + try { + expect(created.value.coleta).toEqual(ficha) + expect(created.value).toMatchObject({ + tipo: 'COLETA', latitude: -20.2510, altitude: 1200, created_by: fixtures.usuarios[0] + }) + + const fichas = await knex('eventos_coletas').where({ evento_id: created.value.id }) + expect(fichas).toHaveLength(1) + } finally { + await knex('eventos').where({ id: created.value.id }).delete() + } + }) + + test('um diário não cria linha em eventos_coletas', async () => { + const created = await collection.create(novoDiario()) + + expect(created.right()).toBe(true) + if (!created.right()) return + + try { + expect(created.value.coleta).toBeNull() + expect(created.value.observacoes).toBe('Área de transição entre cerrado e campo rupestre.') + + const fichas = await knex('eventos_coletas').where({ evento_id: created.value.id }) + expect(fichas).toHaveLength(0) + } finally { + await knex('eventos').where({ id: created.value.id }).delete() + } + }) + + test('não grava o evento quando a ficha falha', async () => { + const antes = await knex('eventos').where({ expedicao_id: expedicaoId }).count({ total: '*' }) + + const created = await collection.create({ + ...novaColeta(), + coleta: { ...ficha, coluna_inexistente: 'x' } as unknown as ColetaAttributes + }) + + expect(created.left()).toBe(true) + + const depois = await knex('eventos').where({ expedicao_id: expedicaoId }).count({ total: '*' }) + expect(depois).toEqual(antes) + }) + + test('o banco rejeita um tipo fora de DIARIO/COLETA', async () => { + const created = await collection.create({ ...novoDiario(), tipo: 'FOTO' as 'DIARIO' }) + + expect(created.left()).toBe(true) + }) + + test('preserva o instante de captura, distinto de created_at', async () => { + const created = await collection.create(novaColeta()) + + expect(created.right()).toBe(true) + if (!created.right()) return + + try { + expect(created.value.capturado_em.toISOString()).toBe('2026-02-15T14:32:00.000Z') + expect(created.value.created_at.getTime()).toBeGreaterThan(created.value.capturado_em.getTime()) + } finally { + await knex('eventos').where({ id: created.value.id }).delete() + } + }) + + test('ordena o feed pelo instante de captura, do mais recente para o mais antigo', async () => { + const cedo = await collection.create({ + ...novoDiario(), capturado_em: new Date('2026-02-15T08:00:00.000Z') + }) + const tarde = await collection.create({ + ...novaColeta(), capturado_em: new Date('2026-02-15T18:00:00.000Z') + }) + + expect(cedo.right() && tarde.right()).toBe(true) + if (!cedo.right() || !tarde.right()) return + + try { + const found = await collection.findAll({ expedicao_id: expedicaoId }) + expect(found.right()).toBe(true) + if (!found.right()) return + + expect(found.value.map(evento => evento.id)).toEqual([tarde.value.id, cedo.value.id]) + } finally { + await knex('eventos').whereIn('id', [cedo.value.id, tarde.value.id]).delete() + } + }) + + test('filtra por tipo', async () => { + const diario = await collection.create(novoDiario()) + const coleta = await collection.create(novaColeta()) + + expect(diario.right() && coleta.right()).toBe(true) + if (!diario.right() || !coleta.right()) return + + try { + const found = await collection.findAll({ expedicao_id: expedicaoId, tipo: 'COLETA' }) + expect(found.right()).toBe(true) + if (!found.right()) return + + expect(found.value.map(evento => evento.id)).toEqual([coleta.value.id]) + expect(found.value[0].coleta).toEqual(ficha) + } finally { + await knex('eventos').whereIn('id', [diario.value.id, coleta.value.id]).delete() + } + }) + + test('apaga eventos e fichas junto com a expedição', async () => { + const [expedicao] = await knex('expedicoes') + .insert({ + descricao: 'XEXP cascata', + data_inicio: '2026-03-01', + data_fim: '2026-03-02', + cidade_id: fixtures.cidades[0] + }) + .returning>(['id']) + + const created = await collection.create({ ...novaColeta(), expedicao_id: expedicao.id }) + expect(created.right()).toBe(true) + if (!created.right()) return + + await knex('expedicoes').where({ id: expedicao.id }).delete() + + const found = await collection.findById(created.value.id) + expect(found.right()).toBe(true) + if (!found.right()) return + expect(found.value).toBeNull() + + const fichas = await knex('eventos_coletas').where({ evento_id: created.value.id }) + expect(fichas).toHaveLength(0) + }) + + test('devolve null quando o evento não existe', async () => { + const found = await collection.findById(-1) + expect(found.right()).toBe(true) + if (!found.right()) return + expect(found.value).toBeNull() + }) +}) diff --git a/test/integration/evidencia/evidencia-collection.test.ts b/test/integration/evidencia/evidencia-collection.test.ts new file mode 100644 index 00000000..17359083 --- /dev/null +++ b/test/integration/evidencia/evidencia-collection.test.ts @@ -0,0 +1,123 @@ +import { + afterAll, beforeAll, describe, expect, test +} from 'vitest' + +import { EvidenciaCollectionKnexAdapter } from '@/infrastructure/EvidenciaCollectionKnexAdapter' + +import { createTestKnex } from '../setup/app-factory' +import { + cleanupExpedicaoFixtures, ExpedicaoFixtures, seedExpedicaoFixtures +} from '../setup/seeds/expedicao.seed' + +describe('EvidenciaCollectionKnexAdapter', () => { + const knex = createTestKnex() + const collection = new EvidenciaCollectionKnexAdapter({ knex }) + + let fixtures: ExpedicaoFixtures + let expedicaoId: number + let eventoId: number + + beforeAll(async () => { + fixtures = await seedExpedicaoFixtures(knex) + + const [expedicao] = await knex('expedicoes') + .insert({ + descricao: 'XEXP evidências', + data_inicio: '2026-02-14', + data_fim: '2026-02-18', + cidade_id: fixtures.cidades[0] + }) + .returning>(['id']) + expedicaoId = expedicao.id + + const [evento] = await knex('eventos') + .insert({ + expedicao_id: expedicaoId, tipo: 'DIARIO', capturado_em: new Date('2026-02-15T13:15:00.000Z') + }) + .returning>(['id']) + eventoId = evento.id + }) + + afterAll(async () => { + await knex('expedicoes').where({ id: expedicaoId }).delete() + await cleanupExpedicaoFixtures(knex, fixtures) + await knex.destroy() + }) + + test('preserva o instante de captura, distinto de created_at', async () => { + const capturadoEm = new Date('2026-02-15T14:30:00.000Z') + + const created = await collection.create({ + evento_id: eventoId, + nome: 'IMG_0042.jpg', + capturado_em: capturadoEm, + created_by: fixtures.usuarios[0] + }) + + expect(created.right()).toBe(true) + if (!created.right()) return + + try { + expect(created.value.capturado_em.toISOString()).toBe(capturadoEm.toISOString()) + expect(created.value.created_at.getTime()).toBeGreaterThan(capturadoEm.getTime()) + expect(created.value.updated_by).toBe(fixtures.usuarios[0]) + } finally { + await knex('evidencias').where({ id: created.value.id }).delete() + } + }) + + test('lista as evidências de um evento ordenadas por instante de captura', async () => { + const tarde = await collection.create({ + evento_id: eventoId, nome: 'b.jpg', capturado_em: new Date('2026-02-15T18:00:00.000Z'), created_by: null + }) + const cedo = await collection.create({ + evento_id: eventoId, nome: 'a.jpg', capturado_em: new Date('2026-02-15T08:00:00.000Z'), created_by: null + }) + + expect(tarde.right() && cedo.right()).toBe(true) + if (!tarde.right() || !cedo.right()) return + + try { + const found = await collection.findAll({ + evento_id: eventoId, + order: { column: 'capturado_em', direction: 'asc' } + }) + + expect(found.right()).toBe(true) + if (!found.right()) return + + expect(found.value.map(evidencia => evidencia.nome)).toEqual(['a.jpg', 'b.jpg']) + } finally { + await knex('evidencias').whereIn('id', [tarde.value.id, cedo.value.id]).delete() + } + }) + + test('rejeita evidência de um evento inexistente', async () => { + const created = await collection.create({ + evento_id: -1, nome: 'c.jpg', capturado_em: new Date(), created_by: null + }) + + expect(created.left()).toBe(true) + }) + + test('apaga as evidências junto com o evento', async () => { + const [evento] = await knex('eventos') + .insert({ + expedicao_id: expedicaoId, tipo: 'COLETA', capturado_em: new Date('2026-02-16T10:00:00.000Z') + }) + .returning>(['id']) + + const created = await collection.create({ + evento_id: evento.id, nome: 'd.jpg', capturado_em: new Date(), created_by: null + }) + expect(created.right()).toBe(true) + if (!created.right()) return + + await knex('eventos').where({ id: evento.id }).delete() + + const found = await collection.findById(created.value.id) + expect(found.right()).toBe(true) + if (!found.right()) return + expect(found.value).toBeNull() + }) +}) diff --git a/test/integration/expedicao/expedicao-collection.test.ts b/test/integration/expedicao/expedicao-collection.test.ts new file mode 100644 index 00000000..fc21cf95 --- /dev/null +++ b/test/integration/expedicao/expedicao-collection.test.ts @@ -0,0 +1,137 @@ +import { + afterAll, beforeAll, describe, expect, test +} from 'vitest' + +import { ExpedicaoCollectionKnexAdapter } from '@/infrastructure/ExpedicaoCollectionKnexAdapter' + +import { createTestKnex } from '../setup/app-factory' +import { + cleanupExpedicaoFixtures, ExpedicaoFixtures, seedExpedicaoFixtures +} from '../setup/seeds/expedicao.seed' + +describe('ExpedicaoCollectionKnexAdapter', () => { + const knex = createTestKnex() + const collection = new ExpedicaoCollectionKnexAdapter({ knex }) + + let fixtures: ExpedicaoFixtures + + beforeAll(async () => { + fixtures = await seedExpedicaoFixtures(knex) + }) + + afterAll(async () => { + await knex('expedicoes').whereIn('cidade_id', fixtures.cidades).delete() + await cleanupExpedicaoFixtures(knex, fixtures) + await knex.destroy() + }) + + function novaExpedicao() { + return { + descricao: 'Coleta no litoral', + data_inicio: '2026-03-01', + data_fim: '2026-03-10', + cidade_id: fixtures.cidades[0], + created_by: fixtures.usuarios[0], + participantes: fixtures.usuarios, + rotas: [ + fixtures.cidades[1], + fixtures.cidades[2], + fixtures.cidades[1] + ] + } + } + + test('grava a expedição, seus participantes e suas rotas na mesma transação', async () => { + const created = await collection.create(novaExpedicao()) + + expect(created.right()).toBe(true) + if (!created.right()) return + + try { + expect(created.value).toMatchObject({ + descricao: 'Coleta no litoral', + data_inicio: '2026-03-01', + data_fim: '2026-03-10', + cidade_id: fixtures.cidades[0], + created_by: fixtures.usuarios[0], + updated_by: fixtures.usuarios[0] + }) + + const participantes = await knex('expedicoes_participantes') + .where({ expedicao_id: created.value.id }) + .orderBy('id') as Array<{ usuario_id: string }> + expect(participantes.map(participante => Number(participante.usuario_id))).toEqual(fixtures.usuarios) + + const rotas = await knex('expedicoes_rotas') + .where({ expedicao_id: created.value.id }) + .orderBy('ordem') as Array<{ ordem: number; cidade_id: string }> + expect(rotas.map(rota => [rota.ordem, Number(rota.cidade_id)])).toEqual([ + [0, fixtures.cidades[1]], + [1, fixtures.cidades[2]], + [2, fixtures.cidades[1]] + ]) + } finally { + await knex('expedicoes').where({ id: created.value.id }).delete() + } + }) + + test('não grava nada quando um participante não existe', async () => { + const antes = await knex('expedicoes').whereIn('cidade_id', fixtures.cidades).count({ total: '*' }) + + const created = await collection.create({ + ...novaExpedicao(), + participantes: [fixtures.usuarios[0], -1] + }) + + expect(created.left()).toBe(true) + + const depois = await knex('expedicoes').whereIn('cidade_id', fixtures.cidades).count({ total: '*' }) + expect(depois).toEqual(antes) + }) + + test('devolve a data civil sem deslocamento de fuso', async () => { + const created = await collection.create({ + ...novaExpedicao(), + data_inicio: '2026-01-01', + data_fim: '2026-01-01' + }) + + expect(created.right()).toBe(true) + if (!created.right()) return + + try { + const found = await collection.findById(created.value.id) + expect(found.right()).toBe(true) + if (!found.right()) return + + expect(found.value).toMatchObject({ data_inicio: '2026-01-01', data_fim: '2026-01-01' }) + } finally { + await knex('expedicoes').where({ id: created.value.id }).delete() + } + }) + + test('filtra por participante', async () => { + const comAna = await collection.create({ ...novaExpedicao(), participantes: [fixtures.usuarios[0]] }) + const comBruno = await collection.create({ ...novaExpedicao(), participantes: [fixtures.usuarios[1]] }) + + expect(comAna.right() && comBruno.right()).toBe(true) + if (!comAna.right() || !comBruno.right()) return + + try { + const found = await collection.findAll({ usuario_id: fixtures.usuarios[1] }) + expect(found.right()).toBe(true) + if (!found.right()) return + + expect(found.value.map(expedicao => expedicao.id)).toEqual([comBruno.value.id]) + } finally { + await knex('expedicoes').whereIn('id', [comAna.value.id, comBruno.value.id]).delete() + } + }) + + test('devolve null quando a expedição não existe', async () => { + const found = await collection.findById(-1) + expect(found.right()).toBe(true) + if (!found.right()) return + expect(found.value).toBeNull() + }) +}) diff --git a/test/integration/setup/app-factory.ts b/test/integration/setup/app-factory.ts index 238d7cfb..299d2eca 100644 --- a/test/integration/setup/app-factory.ts +++ b/test/integration/setup/app-factory.ts @@ -4,7 +4,7 @@ import supertest from 'supertest' import { createApp } from '@/application/create-app' import { ConsoleLogger } from '@/infrastructure/ConsoleLogger' -function createTestKnex(): Knex { +export function createTestKnex(): Knex { return knex({ client: 'postgres', connection: { diff --git a/test/integration/setup/global-setup.ts b/test/integration/setup/global-setup.ts index 12b00421..468a51e0 100644 --- a/test/integration/setup/global-setup.ts +++ b/test/integration/setup/global-setup.ts @@ -10,7 +10,13 @@ try { const TABLES = [ 'estados', 'paises', - 'fase_sucessional' + 'fase_sucessional', + 'evidencias', + 'eventos_coletas', + 'eventos', + 'expedicoes_rotas', + 'expedicoes_participantes', + 'expedicoes' ] async function truncateTables(knex: Knex): Promise { diff --git a/test/integration/setup/schema.sql b/test/integration/setup/schema.sql index 99ab6f08..c14ca8b8 100644 --- a/test/integration/setup/schema.sql +++ b/test/integration/setup/schema.sql @@ -3011,3 +3011,502 @@ ALTER TABLE ONLY public.variedades -- \unrestrict 6jAa2KinsvKEOg1UbHoVMtEdyuVatRpHS5aFz6F6xH4vaNfTZHZIHyPU01e9TJ8 + + +-- +-- Modulo Expedicao: expedicoes, expedicoes_participantes, expedicoes_rotas, +-- eventos, eventos_coletas, evidencias +-- Migrations 20260914100000..02 e 20260915100000..02 +-- +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- Name: eventos; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.eventos ( + id integer NOT NULL, + expedicao_id integer NOT NULL, + tipo text NOT NULL, + capturado_em timestamp with time zone NOT NULL, + latitude double precision, + longitude double precision, + altitude double precision, + observacoes text, + created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + created_by bigint, + updated_by bigint, + CONSTRAINT eventos_tipo_check CHECK ((tipo = ANY (ARRAY['DIARIO'::text, 'COLETA'::text]))) +); + + +-- +-- Name: eventos_coletas; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.eventos_coletas ( + evento_id integer NOT NULL, + familia text, + nome_popular text, + nome_cientifico text, + municipio text, + estado text, + referencia_local text, + tipo_vegetacao text, + solo text, + relevo text, + substrato text, + tronco_com_casca text, + associacoes text, + folhas text, + habito text, + frutos text, + flores text, + luminosidade text +); + + +-- +-- Name: eventos_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.eventos_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: eventos_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.eventos_id_seq OWNED BY public.eventos.id; + + +-- +-- Name: evidencias; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.evidencias ( + id integer NOT NULL, + evento_id integer NOT NULL, + nome character varying(255) NOT NULL, + capturado_em timestamp with time zone NOT NULL, + created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + created_by bigint, + updated_by bigint +); + + +-- +-- Name: evidencias_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.evidencias_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: evidencias_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.evidencias_id_seq OWNED BY public.evidencias.id; + + +-- +-- Name: expedicoes; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.expedicoes ( + id integer NOT NULL, + descricao text, + data_inicio date NOT NULL, + data_fim date NOT NULL, + cidade_id bigint NOT NULL, + created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + created_by bigint, + updated_by bigint +); + + +-- +-- Name: expedicoes_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.expedicoes_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: expedicoes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.expedicoes_id_seq OWNED BY public.expedicoes.id; + + +-- +-- Name: expedicoes_participantes; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.expedicoes_participantes ( + id integer NOT NULL, + expedicao_id integer NOT NULL, + usuario_id bigint NOT NULL, + created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + created_by bigint, + updated_by bigint +); + + +-- +-- Name: expedicoes_participantes_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.expedicoes_participantes_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: expedicoes_participantes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.expedicoes_participantes_id_seq OWNED BY public.expedicoes_participantes.id; + + +-- +-- Name: expedicoes_rotas; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.expedicoes_rotas ( + id integer NOT NULL, + expedicao_id integer NOT NULL, + cidade_id bigint NOT NULL, + ordem smallint NOT NULL, + created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + created_by bigint, + updated_by bigint +); + + +-- +-- Name: expedicoes_rotas_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.expedicoes_rotas_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: expedicoes_rotas_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.expedicoes_rotas_id_seq OWNED BY public.expedicoes_rotas.id; + + +-- +-- Name: eventos id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.eventos ALTER COLUMN id SET DEFAULT nextval('public.eventos_id_seq'::regclass); + + +-- +-- Name: evidencias id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.evidencias ALTER COLUMN id SET DEFAULT nextval('public.evidencias_id_seq'::regclass); + + +-- +-- Name: expedicoes id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes ALTER COLUMN id SET DEFAULT nextval('public.expedicoes_id_seq'::regclass); + + +-- +-- Name: expedicoes_participantes id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_participantes ALTER COLUMN id SET DEFAULT nextval('public.expedicoes_participantes_id_seq'::regclass); + + +-- +-- Name: expedicoes_rotas id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_rotas ALTER COLUMN id SET DEFAULT nextval('public.expedicoes_rotas_id_seq'::regclass); + + +-- +-- Name: eventos_coletas eventos_coletas_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.eventos_coletas + ADD CONSTRAINT eventos_coletas_pkey PRIMARY KEY (evento_id); + + +-- +-- Name: eventos eventos_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.eventos + ADD CONSTRAINT eventos_pkey PRIMARY KEY (id); + + +-- +-- Name: evidencias evidencias_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.evidencias + ADD CONSTRAINT evidencias_pkey PRIMARY KEY (id); + + +-- +-- Name: expedicoes_participantes expedicoes_participantes_expedicao_id_usuario_id_unique; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_participantes + ADD CONSTRAINT expedicoes_participantes_expedicao_id_usuario_id_unique UNIQUE (expedicao_id, usuario_id); + + +-- +-- Name: expedicoes_participantes expedicoes_participantes_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_participantes + ADD CONSTRAINT expedicoes_participantes_pkey PRIMARY KEY (id); + + +-- +-- Name: expedicoes expedicoes_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes + ADD CONSTRAINT expedicoes_pkey PRIMARY KEY (id); + + +-- +-- Name: expedicoes_rotas expedicoes_rotas_expedicao_id_ordem_unique; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_rotas + ADD CONSTRAINT expedicoes_rotas_expedicao_id_ordem_unique UNIQUE (expedicao_id, ordem); + + +-- +-- Name: expedicoes_rotas expedicoes_rotas_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_rotas + ADD CONSTRAINT expedicoes_rotas_pkey PRIMARY KEY (id); + + +-- +-- Name: eventos_capturado_em_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX eventos_capturado_em_index ON public.eventos USING btree (capturado_em); + + +-- +-- Name: eventos_expedicao_id_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX eventos_expedicao_id_index ON public.eventos USING btree (expedicao_id); + + +-- +-- Name: evidencias_evento_id_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX evidencias_evento_id_index ON public.evidencias USING btree (evento_id); + + +-- +-- Name: expedicoes_cidade_id_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX expedicoes_cidade_id_index ON public.expedicoes USING btree (cidade_id); + + +-- +-- Name: expedicoes_rotas_cidade_id_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX expedicoes_rotas_cidade_id_index ON public.expedicoes_rotas USING btree (cidade_id); + + +-- +-- Name: eventos_coletas eventos_coletas_evento_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.eventos_coletas + ADD CONSTRAINT eventos_coletas_evento_id_foreign FOREIGN KEY (evento_id) REFERENCES public.eventos(id) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: eventos eventos_created_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.eventos + ADD CONSTRAINT eventos_created_by_foreign FOREIGN KEY (created_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: eventos eventos_expedicao_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.eventos + ADD CONSTRAINT eventos_expedicao_id_foreign FOREIGN KEY (expedicao_id) REFERENCES public.expedicoes(id) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: eventos eventos_updated_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.eventos + ADD CONSTRAINT eventos_updated_by_foreign FOREIGN KEY (updated_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: evidencias evidencias_created_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.evidencias + ADD CONSTRAINT evidencias_created_by_foreign FOREIGN KEY (created_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: evidencias evidencias_evento_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.evidencias + ADD CONSTRAINT evidencias_evento_id_foreign FOREIGN KEY (evento_id) REFERENCES public.eventos(id) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: evidencias evidencias_updated_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.evidencias + ADD CONSTRAINT evidencias_updated_by_foreign FOREIGN KEY (updated_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes expedicoes_cidade_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes + ADD CONSTRAINT expedicoes_cidade_id_foreign FOREIGN KEY (cidade_id) REFERENCES public.cidades(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes expedicoes_created_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes + ADD CONSTRAINT expedicoes_created_by_foreign FOREIGN KEY (created_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes_participantes expedicoes_participantes_created_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_participantes + ADD CONSTRAINT expedicoes_participantes_created_by_foreign FOREIGN KEY (created_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes_participantes expedicoes_participantes_expedicao_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_participantes + ADD CONSTRAINT expedicoes_participantes_expedicao_id_foreign FOREIGN KEY (expedicao_id) REFERENCES public.expedicoes(id) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: expedicoes_participantes expedicoes_participantes_updated_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_participantes + ADD CONSTRAINT expedicoes_participantes_updated_by_foreign FOREIGN KEY (updated_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes_participantes expedicoes_participantes_usuario_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_participantes + ADD CONSTRAINT expedicoes_participantes_usuario_id_foreign FOREIGN KEY (usuario_id) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes_rotas expedicoes_rotas_cidade_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_rotas + ADD CONSTRAINT expedicoes_rotas_cidade_id_foreign FOREIGN KEY (cidade_id) REFERENCES public.cidades(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes_rotas expedicoes_rotas_created_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_rotas + ADD CONSTRAINT expedicoes_rotas_created_by_foreign FOREIGN KEY (created_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes_rotas expedicoes_rotas_expedicao_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_rotas + ADD CONSTRAINT expedicoes_rotas_expedicao_id_foreign FOREIGN KEY (expedicao_id) REFERENCES public.expedicoes(id) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: expedicoes_rotas expedicoes_rotas_updated_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes_rotas + ADD CONSTRAINT expedicoes_rotas_updated_by_foreign FOREIGN KEY (updated_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Name: expedicoes expedicoes_updated_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.expedicoes + ADD CONSTRAINT expedicoes_updated_by_foreign FOREIGN KEY (updated_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + diff --git a/test/integration/setup/seeds/expedicao.seed.ts b/test/integration/setup/seeds/expedicao.seed.ts new file mode 100644 index 00000000..d02b1f81 --- /dev/null +++ b/test/integration/setup/seeds/expedicao.seed.ts @@ -0,0 +1,77 @@ +import type { Knex } from 'knex' + +const PREFIXO = 'XEXP' + +export interface ExpedicaoFixtures { + cidades: number[] + usuarios: number[] + herbarioId: number + tipoUsuarioId: number + estadoId: number + paisId: number +} + +export async function seedExpedicaoFixtures(knex: Knex): Promise { + const [pais] = await knex('paises') + .insert({ nome: `${PREFIXO} Brasil`, sigla: 'XEXB' }) + .returning>(['id']) + + const [estado] = await knex('estados') + .insert({ + nome: `${PREFIXO} Paraná`, sigla: 'XEXP', pais_id: pais.id + }) + .returning>(['id']) + + const cidades = await knex('cidades') + .insert([ + { nome: `${PREFIXO} Curitiba`, estado_id: estado.id }, + { nome: `${PREFIXO} Londrina`, estado_id: estado.id }, + { nome: `${PREFIXO} Maringá`, estado_id: estado.id } + ]) + .returning>(['id']) + + const [herbario] = await knex('herbarios') + .insert({ nome: `${PREFIXO} Herbário`, sigla: 'XEXPH' }) + .returning>(['id']) + + const [tipoUsuario] = await knex('tipos_usuarios') + .insert({ tipo: `${PREFIXO} Curador` }) + .returning>(['id']) + + const usuarios = await knex('usuarios') + .insert([ + { + nome: `${PREFIXO} Ana`, + email: 'xexp.ana@example.test', + senha: 'x', + tipo_usuario_id: tipoUsuario.id, + herbario_id: herbario.id + }, + { + nome: `${PREFIXO} Bruno`, + email: 'xexp.bruno@example.test', + senha: 'x', + tipo_usuario_id: tipoUsuario.id, + herbario_id: herbario.id + } + ]) + .returning>(['id']) + + return { + cidades: cidades.map(cidade => Number(cidade.id)), + usuarios: usuarios.map(usuario => Number(usuario.id)), + herbarioId: Number(herbario.id), + tipoUsuarioId: Number(tipoUsuario.id), + estadoId: Number(estado.id), + paisId: Number(pais.id) + } +} + +export async function cleanupExpedicaoFixtures(knex: Knex, fixtures: ExpedicaoFixtures): Promise { + await knex('usuarios').whereIn('id', fixtures.usuarios).delete() + await knex('tipos_usuarios').where({ id: fixtures.tipoUsuarioId }).delete() + await knex('herbarios').where({ id: fixtures.herbarioId }).delete() + await knex('cidades').whereIn('id', fixtures.cidades).delete() + await knex('estados').where({ id: fixtures.estadoId }).delete() + await knex('paises').where({ id: fixtures.paisId }).delete() +} diff --git a/test/unit/domain/evento/Evento.test.ts b/test/unit/domain/evento/Evento.test.ts new file mode 100644 index 00000000..f5fd1a2e --- /dev/null +++ b/test/unit/domain/evento/Evento.test.ts @@ -0,0 +1,101 @@ +import { + describe, expect, test +} from 'vitest' + +import { + Attributes, ColetaAttributes, Evento +} from '@/domain/evento/Evento' + +const ficha: ColetaAttributes = { + familia: 'Velloziaceae', + nome_popular: 'canela-de-ema', + nome_cientifico: 'Vellozia squamata', + municipio: 'Serra do Cipó', + estado: 'MG', + referencia_local: 'Trilha da cachoeira, 300 m após a ponte', + tipo_vegetacao: 'Campo rupestre', + solo: 'Arenoso', + relevo: 'Ondulado', + substrato: 'Afloramento rochoso', + tronco_com_casca: 'Sim, gretada', + associacoes: 'Lychnophora ericoides', + folhas: 'Lineares, rígidas', + habito: 'Herbácea', + frutos: 'Ausentes', + flores: 'Presentes, lilases', + luminosidade: 'Pleno sol' +} + +const diario: Attributes = { + id: 1, + expedicao_id: 10, + tipo: 'DIARIO', + capturado_em: new Date('2026-02-15T13:15:00.000Z'), + latitude: -20.2510, + longitude: -46.4170, + altitude: 1200, + observacoes: 'Área de transição entre cerrado e campo rupestre.', + coleta: null, + created_at: new Date('2026-02-16T00:00:00.000Z'), + updated_at: new Date('2026-02-16T00:00:00.000Z'), + created_by: 7, + updated_by: 7 +} + +const coleta: Attributes = { + ...diario, tipo: 'COLETA', observacoes: null, coleta: ficha +} + +describe('Evento.create', () => { + test('cria um evento de diário sem ficha', () => { + const result = Evento.create(diario) + + expect(result.right()).toBe(true) + expect(result.value).toMatchObject({ tipo: 'DIARIO', coleta: null }) + }) + + test('cria um evento de coleta com a ficha', () => { + const result = Evento.create(coleta) + + expect(result.right()).toBe(true) + expect(result.value).toMatchObject({ tipo: 'COLETA', coleta: { habito: 'Herbácea' } }) + }) + + test('rejeita coleta sem ficha', () => { + const result = Evento.create({ ...coleta, coleta: null }) + + expect(result.left()).toBe(true) + expect(result.value).toBeInstanceOf(Error) + }) + + test('rejeita diário com ficha', () => { + const result = Evento.create({ ...diario, coleta: ficha }) + + expect(result.left()).toBe(true) + }) + + test('rejeita um tipo desconhecido', () => { + expect(Evento.create({ ...diario, tipo: 'FOTO' as 'DIARIO' }).left()).toBe(true) + }) + + test('aceita evento sem coordenadas, porque o GPS pode não fixar', () => { + const result = Evento.create({ + ...diario, latitude: null, longitude: null, altitude: null + }) + + expect(result.right()).toBe(true) + }) + + test('rejeita coordenadas fora de faixa', () => { + expect(Evento.create({ ...diario, latitude: -91 }).left()).toBe(true) + expect(Evento.create({ ...diario, longitude: 181 }).left()).toBe(true) + }) + + test('rejeita instante de captura inválido', () => { + expect(Evento.create({ ...diario, capturado_em: new Date('não é data') }).left()).toBe(true) + }) + + test('rejeita evento sem expedição', () => { + expect(Evento.create({ ...diario, expedicao_id: 0 }).left()).toBe(true) + }) +}) diff --git a/test/unit/domain/evidencia/Evidencia.test.ts b/test/unit/domain/evidencia/Evidencia.test.ts new file mode 100644 index 00000000..95e74590 --- /dev/null +++ b/test/unit/domain/evidencia/Evidencia.test.ts @@ -0,0 +1,38 @@ +import { + describe, expect, test +} from 'vitest' + +import { Attributes, Evidencia } from '@/domain/evidencia/Evidencia' + +const base: Attributes = { + id: 1, + evento_id: 10, + nome: 'IMG_0042.jpg', + capturado_em: new Date('2026-02-15T14:32:00.000Z'), + created_at: new Date('2026-02-16T00:00:00.000Z'), + updated_at: new Date('2026-02-16T00:00:00.000Z'), + created_by: null, + updated_by: null +} + +describe('Evidencia.create', () => { + test('cria a evidência quando nome e instante de captura são válidos', () => { + const result = Evidencia.create(base) + + expect(result.right()).toBe(true) + expect(result.value).toMatchObject({ nome: 'IMG_0042.jpg' }) + }) + + test('rejeita nome vazio ou só com espaços', () => { + expect(Evidencia.create({ ...base, nome: '' }).left()).toBe(true) + expect(Evidencia.create({ ...base, nome: ' ' }).left()).toBe(true) + }) + + test('rejeita evidência sem evento', () => { + expect(Evidencia.create({ ...base, evento_id: 0 }).left()).toBe(true) + }) + + test('rejeita instante de captura inválido', () => { + expect(Evidencia.create({ ...base, capturado_em: new Date('não é data') }).left()).toBe(true) + }) +}) diff --git a/test/unit/domain/expedicao/Expedicao.test.ts b/test/unit/domain/expedicao/Expedicao.test.ts new file mode 100644 index 00000000..d76012cf --- /dev/null +++ b/test/unit/domain/expedicao/Expedicao.test.ts @@ -0,0 +1,56 @@ +import { + describe, expect, test +} from 'vitest' + +import { Attributes, Expedicao } from '@/domain/expedicao/Expedicao' + +const base: Attributes = { + id: 1, + descricao: 'Coleta no litoral', + data_inicio: '2026-03-01', + data_fim: '2026-03-10', + cidade_id: 4106902, + created_at: new Date('2026-03-01T00:00:00.000Z'), + updated_at: new Date('2026-03-01T00:00:00.000Z'), + created_by: 7, + updated_by: 7 +} + +describe('Expedicao.create', () => { + test('cria a expedição quando o período e o destino são válidos', () => { + const result = Expedicao.create(base) + + expect(result.right()).toBe(true) + expect(result.value).toMatchObject({ + data_inicio: '2026-03-01', data_fim: '2026-03-10', cidade_id: 4106902 + }) + }) + + test('aceita expedição de um único dia', () => { + const result = Expedicao.create({ + ...base, data_inicio: '2026-03-01', data_fim: '2026-03-01' + }) + + expect(result.right()).toBe(true) + }) + + test('rejeita data de fim anterior à de início', () => { + const result = Expedicao.create({ + ...base, data_inicio: '2026-03-10', data_fim: '2026-03-01' + }) + + expect(result.left()).toBe(true) + expect(result.value).toBeInstanceOf(Error) + }) + + test('rejeita expedição sem destino', () => { + const result = Expedicao.create({ ...base, cidade_id: 0 }) + + expect(result.left()).toBe(true) + }) + + test('rejeita período incompleto', () => { + expect(Expedicao.create({ ...base, data_inicio: '' }).left()).toBe(true) + expect(Expedicao.create({ ...base, data_fim: '' }).left()).toBe(true) + }) +}) From b0695c3a0e23ef2791f9eb080091e0ffe0dfee22 Mon Sep 17 00:00:00 2001 From: vitormoraes2486 Date: Sun, 20 Sep 2026 12:02:57 -0300 Subject: [PATCH 02/58] feat: eventos - endpoints de escrita (POST/PUT/DELETE) --- src/application/create-app.ts | 4 +- .../evento/AtualizarEventoController.ts | 197 ++++++++++++++++ .../evento/CriarEventoController.ts | 182 +++++++++++++++ .../evento/RemoverEventoController.ts | 46 ++++ src/application/evento/index.ts | 46 ++++ src/domain/evento/AtualizarEventoUseCase.ts | 93 ++++++++ src/domain/evento/CriarEventoUseCase.ts | 36 +++ src/domain/evento/EventoCollection.ts | 15 +- src/domain/evento/RemoverEventoUseCase.ts | 19 ++ .../EventoCollectionKnexAdapter.ts | 84 ++++++- .../error/CheckViolationError.ts | 7 + .../error/ForeignKeyViolationError.ts | 7 + src/infrastructure/pg-error.ts | 15 ++ .../http/error/UnprocessableEntityError.ts | 7 + test/integration/evento/eventos-http.test.ts | 211 ++++++++++++++++++ .../evento/AtualizarEventoController.test.ts | 125 +++++++++++ .../evento/CriarEventoController.test.ts | 133 +++++++++++ .../evento/RemoverEventoController.test.ts | 70 ++++++ 18 files changed, 1293 insertions(+), 4 deletions(-) create mode 100644 src/application/evento/AtualizarEventoController.ts create mode 100644 src/application/evento/CriarEventoController.ts create mode 100644 src/application/evento/RemoverEventoController.ts create mode 100644 src/application/evento/index.ts create mode 100644 src/domain/evento/AtualizarEventoUseCase.ts create mode 100644 src/domain/evento/CriarEventoUseCase.ts create mode 100644 src/domain/evento/RemoverEventoUseCase.ts create mode 100644 src/infrastructure/error/CheckViolationError.ts create mode 100644 src/infrastructure/error/ForeignKeyViolationError.ts create mode 100644 src/infrastructure/pg-error.ts create mode 100644 src/library/http/error/UnprocessableEntityError.ts create mode 100644 test/integration/evento/eventos-http.test.ts create mode 100644 test/unit/application/evento/AtualizarEventoController.test.ts create mode 100644 test/unit/application/evento/CriarEventoController.test.ts create mode 100644 test/unit/application/evento/RemoverEventoController.test.ts diff --git a/src/application/create-app.ts b/src/application/create-app.ts index a3b3901c..0e18b894 100644 --- a/src/application/create-app.ts +++ b/src/application/create-app.ts @@ -13,6 +13,7 @@ import { assets, upload } from '../config/directory' import legacyErrors from '../middlewares/erros-middleware' import { generatePreview, reportPreview } from '../reports/controller' import { routes as createEstadoRoutes } from './estado' +import { routes as createEventoRoutes } from './evento' import { routes as createFaseSucessionalRoutes } from './fase-sucessional' import { routes as createPaisRoutes } from './pais' import { routes as createVegetacaoRoutes } from './vegetacao' @@ -59,7 +60,8 @@ export function createApp({ ...createPaisRoutes(knex), ...createEstadoRoutes(knex), ...createFaseSucessionalRoutes(knex), - ...createVegetacaoRoutes(knex) + ...createVegetacaoRoutes(knex), + ...createEventoRoutes(knex) ] const application = new ExpressApplication({ logger }) diff --git a/src/application/evento/AtualizarEventoController.ts b/src/application/evento/AtualizarEventoController.ts new file mode 100644 index 00000000..e0a23cf7 --- /dev/null +++ b/src/application/evento/AtualizarEventoController.ts @@ -0,0 +1,197 @@ +import { AtualizarEventoUseCase, Input as AtualizarEventoInput } from '@/domain/evento/AtualizarEventoUseCase' +import { + ColetaAttributes, EVENTO_TIPOS, EventoTipo +} from '@/domain/evento/Evento' +import { CheckViolationError } from '@/infrastructure/error/CheckViolationError' +import { ForeignKeyViolationError } from '@/infrastructure/error/ForeignKeyViolationError' +import { InfrastructureError } from '@/infrastructure/error/InfrastructureError' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { UnprocessableEntityError } from '@/library/http/error/UnprocessableEntityError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + atualizarEventoUseCase: AtualizarEventoUseCase +} + +interface Body { + tipo?: unknown + capturado_em?: unknown + latitude?: unknown + longitude?: unknown + altitude?: unknown + observacoes?: unknown + coleta?: unknown +} + +export class AtualizarEventoController implements RequestHandler { + private readonly atualizarEventoUseCase: AtualizarEventoUseCase + + constructor(dependencies: Dependencies) { + this.atualizarEventoUseCase = dependencies.atualizarEventoUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { eventoId: rawEventoId } = request.params as { eventoId?: string } + const eventoId = parseId(rawEventoId, 'eventoId') + if (eventoId instanceof Error) return new BadRequestError({ message: eventoId.message }) + + const body = (request.body ?? {}) as Body + + // Substituir por request.usuario.id assim que a + // autenticação (JWT) da nova arquitetura (v2) for integrada. + const input: AtualizarEventoInput = { id: eventoId, updated_by: null } + + if (body.tipo !== undefined) { + const tipo = parseTipo(body.tipo) + if (tipo instanceof Error) return new BadRequestError({ message: tipo.message }) + input.tipo = tipo + } + + if (body.capturado_em !== undefined) { + const capturadoEm = parseDate(body.capturado_em, 'capturado_em') + if (capturadoEm instanceof Error) return new BadRequestError({ message: capturadoEm.message }) + input.capturado_em = capturadoEm + } + + if (body.latitude !== undefined) { + const latitude = parseOptionalNumber(body.latitude, 'latitude') + if (latitude instanceof Error) return new BadRequestError({ message: latitude.message }) + input.latitude = latitude + } + + if (body.longitude !== undefined) { + const longitude = parseOptionalNumber(body.longitude, 'longitude') + if (longitude instanceof Error) return new BadRequestError({ message: longitude.message }) + input.longitude = longitude + } + + if (body.altitude !== undefined) { + const altitude = parseOptionalNumber(body.altitude, 'altitude') + if (altitude instanceof Error) return new BadRequestError({ message: altitude.message }) + input.altitude = altitude + } + + if (body.observacoes !== undefined) { + const observacoes = parseOptionalString(body.observacoes, 'observacoes') + if (observacoes instanceof Error) return new BadRequestError({ message: observacoes.message }) + input.observacoes = observacoes + } + + if (body.coleta !== undefined) { + const coleta = body.coleta === null ? null : parseColeta(body.coleta) + if (coleta instanceof Error) return new BadRequestError({ message: coleta.message }) + input.coleta = coleta + } + + const result = await this.atualizarEventoUseCase.execute(input) + + if (result.left()) { + const error = result.value + if (error instanceof ForeignKeyViolationError) return new NotFoundError({ message: error.message }) + if (error instanceof CheckViolationError) return new UnprocessableEntityError({ message: error.message }) + if (!(error instanceof InfrastructureError)) return new BadRequestError({ message: error.message }) + return new InternalServerError({ message: error.message }) + } + + if (!result.value) { + return new NotFoundError({ message: 'Evento não encontrado' }) + } + + return { body: result.value, statusCode: StatusCode.Ok } + } +} + +const CAMPOS_DA_FICHA = [ + 'familia', + 'nome_popular', + 'nome_cientifico', + 'municipio', + 'estado', + 'referencia_local', + 'tipo_vegetacao', + 'solo', + 'relevo', + 'substrato', + 'tronco_com_casca', + 'associacoes', + 'folhas', + 'habito', + 'frutos', + 'flores', + 'luminosidade' +] as const satisfies ReadonlyArray + +function isPlainObject(value: unknown): value is Record { + return typeof value === 'object' && value !== null && !Array.isArray(value) +} + +function parseId(raw: unknown, field: string): number | Error { + if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} + +function parseTipo(raw: unknown): EventoTipo | Error { + if (typeof raw !== 'string' || !EVENTO_TIPOS.includes(raw as EventoTipo)) { + return new Error(`tipo inválido. Use um de: ${EVENTO_TIPOS.join(', ')}`) + } + return raw as EventoTipo +} + +function parseDate(raw: unknown, field: string): Date | Error { + if (typeof raw !== 'string') { + return new Error(`${field} inválido. Use uma data no formato ISO 8601`) + } + const date = new Date(raw) + if (Number.isNaN(date.getTime())) { + return new Error(`${field} inválido. Use uma data no formato ISO 8601`) + } + return date +} + +function parseOptionalNumber(raw: unknown, field: string): number | null | Error { + if (raw === undefined || raw === null) { + return null + } + if (typeof raw !== 'number' || Number.isNaN(raw)) { + return new Error(`${field} inválido`) + } + return raw +} + +function parseOptionalString(raw: unknown, field: string): string | null | Error { + if (raw === undefined || raw === null) { + return null + } + if (typeof raw !== 'string') { + return new Error(`${field} inválido`) + } + return raw +} + +function parseColeta(raw: unknown): ColetaAttributes | Error { + if (!isPlainObject(raw)) { + return new Error('coleta inválido. Envie um objeto com os campos da ficha') + } + + const result = {} as Record + for (const campo of CAMPOS_DA_FICHA) { + const value = raw[campo] + if (value === undefined) { + result[campo] = null + continue + } + if (value !== null && typeof value !== 'string') { + return new Error(`coleta.${campo} inválido`) + } + result[campo] = value + } + return result as unknown as ColetaAttributes +} diff --git a/src/application/evento/CriarEventoController.ts b/src/application/evento/CriarEventoController.ts new file mode 100644 index 00000000..f9e0eefb --- /dev/null +++ b/src/application/evento/CriarEventoController.ts @@ -0,0 +1,182 @@ +import { CriarEventoUseCase } from '@/domain/evento/CriarEventoUseCase' +import { + ColetaAttributes, EVENTO_TIPOS, EventoTipo +} from '@/domain/evento/Evento' +import { CheckViolationError } from '@/infrastructure/error/CheckViolationError' +import { ForeignKeyViolationError } from '@/infrastructure/error/ForeignKeyViolationError' +import { InfrastructureError } from '@/infrastructure/error/InfrastructureError' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { UnprocessableEntityError } from '@/library/http/error/UnprocessableEntityError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + criarEventoUseCase: CriarEventoUseCase +} + +interface Body { + tipo?: unknown + capturado_em?: unknown + latitude?: unknown + longitude?: unknown + altitude?: unknown + observacoes?: unknown + coleta?: unknown +} + +export class CriarEventoController implements RequestHandler { + private readonly criarEventoUseCase: CriarEventoUseCase + + constructor(dependencies: Dependencies) { + this.criarEventoUseCase = dependencies.criarEventoUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { expedicaoId: rawExpedicaoId } = request.params as { expedicaoId?: string } + const expedicaoId = parseId(rawExpedicaoId, 'expedicaoId') + if (expedicaoId instanceof Error) return new BadRequestError({ message: expedicaoId.message }) + + const body = (request.body ?? {}) as Body + + const tipo = parseTipo(body.tipo) + if (tipo instanceof Error) return new BadRequestError({ message: tipo.message }) + + const capturadoEm = parseDate(body.capturado_em, 'capturado_em') + if (capturadoEm instanceof Error) return new BadRequestError({ message: capturadoEm.message }) + + const latitude = parseOptionalNumber(body.latitude, 'latitude') + if (latitude instanceof Error) return new BadRequestError({ message: latitude.message }) + + const longitude = parseOptionalNumber(body.longitude, 'longitude') + if (longitude instanceof Error) return new BadRequestError({ message: longitude.message }) + + const altitude = parseOptionalNumber(body.altitude, 'altitude') + if (altitude instanceof Error) return new BadRequestError({ message: altitude.message }) + + const observacoes = parseOptionalString(body.observacoes, 'observacoes') + if (observacoes instanceof Error) return new BadRequestError({ message: observacoes.message }) + + const coleta = body.coleta === undefined ? null : parseColeta(body.coleta) + if (coleta instanceof Error) return new BadRequestError({ message: coleta.message }) + + // Substituir por request.usuario.id assim que a + // autenticação (JWT) da nova arquitetura (v2) for integrada. + const usuarioId = null + + const result = await this.criarEventoUseCase.execute({ + altitude, + capturado_em: capturadoEm, + coleta, + created_by: usuarioId, + expedicao_id: expedicaoId, + latitude, + longitude, + observacoes, + tipo + }) + + if (result.left()) { + const error = result.value + if (error instanceof ForeignKeyViolationError) return new NotFoundError({ message: error.message }) + if (error instanceof CheckViolationError) return new UnprocessableEntityError({ message: error.message }) + if (!(error instanceof InfrastructureError)) return new BadRequestError({ message: error.message }) + return new InternalServerError({ message: error.message }) + } + + return { body: result.value, statusCode: StatusCode.Created } + } +} + +const CAMPOS_DA_FICHA = [ + 'familia', + 'nome_popular', + 'nome_cientifico', + 'municipio', + 'estado', + 'referencia_local', + 'tipo_vegetacao', + 'solo', + 'relevo', + 'substrato', + 'tronco_com_casca', + 'associacoes', + 'folhas', + 'habito', + 'frutos', + 'flores', + 'luminosidade' +] as const satisfies ReadonlyArray + +function isPlainObject(value: unknown): value is Record { + return typeof value === 'object' && value !== null && !Array.isArray(value) +} + +function parseId(raw: unknown, field: string): number | Error { + if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} + +function parseTipo(raw: unknown): EventoTipo | Error { + if (typeof raw !== 'string' || !EVENTO_TIPOS.includes(raw as EventoTipo)) { + return new Error(`tipo inválido. Use um de: ${EVENTO_TIPOS.join(', ')}`) + } + return raw as EventoTipo +} + +function parseDate(raw: unknown, field: string): Date | Error { + if (typeof raw !== 'string') { + return new Error(`${field} inválido. Use uma data no formato ISO 8601`) + } + const date = new Date(raw) + if (Number.isNaN(date.getTime())) { + return new Error(`${field} inválido. Use uma data no formato ISO 8601`) + } + return date +} + +function parseOptionalNumber(raw: unknown, field: string): number | null | Error { + if (raw === undefined || raw === null) { + return null + } + if (typeof raw !== 'number' || Number.isNaN(raw)) { + return new Error(`${field} inválido`) + } + return raw +} + +function parseOptionalString(raw: unknown, field: string): string | null | Error { + if (raw === undefined || raw === null) { + return null + } + if (typeof raw !== 'string') { + return new Error(`${field} inválido`) + } + return raw +} + +function parseColeta(raw: unknown): ColetaAttributes | Error { + if (!isPlainObject(raw)) { + return new Error('coleta inválido. Envie um objeto com os campos da ficha') + } + + const result = {} as Record + for (const campo of CAMPOS_DA_FICHA) { + const value = raw[campo] + if (value === undefined) { + result[campo] = null + continue + } + if (value !== null && typeof value !== 'string') { + return new Error(`coleta.${campo} inválido`) + } + result[campo] = value + } + return result as unknown as ColetaAttributes +} diff --git a/src/application/evento/RemoverEventoController.ts b/src/application/evento/RemoverEventoController.ts new file mode 100644 index 00000000..84da9709 --- /dev/null +++ b/src/application/evento/RemoverEventoController.ts @@ -0,0 +1,46 @@ +import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + removerEventoUseCase: RemoverEventoUseCase +} + +export class RemoverEventoController implements RequestHandler { + private readonly removerEventoUseCase: RemoverEventoUseCase + + constructor(dependencies: Dependencies) { + this.removerEventoUseCase = dependencies.removerEventoUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { eventoId: rawEventoId } = request.params as { eventoId?: string } + const eventoId = parseId(rawEventoId, 'eventoId') + if (eventoId instanceof Error) return new BadRequestError({ message: eventoId.message }) + + const result = await this.removerEventoUseCase.execute({ id: eventoId }) + + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } + + if (!result.value) { + return new NotFoundError({ message: 'Evento não encontrado' }) + } + + return { statusCode: StatusCode.NoContent } + } +} + +function parseId(raw: unknown, field: string): number | Error { + if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} diff --git a/src/application/evento/index.ts b/src/application/evento/index.ts new file mode 100644 index 00000000..0cd3f0cc --- /dev/null +++ b/src/application/evento/index.ts @@ -0,0 +1,46 @@ +import { type Knex } from 'knex' + +import { AtualizarEventoUseCase } from '@/domain/evento/AtualizarEventoUseCase' +import { CriarEventoUseCase } from '@/domain/evento/CriarEventoUseCase' +import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' +import { EventoCollectionKnexAdapter } from '@/infrastructure/EventoCollectionKnexAdapter' +import { Method } from '@/library/http/common' +import { Route } from '@/library/http/Router' + +import { AtualizarEventoController } from './AtualizarEventoController' +import { CriarEventoController } from './CriarEventoController' +import { RemoverEventoController } from './RemoverEventoController' + +export function routes(knex: Knex): Route[] { + const eventoCollection = new EventoCollectionKnexAdapter({ knex }) + + return [ + { + handlers: [ + new CriarEventoController({ + criarEventoUseCase: new CriarEventoUseCase({ eventoCollection }) + }) + ], + method: Method.Post, + path: '/v2/expedicoes/:expedicaoId/eventos' + }, + { + handlers: [ + new AtualizarEventoController({ + atualizarEventoUseCase: new AtualizarEventoUseCase({ eventoCollection }) + }) + ], + method: Method.Put, + path: '/v2/eventos/:eventoId' + }, + { + handlers: [ + new RemoverEventoController({ + removerEventoUseCase: new RemoverEventoUseCase({ eventoCollection }) + }) + ], + method: Method.Delete, + path: '/v2/eventos/:eventoId' + } + ] +} diff --git a/src/domain/evento/AtualizarEventoUseCase.ts b/src/domain/evento/AtualizarEventoUseCase.ts new file mode 100644 index 00000000..408e4213 --- /dev/null +++ b/src/domain/evento/AtualizarEventoUseCase.ts @@ -0,0 +1,93 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, ColetaAttributes, Evento, EventoTipo +} from './Evento' +import { AtualizarEventoAttributes, EventoCollection } from './EventoCollection' + +interface Dependencies { + eventoCollection: EventoCollection +} + +export interface Input { + id: number + tipo?: EventoTipo + capturado_em?: Date + latitude?: number | null + longitude?: number | null + altitude?: number | null + observacoes?: string | null + coleta?: ColetaAttributes | null + updated_by: number | null +} + +/** + * O PUT do agregado evento+ficha. `tipo` e `coleta` não são independentes: + * - vira DIARIO -> a ficha é descartada, não importa o que o cliente mandou + * - vira COLETA sem `coleta` no corpo -> mantém a ficha atual + * - vira COLETA com `coleta` no corpo -> substitui a ficha + * + * A coerência do estado final é validada reaproveitando Evento.create() sobre + * o objeto já mesclado — é a mesma regra usada na criação, só que aplicada + * depois do merge em vez de sobre um payload novo. + */ +export class AtualizarEventoUseCase { + private readonly eventoCollection: EventoCollection + + constructor(dependencies: Dependencies) { + this.eventoCollection = dependencies.eventoCollection + } + + async execute(input: Input): Promise> { + const existente = await this.eventoCollection.findById(input.id) + if (existente.left()) { + return Either.left(existente.value) + } + + if (!existente.value) { + return Either.right(null) + } + + const merged = this.merge(existente.value, input) + + const validated = Evento.create(merged) + if (validated.left()) { + return Either.left(validated.value) + } + + const patch: AtualizarEventoAttributes = { + altitude: merged.altitude, + capturado_em: merged.capturado_em, + coleta: merged.coleta, + latitude: merged.latitude, + longitude: merged.longitude, + observacoes: merged.observacoes, + tipo: merged.tipo, + updated_by: merged.updated_by + } + + return this.eventoCollection.update(input.id, patch) + } + + private merge(atual: Attributes, input: Input): Attributes { + const tipo = input.tipo ?? atual.tipo + + // Trocar para DIARIO descarta a ficha por definição, mesmo que o + // cliente não tenha mandado `coleta` no corpo do PUT. + const coleta = tipo === 'DIARIO' + ? null + : (input.coleta !== undefined ? input.coleta : atual.coleta) + + return { + ...atual, + altitude: input.altitude !== undefined ? input.altitude : atual.altitude, + capturado_em: input.capturado_em ?? atual.capturado_em, + coleta, + latitude: input.latitude !== undefined ? input.latitude : atual.latitude, + longitude: input.longitude !== undefined ? input.longitude : atual.longitude, + observacoes: input.observacoes !== undefined ? input.observacoes : atual.observacoes, + tipo, + updated_by: input.updated_by + } + } +} diff --git a/src/domain/evento/CriarEventoUseCase.ts b/src/domain/evento/CriarEventoUseCase.ts new file mode 100644 index 00000000..ac002d99 --- /dev/null +++ b/src/domain/evento/CriarEventoUseCase.ts @@ -0,0 +1,36 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, CreateAttributes, Evento +} from './Evento' +import { EventoCollection } from './EventoCollection' + +interface Dependencies { + eventoCollection: EventoCollection +} + +export class CriarEventoUseCase { + private readonly eventoCollection: EventoCollection + + constructor(dependencies: Dependencies) { + this.eventoCollection = dependencies.eventoCollection + } + + async execute(input: CreateAttributes): Promise> { + // Evento.create() exige um Attributes completo, usado para validar + // a coerência de negócio (tipo/ficha, coordenadas,capturado_em). + const validated = Evento.create({ + ...input, + created_at: new Date(), + id: 0, + updated_at: new Date(), + updated_by: input.created_by + }) + + if (validated.left()) { + return Either.left(validated.value) + } + + return this.eventoCollection.create(input) + } +} diff --git a/src/domain/evento/EventoCollection.ts b/src/domain/evento/EventoCollection.ts index f329460d..1be6a2c4 100644 --- a/src/domain/evento/EventoCollection.ts +++ b/src/domain/evento/EventoCollection.ts @@ -1,7 +1,7 @@ import { Either } from '@/library/either/Either' import { - Attributes, CreateAttributes, EventoTipo + Attributes, ColetaAttributes, CreateAttributes, EventoTipo } from './Evento' export interface EventoOrder { @@ -17,8 +17,21 @@ export interface EventoFilters { order?: EventoOrder } +export interface AtualizarEventoAttributes { + tipo: EventoTipo + capturado_em: Date + latitude: number | null + longitude: number | null + altitude: number | null + observacoes: string | null + coleta: ColetaAttributes | null + updated_by: number | null +} + export interface EventoCollection { findAll(filters: EventoFilters): Promise> findById(id: number): Promise> create(attributes: CreateAttributes): Promise> + update(id: number, attributes: AtualizarEventoAttributes): Promise> + delete(id: number): Promise> } diff --git a/src/domain/evento/RemoverEventoUseCase.ts b/src/domain/evento/RemoverEventoUseCase.ts new file mode 100644 index 00000000..40e5a66d --- /dev/null +++ b/src/domain/evento/RemoverEventoUseCase.ts @@ -0,0 +1,19 @@ +import { Either } from '@/library/either/Either' + +import { EventoCollection } from './EventoCollection' + +interface Dependencies { + eventoCollection: EventoCollection +} + +export class RemoverEventoUseCase { + private readonly eventoCollection: EventoCollection + + constructor(dependencies: Dependencies) { + this.eventoCollection = dependencies.eventoCollection + } + + execute({ id }: { id: number }): Promise> { + return this.eventoCollection.delete(id) + } +} diff --git a/src/infrastructure/EventoCollectionKnexAdapter.ts b/src/infrastructure/EventoCollectionKnexAdapter.ts index bda60696..ddf804bc 100644 --- a/src/infrastructure/EventoCollectionKnexAdapter.ts +++ b/src/infrastructure/EventoCollectionKnexAdapter.ts @@ -3,11 +3,18 @@ import { Knex } from 'knex' import { Attributes, ColetaAttributes, CreateAttributes, EventoTipo } from '@/domain/evento/Evento' -import { EventoCollection, EventoFilters } from '@/domain/evento/EventoCollection' +import { + AtualizarEventoAttributes, EventoCollection, EventoFilters +} from '@/domain/evento/EventoCollection' import { Either } from '@/library/either/Either' +import { CheckViolationError } from './error/CheckViolationError' import { CollectionError } from './error/CollectionError' +import { ForeignKeyViolationError } from './error/ForeignKeyViolationError' import { toNullableNumber } from './pg-column' +import { + PG_CHECK_VIOLATION, PG_FOREIGN_KEY_VIOLATION, pgErrorCode +} from './pg-error' interface Dependencies { knex: Knex @@ -75,6 +82,20 @@ function toAttributes(row: Row & Record): Attributes { } } +function toInfrastructureError(message: string, error: unknown): Error { + const code = pgErrorCode(error) + + if (code === PG_FOREIGN_KEY_VIOLATION) { + return new ForeignKeyViolationError({ message: 'Expedição não encontrada', cause: error }) + } + + if (code === PG_CHECK_VIOLATION) { + return new CheckViolationError({ message: 'tipo deve ser "DIARIO" ou "COLETA"', cause: error }) + } + + return new CollectionError({ message, cause: error }) +} + export class EventoCollectionKnexAdapter implements EventoCollection { private readonly knex: Knex @@ -179,7 +200,66 @@ export class EventoCollectionKnexAdapter implements EventoCollection { return Either.right(toAttributes(created)) } catch (error) { - return Either.left(new CollectionError({ message: 'Failed to create evento', cause: error })) + return Either.left(toInfrastructureError('Failed to create evento', error)) + } + } + + /** + * O PUT do agregado: trocar tipo de COLETA para DIARIO apaga a ficha; o + * caminho inverso cria a ficha; manter o tipo e mandar `coleta` faz upsert + * (evento_id é PK de eventos_coletas). + */ + async update(id: number, attributes: AtualizarEventoAttributes): Promise> { + try { + const updated = await this.knex.transaction(async trx => { + const updatedRows = await trx('eventos') + .where({ id }) + .update({ + tipo: attributes.tipo, + capturado_em: attributes.capturado_em, + latitude: attributes.latitude, + longitude: attributes.longitude, + altitude: attributes.altitude, + observacoes: attributes.observacoes, + updated_by: attributes.updated_by, + updated_at: trx.fn.now() + }) + .returning>(['id']) + + if (updatedRows.length === 0) { + return null + } + + if (attributes.coleta) { + await trx('eventos_coletas') + .insert({ evento_id: id, ...attributes.coleta }) + .onConflict('evento_id') + .merge() + } else { + await trx('eventos_coletas').where({ evento_id: id }).delete() + } + + return await this.select(trx) + .where('eventos.id', id) + .first() as (Row & Record) | undefined + }) + + return Either.right(updated ? toAttributes(updated) : null) + } catch (error) { + return Either.left(toInfrastructureError('Failed to update evento', error)) + } + } + + /** + * ON DELETE CASCADE de eventos_coletas.evento_id cuida da ficha; impedindo + * limpeza duplicada. + */ + async delete(id: number): Promise> { + try { + const deletedCount = await this.knex('eventos').where({ id }).delete() + return Either.right(deletedCount > 0) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to delete evento', cause: error })) } } } diff --git a/src/infrastructure/error/CheckViolationError.ts b/src/infrastructure/error/CheckViolationError.ts new file mode 100644 index 00000000..70149ae6 --- /dev/null +++ b/src/infrastructure/error/CheckViolationError.ts @@ -0,0 +1,7 @@ +import { InfrastructureError } from './InfrastructureError' + +export class CheckViolationError extends InfrastructureError { + constructor(params: { message: string; cause?: unknown }) { + super(params) + } +} diff --git a/src/infrastructure/error/ForeignKeyViolationError.ts b/src/infrastructure/error/ForeignKeyViolationError.ts new file mode 100644 index 00000000..067234d8 --- /dev/null +++ b/src/infrastructure/error/ForeignKeyViolationError.ts @@ -0,0 +1,7 @@ +import { InfrastructureError } from './InfrastructureError' + +export class ForeignKeyViolationError extends InfrastructureError { + constructor(params: { message: string; cause?: unknown }) { + super(params) + } +} diff --git a/src/infrastructure/pg-error.ts b/src/infrastructure/pg-error.ts new file mode 100644 index 00000000..32f8c0d7 --- /dev/null +++ b/src/infrastructure/pg-error.ts @@ -0,0 +1,15 @@ +/** + * Códigos de erro (SQLSTATE) do Postgres que a camada de infraestrutura + * precisa reconhecer para traduzir Either.left em um status HTTP correto, + * em vez de cair tudo como 500 genérico. + */ +export const PG_FOREIGN_KEY_VIOLATION = '23503' +export const PG_CHECK_VIOLATION = '23514' + +export function pgErrorCode(error: unknown): string | undefined { + if (typeof error === 'object' && error !== null && 'code' in error) { + const code = (error as { code?: unknown }).code + return typeof code === 'string' ? code : undefined + } + return undefined +} diff --git a/src/library/http/error/UnprocessableEntityError.ts b/src/library/http/error/UnprocessableEntityError.ts new file mode 100644 index 00000000..5cf783d7 --- /dev/null +++ b/src/library/http/error/UnprocessableEntityError.ts @@ -0,0 +1,7 @@ +import { HttpError } from './HttpError' + +export class UnprocessableEntityError extends HttpError { + constructor(params: { message: string; report?: unknown; cause?: unknown }) { + super({ ...params, statusCode: 422 }) + } +} diff --git a/test/integration/evento/eventos-http.test.ts b/test/integration/evento/eventos-http.test.ts new file mode 100644 index 00000000..949a73d8 --- /dev/null +++ b/test/integration/evento/eventos-http.test.ts @@ -0,0 +1,211 @@ +import { + afterAll, beforeAll, describe, expect, test +} from 'vitest' + +import { ColetaAttributes } from '@/domain/evento/Evento' + +import { createTestApp } from '../setup/app-factory' +import { + cleanupExpedicaoFixtures, ExpedicaoFixtures, seedExpedicaoFixtures +} from '../setup/seeds/expedicao.seed' + +const ficha: ColetaAttributes = { + associacoes: 'Lychnophora ericoides', + estado: 'MG', + familia: 'Velloziaceae', + flores: 'Presentes, lilases', + folhas: 'Lineares, rígidas', + frutos: 'Ausentes', + habito: 'Herbácea', + luminosidade: 'Pleno sol', + municipio: 'Serra do Cipó', + nome_cientifico: 'Vellozia squamata', + nome_popular: 'canela-de-ema', + referencia_local: 'Trilha da cachoeira, 300 m após a ponte', + relevo: 'Ondulado', + solo: 'Arenoso', + substrato: 'Afloramento rochoso', + tipo_vegetacao: 'Campo rupestre', + tronco_com_casca: 'Sim, gretada' +} + +interface EventoBody { + id: number + tipo: string + observacoes: string | null + coleta: Record | null +} + +function asEvento(body: unknown): EventoBody { + return body as EventoBody +} + +describe('Eventos (escrita, HTTP)', () => { + const { agent, knex } = createTestApp() + + let fixtures: ExpedicaoFixtures + let expedicaoId: number + + beforeAll(async () => { + fixtures = await seedExpedicaoFixtures(knex) + + const [expedicao] = await knex('expedicoes') + .insert({ + cidade_id: fixtures.cidades[0], data_fim: '2026-02-18', data_inicio: '2026-02-14', descricao: 'XEVT eventos http' + }) + .returning>(['id']) + + expedicaoId = expedicao.id + }) + + afterAll(async () => { + await knex('expedicoes').where({ id: expedicaoId }).delete() + await cleanupExpedicaoFixtures(knex, fixtures) + await knex.destroy() + }) + + test('POST cria um evento DIARIO', async () => { + const response = await agent + .post(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .send({ + capturado_em: '2026-02-15T14:32:00Z', + latitude: -20.2508, + longitude: -46.4167, + observacoes: 'Área de transição entre cerrado e campo rupestre.', + tipo: 'DIARIO' + }) + .expect(201) + + const body = asEvento(response.body) + expect(body).toMatchObject({ coleta: null, tipo: 'DIARIO' }) + + await knex('eventos').where({ id: body.id }).delete() + }) + + test('POST cria um evento COLETA com a ficha', async () => { + const response = await agent + .post(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .send({ + capturado_em: '2026-02-15T14:32:00Z', coleta: ficha, latitude: -20.2508, longitude: -46.4167, tipo: 'COLETA' + }) + .expect(201) + + const body = asEvento(response.body) + expect(body.coleta).toEqual(ficha) + + await knex('eventos').where({ id: body.id }).delete() + }) + + test('POST retorna 400 quando COLETA não envia ficha', async () => { + await agent + .post(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .send({ + capturado_em: '2026-02-15T14:32:00Z', latitude: -20.25, longitude: -46.41, tipo: 'COLETA' + }) + .expect(400) + }) + + test('POST retorna 404 quando a expedição não existe', async () => { + await agent + .post('/api/v2/expedicoes/999999999/eventos') + .send({ + capturado_em: '2026-02-15T14:32:00Z', latitude: -20.25, longitude: -46.41, observacoes: 'x', tipo: 'DIARIO' + }) + .expect(404) + }) + + test('PUT atualiza campos comuns', async () => { + const created = await agent + .post(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .send({ + capturado_em: '2026-02-15T14:32:00Z', latitude: -20.25, longitude: -46.41, observacoes: 'original', tipo: 'DIARIO' + }) + .expect(201) + + const eventoId = asEvento(created.body).id + + try { + const response = await agent + .put(`/api/v2/eventos/${eventoId}`) + .send({ observacoes: 'atualizado' }) + .expect(200) + + expect(asEvento(response.body).observacoes).toBe('atualizado') + } finally { + await knex('eventos').where({ id: eventoId }).delete() + } + }) + + test('PUT troca DIARIO para COLETA criando a ficha', async () => { + const created = await agent + .post(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .send({ + capturado_em: '2026-02-15T14:32:00Z', latitude: -20.25, longitude: -46.41, observacoes: 'original', tipo: 'DIARIO' + }) + .expect(201) + + const eventoId = asEvento(created.body).id + + try { + const response = await agent + .put(`/api/v2/eventos/${eventoId}`) + .send({ coleta: ficha, tipo: 'COLETA' }) + .expect(200) + + expect(asEvento(response.body)).toMatchObject({ coleta: ficha, tipo: 'COLETA' }) + } finally { + await knex('eventos').where({ id: eventoId }).delete() + } + }) + + test('PUT troca COLETA para DIARIO apagando a ficha', async () => { + const created = await agent + .post(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .send({ + capturado_em: '2026-02-15T14:32:00Z', coleta: ficha, latitude: -20.25, longitude: -46.41, tipo: 'COLETA' + }) + .expect(201) + + const eventoId = asEvento(created.body).id + + try { + const response = await agent + .put(`/api/v2/eventos/${eventoId}`) + .send({ observacoes: 'virou diário', tipo: 'DIARIO' }) + .expect(200) + + expect(asEvento(response.body)).toMatchObject({ coleta: null, tipo: 'DIARIO' }) + + const fichas = await knex('eventos_coletas').where({ evento_id: eventoId }) + expect(fichas).toHaveLength(0) + } finally { + await knex('eventos').where({ id: eventoId }).delete() + } + }) + + test('PUT retorna 404 quando o evento não existe', async () => { + await agent.put('/api/v2/eventos/999999999').send({ observacoes: 'x' }).expect(404) + }) + + test('DELETE remove o evento e a ficha (cascade)', async () => { + const created = await agent + .post(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .send({ + capturado_em: '2026-02-15T14:32:00Z', coleta: ficha, latitude: -20.25, longitude: -46.41, tipo: 'COLETA' + }) + .expect(201) + + const eventoId = asEvento(created.body).id + + await agent.delete(`/api/v2/eventos/${eventoId}`).expect(204) + + const eventoRow = await knex('eventos').where({ id: eventoId }).first() + const coletaRow = await knex('eventos_coletas').where({ evento_id: eventoId }).first() + expect(eventoRow).toBeUndefined() + expect(coletaRow).toBeUndefined() + }) + + test('DELETE retorna 404 quando o evento não existe', async () => { + await agent.delete('/api/v2/eventos/999999999').expect(404) + }) +}) diff --git a/test/unit/application/evento/AtualizarEventoController.test.ts b/test/unit/application/evento/AtualizarEventoController.test.ts new file mode 100644 index 00000000..868b2e5e --- /dev/null +++ b/test/unit/application/evento/AtualizarEventoController.test.ts @@ -0,0 +1,125 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { AtualizarEventoController } from '@/application/evento/AtualizarEventoController' +import { AtualizarEventoUseCase } from '@/domain/evento/AtualizarEventoUseCase' +import { Attributes } from '@/domain/evento/Evento' +import { CheckViolationError } from '@/infrastructure/error/CheckViolationError' +import { Either } from '@/library/either/Either' +import { + Headers, HttpRequest, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { UnprocessableEntityError } from '@/library/http/error/UnprocessableEntityError' + +const headers = {} as Headers + +const attributes: Attributes = { + altitude: null, + capturado_em: new Date('2026-02-15T14:32:00Z'), + coleta: null, + created_at: new Date(), + created_by: null, + expedicao_id: 1, + id: 10, + latitude: -21, + longitude: -46.4167, + observacoes: 'Solo arenoso', + tipo: 'DIARIO', + updated_at: new Date(), + updated_by: null +} + +function makeRequest(params: Record, body: unknown): HttpRequest { + return { + body, headers, method: Method.Put, params, path: '/v2/eventos/10' + } satisfies HttpRequest +} + +describe('AtualizarEventoController', () => { + test('retorna 200 com o evento atualizado', async () => { + const atualizarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(attributes)) + } as unknown as AtualizarEventoUseCase + + const controller = new AtualizarEventoController({ atualizarEventoUseCase }) + const response = await controller.handle(makeRequest({ eventoId: '10' }, { latitude: -21 }), vi.fn()) + + expect(atualizarEventoUseCase.execute).toHaveBeenCalledWith({ + id: 10, latitude: -21, updated_by: null + }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) + expect('body' in response ? response.body : undefined).toEqual(attributes) + }) + + test('só envia os campos presentes no corpo (atualização parcial)', async () => { + const atualizarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(attributes)) + } as unknown as AtualizarEventoUseCase + + const controller = new AtualizarEventoController({ atualizarEventoUseCase }) + await controller.handle(makeRequest({ eventoId: '10' }, { observacoes: 'novo texto' }), vi.fn()) + + expect(atualizarEventoUseCase.execute).toHaveBeenCalledWith({ + id: 10, observacoes: 'novo texto', updated_by: null + }) + }) + + test('aceita a troca de tipo para DIARIO sem exigir coleta no corpo', async () => { + const atualizarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(attributes)) + } as unknown as AtualizarEventoUseCase + + const controller = new AtualizarEventoController({ atualizarEventoUseCase }) + await controller.handle(makeRequest({ eventoId: '10' }, { tipo: 'DIARIO' }), vi.fn()) + + expect(atualizarEventoUseCase.execute).toHaveBeenCalledWith({ + id: 10, tipo: 'DIARIO', updated_by: null + }) + }) + + test('retorna 400 quando eventoId é inválido', async () => { + const atualizarEventoUseCase = { execute: vi.fn() } as unknown as AtualizarEventoUseCase + const controller = new AtualizarEventoController({ atualizarEventoUseCase }) + + const response = await controller.handle(makeRequest({ eventoId: 'abc' }, {}), vi.fn()) + + expect(atualizarEventoUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 404 quando o evento não existe', async () => { + const atualizarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(null)) + } as unknown as AtualizarEventoUseCase + + const controller = new AtualizarEventoController({ atualizarEventoUseCase }) + const response = await controller.handle(makeRequest({ eventoId: '999' }, { latitude: -21 }), vi.fn()) + + expect(response).toBeInstanceOf(NotFoundError) + }) + + test('retorna 400 quando a validação de domínio falha', async () => { + const atualizarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('Latitude do evento deve estar entre -90 e 90'))) + } as unknown as AtualizarEventoUseCase + + const controller = new AtualizarEventoController({ atualizarEventoUseCase }) + const response = await controller.handle(makeRequest({ eventoId: '10' }, { latitude: 999 }), vi.fn()) + + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 422 quando o banco rejeita o tipo (CheckViolationError)', async () => { + const atualizarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new CheckViolationError({ message: 'tipo inválido' }))) + } as unknown as AtualizarEventoUseCase + + const controller = new AtualizarEventoController({ atualizarEventoUseCase }) + const response = await controller.handle(makeRequest({ eventoId: '10' }, { tipo: 'DIARIO' }), vi.fn()) + + expect(response).toBeInstanceOf(UnprocessableEntityError) + }) +}) diff --git a/test/unit/application/evento/CriarEventoController.test.ts b/test/unit/application/evento/CriarEventoController.test.ts new file mode 100644 index 00000000..cbb94912 --- /dev/null +++ b/test/unit/application/evento/CriarEventoController.test.ts @@ -0,0 +1,133 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { CriarEventoController } from '@/application/evento/CriarEventoController' +import { CriarEventoUseCase } from '@/domain/evento/CriarEventoUseCase' +import { Attributes } from '@/domain/evento/Evento' +import { CheckViolationError } from '@/infrastructure/error/CheckViolationError' +import { CollectionError } from '@/infrastructure/error/CollectionError' +import { ForeignKeyViolationError } from '@/infrastructure/error/ForeignKeyViolationError' +import { Either } from '@/library/either/Either' +import { + Headers, HttpRequest, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { UnprocessableEntityError } from '@/library/http/error/UnprocessableEntityError' + +const headers = {} as Headers + +const attributes: Attributes = { + altitude: null, + capturado_em: new Date('2026-02-15T14:32:00Z'), + coleta: null, + created_at: new Date(), + created_by: null, + expedicao_id: 1, + id: 10, + latitude: -20.2508, + longitude: -46.4167, + observacoes: 'Solo arenoso', + tipo: 'DIARIO', + updated_at: new Date(), + updated_by: null +} + +const validBody = { + capturado_em: '2026-02-15T14:32:00Z', + latitude: -20.2508, + longitude: -46.4167, + observacoes: 'Solo arenoso', + tipo: 'DIARIO' +} + +function makeRequest(params: Record, body: unknown): HttpRequest { + return { + body, headers, method: Method.Post, params, path: '/v2/expedicoes/1/eventos' + } satisfies HttpRequest +} + +describe('CriarEventoController', () => { + test('retorna 201 com o evento criado', async () => { + const criarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(attributes)) + } as unknown as CriarEventoUseCase + + const controller = new CriarEventoController({ criarEventoUseCase }) + const response = await controller.handle(makeRequest({ expedicaoId: '1' }, validBody), vi.fn()) + + expect(criarEventoUseCase.execute).toHaveBeenCalledWith(expect.objectContaining({ + expedicao_id: 1, tipo: 'DIARIO' + })) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Created) + expect('body' in response ? response.body : undefined).toEqual(attributes) + }) + + test('retorna 400 quando expedicaoId é inválido', async () => { + const criarEventoUseCase = { execute: vi.fn() } as unknown as CriarEventoUseCase + const controller = new CriarEventoController({ criarEventoUseCase }) + + const response = await controller.handle(makeRequest({ expedicaoId: 'abc' }, validBody), vi.fn()) + + expect(criarEventoUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 400 quando tipo é inválido', async () => { + const criarEventoUseCase = { execute: vi.fn() } as unknown as CriarEventoUseCase + const controller = new CriarEventoController({ criarEventoUseCase }) + + const response = await controller.handle( + makeRequest({ expedicaoId: '1' }, { ...validBody, tipo: 'FOTO' }), + vi.fn() + ) + + expect(criarEventoUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 400 quando a validação de domínio falha (Either.left com Error simples)', async () => { + const criarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('Evento de coleta exige a ficha de coleta'))) + } as unknown as CriarEventoUseCase + + const controller = new CriarEventoController({ criarEventoUseCase }) + const response = await controller.handle(makeRequest({ expedicaoId: '1' }, validBody), vi.fn()) + + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 404 quando a expedição não existe (ForeignKeyViolationError)', async () => { + const criarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new ForeignKeyViolationError({ message: 'Expedição não encontrada' }))) + } as unknown as CriarEventoUseCase + + const controller = new CriarEventoController({ criarEventoUseCase }) + const response = await controller.handle(makeRequest({ expedicaoId: '999' }, validBody), vi.fn()) + + expect(response).toBeInstanceOf(NotFoundError) + }) + + test('retorna 422 quando o banco rejeita o tipo (CheckViolationError)', async () => { + const criarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new CheckViolationError({ message: 'tipo inválido' }))) + } as unknown as CriarEventoUseCase + + const controller = new CriarEventoController({ criarEventoUseCase }) + const response = await controller.handle(makeRequest({ expedicaoId: '1' }, validBody), vi.fn()) + + expect(response).toBeInstanceOf(UnprocessableEntityError) + }) + + test('retorna 500 quando ocorre erro de infraestrutura genérico', async () => { + const criarEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new CollectionError({ message: 'DB down' }))) + } as unknown as CriarEventoUseCase + + const controller = new CriarEventoController({ criarEventoUseCase }) + const response = await controller.handle(makeRequest({ expedicaoId: '1' }, validBody), vi.fn()) + + expect((response as Error).name).toBe('InternalServerError') + }) +}) diff --git a/test/unit/application/evento/RemoverEventoController.test.ts b/test/unit/application/evento/RemoverEventoController.test.ts new file mode 100644 index 00000000..f1a91eec --- /dev/null +++ b/test/unit/application/evento/RemoverEventoController.test.ts @@ -0,0 +1,70 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { RemoverEventoController } from '@/application/evento/RemoverEventoController' +import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' +import { Either } from '@/library/either/Either' +import { + Headers, HttpRequest, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { NotFoundError } from '@/library/http/error/NotFoundError' + +const headers = {} as Headers + +function makeRequest(params: Record): HttpRequest { + return { + body: {}, + headers, + method: Method.Delete, + params, + path: '/v2/eventos/10' + } satisfies HttpRequest +} + +describe('RemoverEventoController', () => { + test('retorna 204 quando o evento é removido', async () => { + const removerEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(true)) + } as unknown as RemoverEventoUseCase + + const controller = new RemoverEventoController({ removerEventoUseCase }) + const response = await controller.handle(makeRequest({ eventoId: '10' }), vi.fn()) + + expect(removerEventoUseCase.execute).toHaveBeenCalledWith({ id: 10 }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.NoContent) + }) + + test('retorna 404 quando o evento não existe', async () => { + const removerEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(false)) + } as unknown as RemoverEventoUseCase + + const controller = new RemoverEventoController({ removerEventoUseCase }) + const response = await controller.handle(makeRequest({ eventoId: '999' }), vi.fn()) + + expect(response).toBeInstanceOf(NotFoundError) + }) + + test('retorna 400 quando eventoId é inválido', async () => { + const removerEventoUseCase = { execute: vi.fn() } as unknown as RemoverEventoUseCase + const controller = new RemoverEventoController({ removerEventoUseCase }) + + const response = await controller.handle(makeRequest({ eventoId: 'abc' }), vi.fn()) + + expect(removerEventoUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 500 quando ocorre erro de infraestrutura', async () => { + const removerEventoUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('DB down'))) + } as unknown as RemoverEventoUseCase + + const controller = new RemoverEventoController({ removerEventoUseCase }) + const response = await controller.handle(makeRequest({ eventoId: '10' }), vi.fn()) + + expect((response as Error).name).toBe('InternalServerError') + }) +}) From 23900b37ed1f93e53ed56ff996e6dcd6645349bc Mon Sep 17 00:00:00 2001 From: vitormoraes2486 Date: Sun, 20 Sep 2026 12:02:57 -0300 Subject: [PATCH 03/58] test: adicionado testes de dominio faltantes --- .../evento/AtualizarEventoUseCase.test.ts | 192 ++++++++++++++++++ .../domain/evento/CriarEventoUseCase.test.ts | 81 ++++++++ .../evento/RemoverEventoUseCase.test.ts | 54 +++++ 3 files changed, 327 insertions(+) create mode 100644 test/unit/domain/evento/AtualizarEventoUseCase.test.ts create mode 100644 test/unit/domain/evento/CriarEventoUseCase.test.ts create mode 100644 test/unit/domain/evento/RemoverEventoUseCase.test.ts diff --git a/test/unit/domain/evento/AtualizarEventoUseCase.test.ts b/test/unit/domain/evento/AtualizarEventoUseCase.test.ts new file mode 100644 index 00000000..9bd3dec8 --- /dev/null +++ b/test/unit/domain/evento/AtualizarEventoUseCase.test.ts @@ -0,0 +1,192 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { AtualizarEventoUseCase } from '@/domain/evento/AtualizarEventoUseCase' +import { Attributes, ColetaAttributes } from '@/domain/evento/Evento' +import { EventoCollection } from '@/domain/evento/EventoCollection' +import { Either } from '@/library/either/Either' + +function fichaCompleta(overrides: Partial = {}): ColetaAttributes { + return { + associacoes: null, + estado: null, + familia: null, + flores: null, + folhas: null, + frutos: null, + habito: null, + luminosidade: null, + municipio: null, + nome_cientifico: 'Vellozia squamata', + nome_popular: null, + referencia_local: null, + relevo: null, + solo: null, + substrato: null, + tipo_vegetacao: null, + tronco_com_casca: null, + ...overrides + } +} + +const diarioAttributes: Attributes = { + altitude: null, + capturado_em: new Date('2026-02-15T14:32:00Z'), + coleta: null, + created_at: new Date(), + created_by: null, + expedicao_id: 1, + id: 10, + latitude: -20.2508, + longitude: -46.4167, + observacoes: 'Solo arenoso', + tipo: 'DIARIO', + updated_at: new Date(), + updated_by: null +} + +const coletaAttributes: Attributes = { + ...diarioAttributes, + coleta: fichaCompleta(), + id: 11, + observacoes: null, + tipo: 'COLETA' +} + +const makeMockCollection = (overrides?: Partial): EventoCollection => ({ + create: vi.fn(), + delete: vi.fn(), + findAll: vi.fn(), + findById: vi.fn().mockResolvedValue(Either.right(diarioAttributes)), + update: vi.fn().mockResolvedValue(Either.right(diarioAttributes)), + ...overrides +}) + +describe('AtualizarEventoUseCase', () => { + test('atualiza campos comuns sem tocar no tipo', async () => { + const collection = makeMockCollection() + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ + id: 10, latitude: -21, updated_by: 5 + }) + + expect(result.right()).toBe(true) + expect(collection.update).toHaveBeenCalledWith(10, { + altitude: null, + capturado_em: diarioAttributes.capturado_em, + coleta: null, + latitude: -21, + longitude: diarioAttributes.longitude, + observacoes: diarioAttributes.observacoes, + tipo: 'DIARIO', + updated_by: 5 + }) + }) + + test('retorna null quando o evento não existe', async () => { + const collection = makeMockCollection({ + findById: vi.fn().mockResolvedValue(Either.right(null)) + }) + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ id: 999, updated_by: null }) + + expect(result.right()).toBe(true) + expect(result.value).toBeNull() + expect(collection.update).not.toHaveBeenCalled() + }) + + test('rejeita coordenadas fora de faixa sem chamar update', async () => { + const collection = makeMockCollection() + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ + id: 10, latitude: 200, updated_by: null + }) + + expect(result.left()).toBe(true) + expect(collection.update).not.toHaveBeenCalled() + }) + + test('COLETA -> DIARIO descarta a ficha mesmo sem o cliente mandar coleta', async () => { + const collection = makeMockCollection({ + findById: vi.fn().mockResolvedValue(Either.right(coletaAttributes)), + update: vi.fn().mockResolvedValue(Either.right({ + ...coletaAttributes, coleta: null, tipo: 'DIARIO' + })) + }) + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ + id: 11, observacoes: 'virou diário', tipo: 'DIARIO', updated_by: null + }) + + expect(result.right()).toBe(true) + expect(collection.update).toHaveBeenCalledWith(11, expect.objectContaining({ + coleta: null, + tipo: 'DIARIO' + })) + }) + + test('DIARIO -> COLETA exige a ficha no corpo da requisição', async () => { + const collection = makeMockCollection() + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ + id: 10, tipo: 'COLETA', updated_by: null + }) + + expect(result.left()).toBe(true) + expect(collection.update).not.toHaveBeenCalled() + }) + + test('DIARIO -> COLETA com ficha no corpo é aceito', async () => { + const collection = makeMockCollection() + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const ficha = fichaCompleta({ habito: 'Herbácea' }) + const result = await useCase.execute({ + coleta: ficha, id: 10, tipo: 'COLETA', updated_by: null + }) + + expect(result.right()).toBe(true) + expect(collection.update).toHaveBeenCalledWith(10, expect.objectContaining({ + coleta: ficha, + tipo: 'COLETA' + })) + }) + + test('mantém o tipo COLETA e mantém a ficha atual quando coleta não é enviado', async () => { + const collection = makeMockCollection({ + findById: vi.fn().mockResolvedValue(Either.right(coletaAttributes)), + update: vi.fn().mockResolvedValue(Either.right(coletaAttributes)) + }) + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ + id: 11, latitude: -22, updated_by: null + }) + + expect(result.right()).toBe(true) + expect(collection.update).toHaveBeenCalledWith(11, expect.objectContaining({ + coleta: coletaAttributes.coleta, + tipo: 'COLETA' + })) + }) + + test('mantém o tipo COLETA e substitui a ficha inteira quando coleta é enviado', async () => { + const collection = makeMockCollection({ + findById: vi.fn().mockResolvedValue(Either.right(coletaAttributes)) + }) + const useCase = new AtualizarEventoUseCase({ eventoCollection: collection }) + + const novaFicha = fichaCompleta({ habito: 'Arbustiva', nome_cientifico: 'Outra espécie' }) + await useCase.execute({ + coleta: novaFicha, id: 11, updated_by: null + }) + + expect(collection.update).toHaveBeenCalledWith(11, expect.objectContaining({ coleta: novaFicha })) + }) +}) diff --git a/test/unit/domain/evento/CriarEventoUseCase.test.ts b/test/unit/domain/evento/CriarEventoUseCase.test.ts new file mode 100644 index 00000000..9ec197c6 --- /dev/null +++ b/test/unit/domain/evento/CriarEventoUseCase.test.ts @@ -0,0 +1,81 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { CriarEventoUseCase } from '@/domain/evento/CriarEventoUseCase' +import { Attributes, CreateAttributes } from '@/domain/evento/Evento' +import { EventoCollection } from '@/domain/evento/EventoCollection' +import { Either } from '@/library/either/Either' + +const attributes: Attributes = { + altitude: null, + capturado_em: new Date('2026-02-15T14:32:00Z'), + coleta: null, + created_at: new Date(), + created_by: null, + expedicao_id: 1, + id: 10, + latitude: -20.2508, + longitude: -46.4167, + observacoes: 'Solo arenoso', + tipo: 'DIARIO', + updated_at: new Date(), + updated_by: null +} + +const validInput: CreateAttributes = { + altitude: null, + capturado_em: new Date('2026-02-15T14:32:00Z'), + coleta: null, + created_by: null, + expedicao_id: 1, + latitude: -20.2508, + longitude: -46.4167, + observacoes: 'Solo arenoso', + tipo: 'DIARIO' +} + +const makeMockCollection = (overrides?: Partial): EventoCollection => ({ + create: vi.fn().mockResolvedValue(Either.right(attributes)), + delete: vi.fn(), + findAll: vi.fn(), + findById: vi.fn(), + update: vi.fn(), + ...overrides +}) + +describe('CriarEventoUseCase', () => { + test('cria o evento quando os dados são válidos', async () => { + const collection = makeMockCollection() + const useCase = new CriarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute(validInput) + + expect(result.right()).toBe(true) + expect(result.value).toEqual(attributes) + expect(collection.create).toHaveBeenCalledWith(validInput) + }) + + test('não chama a collection quando a validação de domínio falha (COLETA sem ficha)', async () => { + const collection = makeMockCollection() + const useCase = new CriarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ ...validInput, tipo: 'COLETA' }) + + expect(result.left()).toBe(true) + expect(collection.create).not.toHaveBeenCalled() + }) + + test('propaga erro de infraestrutura da collection', async () => { + const error = new Error('DB failure') + const collection = makeMockCollection({ + create: vi.fn().mockResolvedValue(Either.left(error)) + }) + const useCase = new CriarEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute(validInput) + + expect(result.left()).toBe(true) + expect(result.value).toBe(error) + }) +}) diff --git a/test/unit/domain/evento/RemoverEventoUseCase.test.ts b/test/unit/domain/evento/RemoverEventoUseCase.test.ts new file mode 100644 index 00000000..ad70f49d --- /dev/null +++ b/test/unit/domain/evento/RemoverEventoUseCase.test.ts @@ -0,0 +1,54 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { EventoCollection } from '@/domain/evento/EventoCollection' +import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' +import { Either } from '@/library/either/Either' + +const makeMockCollection = (overrides?: Partial): EventoCollection => ({ + create: vi.fn(), + delete: vi.fn().mockResolvedValue(Either.right(true)), + findAll: vi.fn(), + findById: vi.fn(), + update: vi.fn(), + ...overrides +}) + +describe('RemoverEventoUseCase', () => { + test('retorna true quando o evento é removido', async () => { + const collection = makeMockCollection() + const useCase = new RemoverEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ id: 10 }) + + expect(result.right()).toBe(true) + expect(result.value).toBe(true) + expect(collection.delete).toHaveBeenCalledWith(10) + }) + + test('retorna false quando o evento não existe', async () => { + const collection = makeMockCollection({ + delete: vi.fn().mockResolvedValue(Either.right(false)) + }) + const useCase = new RemoverEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ id: 999 }) + + expect(result.right()).toBe(true) + expect(result.value).toBe(false) + }) + + test('propaga erro de infraestrutura', async () => { + const error = new Error('DB failure') + const collection = makeMockCollection({ + delete: vi.fn().mockResolvedValue(Either.left(error)) + }) + const useCase = new RemoverEventoUseCase({ eventoCollection: collection }) + + const result = await useCase.execute({ id: 10 }) + + expect(result.left()).toBe(true) + expect(result.value).toBe(error) + }) +}) From 86c349cea41b87e65b5d97e94f1f922a2cdfbc8b Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Sun, 20 Sep 2026 15:48:55 -0300 Subject: [PATCH 04/58] feat(expedicao): adiciona endpoint de cadastro --- src/application/create-app.ts | 4 +- .../expedicao/CadastraExpedicaoController.ts | 89 +++++++++++++++++++ src/application/expedicao/index.ts | 24 +++++ .../expedicao/CadastraExpedicaoUseCase.ts | 35 ++++++++ src/factory/ExpedicaoCollectionFactory.ts | 8 ++ 5 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 src/application/expedicao/CadastraExpedicaoController.ts create mode 100644 src/application/expedicao/index.ts create mode 100644 src/domain/expedicao/CadastraExpedicaoUseCase.ts create mode 100644 src/factory/ExpedicaoCollectionFactory.ts diff --git a/src/application/create-app.ts b/src/application/create-app.ts index a3b3901c..dfad9e88 100644 --- a/src/application/create-app.ts +++ b/src/application/create-app.ts @@ -16,6 +16,7 @@ import { routes as createEstadoRoutes } from './estado' import { routes as createFaseSucessionalRoutes } from './fase-sucessional' import { routes as createPaisRoutes } from './pais' import { routes as createVegetacaoRoutes } from './vegetacao' +import { routes as createExpedicoesRoutes } from './expedicao' interface CorsParameters { origins: string[] @@ -59,7 +60,8 @@ export function createApp({ ...createPaisRoutes(knex), ...createEstadoRoutes(knex), ...createFaseSucessionalRoutes(knex), - ...createVegetacaoRoutes(knex) + ...createVegetacaoRoutes(knex), + ...createExpedicoesRoutes(knex) ] const application = new ExpressApplication({ logger }) diff --git a/src/application/expedicao/CadastraExpedicaoController.ts b/src/application/expedicao/CadastraExpedicaoController.ts new file mode 100644 index 00000000..eec403b1 --- /dev/null +++ b/src/application/expedicao/CadastraExpedicaoController.ts @@ -0,0 +1,89 @@ +import { CadastraExpedicaoUseCase } from '@/domain/expedicao/CadastraExpedicaoUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' +// import { TIPOS_USUARIOS } from '@/middlewares/tokens-middleware' +// import { UnauthorizedError } from '@/library/http/error/UnauthorizedError' + +interface Dependencies { + cadastraExpedicaoUseCase: CadastraExpedicaoUseCase +} + +interface CustomHttpRequest extends HttpRequest { + usuario?: { + id: number + tipo_usuario_id: number + } +} + +export class CadastraExpedicaoController implements RequestHandler { + private readonly cadastraExpedicaoUseCase: CadastraExpedicaoUseCase + + constructor(dependencies: Dependencies) { + this.cadastraExpedicaoUseCase = dependencies.cadastraExpedicaoUseCase + } + + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + try { + + // TODO: AUTENTICAÇÃO TEMPORARIAMENTE DESABILITADA + // A infraestrutura de request HTTP autenticada está sendo desenvolvida. + // Assim que integrada, descomentar a validação abaixo e remover o mock do 'created_by'. + + + // if (!request.usuario || ![TIPOS_USUARIOS.CURADOR, TIPOS_USUARIOS.OPERADOR].includes(request.usuario.tipo_usuario_id)) { + // return new UnauthorizedError({ message: 'Não tem permissão para realizar esta ação' }) + // } + + const { descricao, data_inicio, data_fim, cidade_id, participantes, rotas } = request.body as any + + // VALIDAÇÃO MANUAL DE DADOS + if (!data_inicio || Number.isNaN(Date.parse(data_inicio))) { + return new BadRequestError({ message: 'A data_inicio é obrigatória e deve ser uma data válida (ex: YYYY-MM-DD).' }) + } + + if (!data_fim || Number.isNaN(Date.parse(data_fim))) { + return new BadRequestError({ message: 'A data_fim é obrigatória e deve ser uma data válida (ex: YYYY-MM-DD).' }) + } + + if (!cidade_id || typeof cidade_id !== 'number' || cidade_id <= 0) { + return new BadRequestError({ message: 'O cidade_id é obrigatório e deve ser um número válido.' }) + } + + if (descricao !== undefined && descricao !== null && typeof descricao !== 'string') { + return new BadRequestError({ message: 'A descricao, se informada, deve ser um texto.' }) + } + + // MOCK TEMPORÁRIO: Substituir pelo request.usuario.id quando a autenticação estiver pronta + const created_by = 9; // Id válido de usuário para teste + + // EXECUÇÃO DO CASO DE USO + const result = await this.cadastraExpedicaoUseCase.execute({ + descricao: descricao ?? null, + data_inicio, + data_fim, + cidade_id, + created_by, + participantes: participantes ?? [], + rotas: rotas ?? [] + }) + + if (result.left()) { + return new BadRequestError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.Created, + body: result.value + } + + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao cadastrar expedição' + return new InternalServerError({ message: errorMessage }) + } + } +} diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts new file mode 100644 index 00000000..1c0d4813 --- /dev/null +++ b/src/application/expedicao/index.ts @@ -0,0 +1,24 @@ +import { type Knex } from 'knex' + +import { CadastraExpedicaoUseCase } from '@/domain/expedicao/CadastraExpedicaoUseCase' +import { Method } from '@/library/http/common' +import { Route } from '@/library/http/Router' + +import { CadastraExpedicaoController } from './CadastraExpedicaoController' +import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' + +export function routes(knex: Knex): Route[] { + const expedicaoCollection = createExpedicaoCollection() + + return [ + { + method: Method.Post, + path: '/v2/expedicoes', + handlers: [ + new CadastraExpedicaoController({ + cadastraExpedicaoUseCase: new CadastraExpedicaoUseCase({ expedicaoCollection }) + }) + ] + } + ] +} diff --git a/src/domain/expedicao/CadastraExpedicaoUseCase.ts b/src/domain/expedicao/CadastraExpedicaoUseCase.ts new file mode 100644 index 00000000..f9331f4e --- /dev/null +++ b/src/domain/expedicao/CadastraExpedicaoUseCase.ts @@ -0,0 +1,35 @@ +import { Either } from '@/library/either/Either' + +import { Attributes, CreateAttributes, Expedicao } from './Expedicao' +import { ExpedicaoCollection } from './ExpedicaoCollection' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class CadastraExpedicaoUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + async execute(dados: CreateAttributes): Promise> { + // Valida as regras de negócio passando pela Entidade. + // Entidade exige id e datas de auditoria na interface, mockado para a validação passar. + const validacao = Expedicao.create({ + ...dados, + id: 0, + created_at: new Date(), + updated_at: new Date(), + updated_by: null + } as Attributes) + + if (validacao.left()) { + return Either.left(validacao.value) + } + + // Adapter para persistir no banco + return await this.expedicaoCollection.create(dados) + } +} diff --git a/src/factory/ExpedicaoCollectionFactory.ts b/src/factory/ExpedicaoCollectionFactory.ts new file mode 100644 index 00000000..fe19e09e --- /dev/null +++ b/src/factory/ExpedicaoCollectionFactory.ts @@ -0,0 +1,8 @@ +import { ExpedicaoCollectionKnexAdapter } from '@/infrastructure/ExpedicaoCollectionKnexAdapter' +import { singleton } from '@/library/singleton' + +import { createKnexInstance } from './KnexFactory' + +export const createExpedicaoCollection = singleton(() => { + return new ExpedicaoCollectionKnexAdapter({ knex: createKnexInstance() }) +}) From ab6192d78df2ef2373475107ee60fa4983c8844b Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Sun, 20 Sep 2026 16:15:53 -0300 Subject: [PATCH 05/58] feat(expedicao): adiciona endpoint de listagem com filtros --- .../expedicao/ListaExpedicoesController.ts | 84 +++++++++++++++++++ src/application/expedicao/index.ts | 11 +++ .../expedicao/ListaExpedicoesUseCase.ts | 20 +++++ 3 files changed, 115 insertions(+) create mode 100644 src/application/expedicao/ListaExpedicoesController.ts create mode 100644 src/domain/expedicao/ListaExpedicoesUseCase.ts diff --git a/src/application/expedicao/ListaExpedicoesController.ts b/src/application/expedicao/ListaExpedicoesController.ts new file mode 100644 index 00000000..f85c9bdc --- /dev/null +++ b/src/application/expedicao/ListaExpedicoesController.ts @@ -0,0 +1,84 @@ +import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' +import { ExpedicaoFilters } from '@/domain/expedicao/ExpedicaoCollection' +import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + listaExpedicoesUseCase: ListaExpedicoesUseCase +} + +// interface do formato da nossa query +interface CustomHttpRequest extends HttpRequest { + params: Record +} + +export class ListaExpedicoesController implements RequestHandler { + private readonly listaExpedicoesUseCase: ListaExpedicoesUseCase + + constructor(dependencies: Dependencies) { + this.listaExpedicoesUseCase = dependencies.listaExpedicoesUseCase + } + + // Listar todas (com ordenação padrão DESC): + // GET /api/v2/expedicoes + + // Filtrar por uma cidade específica: + // GET /api/v2/expedicoes?cidade_id=1100049 + + // Filtrar por intervalo de datas: + // GET /api/v2/expedicoes?data_inicio_de=2026-01-01&data_fim_ate=2026-12-31] + + // Filtrar com ordenação: + // GET /api/v2/expedicoes?order_column=id&order_direction=asc + + + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + try { + const { + cidade_id, + usuario_id, + data_inicio_de, + data_fim_ate, + order_column, + order_direction + } = request.params + + const filters: ExpedicaoFilters = {} + + if (cidade_id && !Number.isNaN(Number(cidade_id))) { + filters.cidade_id = Number(cidade_id) + } + + if (usuario_id && !Number.isNaN(Number(usuario_id))) { + filters.usuario_id = Number(usuario_id) + } + + if (data_inicio_de) filters.data_inicio_de = data_inicio_de + if (data_fim_ate) filters.data_fim_ate = data_fim_ate + + if (order_column && order_direction) { + filters.order = { + column: order_column as 'id' | 'data_inicio' | 'data_fim', + direction: order_direction as 'asc' | 'desc' + } + } + + const result = await this.listaExpedicoesUseCase.execute(filters) + + if (result.left()) { + return new BadRequestError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.Ok, + body: result.value + } + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao listar expedições' + return new InternalServerError({ message: errorMessage }) + } + } +} diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index 1c0d4813..70b861b3 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -6,6 +6,8 @@ import { Route } from '@/library/http/Router' import { CadastraExpedicaoController } from './CadastraExpedicaoController' import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' +import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' +import { ListaExpedicoesController } from './ListaExpedicoesController' export function routes(knex: Knex): Route[] { const expedicaoCollection = createExpedicaoCollection() @@ -19,6 +21,15 @@ export function routes(knex: Knex): Route[] { cadastraExpedicaoUseCase: new CadastraExpedicaoUseCase({ expedicaoCollection }) }) ] + }, + { + method: Method.Get, + path: '/v2/expedicoes', + handlers: [ + new ListaExpedicoesController({ + listaExpedicoesUseCase: new ListaExpedicoesUseCase({ expedicaoCollection }) + }) + ] } ] } diff --git a/src/domain/expedicao/ListaExpedicoesUseCase.ts b/src/domain/expedicao/ListaExpedicoesUseCase.ts new file mode 100644 index 00000000..23bf7420 --- /dev/null +++ b/src/domain/expedicao/ListaExpedicoesUseCase.ts @@ -0,0 +1,20 @@ +import { Either } from '@/library/either/Either' +import { Attributes } from './Expedicao' +import { ExpedicaoCollection, ExpedicaoFilters } from './ExpedicaoCollection' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class ListaExpedicoesUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + async execute(filters: ExpedicaoFilters): Promise> { + // repassa os filtros para o adapter realizar a busca + return await this.expedicaoCollection.findAll(filters) + } +} From a50c225546a0b76349b6d0624f3ab8803e0071ad Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Sun, 20 Sep 2026 16:33:57 -0300 Subject: [PATCH 06/58] feat(expedicao): adiciona endpoint de busca por id --- .../expedicao/BuscaExpedicaoController.ts | 51 +++++++++++++++++++ src/application/expedicao/index.ts | 15 ++++-- src/domain/expedicao/BuscaExpedicaoUseCase.ts | 35 +++++++++++++ .../ExpedicaoCollectionKnexAdapter.ts | 27 +++++++++- 4 files changed, 124 insertions(+), 4 deletions(-) create mode 100644 src/application/expedicao/BuscaExpedicaoController.ts create mode 100644 src/domain/expedicao/BuscaExpedicaoUseCase.ts diff --git a/src/application/expedicao/BuscaExpedicaoController.ts b/src/application/expedicao/BuscaExpedicaoController.ts new file mode 100644 index 00000000..ac9d9a1e --- /dev/null +++ b/src/application/expedicao/BuscaExpedicaoController.ts @@ -0,0 +1,51 @@ +import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' +import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + buscaExpedicaoUseCase: BuscaExpedicaoUseCase +} + +interface CustomHttpRequest extends HttpRequest { + params: Record +} + +export class BuscaExpedicaoController implements RequestHandler { + private readonly buscaExpedicaoUseCase: BuscaExpedicaoUseCase + + constructor(dependencies: Dependencies) { + this.buscaExpedicaoUseCase = dependencies.buscaExpedicaoUseCase + } + + // Busca expedição por ID + // GET /v2/expedicoes/:expedicaoId + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + try { + const { expedicaoId } = request.params + + // validação id + if (!expedicaoId || Number.isNaN(Number(expedicaoId))) { + return new BadRequestError({ message: 'O ID da expedição é inválido.' }) + } + + const result = await this.buscaExpedicaoUseCase.execute(Number(expedicaoId)) + + // se falhouo assumimos que não encontrou a expedição, então retornamos 404 + if (result.left()) { + return new NotFoundError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.Ok, + body: result.value + } + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao buscar expedição por ID' + return new InternalServerError({ message: errorMessage }) + } + } +} diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index 70b861b3..6f8c713a 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -1,13 +1,13 @@ import { type Knex } from 'knex' - -import { CadastraExpedicaoUseCase } from '@/domain/expedicao/CadastraExpedicaoUseCase' import { Method } from '@/library/http/common' import { Route } from '@/library/http/Router' - +import { CadastraExpedicaoUseCase } from '@/domain/expedicao/CadastraExpedicaoUseCase' import { CadastraExpedicaoController } from './CadastraExpedicaoController' import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' import { ListaExpedicoesController } from './ListaExpedicoesController' +import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' +import { BuscaExpedicaoController } from './BuscaExpedicaoController' export function routes(knex: Knex): Route[] { const expedicaoCollection = createExpedicaoCollection() @@ -30,6 +30,15 @@ export function routes(knex: Knex): Route[] { listaExpedicoesUseCase: new ListaExpedicoesUseCase({ expedicaoCollection }) }) ] + }, + { + method: Method.Get, + path: '/v2/expedicoes/:expedicaoId', // <-- O :expedicaoId é o que chega no request.params + handlers: [ + new BuscaExpedicaoController({ + buscaExpedicaoUseCase: new BuscaExpedicaoUseCase({ expedicaoCollection }) + }) + ] } ] } diff --git a/src/domain/expedicao/BuscaExpedicaoUseCase.ts b/src/domain/expedicao/BuscaExpedicaoUseCase.ts new file mode 100644 index 00000000..58c08784 --- /dev/null +++ b/src/domain/expedicao/BuscaExpedicaoUseCase.ts @@ -0,0 +1,35 @@ +import { Either, Left, Right } from '@/library/either/Either' +import { Attributes } from './Expedicao' +import { ExpedicaoCollection } from './ExpedicaoCollection' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class BuscaExpedicaoUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + async execute(id: number): Promise> { + + const result = await this.expedicaoCollection.findById(id) + + // operação de banco falhou + if (result.left()) { + return new Left(result.value as Error) + } + + const expedicao = result.value + + // buscou man não encontrou o ID (null ou undefined) + if (!expedicao) { + return new Left(new Error('Expedição não encontrada.')) + } + + // sucesso + return new Right(expedicao) + } +} diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 85fcf963..5f866268 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -94,7 +94,32 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { async findById(id: number): Promise> { try { const row = await this.select().where('expedicoes.id', id).first() as Row | undefined - return Either.right(row ? toAttributes(row) : null) + + if (!row) { + return Either.right(null) + } + + const participantes = await this.knex('expedicoes_participantes') + .join('usuarios', 'usuarios.id', 'expedicoes_participantes.usuario_id') + .where('expedicoes_participantes.expedicao_id', id) + .select('usuarios.id', 'usuarios.nome', 'usuarios.email') + + const rotas = await this.knex('expedicoes_rotas') + .join('cidades', 'cidades.id', 'expedicoes_rotas.cidade_id') + .where('expedicoes_rotas.expedicao_id', id) + .select( + 'cidades.id as cidade_id', + 'expedicoes_rotas.ordem', + 'cidades.nome as nome_cidade', + 'cidades.estado_id' + ) + .orderBy('expedicoes_rotas.ordem', 'asc') + + return Either.right({ + ...toAttributes(row), + participantes, + rotas + } as unknown as Attributes) } catch (error) { return Either.left(new CollectionError({ message: 'Failed to find expedição by id', cause: error })) } From c46de0d0adfec13dc752f4db4279353627f2aa8b Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Sun, 20 Sep 2026 22:12:28 -0300 Subject: [PATCH 07/58] feat(expedicao): endpoint de listagem com paginacao --- .../expedicao/ListaExpedicoesController.ts | 11 +++- src/domain/expedicao/ExpedicaoCollection.ts | 12 +++- .../expedicao/ListaExpedicoesUseCase.ts | 4 +- .../ExpedicaoCollectionKnexAdapter.ts | 66 +++++++++++++++---- 4 files changed, 77 insertions(+), 16 deletions(-) diff --git a/src/application/expedicao/ListaExpedicoesController.ts b/src/application/expedicao/ListaExpedicoesController.ts index f85c9bdc..9b92fdd9 100644 --- a/src/application/expedicao/ListaExpedicoesController.ts +++ b/src/application/expedicao/ListaExpedicoesController.ts @@ -43,7 +43,9 @@ export class ListaExpedicoesController implements RequestHandler { data_inicio_de, data_fim_ate, order_column, - order_direction + order_direction, + limite, + pagina } = request.params const filters: ExpedicaoFilters = {} @@ -66,6 +68,13 @@ export class ListaExpedicoesController implements RequestHandler { } } + if (limite && !Number.isNaN(Number(limite))) { + filters.limite = Number(limite) + } + if (pagina && !Number.isNaN(Number(pagina))) { + filters.pagina = Number(pagina) + } + const result = await this.listaExpedicoesUseCase.execute(filters) if (result.left()) { diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index fbeaa0a4..90138c85 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -13,10 +13,20 @@ export interface ExpedicaoFilters { data_inicio_de?: string data_fim_ate?: string order?: ExpedicaoOrder + // Novos campos de paginação + limite?: number + pagina?: number +} + +export interface Paginated { + itens: T[] + total: number + limite: number + pagina: number } export interface ExpedicaoCollection { - findAll(filters: ExpedicaoFilters): Promise> + findAll(filters: ExpedicaoFilters): Promise>> findById(id: number): Promise> create(attributes: CreateAttributes): Promise> } diff --git a/src/domain/expedicao/ListaExpedicoesUseCase.ts b/src/domain/expedicao/ListaExpedicoesUseCase.ts index 23bf7420..a3458357 100644 --- a/src/domain/expedicao/ListaExpedicoesUseCase.ts +++ b/src/domain/expedicao/ListaExpedicoesUseCase.ts @@ -1,6 +1,6 @@ import { Either } from '@/library/either/Either' import { Attributes } from './Expedicao' -import { ExpedicaoCollection, ExpedicaoFilters } from './ExpedicaoCollection' +import { ExpedicaoCollection, ExpedicaoFilters, Paginated } from './ExpedicaoCollection' interface Dependencies { expedicaoCollection: ExpedicaoCollection @@ -13,7 +13,7 @@ export class ListaExpedicoesUseCase { this.expedicaoCollection = dependencies.expedicaoCollection } - async execute(filters: ExpedicaoFilters): Promise> { + async execute(filters: ExpedicaoFilters): Promise>> { // repassa os filtros para o adapter realizar a busca return await this.expedicaoCollection.findAll(filters) } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 5f866268..8c01152c 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -1,7 +1,7 @@ import { Knex } from 'knex' import { Attributes, CreateAttributes } from '@/domain/expedicao/Expedicao' -import { ExpedicaoCollection, ExpedicaoFilters } from '@/domain/expedicao/ExpedicaoCollection' +import { ExpedicaoCollection, ExpedicaoFilters, Paginated } from '@/domain/expedicao/ExpedicaoCollection' import { Either } from '@/library/either/Either' import { CollectionError } from './error/CollectionError' @@ -59,13 +59,11 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { ]) } - async findAll(filters: ExpedicaoFilters): Promise> { + async findAll(filters: ExpedicaoFilters): Promise>> { try { const query = this.select() - if (filters.cidade_id) { - query.where('expedicoes.cidade_id', filters.cidade_id) - } + if (filters.cidade_id) query.where('expedicoes.cidade_id', filters.cidade_id) if (filters.usuario_id) { query.whereIn('expedicoes.id', this.knex('expedicoes_participantes') @@ -73,19 +71,63 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { .where('usuario_id', filters.usuario_id)) } - if (filters.data_inicio_de) { - query.where('expedicoes.data_inicio', '>=', filters.data_inicio_de) - } + if (filters.data_inicio_de) query.where('expedicoes.data_inicio', '>=', filters.data_inicio_de) + if (filters.data_fim_ate) query.where('expedicoes.data_fim', '<=', filters.data_fim_ate) - if (filters.data_fim_ate) { - query.where('expedicoes.data_fim', '<=', filters.data_fim_ate) - } + // contagem de total de registros + const countQuery = query.clone() + const [{ count }] = await countQuery.clearSelect().count('* as count') + const total = Number(count) + + // valores padrão da paginação(20 e 1) + const limite = filters.limite && filters.limite > 0 ? filters.limite : 20 + const pagina = filters.pagina && filters.pagina > 0 ? filters.pagina : 1 + const offset = (pagina - 1) * limite + query.limit(limite).offset(offset) + + // ordenação const order = filters.order ?? { column: 'id' as const, direction: 'desc' as const } query.orderBy(`expedicoes.${order.column}`, order.direction) const rows = await query as Row[] - return Either.right(rows.map(toAttributes)) + + // página vazia, já retorna + if (rows.length === 0) { + return Either.right({ itens: [], total, limite, pagina }) + } + + const expedicoesIds = rows.map(row => row.id) + + const [participantesRows, rotasRows] = await Promise.all([ + this.knex('expedicoes_participantes') + .select('expedicao_id', 'usuario_id') + .whereIn('expedicao_id', expedicoesIds), + + this.knex('expedicoes_rotas') + .select('expedicao_id', 'cidade_id') + .whereIn('expedicao_id', expedicoesIds) + .orderBy('ordem', 'asc') + ]) + + const itens = rows.map(row => { + return { + ...toAttributes(row), + participantes: participantesRows + .filter(p => p.expedicao_id === row.id) + .map(p => p.usuario_id), + rotas: rotasRows + .filter(r => r.expedicao_id === row.id) + .map(r => r.cidade_id) + } + }) + + return Either.right({ + itens, + total, + limite, + pagina + }) } catch (error) { return Either.left(new CollectionError({ message: 'Failed to list expedições', cause: error })) } From d5529eea0d4a052c5d1d7a357383b501974a6d5f Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Sun, 20 Sep 2026 22:41:47 -0300 Subject: [PATCH 08/58] =?UTF-8?q?feat(expedicao):=20adiciona=20endpoint=20?= =?UTF-8?q?de=20exclus=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../expedicao/DeletaExpedicaoController.ts | 43 +++++++++++++++++++ src/application/expedicao/index.ts | 13 +++++- .../expedicao/DeletaExpedicaoUseCase.ts | 29 +++++++++++++ src/domain/expedicao/ExpedicaoCollection.ts | 1 + .../ExpedicaoCollectionKnexAdapter.ts | 14 ++++++ 5 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 src/application/expedicao/DeletaExpedicaoController.ts create mode 100644 src/domain/expedicao/DeletaExpedicaoUseCase.ts diff --git a/src/application/expedicao/DeletaExpedicaoController.ts b/src/application/expedicao/DeletaExpedicaoController.ts new file mode 100644 index 00000000..246832d8 --- /dev/null +++ b/src/application/expedicao/DeletaExpedicaoController.ts @@ -0,0 +1,43 @@ +import { DeletaExpedicaoUseCase } from '@/domain/expedicao/DeletaExpedicaoUseCase' +import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + deletaExpedicaoUseCase: DeletaExpedicaoUseCase +} + +interface CustomHttpRequest extends HttpRequest { + usuario?: { + id: number + tipo_usuario_id: number + } +} + +export class DeletaExpedicaoController implements RequestHandler { + private readonly deletaExpedicaoUseCase: DeletaExpedicaoUseCase + + constructor(dependencies: Dependencies) { + this.deletaExpedicaoUseCase = dependencies.deletaExpedicaoUseCase + } + + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + const { expedicaoId } = request.params + + if (!expedicaoId || Number.isNaN(Number(expedicaoId))) { + return new BadRequestError({ message: 'O ID da expedição é inválido.' }) + } + + const result = await this.deletaExpedicaoUseCase.execute(Number(expedicaoId)) + + if (result.left()) { + return new NotFoundError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.NoContent + } + } +} diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index 6f8c713a..47d5ebce 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -8,6 +8,8 @@ import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCas import { ListaExpedicoesController } from './ListaExpedicoesController' import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' import { BuscaExpedicaoController } from './BuscaExpedicaoController' +import { DeletaExpedicaoUseCase } from '@/domain/expedicao/DeletaExpedicaoUseCase' +import { DeletaExpedicaoController } from './DeletaExpedicaoController' export function routes(knex: Knex): Route[] { const expedicaoCollection = createExpedicaoCollection() @@ -33,12 +35,21 @@ export function routes(knex: Knex): Route[] { }, { method: Method.Get, - path: '/v2/expedicoes/:expedicaoId', // <-- O :expedicaoId é o que chega no request.params + path: '/v2/expedicoes/:expedicaoId', handlers: [ new BuscaExpedicaoController({ buscaExpedicaoUseCase: new BuscaExpedicaoUseCase({ expedicaoCollection }) }) ] + }, + { + method: Method.Delete, + path: '/v2/expedicoes/:expedicaoId', + handlers: [ + new DeletaExpedicaoController({ + deletaExpedicaoUseCase: new DeletaExpedicaoUseCase({ expedicaoCollection }) + }) + ] } ] } diff --git a/src/domain/expedicao/DeletaExpedicaoUseCase.ts b/src/domain/expedicao/DeletaExpedicaoUseCase.ts new file mode 100644 index 00000000..a9aead55 --- /dev/null +++ b/src/domain/expedicao/DeletaExpedicaoUseCase.ts @@ -0,0 +1,29 @@ +import { Either, Left, Right } from '@/library/either/Either' +import { ExpedicaoCollection } from './ExpedicaoCollection' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class DeletaExpedicaoUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + async execute(id: number): Promise> { + const expedicaoResult = await this.expedicaoCollection.findById(id) + + if (expedicaoResult.left() || !expedicaoResult.value) { + return new Left(new Error('Expedição não encontrada para exclusão.')) + } + + const deleteResult = await this.expedicaoCollection.delete(id) + + if (deleteResult.left()) { + return new Left(deleteResult.value as Error) + } + + return new Right(undefined) + } +} diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index 90138c85..b894a357 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -29,4 +29,5 @@ export interface ExpedicaoCollection { findAll(filters: ExpedicaoFilters): Promise>> findById(id: number): Promise> create(attributes: CreateAttributes): Promise> + delete(id: number): Promise> } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 8c01152c..fc341f5b 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -216,4 +216,18 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { return Either.left(new CollectionError({ message: 'Failed to create expedição', cause: error })) } } + + async delete(id: number): Promise> { + try { + await this.knex.transaction(async trx => { + await trx('expedicoes_participantes').where('expedicao_id', id).delete() + await trx('expedicoes_rotas').where('expedicao_id', id).delete() + await trx('expedicoes').where('id', id).delete() + }) + + return Either.right(undefined) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to delete expedição', cause: error })) + } + } } From 3467048837a4790f654acdefb2f59ecfb9030056 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Sun, 20 Sep 2026 23:57:41 -0300 Subject: [PATCH 09/58] =?UTF-8?q?feat(expedicao):=20adiciona=20endpoint=20?= =?UTF-8?q?de=20atualiza=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../expedicao/AtualizaExpedicaoController.ts | 77 +++++++++++++++++++ src/application/expedicao/index.ts | 11 +++ .../expedicao/AtualizaExpedicaoUseCase.ts | 29 +++++++ src/domain/expedicao/Expedicao.ts | 30 +++++++- src/domain/expedicao/ExpedicaoCollection.ts | 5 +- .../ExpedicaoCollectionKnexAdapter.ts | 16 +++- 6 files changed, 163 insertions(+), 5 deletions(-) create mode 100644 src/application/expedicao/AtualizaExpedicaoController.ts create mode 100644 src/domain/expedicao/AtualizaExpedicaoUseCase.ts diff --git a/src/application/expedicao/AtualizaExpedicaoController.ts b/src/application/expedicao/AtualizaExpedicaoController.ts new file mode 100644 index 00000000..ccbbc2b4 --- /dev/null +++ b/src/application/expedicao/AtualizaExpedicaoController.ts @@ -0,0 +1,77 @@ +import { AtualizaExpedicaoUseCase } from '@/domain/expedicao/AtualizaExpedicaoUseCase' +import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + atualizaExpedicaoUseCase: AtualizaExpedicaoUseCase +} + +interface CustomHttpRequest extends HttpRequest { + usuario?: { + id: number + tipo_usuario_id: number + } +} + +export class AtualizaExpedicaoController implements RequestHandler { + private readonly atualizaExpedicaoUseCase: AtualizaExpedicaoUseCase + + constructor(dependencies: Dependencies) { + this.atualizaExpedicaoUseCase = dependencies.atualizaExpedicaoUseCase + } + + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + try { + const { expedicaoId } = request.params + const id = Number(expedicaoId) + + if (!expedicaoId || Number.isNaN(id)) { + return new BadRequestError({ message: 'O ID da expedição é inválido.' }) + } + + const { descricao, data_inicio, data_fim, cidade_id } = request.body as any + + const DATA = /^\d{4}-\d{2}-\d{2}$/ + + if (typeof data_inicio !== 'string' || !DATA.test(data_inicio) || Number.isNaN(Date.parse(data_inicio))) { + return new BadRequestError({ message: 'A data_inicio é obrigatória e deve estar no formato YYYY-MM-DD.' }) + } + if (typeof data_fim !== 'string' || !DATA.test(data_fim) || Number.isNaN(Date.parse(data_fim))) { + return new BadRequestError({ message: 'A data_fim é obrigatória e deve estar no formato YYYY-MM-DD.' }) + } + if (!Number.isInteger(cidade_id) || cidade_id <= 0) { + return new BadRequestError({ message: 'O cidade_id é obrigatório e deve ser um número inteiro válido.' }) + } + if (descricao !== undefined && descricao !== null && typeof descricao !== 'string') { + return new BadRequestError({ message: 'A descricao, se informada, deve ser um texto.' }) + } + + const updated_by = 10 // MOCK TEMPORÁRIO, trocar por request.usuario.id + + const result = await this.atualizaExpedicaoUseCase.execute(id, { + descricao: descricao ?? null, + data_inicio, + data_fim, + cidade_id, + updated_by, + }) + + + if (result.left()) { + return new BadRequestError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.Ok, + body: result.value + } + + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao atualizar expedição' + return new InternalServerError({ message: errorMessage }) + } + } +} diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index 47d5ebce..fba80661 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -10,6 +10,8 @@ import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' import { BuscaExpedicaoController } from './BuscaExpedicaoController' import { DeletaExpedicaoUseCase } from '@/domain/expedicao/DeletaExpedicaoUseCase' import { DeletaExpedicaoController } from './DeletaExpedicaoController' +import { AtualizaExpedicaoUseCase } from '@/domain/expedicao/AtualizaExpedicaoUseCase' +import { AtualizaExpedicaoController } from './AtualizaExpedicaoController' export function routes(knex: Knex): Route[] { const expedicaoCollection = createExpedicaoCollection() @@ -50,6 +52,15 @@ export function routes(knex: Knex): Route[] { deletaExpedicaoUseCase: new DeletaExpedicaoUseCase({ expedicaoCollection }) }) ] + }, + { + method: Method.Put, + path: '/v2/expedicoes/:expedicaoId', + handlers: [ + new AtualizaExpedicaoController({ + atualizaExpedicaoUseCase: new AtualizaExpedicaoUseCase({ expedicaoCollection }) + }) + ] } ] } diff --git a/src/domain/expedicao/AtualizaExpedicaoUseCase.ts b/src/domain/expedicao/AtualizaExpedicaoUseCase.ts new file mode 100644 index 00000000..4d456c79 --- /dev/null +++ b/src/domain/expedicao/AtualizaExpedicaoUseCase.ts @@ -0,0 +1,29 @@ +import { Either, Left, Right } from '@/library/either/Either' +import { ExpedicaoCollection } from './ExpedicaoCollection' +import { Attributes, Expedicao, UpdateAttributes } from './Expedicao' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class AtualizaExpedicaoUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + async execute(id: number, changes: UpdateAttributes): Promise> { + const found = await this.expedicaoCollection.findById(id) + if (found.left()) return Either.left(found.value) + if (!found.value) return Either.left(new Error('Expedição não encontrada')) + + const current = Expedicao.create(found.value) + if (current.left()) return Either.left(current.value) + + const updated = current.value.update(changes) + if (updated.left()) return Either.left(updated.value) + + return this.expedicaoCollection.update(id, changes) + } +} diff --git a/src/domain/expedicao/Expedicao.ts b/src/domain/expedicao/Expedicao.ts index 1c99f99e..e7c5bb7d 100644 --- a/src/domain/expedicao/Expedicao.ts +++ b/src/domain/expedicao/Expedicao.ts @@ -18,7 +18,13 @@ export type CreateAttributes = participantes: number[] rotas: number[] } - +export interface UpdateAttributes { + descricao: string | null + data_inicio: string + data_fim: string + cidade_id: number + updated_by: number +} export class Expedicao { readonly id: number readonly descricao: string | null @@ -61,4 +67,26 @@ export class Expedicao { return Either.right(new Expedicao(attributes)) } + + toAttributes(): Attributes { + return { + id: this.id, + descricao: this.descricao, + data_inicio: this.data_inicio, + data_fim: this.data_fim, + cidade_id: this.cidade_id, + created_at: this.created_at, + updated_at: this.updated_at, + created_by: this.created_by, + updated_by: this.updated_by, + } + } + + update(changes: UpdateAttributes): Either { + return Expedicao.create({ + ...this.toAttributes(), + ...changes, + updated_at: new Date(), + }) +} } diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index b894a357..7aafd8f8 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -1,6 +1,5 @@ import { Either } from '@/library/either/Either' - -import { Attributes, CreateAttributes } from './Expedicao' +import { Attributes, CreateAttributes, UpdateAttributes } from './Expedicao' export interface ExpedicaoOrder { column: 'id' | 'data_inicio' | 'data_fim' @@ -13,7 +12,6 @@ export interface ExpedicaoFilters { data_inicio_de?: string data_fim_ate?: string order?: ExpedicaoOrder - // Novos campos de paginação limite?: number pagina?: number } @@ -30,4 +28,5 @@ export interface ExpedicaoCollection { findById(id: number): Promise> create(attributes: CreateAttributes): Promise> delete(id: number): Promise> + update(id: number, attributes: UpdateAttributes): Promise> } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index fc341f5b..35dfa03c 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -1,6 +1,6 @@ import { Knex } from 'knex' -import { Attributes, CreateAttributes } from '@/domain/expedicao/Expedicao' +import { Attributes, CreateAttributes, UpdateAttributes } from '@/domain/expedicao/Expedicao' import { ExpedicaoCollection, ExpedicaoFilters, Paginated } from '@/domain/expedicao/ExpedicaoCollection' import { Either } from '@/library/either/Either' @@ -230,4 +230,18 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { return Either.left(new CollectionError({ message: 'Failed to delete expedição', cause: error })) } } + + async update(id: number, attributes: UpdateAttributes) { + try { + const [row] = await this.knex('expedicoes') + .where({ id }) + .update({ ...attributes, updated_at: this.knex.fn.now() }) + .returning('*') + + if (!row) return Either.left(new Error('Expedição não encontrada')) + return Either.right(row) + } catch (error) { + return Either.left(error as Error) + } + } } From b391863c12bdba24f7bb0c0cbe8d8a508351d013 Mon Sep 17 00:00:00 2001 From: vitorhugomoraes2486 Date: Mon, 21 Sep 2026 09:55:36 -0300 Subject: [PATCH 10/58] Update AtualizarEventoController.ts --- src/application/evento/AtualizarEventoController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/application/evento/AtualizarEventoController.ts b/src/application/evento/AtualizarEventoController.ts index e0a23cf7..421455c7 100644 --- a/src/application/evento/AtualizarEventoController.ts +++ b/src/application/evento/AtualizarEventoController.ts @@ -44,7 +44,7 @@ export class AtualizarEventoController implements RequestHandler { const body = (request.body ?? {}) as Body // Substituir por request.usuario.id assim que a - // autenticação (JWT) da nova arquitetura (v2) for integrada. + // autenticação for integrada. const input: AtualizarEventoInput = { id: eventoId, updated_by: null } if (body.tipo !== undefined) { From 432d71a540c732b26ad590eaef4e16ccb9c51cbf Mon Sep 17 00:00:00 2001 From: vitorhugomoraes2486 Date: Mon, 21 Sep 2026 09:55:56 -0300 Subject: [PATCH 11/58] Update CriarEventoController.ts --- src/application/evento/CriarEventoController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/application/evento/CriarEventoController.ts b/src/application/evento/CriarEventoController.ts index f9e0eefb..50598d7a 100644 --- a/src/application/evento/CriarEventoController.ts +++ b/src/application/evento/CriarEventoController.ts @@ -65,7 +65,7 @@ export class CriarEventoController implements RequestHandler { if (coleta instanceof Error) return new BadRequestError({ message: coleta.message }) // Substituir por request.usuario.id assim que a - // autenticação (JWT) da nova arquitetura (v2) for integrada. + // autenticação for integrada. const usuarioId = null const result = await this.criarEventoUseCase.execute({ From 0196a7be9dff57b25b388eaba2f39abfa260da93 Mon Sep 17 00:00:00 2001 From: vitorhugomoraes2486 Date: Mon, 21 Sep 2026 09:57:28 -0300 Subject: [PATCH 12/58] Update AtualizarEventoUseCase.ts --- src/domain/evento/AtualizarEventoUseCase.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/domain/evento/AtualizarEventoUseCase.ts b/src/domain/evento/AtualizarEventoUseCase.ts index 408e4213..32a8b967 100644 --- a/src/domain/evento/AtualizarEventoUseCase.ts +++ b/src/domain/evento/AtualizarEventoUseCase.ts @@ -28,8 +28,7 @@ export interface Input { * - vira COLETA com `coleta` no corpo -> substitui a ficha * * A coerência do estado final é validada reaproveitando Evento.create() sobre - * o objeto já mesclado — é a mesma regra usada na criação, só que aplicada - * depois do merge em vez de sobre um payload novo. + * o objeto já mesclado. */ export class AtualizarEventoUseCase { private readonly eventoCollection: EventoCollection From 386cdfcf7c3f45fce2ec16b0bb1098b240f04343 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 10:15:21 -0300 Subject: [PATCH 13/58] fix(expedicao): atualiza teste de integracao para o novo formato paginado --- test/integration/expedicao/expedicao-collection.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/expedicao/expedicao-collection.test.ts b/test/integration/expedicao/expedicao-collection.test.ts index fc21cf95..d53f1bbb 100644 --- a/test/integration/expedicao/expedicao-collection.test.ts +++ b/test/integration/expedicao/expedicao-collection.test.ts @@ -122,7 +122,7 @@ describe('ExpedicaoCollectionKnexAdapter', () => { expect(found.right()).toBe(true) if (!found.right()) return - expect(found.value.map(expedicao => expedicao.id)).toEqual([comBruno.value.id]) + expect(found.value.itens.map(expedicao => expedicao.id)).toEqual([comBruno.value.id]) } finally { await knex('expedicoes').whereIn('id', [comAna.value.id, comBruno.value.id]).delete() } From 7ba74b1b616d821249408d1eca6c122be9e49cfc Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 10:36:47 -0300 Subject: [PATCH 14/58] fix(expedicao): corrige problemas de lint --- src/application/create-app.ts | 2 +- .../expedicao/AtualizaExpedicaoController.ts | 23 ++++++--- .../expedicao/BuscaExpedicaoController.ts | 6 ++- .../expedicao/CadastraExpedicaoController.ts | 26 ++++++---- .../expedicao/DeletaExpedicaoController.ts | 6 ++- .../expedicao/ListaExpedicoesController.ts | 23 +++++---- src/application/expedicao/index.ts | 26 +++++----- .../expedicao/AtualizaExpedicaoUseCase.ts | 7 ++- src/domain/expedicao/BuscaExpedicaoUseCase.ts | 10 ++-- .../expedicao/CadastraExpedicaoUseCase.ts | 6 ++- .../expedicao/DeletaExpedicaoUseCase.ts | 9 ++-- src/domain/expedicao/Expedicao.ts | 14 ++--- src/domain/expedicao/ExpedicaoCollection.ts | 5 +- .../expedicao/ListaExpedicoesUseCase.ts | 5 +- .../ExpedicaoCollectionKnexAdapter.ts | 51 +++++++++++-------- 15 files changed, 132 insertions(+), 87 deletions(-) diff --git a/src/application/create-app.ts b/src/application/create-app.ts index dfad9e88..f3ad8060 100644 --- a/src/application/create-app.ts +++ b/src/application/create-app.ts @@ -13,10 +13,10 @@ import { assets, upload } from '../config/directory' import legacyErrors from '../middlewares/erros-middleware' import { generatePreview, reportPreview } from '../reports/controller' import { routes as createEstadoRoutes } from './estado' +import { routes as createExpedicoesRoutes } from './expedicao' import { routes as createFaseSucessionalRoutes } from './fase-sucessional' import { routes as createPaisRoutes } from './pais' import { routes as createVegetacaoRoutes } from './vegetacao' -import { routes as createExpedicoesRoutes } from './expedicao' interface CorsParameters { origins: string[] diff --git a/src/application/expedicao/AtualizaExpedicaoController.ts b/src/application/expedicao/AtualizaExpedicaoController.ts index ccbbc2b4..3d0de868 100644 --- a/src/application/expedicao/AtualizaExpedicaoController.ts +++ b/src/application/expedicao/AtualizaExpedicaoController.ts @@ -1,5 +1,7 @@ import { AtualizaExpedicaoUseCase } from '@/domain/expedicao/AtualizaExpedicaoUseCase' -import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' @@ -32,7 +34,14 @@ export class AtualizaExpedicaoController implements RequestHandler { return new BadRequestError({ message: 'O ID da expedição é inválido.' }) } - const { descricao, data_inicio, data_fim, cidade_id } = request.body as any + const { + descricao, data_inicio, data_fim, cidade_id + } = request.body as { + descricao: string | null + data_inicio: string + data_fim: string + cidade_id: number + } const DATA = /^\d{4}-\d{2}-\d{2}$/ @@ -56,19 +65,17 @@ export class AtualizaExpedicaoController implements RequestHandler { data_inicio, data_fim, cidade_id, - updated_by, + updated_by }) - if (result.left()) { return new BadRequestError({ message: result.value.message }) } - return { - statusCode: StatusCode.Ok, - body: result.value + return { + statusCode: StatusCode.Ok, + body: result.value } - } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao atualizar expedição' return new InternalServerError({ message: errorMessage }) diff --git a/src/application/expedicao/BuscaExpedicaoController.ts b/src/application/expedicao/BuscaExpedicaoController.ts index ac9d9a1e..07e5095a 100644 --- a/src/application/expedicao/BuscaExpedicaoController.ts +++ b/src/application/expedicao/BuscaExpedicaoController.ts @@ -1,9 +1,11 @@ import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' -import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' -import { NotFoundError } from '@/library/http/error/NotFoundError' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' import { NextHandler, RequestHandler } from '@/library/http/Server' interface Dependencies { diff --git a/src/application/expedicao/CadastraExpedicaoController.ts b/src/application/expedicao/CadastraExpedicaoController.ts index eec403b1..1729c25a 100644 --- a/src/application/expedicao/CadastraExpedicaoController.ts +++ b/src/application/expedicao/CadastraExpedicaoController.ts @@ -29,17 +29,24 @@ export class CadastraExpedicaoController implements RequestHandler { async handle(request: CustomHttpRequest, _next: NextHandler): Promise { try { - // TODO: AUTENTICAÇÃO TEMPORARIAMENTE DESABILITADA // A infraestrutura de request HTTP autenticada está sendo desenvolvida. // Assim que integrada, descomentar a validação abaixo e remover o mock do 'created_by'. - - + // if (!request.usuario || ![TIPOS_USUARIOS.CURADOR, TIPOS_USUARIOS.OPERADOR].includes(request.usuario.tipo_usuario_id)) { - // return new UnauthorizedError({ message: 'Não tem permissão para realizar esta ação' }) + // return new UnauthorizedError({ message: 'Não tem permissão para realizar esta ação' }) // } - const { descricao, data_inicio, data_fim, cidade_id, participantes, rotas } = request.body as any + const { + descricao, data_inicio, data_fim, cidade_id, participantes, rotas + } = request.body as { + descricao?: string | null + data_inicio: string + data_fim: string + cidade_id: number + participantes?: number[] + rotas?: number[] + } // VALIDAÇÃO MANUAL DE DADOS if (!data_inicio || Number.isNaN(Date.parse(data_inicio))) { @@ -59,7 +66,7 @@ export class CadastraExpedicaoController implements RequestHandler { } // MOCK TEMPORÁRIO: Substituir pelo request.usuario.id quando a autenticação estiver pronta - const created_by = 9; // Id válido de usuário para teste + const created_by = 9 // Id válido de usuário para teste // EXECUÇÃO DO CASO DE USO const result = await this.cadastraExpedicaoUseCase.execute({ @@ -76,11 +83,10 @@ export class CadastraExpedicaoController implements RequestHandler { return new BadRequestError({ message: result.value.message }) } - return { - statusCode: StatusCode.Created, - body: result.value + return { + statusCode: StatusCode.Created, + body: result.value } - } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao cadastrar expedição' return new InternalServerError({ message: errorMessage }) diff --git a/src/application/expedicao/DeletaExpedicaoController.ts b/src/application/expedicao/DeletaExpedicaoController.ts index 246832d8..db60acb8 100644 --- a/src/application/expedicao/DeletaExpedicaoController.ts +++ b/src/application/expedicao/DeletaExpedicaoController.ts @@ -1,5 +1,7 @@ import { DeletaExpedicaoUseCase } from '@/domain/expedicao/DeletaExpedicaoUseCase' -import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' import { NotFoundError } from '@/library/http/error/NotFoundError' @@ -37,7 +39,7 @@ export class DeletaExpedicaoController implements RequestHandler { } return { - statusCode: StatusCode.NoContent + statusCode: StatusCode.NoContent } } } diff --git a/src/application/expedicao/ListaExpedicoesController.ts b/src/application/expedicao/ListaExpedicoesController.ts index 9b92fdd9..adae9411 100644 --- a/src/application/expedicao/ListaExpedicoesController.ts +++ b/src/application/expedicao/ListaExpedicoesController.ts @@ -1,6 +1,8 @@ -import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' import { ExpedicaoFilters } from '@/domain/expedicao/ExpedicaoCollection' -import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' @@ -34,18 +36,17 @@ export class ListaExpedicoesController implements RequestHandler { // Filtrar com ordenação: // GET /api/v2/expedicoes?order_column=id&order_direction=asc - async handle(request: CustomHttpRequest, _next: NextHandler): Promise { try { - const { - cidade_id, - usuario_id, - data_inicio_de, - data_fim_ate, - order_column, + const { + cidade_id, + usuario_id, + data_inicio_de, + data_fim_ate, + order_column, order_direction, - limite, - pagina + limite, + pagina } = request.params const filters: ExpedicaoFilters = {} diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index fba80661..a9531788 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -1,17 +1,19 @@ import { type Knex } from 'knex' -import { Method } from '@/library/http/common' -import { Route } from '@/library/http/Router' + +import { AtualizaExpedicaoUseCase } from '@/domain/expedicao/AtualizaExpedicaoUseCase' +import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' import { CadastraExpedicaoUseCase } from '@/domain/expedicao/CadastraExpedicaoUseCase' -import { CadastraExpedicaoController } from './CadastraExpedicaoController' -import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' +import { DeletaExpedicaoUseCase } from '@/domain/expedicao/DeletaExpedicaoUseCase' import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' -import { ListaExpedicoesController } from './ListaExpedicoesController' -import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' +import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' +import { Method } from '@/library/http/common' +import { Route } from '@/library/http/Router' + +import { AtualizaExpedicaoController } from './AtualizaExpedicaoController' import { BuscaExpedicaoController } from './BuscaExpedicaoController' -import { DeletaExpedicaoUseCase } from '@/domain/expedicao/DeletaExpedicaoUseCase' +import { CadastraExpedicaoController } from './CadastraExpedicaoController' import { DeletaExpedicaoController } from './DeletaExpedicaoController' -import { AtualizaExpedicaoUseCase } from '@/domain/expedicao/AtualizaExpedicaoUseCase' -import { AtualizaExpedicaoController } from './AtualizaExpedicaoController' +import { ListaExpedicoesController } from './ListaExpedicoesController' export function routes(knex: Knex): Route[] { const expedicaoCollection = createExpedicaoCollection() @@ -37,7 +39,7 @@ export function routes(knex: Knex): Route[] { }, { method: Method.Get, - path: '/v2/expedicoes/:expedicaoId', + path: '/v2/expedicoes/:expedicaoId', handlers: [ new BuscaExpedicaoController({ buscaExpedicaoUseCase: new BuscaExpedicaoUseCase({ expedicaoCollection }) @@ -46,7 +48,7 @@ export function routes(knex: Knex): Route[] { }, { method: Method.Delete, - path: '/v2/expedicoes/:expedicaoId', + path: '/v2/expedicoes/:expedicaoId', handlers: [ new DeletaExpedicaoController({ deletaExpedicaoUseCase: new DeletaExpedicaoUseCase({ expedicaoCollection }) @@ -55,7 +57,7 @@ export function routes(knex: Knex): Route[] { }, { method: Method.Put, - path: '/v2/expedicoes/:expedicaoId', + path: '/v2/expedicoes/:expedicaoId', handlers: [ new AtualizaExpedicaoController({ atualizaExpedicaoUseCase: new AtualizaExpedicaoUseCase({ expedicaoCollection }) diff --git a/src/domain/expedicao/AtualizaExpedicaoUseCase.ts b/src/domain/expedicao/AtualizaExpedicaoUseCase.ts index 4d456c79..d8249880 100644 --- a/src/domain/expedicao/AtualizaExpedicaoUseCase.ts +++ b/src/domain/expedicao/AtualizaExpedicaoUseCase.ts @@ -1,6 +1,9 @@ -import { Either, Left, Right } from '@/library/either/Either' +import { Either } from '@/library/either/Either' + +import { + Attributes, Expedicao, UpdateAttributes +} from './Expedicao' import { ExpedicaoCollection } from './ExpedicaoCollection' -import { Attributes, Expedicao, UpdateAttributes } from './Expedicao' interface Dependencies { expedicaoCollection: ExpedicaoCollection diff --git a/src/domain/expedicao/BuscaExpedicaoUseCase.ts b/src/domain/expedicao/BuscaExpedicaoUseCase.ts index 58c08784..9f9a6e9b 100644 --- a/src/domain/expedicao/BuscaExpedicaoUseCase.ts +++ b/src/domain/expedicao/BuscaExpedicaoUseCase.ts @@ -1,4 +1,7 @@ -import { Either, Left, Right } from '@/library/either/Either' +import { + Either, Left, Right +} from '@/library/either/Either' + import { Attributes } from './Expedicao' import { ExpedicaoCollection } from './ExpedicaoCollection' @@ -14,12 +17,11 @@ export class BuscaExpedicaoUseCase { } async execute(id: number): Promise> { - const result = await this.expedicaoCollection.findById(id) - + // operação de banco falhou if (result.left()) { - return new Left(result.value as Error) + return new Left(result.value) } const expedicao = result.value diff --git a/src/domain/expedicao/CadastraExpedicaoUseCase.ts b/src/domain/expedicao/CadastraExpedicaoUseCase.ts index f9331f4e..8869c573 100644 --- a/src/domain/expedicao/CadastraExpedicaoUseCase.ts +++ b/src/domain/expedicao/CadastraExpedicaoUseCase.ts @@ -1,6 +1,8 @@ import { Either } from '@/library/either/Either' -import { Attributes, CreateAttributes, Expedicao } from './Expedicao' +import { + Attributes, CreateAttributes, Expedicao +} from './Expedicao' import { ExpedicaoCollection } from './ExpedicaoCollection' interface Dependencies { @@ -29,7 +31,7 @@ export class CadastraExpedicaoUseCase { return Either.left(validacao.value) } - // Adapter para persistir no banco + // Adapter para persistir no banco return await this.expedicaoCollection.create(dados) } } diff --git a/src/domain/expedicao/DeletaExpedicaoUseCase.ts b/src/domain/expedicao/DeletaExpedicaoUseCase.ts index a9aead55..b356f2f1 100644 --- a/src/domain/expedicao/DeletaExpedicaoUseCase.ts +++ b/src/domain/expedicao/DeletaExpedicaoUseCase.ts @@ -1,4 +1,7 @@ -import { Either, Left, Right } from '@/library/either/Either' +import { + Either, Left, Right +} from '@/library/either/Either' + import { ExpedicaoCollection } from './ExpedicaoCollection' interface Dependencies { @@ -13,7 +16,7 @@ export class DeletaExpedicaoUseCase { async execute(id: number): Promise> { const expedicaoResult = await this.expedicaoCollection.findById(id) - + if (expedicaoResult.left() || !expedicaoResult.value) { return new Left(new Error('Expedição não encontrada para exclusão.')) } @@ -21,7 +24,7 @@ export class DeletaExpedicaoUseCase { const deleteResult = await this.expedicaoCollection.delete(id) if (deleteResult.left()) { - return new Left(deleteResult.value as Error) + return new Left(deleteResult.value) } return new Right(undefined) diff --git a/src/domain/expedicao/Expedicao.ts b/src/domain/expedicao/Expedicao.ts index e7c5bb7d..b3e53a66 100644 --- a/src/domain/expedicao/Expedicao.ts +++ b/src/domain/expedicao/Expedicao.ts @@ -78,15 +78,15 @@ export class Expedicao { created_at: this.created_at, updated_at: this.updated_at, created_by: this.created_by, - updated_by: this.updated_by, + updated_by: this.updated_by } } update(changes: UpdateAttributes): Either { - return Expedicao.create({ - ...this.toAttributes(), - ...changes, - updated_at: new Date(), - }) -} + return Expedicao.create({ + ...this.toAttributes(), + ...changes, + updated_at: new Date() + }) + } } diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index 7aafd8f8..c6dda193 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -1,5 +1,8 @@ import { Either } from '@/library/either/Either' -import { Attributes, CreateAttributes, UpdateAttributes } from './Expedicao' + +import { + Attributes, CreateAttributes, UpdateAttributes +} from './Expedicao' export interface ExpedicaoOrder { column: 'id' | 'data_inicio' | 'data_fim' diff --git a/src/domain/expedicao/ListaExpedicoesUseCase.ts b/src/domain/expedicao/ListaExpedicoesUseCase.ts index a3458357..477c6669 100644 --- a/src/domain/expedicao/ListaExpedicoesUseCase.ts +++ b/src/domain/expedicao/ListaExpedicoesUseCase.ts @@ -1,6 +1,9 @@ import { Either } from '@/library/either/Either' + import { Attributes } from './Expedicao' -import { ExpedicaoCollection, ExpedicaoFilters, Paginated } from './ExpedicaoCollection' +import { + ExpedicaoCollection, ExpedicaoFilters, Paginated +} from './ExpedicaoCollection' interface Dependencies { expedicaoCollection: ExpedicaoCollection diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 35dfa03c..c1c2c2e1 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -1,7 +1,11 @@ import { Knex } from 'knex' -import { Attributes, CreateAttributes, UpdateAttributes } from '@/domain/expedicao/Expedicao' -import { ExpedicaoCollection, ExpedicaoFilters, Paginated } from '@/domain/expedicao/ExpedicaoCollection' +import { + Attributes, CreateAttributes, UpdateAttributes +} from '@/domain/expedicao/Expedicao' +import { + ExpedicaoCollection, ExpedicaoFilters, Paginated +} from '@/domain/expedicao/ExpedicaoCollection' import { Either } from '@/library/either/Either' import { CollectionError } from './error/CollectionError' @@ -76,7 +80,8 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { // contagem de total de registros const countQuery = query.clone() - const [{ count }] = await countQuery.clearSelect().count('* as count') + const [result] = await countQuery.clearSelect().count<{ count: string | number }[]>('* as count') + const count = result?.count ?? 0 const total = Number(count) // valores padrão da paginação(20 e 1) @@ -94,17 +99,19 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { // página vazia, já retorna if (rows.length === 0) { - return Either.right({ itens: [], total, limite, pagina }) + return Either.right({ + itens: [], total, limite, pagina + }) } const expedicoesIds = rows.map(row => row.id) const [participantesRows, rotasRows] = await Promise.all([ - this.knex('expedicoes_participantes') + this.knex<{ expedicao_id: number; usuario_id: number }>('expedicoes_participantes') .select('expedicao_id', 'usuario_id') .whereIn('expedicao_id', expedicoesIds), - - this.knex('expedicoes_rotas') + + this.knex<{ expedicao_id: number; cidade_id: number }>('expedicoes_rotas') .select('expedicao_id', 'cidade_id') .whereIn('expedicao_id', expedicoesIds) .orderBy('ordem', 'asc') @@ -114,14 +121,14 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { return { ...toAttributes(row), participantes: participantesRows - .filter(p => p.expedicao_id === row.id) - .map(p => p.usuario_id), + .filter(p => p.expedicao_id === row.id) + .map(p => p.usuario_id), rotas: rotasRows - .filter(r => r.expedicao_id === row.id) - .map(r => r.cidade_id) + .filter(r => r.expedicao_id === row.id) + .map(r => r.cidade_id) } }) - + return Either.right({ itens, total, @@ -136,7 +143,7 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { async findById(id: number): Promise> { try { const row = await this.select().where('expedicoes.id', id).first() as Row | undefined - + if (!row) { return Either.right(null) } @@ -150,9 +157,9 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { .join('cidades', 'cidades.id', 'expedicoes_rotas.cidade_id') .where('expedicoes_rotas.expedicao_id', id) .select( - 'cidades.id as cidade_id', - 'expedicoes_rotas.ordem', - 'cidades.nome as nome_cidade', + 'cidades.id as cidade_id', + 'expedicoes_rotas.ordem', + 'cidades.nome as nome_cidade', 'cidades.estado_id' ) .orderBy('expedicoes_rotas.ordem', 'asc') @@ -231,17 +238,19 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { } } - async update(id: number, attributes: UpdateAttributes) { + async update(id: number, attributes: UpdateAttributes): Promise> { try { - const [row] = await this.knex('expedicoes') + await this.knex('expedicoes') .where({ id }) .update({ ...attributes, updated_at: this.knex.fn.now() }) - .returning('*') + + const row = await this.select().where('expedicoes.id', id).first() as Row | undefined if (!row) return Either.left(new Error('Expedição não encontrada')) - return Either.right(row) + + return Either.right(toAttributes(row)) } catch (error) { - return Either.left(error as Error) + return Either.left(new CollectionError({ message: 'Failed to update expedição', cause: error })) } } } From 9e9979b3dd1fcc3488ee037e898903cf8e0aa632 Mon Sep 17 00:00:00 2001 From: maria-gabriela Date: Mon, 21 Sep 2026 11:07:42 -0300 Subject: [PATCH 15/58] feat: implementa leitura de eventos --- src/application/create-app.ts | 2 + .../evento/BuscarEventoController.ts | 51 +++++++ .../evento/ListaEventosController.ts | 46 +++++++ src/application/evento/index.ts | 37 ++++++ src/domain/evento/BuscarEventoPorIdUseCase.ts | 20 +++ src/domain/evento/ListaEventosUseCase.ts | 20 +++ .../evento/BuscarEventoController.test.ts | 125 ++++++++++++++++++ .../evento/ListaEventosController.test.ts | 98 ++++++++++++++ 8 files changed, 399 insertions(+) create mode 100644 src/application/evento/BuscarEventoController.ts create mode 100644 src/application/evento/ListaEventosController.ts create mode 100644 src/application/evento/index.ts create mode 100644 src/domain/evento/BuscarEventoPorIdUseCase.ts create mode 100644 src/domain/evento/ListaEventosUseCase.ts create mode 100644 test/unit/application/evento/BuscarEventoController.test.ts create mode 100644 test/unit/application/evento/ListaEventosController.test.ts diff --git a/src/application/create-app.ts b/src/application/create-app.ts index a3b3901c..5af907ad 100644 --- a/src/application/create-app.ts +++ b/src/application/create-app.ts @@ -13,6 +13,7 @@ import { assets, upload } from '../config/directory' import legacyErrors from '../middlewares/erros-middleware' import { generatePreview, reportPreview } from '../reports/controller' import { routes as createEstadoRoutes } from './estado' +import { routes as createEventoRoutes } from './evento' import { routes as createFaseSucessionalRoutes } from './fase-sucessional' import { routes as createPaisRoutes } from './pais' import { routes as createVegetacaoRoutes } from './vegetacao' @@ -58,6 +59,7 @@ export function createApp({ const routes: Route[] = [ ...createPaisRoutes(knex), ...createEstadoRoutes(knex), + ...createEventoRoutes(knex), ...createFaseSucessionalRoutes(knex), ...createVegetacaoRoutes(knex) ] diff --git a/src/application/evento/BuscarEventoController.ts b/src/application/evento/BuscarEventoController.ts new file mode 100644 index 00000000..5fdc83d4 --- /dev/null +++ b/src/application/evento/BuscarEventoController.ts @@ -0,0 +1,51 @@ +import { BuscarEventoPorIdUseCase } from '@/domain/evento/BuscarEventoPorIdUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + buscarEventoPorIdUseCase: BuscarEventoPorIdUseCase +} + +export class BuscarEventoController implements RequestHandler { + private readonly buscarEventoPorIdUseCase: BuscarEventoPorIdUseCase + + constructor(dependencies: Dependencies) { + this.buscarEventoPorIdUseCase = dependencies.buscarEventoPorIdUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { eventoId } = request.params as { eventoId?: string } + + if ( + eventoId === undefined + || eventoId === null + || eventoId === '' + || !/^\d+$/.test(eventoId) + ) { + return new BadRequestError({ message: 'eventoId inválido' }) + } + + const result = await this.buscarEventoPorIdUseCase.execute({ + id: Number(eventoId) + }) + + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } + + if (!result.value) { + return new NotFoundError({ message: 'Evento não encontrado' }) + } + + return { + statusCode: StatusCode.Ok, + body: result.value + } + } +} diff --git a/src/application/evento/ListaEventosController.ts b/src/application/evento/ListaEventosController.ts new file mode 100644 index 00000000..b5655257 --- /dev/null +++ b/src/application/evento/ListaEventosController.ts @@ -0,0 +1,46 @@ +import { ListaEventosUseCase } from '@/domain/evento/ListaEventosUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + listaEventosUseCase: ListaEventosUseCase +} + +export class ListaEventosController implements RequestHandler { + private readonly listaEventosUseCase: ListaEventosUseCase + + constructor(dependencies: Dependencies) { + this.listaEventosUseCase = dependencies.listaEventosUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { expedicaoId } = request.params as { expedicaoId?: string } + + if ( + expedicaoId === undefined + || expedicaoId === null + || expedicaoId === '' + || !/^\d+$/.test(expedicaoId) + ) { + return new BadRequestError({ message: 'expedicaoId inválido' }) + } + + const result = await this.listaEventosUseCase.execute({ + expedicao_id: Number(expedicaoId) + }) + + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.Ok, + body: result.value + } + } +} diff --git a/src/application/evento/index.ts b/src/application/evento/index.ts new file mode 100644 index 00000000..268853bb --- /dev/null +++ b/src/application/evento/index.ts @@ -0,0 +1,37 @@ +import { type Knex } from 'knex' + +import { BuscarEventoPorIdUseCase } from '@/domain/evento/BuscarEventoPorIdUseCase' +import { ListaEventosUseCase } from '@/domain/evento/ListaEventosUseCase' +import { EventoCollectionKnexAdapter } from '@/infrastructure/EventoCollectionKnexAdapter' +import { Method } from '@/library/http/common' +import { Route } from '@/library/http/Router' + +import { BuscarEventoController } from './BuscarEventoController' +import { ListaEventosController } from './ListaEventosController' + +export function routes(knex: Knex): Route[] { + const eventoCollection = new EventoCollectionKnexAdapter({ knex }) + + // TODO: adicionar autenticação quando a camada HTTP de autenticação estiver disponível. + + return [ + { + handlers: [ + new ListaEventosController({ + listaEventosUseCase: new ListaEventosUseCase({ eventoCollection }) + }) + ], + method: Method.Get, + path: '/v2/expedicoes/:expedicaoId/eventos' + }, + { + handlers: [ + new BuscarEventoController({ + buscarEventoPorIdUseCase: new BuscarEventoPorIdUseCase({ eventoCollection }) + }) + ], + method: Method.Get, + path: '/v2/eventos/:eventoId' + } + ] +} diff --git a/src/domain/evento/BuscarEventoPorIdUseCase.ts b/src/domain/evento/BuscarEventoPorIdUseCase.ts new file mode 100644 index 00000000..76e08343 --- /dev/null +++ b/src/domain/evento/BuscarEventoPorIdUseCase.ts @@ -0,0 +1,20 @@ +import { Either } from '@/library/either/Either' + +import { Attributes } from './Evento' +import { EventoCollection } from './EventoCollection' + +interface Dependencies { + eventoCollection: EventoCollection +} + +export class BuscarEventoPorIdUseCase { + private readonly eventoCollection: EventoCollection + + constructor(dependencies: Dependencies) { + this.eventoCollection = dependencies.eventoCollection + } + + execute({ id }: { id: number }): Promise> { + return this.eventoCollection.findById(id) + } +} diff --git a/src/domain/evento/ListaEventosUseCase.ts b/src/domain/evento/ListaEventosUseCase.ts new file mode 100644 index 00000000..8ee0c6ac --- /dev/null +++ b/src/domain/evento/ListaEventosUseCase.ts @@ -0,0 +1,20 @@ +import { Either } from '@/library/either/Either' + +import { Attributes } from './Evento' +import { EventoCollection, EventoFilters } from './EventoCollection' + +interface Dependencies { + eventoCollection: EventoCollection +} + +export class ListaEventosUseCase { + private readonly eventoCollection: EventoCollection + + constructor(dependencies: Dependencies) { + this.eventoCollection = dependencies.eventoCollection + } + + execute(filters: EventoFilters): Promise> { + return this.eventoCollection.findAll(filters) + } +} diff --git a/test/unit/application/evento/BuscarEventoController.test.ts b/test/unit/application/evento/BuscarEventoController.test.ts new file mode 100644 index 00000000..c080e773 --- /dev/null +++ b/test/unit/application/evento/BuscarEventoController.test.ts @@ -0,0 +1,125 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { BuscarEventoController } from '@/application/evento/BuscarEventoController' +import { BuscarEventoPorIdUseCase } from '@/domain/evento/BuscarEventoPorIdUseCase' +import { Either } from '@/library/either/Either' +import { + Headers, HttpRequest, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { NotFoundError } from '@/library/http/error/NotFoundError' + +describe('BuscarEventoController', () => { + const headers = {} as Headers + + test('returns 200 with body when use case finds event', async () => { + const evento = { + id: 1, + expedicao_id: 10, + tipo: 'DIARIO' as const, + capturado_em: new Date('2026-09-15T10:00:00.000Z'), + latitude: null, + longitude: null, + altitude: null, + observacoes: 'Observação', + coleta: null, + created_at: new Date('2026-09-15T10:00:00.000Z'), + updated_at: new Date('2026-09-15T10:00:00.000Z'), + created_by: null, + updated_by: null + } + + const buscarEventoPorIdUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(evento)) + } as unknown as BuscarEventoPorIdUseCase + + const controller = new BuscarEventoController({ + buscarEventoPorIdUseCase + }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { eventoId: '1' }, + path: '/eventos/1' + } satisfies HttpRequest + + const response = await controller.handle(request, vi.fn()) + + expect(buscarEventoPorIdUseCase.execute).toHaveBeenCalledWith({ + id: 1 + }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) + expect('body' in response ? response.body : undefined).toEqual(evento) + }) + + test('returns BadRequest when eventoId is invalid', async () => { + const buscarEventoPorIdUseCase = { + execute: vi.fn() + } as unknown as BuscarEventoPorIdUseCase + + const controller = new BuscarEventoController({ + buscarEventoPorIdUseCase + }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { eventoId: 'abc' }, + path: '/eventos/abc' + } satisfies HttpRequest + + const response = await controller.handle(request, vi.fn()) + + expect(buscarEventoPorIdUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('returns NotFound when event does not exist', async () => { + const buscarEventoPorIdUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(null)) + } as unknown as BuscarEventoPorIdUseCase + + const controller = new BuscarEventoController({ + buscarEventoPorIdUseCase + }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { eventoId: '1' }, + path: '/eventos/1' + } satisfies HttpRequest + + const response = await controller.handle(request, vi.fn()) + + expect(response).toBeInstanceOf(NotFoundError) + }) + + test('returns InternalServerError when use case fails', async () => { + const buscarEventoPorIdUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('boom'))) + } as unknown as BuscarEventoPorIdUseCase + + const controller = new BuscarEventoController({ + buscarEventoPorIdUseCase + }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { eventoId: '1' }, + path: '/eventos/1' + } satisfies HttpRequest + + const response = await controller.handle(request, vi.fn()) + + expect((response as Error).name).toBe('InternalServerError') + }) +}) diff --git a/test/unit/application/evento/ListaEventosController.test.ts b/test/unit/application/evento/ListaEventosController.test.ts new file mode 100644 index 00000000..e87411b6 --- /dev/null +++ b/test/unit/application/evento/ListaEventosController.test.ts @@ -0,0 +1,98 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { ListaEventosController } from '@/application/evento/ListaEventosController' +import { ListaEventosUseCase } from '@/domain/evento/ListaEventosUseCase' +import { Either } from '@/library/either/Either' +import { + Headers, HttpRequest, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' + +describe('ListaEventosController', () => { + const headers = {} as Headers + + test('returns 200 with body when use case succeeds', async () => { + const lista = [ + { + id: 1, + expedicao_id: 10, + tipo: 'DIARIO' as const, + capturado_em: new Date('2026-09-15T10:00:00.000Z'), + latitude: null, + longitude: null, + altitude: null, + observacoes: 'Observação', + coleta: null, + created_at: new Date('2026-09-15T10:00:00.000Z'), + updated_at: new Date('2026-09-15T10:00:00.000Z'), + created_by: null, + updated_by: null + } + ] + + const listaEventosUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(lista)) + } as unknown as ListaEventosUseCase + + const controller = new ListaEventosController({ listaEventosUseCase }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { expedicaoId: '10' }, + path: '/expedicoes/10/eventos' + } satisfies HttpRequest + + const response = await controller.handle(request, vi.fn()) + + expect(listaEventosUseCase.execute).toHaveBeenCalledWith({ + expedicao_id: 10 + }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) + expect('body' in response ? response.body : undefined).toEqual(lista) + }) + + test('returns BadRequest when expedicaoId is invalid', async () => { + const listaEventosUseCase = { + execute: vi.fn() + } as unknown as ListaEventosUseCase + + const controller = new ListaEventosController({ listaEventosUseCase }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { expedicaoId: 'abc' }, + path: '/expedicoes/abc/eventos' + } satisfies HttpRequest + + const response = await controller.handle(request, vi.fn()) + + expect(listaEventosUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('returns InternalServerError when use case fails', async () => { + const listaEventosUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('boom'))) + } as unknown as ListaEventosUseCase + + const controller = new ListaEventosController({ listaEventosUseCase }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { expedicaoId: '10' }, + path: '/expedicoes/10/eventos' + } satisfies HttpRequest + + const response = await controller.handle(request, vi.fn()) + + expect((response as Error).name).toBe('InternalServerError') + }) +}) From 9fae20adc0968a429a9d4398a7d3bd9f632a1701 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 12:24:36 -0300 Subject: [PATCH 16/58] fix(expedicao): corrige mapeamento de erros 404 e 500 na busca por id --- .../expedicao/BuscaExpedicaoController.ts | 16 +++++++++---- src/domain/expedicao/BuscaExpedicaoUseCase.ts | 23 +++---------------- 2 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/application/expedicao/BuscaExpedicaoController.ts b/src/application/expedicao/BuscaExpedicaoController.ts index 07e5095a..3d62dd55 100644 --- a/src/application/expedicao/BuscaExpedicaoController.ts +++ b/src/application/expedicao/BuscaExpedicaoController.ts @@ -30,17 +30,23 @@ export class BuscaExpedicaoController implements RequestHandler { const { expedicaoId } = request.params // validação id - if (!expedicaoId || Number.isNaN(Number(expedicaoId))) { - return new BadRequestError({ message: 'O ID da expedição é inválido.' }) + if (expedicaoId === undefined || expedicaoId === null || expedicaoId === '' || !/^\d+$/.test(expedicaoId)) { + return new BadRequestError({ message: 'expedicaoId inválido' }) } - const result = await this.buscaExpedicaoUseCase.execute(Number(expedicaoId)) + const result = await this.buscaExpedicaoUseCase.execute({ id: Number(expedicaoId) }) - // se falhouo assumimos que não encontrou a expedição, então retornamos 404 + // Falha na infra ou exceção de regra de negócio if (result.left()) { - return new NotFoundError({ message: result.value.message }) + return new InternalServerError({ message: result.value.message }) } + // sucesso na querry, mas a expedição não encontrada + if (!result.value) { + return new NotFoundError({ message: 'Expedição não encontrada' }) + } + + // sucesso return { statusCode: StatusCode.Ok, body: result.value diff --git a/src/domain/expedicao/BuscaExpedicaoUseCase.ts b/src/domain/expedicao/BuscaExpedicaoUseCase.ts index 9f9a6e9b..632551f9 100644 --- a/src/domain/expedicao/BuscaExpedicaoUseCase.ts +++ b/src/domain/expedicao/BuscaExpedicaoUseCase.ts @@ -1,6 +1,4 @@ -import { - Either, Left, Right -} from '@/library/either/Either' +import { Either } from '@/library/either/Either' import { Attributes } from './Expedicao' import { ExpedicaoCollection } from './ExpedicaoCollection' @@ -16,22 +14,7 @@ export class BuscaExpedicaoUseCase { this.expedicaoCollection = dependencies.expedicaoCollection } - async execute(id: number): Promise> { - const result = await this.expedicaoCollection.findById(id) - - // operação de banco falhou - if (result.left()) { - return new Left(result.value) - } - - const expedicao = result.value - - // buscou man não encontrou o ID (null ou undefined) - if (!expedicao) { - return new Left(new Error('Expedição não encontrada.')) - } - - // sucesso - return new Right(expedicao) + async execute({ id }: { id: number }): Promise> { + return this.expedicaoCollection.findById(id) } } From a45d40fdfdf0cf197828feaa8dde92750e380dc5 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 12:32:17 -0300 Subject: [PATCH 17/58] fix(expedicao): cria ExpedicaoListItem para o findAll --- src/domain/expedicao/ExpedicaoCollection.ts | 6 +++++- src/domain/expedicao/ListaExpedicoesUseCase.ts | 5 ++--- src/infrastructure/ExpedicaoCollectionKnexAdapter.ts | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index c6dda193..6c3ec532 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -25,9 +25,13 @@ export interface Paginated { limite: number pagina: number } +export interface ExpedicaoListItem extends Attributes { + participantes: number[] + rotas: number[] +} export interface ExpedicaoCollection { - findAll(filters: ExpedicaoFilters): Promise>> + findAll(filters: ExpedicaoFilters): Promise>> findById(id: number): Promise> create(attributes: CreateAttributes): Promise> delete(id: number): Promise> diff --git a/src/domain/expedicao/ListaExpedicoesUseCase.ts b/src/domain/expedicao/ListaExpedicoesUseCase.ts index 477c6669..a3974f30 100644 --- a/src/domain/expedicao/ListaExpedicoesUseCase.ts +++ b/src/domain/expedicao/ListaExpedicoesUseCase.ts @@ -1,8 +1,7 @@ import { Either } from '@/library/either/Either' -import { Attributes } from './Expedicao' import { - ExpedicaoCollection, ExpedicaoFilters, Paginated + ExpedicaoCollection, ExpedicaoFilters, ExpedicaoListItem, Paginated } from './ExpedicaoCollection' interface Dependencies { @@ -16,7 +15,7 @@ export class ListaExpedicoesUseCase { this.expedicaoCollection = dependencies.expedicaoCollection } - async execute(filters: ExpedicaoFilters): Promise>> { + async execute(filters: ExpedicaoFilters): Promise>> { // repassa os filtros para o adapter realizar a busca return await this.expedicaoCollection.findAll(filters) } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index c1c2c2e1..c36403eb 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -4,7 +4,7 @@ import { Attributes, CreateAttributes, UpdateAttributes } from '@/domain/expedicao/Expedicao' import { - ExpedicaoCollection, ExpedicaoFilters, Paginated + ExpedicaoCollection, ExpedicaoFilters, ExpedicaoListItem, Paginated } from '@/domain/expedicao/ExpedicaoCollection' import { Either } from '@/library/either/Either' @@ -63,7 +63,7 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { ]) } - async findAll(filters: ExpedicaoFilters): Promise>> { + async findAll(filters: ExpedicaoFilters): Promise>> { try { const query = this.select() From 8abfacf7b45e9a5a90bc1e2f7933cef3cc303f9c Mon Sep 17 00:00:00 2001 From: Dimitri Date: Mon, 21 Sep 2026 12:33:09 -0300 Subject: [PATCH 18/58] feat: interfaces detalhadas para expedicao, participante, e rota --- src/domain/expedicao/Expedicao.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/domain/expedicao/Expedicao.ts b/src/domain/expedicao/Expedicao.ts index 1c99f99e..7c3966c9 100644 --- a/src/domain/expedicao/Expedicao.ts +++ b/src/domain/expedicao/Expedicao.ts @@ -12,6 +12,29 @@ export interface Attributes { updated_by: number | null } +export interface ExpedicaoListItem extends Attributes { + participantes: number[] + rotas: number[] +} + +export interface ParticipanteDetalhado { + id: number + nome: string + email: string +} + +export interface RotaDetalhada { + cidade_id: number + ordem: number + nome_cidade: string + estado: string +} + +export interface ExpedicaoDetalhada extends Attributes { + participantes: ParticipanteDetalhado[] + rotas: RotaDetalhada[] +} + export type CreateAttributes = Omit & { From 7169c0370d6c13cd9a5a56de0414441a16b0e971 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 12:48:28 -0300 Subject: [PATCH 19/58] fix(expedicao): implementa padrao de order e validacao no controller de listagem --- .../expedicao/ListaExpedicoesController.ts | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/application/expedicao/ListaExpedicoesController.ts b/src/application/expedicao/ListaExpedicoesController.ts index adae9411..ef49845b 100644 --- a/src/application/expedicao/ListaExpedicoesController.ts +++ b/src/application/expedicao/ListaExpedicoesController.ts @@ -31,10 +31,10 @@ export class ListaExpedicoesController implements RequestHandler { // GET /api/v2/expedicoes?cidade_id=1100049 // Filtrar por intervalo de datas: - // GET /api/v2/expedicoes?data_inicio_de=2026-01-01&data_fim_ate=2026-12-31] + // GET /api/v2/expedicoes?data_inicio_de=2026-01-01&data_fim_ate=2026-12-31 - // Filtrar com ordenação: - // GET /api/v2/expedicoes?order_column=id&order_direction=asc + // Filtrar com ordenação segura: + // GET /api/v2/expedicoes?order=data_inicio:desc async handle(request: CustomHttpRequest, _next: NextHandler): Promise { try { @@ -43,8 +43,7 @@ export class ListaExpedicoesController implements RequestHandler { usuario_id, data_inicio_de, data_fim_ate, - order_column, - order_direction, + order, limite, pagina } = request.params @@ -62,10 +61,25 @@ export class ListaExpedicoesController implements RequestHandler { if (data_inicio_de) filters.data_inicio_de = data_inicio_de if (data_fim_ate) filters.data_fim_ate = data_fim_ate - if (order_column && order_direction) { + // Validação da ordenação + if (order) { + const [column, direction] = order.split(':') + const colunasValidas = [ + 'id', + 'data_inicio', + 'data_fim' + ] + const direcoesValidas = ['asc', 'desc'] + + if (!colunasValidas.includes(column) || !direcoesValidas.includes(direction)) { + return new BadRequestError({ + message: 'order inválido. Use o formato "id:asc", "id:desc", "data_inicio:asc" ou "data_fim:desc"' + }) + } + filters.order = { - column: order_column as 'id' | 'data_inicio' | 'data_fim', - direction: order_direction as 'asc' | 'desc' + column: column as 'id' | 'data_inicio' | 'data_fim', + direction: direction as 'asc' | 'desc' } } @@ -78,8 +92,9 @@ export class ListaExpedicoesController implements RequestHandler { const result = await this.listaExpedicoesUseCase.execute(filters) + // erro de infra if (result.left()) { - return new BadRequestError({ message: result.value.message }) + return new InternalServerError({ message: result.value.message }) } return { From 1e33c0d2f6ede1098fc4af613fe6d654a83e0895 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Mon, 21 Sep 2026 12:58:07 -0300 Subject: [PATCH 20/58] feat: adiciona contratos de participantes e rotas em ExpedicaoCollection --- src/domain/expedicao/ExpedicaoCollection.ts | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index fbeaa0a4..4cd6c818 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -1,6 +1,6 @@ import { Either } from '@/library/either/Either' -import { Attributes, CreateAttributes } from './Expedicao' +import { Attributes, CreateAttributes, ExpedicaoListItem, ExpedicaoDetalhada } from './Expedicao' export interface ExpedicaoOrder { column: 'id' | 'data_inicio' | 'data_fim' @@ -8,6 +8,8 @@ export interface ExpedicaoOrder { } export interface ExpedicaoFilters { + pagina?: number + limite?: number cidade_id?: number usuario_id?: number data_inicio_de?: string @@ -15,8 +17,21 @@ export interface ExpedicaoFilters { order?: ExpedicaoOrder } +export interface PaginatedResult { + items: T[] + total: number + pagina: number + limite: number +} + export interface ExpedicaoCollection { - findAll(filters: ExpedicaoFilters): Promise> - findById(id: number): Promise> + findAll(filters: ExpedicaoFilters): Promise>> + findById(id: number): Promise> create(attributes: CreateAttributes): Promise> + + addParticipant(expedicaoId: number, usuarioId: number): Promise> + removeParticipant(expedicaoId: number, usuarioId: number): Promise> + + substituteRoute(expedicaoId: number, rotas: number[]): Promise> + } From 83c9384805ecb5931ccb78b5bec0de27832f13c3 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 13:15:00 -0300 Subject: [PATCH 21/58] test(expedicao): cobre paginacao, ordenacao e filtros no findAll --- .../expedicao/expedicao-collection.test.ts | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/test/integration/expedicao/expedicao-collection.test.ts b/test/integration/expedicao/expedicao-collection.test.ts index d53f1bbb..b0beee26 100644 --- a/test/integration/expedicao/expedicao-collection.test.ts +++ b/test/integration/expedicao/expedicao-collection.test.ts @@ -134,4 +134,101 @@ describe('ExpedicaoCollectionKnexAdapter', () => { if (!found.right()) return expect(found.value).toBeNull() }) + describe('filtros e paginação no findAll', () => { + let ids: number[] = [] + + beforeAll(async () => { + // Cria 3 expedições distintas para testar ordenação, paginação e filtros + const exp1 = await collection.create({ + ...novaExpedicao(), + cidade_id: fixtures.cidades[0], + data_inicio: '2026-05-01', + data_fim: '2026-05-10' + }) + const exp2 = await collection.create({ + ...novaExpedicao(), + cidade_id: fixtures.cidades[1], + data_inicio: '2026-06-01', + data_fim: '2026-06-10' + }) + const exp3 = await collection.create({ + ...novaExpedicao(), + cidade_id: fixtures.cidades[0], // Mesma cidade da exp1 + data_inicio: '2026-07-01', + data_fim: '2026-07-10' + }) + + if (exp1.right() && exp2.right() && exp3.right()) { + ids = [ + exp1.value.id, + exp2.value.id, + exp3.value.id + ] + } + }) + + afterAll(async () => { + await knex('expedicoes').whereIn('id', ids).delete() + }) + + test('devolve metadados de paginação padrão e limite de itens', async () => { + const found = await collection.findAll({ limite: 2, pagina: 1 }) + expect(found.right()).toBe(true) + if (!found.right()) return + + // Deve ter limite 2, estar na página 1 e totalizar no mínimo 3 + expect(found.value.limite).toBe(2) + expect(found.value.pagina).toBe(1) + expect(found.value.total).toBeGreaterThanOrEqual(3) + expect(found.value.itens.length).toBeLessThanOrEqual(2) + }) + + test('filtra por cidade_id', async () => { + const found = await collection.findAll({ cidade_id: fixtures.cidades[1] }) + expect(found.right()).toBe(true) + if (!found.right()) return + + // Deve achar apenas a exp2 + expect(found.value.itens.map(e => e.id)).toContain(ids[1]) + expect(found.value.itens.map(e => e.id)).not.toContain(ids[0]) + expect(found.value.itens.map(e => e.id)).not.toContain(ids[2]) + }) + + test('filtra por intervalo de datas (data_inicio_de e data_fim_ate)', async () => { + // Busca expedições que comecem a partir de junho e terminem até meio de julho + const found = await collection.findAll({ + data_inicio_de: '2026-06-01', + data_fim_ate: '2026-07-15' + }) + expect(found.right()).toBe(true) + if (!found.right()) return + + // Deve achar exp2 (junho) e exp3 (julho), mas ignorar exp1 (maio) + const returnedIds = found.value.itens.map(e => e.id) + expect(returnedIds).toContain(ids[1]) + expect(returnedIds).toContain(ids[2]) + expect(returnedIds).not.toContain(ids[0]) + }) + + test('aplica ordenação (order) corretamente', async () => { + const foundDesc = await collection.findAll({ order: { column: 'data_inicio', direction: 'desc' } }) + expect(foundDesc.right()).toBe(true) + if (!foundDesc.right()) return + + const foundAsc = await collection.findAll({ order: { column: 'data_inicio', direction: 'asc' } }) + expect(foundAsc.right()).toBe(true) + if (!foundAsc.right()) return + + const idxDesc3 = foundDesc.value.itens.findIndex(e => e.id === ids[2]) // Julho + const idxDesc1 = foundDesc.value.itens.findIndex(e => e.id === ids[0]) // Maio + + const idxAsc3 = foundAsc.value.itens.findIndex(e => e.id === ids[2]) // Julho + const idxAsc1 = foundAsc.value.itens.findIndex(e => e.id === ids[0]) // Maio + + // DESC: Julho (exp3) vem antes de Maio (exp1) + expect(idxDesc3).toBeLessThan(idxDesc1) + // ASC: Maio (exp1) vem antes de Julho (exp3) + expect(idxAsc1).toBeLessThan(idxAsc3) + }) + }) }) From dd40c2b9a4d5258701f7ea158fed838582e06ec6 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 14:20:18 -0300 Subject: [PATCH 22/58] fix(exception):tratamento de excecao endpoint de exclusao --- .../expedicao/DeletaExpedicaoController.ts | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/application/expedicao/DeletaExpedicaoController.ts b/src/application/expedicao/DeletaExpedicaoController.ts index db60acb8..5c9618d5 100644 --- a/src/application/expedicao/DeletaExpedicaoController.ts +++ b/src/application/expedicao/DeletaExpedicaoController.ts @@ -4,6 +4,7 @@ import { } from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' import { NotFoundError } from '@/library/http/error/NotFoundError' import { NextHandler, RequestHandler } from '@/library/http/Server' @@ -26,20 +27,25 @@ export class DeletaExpedicaoController implements RequestHandler { } async handle(request: CustomHttpRequest, _next: NextHandler): Promise { - const { expedicaoId } = request.params + try { + const { expedicaoId } = request.params - if (!expedicaoId || Number.isNaN(Number(expedicaoId))) { - return new BadRequestError({ message: 'O ID da expedição é inválido.' }) - } + if (!expedicaoId || Number.isNaN(Number(expedicaoId))) { + return new BadRequestError({ message: 'O ID da expedição é inválido.' }) + } - const result = await this.deletaExpedicaoUseCase.execute(Number(expedicaoId)) + const result = await this.deletaExpedicaoUseCase.execute(Number(expedicaoId)) - if (result.left()) { - return new NotFoundError({ message: result.value.message }) - } + if (result.left()) { + return new NotFoundError({ message: result.value.message }) + } - return { - statusCode: StatusCode.NoContent + return { + statusCode: StatusCode.NoContent + } + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao deletar a expedição.' + return new InternalServerError({ message: errorMessage }) } } } From b6aa2fc6c72b4251363d47c441e9794b07437c88 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 23:10:12 -0300 Subject: [PATCH 23/58] =?UTF-8?q?fix(expedicao):=20corrige=20verifica?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20erro=20na=20exclus=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../expedicao/DeletaExpedicaoController.ts | 15 ++++++++------- src/domain/expedicao/DeletaExpedicaoUseCase.ts | 18 +++--------------- .../ExpedicaoCollectionKnexAdapter.ts | 13 +++++++++++-- 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/application/expedicao/DeletaExpedicaoController.ts b/src/application/expedicao/DeletaExpedicaoController.ts index 5c9618d5..be275e4a 100644 --- a/src/application/expedicao/DeletaExpedicaoController.ts +++ b/src/application/expedicao/DeletaExpedicaoController.ts @@ -13,10 +13,7 @@ interface Dependencies { } interface CustomHttpRequest extends HttpRequest { - usuario?: { - id: number - tipo_usuario_id: number - } + params: Record } export class DeletaExpedicaoController implements RequestHandler { @@ -30,14 +27,18 @@ export class DeletaExpedicaoController implements RequestHandler { try { const { expedicaoId } = request.params - if (!expedicaoId || Number.isNaN(Number(expedicaoId))) { + if (expedicaoId === undefined || expedicaoId === null || expedicaoId === '' || !/^\d+$/.test(expedicaoId)) { return new BadRequestError({ message: 'O ID da expedição é inválido.' }) } - const result = await this.deletaExpedicaoUseCase.execute(Number(expedicaoId)) + const result = await this.deletaExpedicaoUseCase.execute({ id: Number(expedicaoId) }) if (result.left()) { - return new NotFoundError({ message: result.value.message }) + // Distingue não encontrado (404) de erro no banco (500) + if (result.value.message === 'Expedição não encontrada') { + return new NotFoundError({ message: result.value.message }) + } + return new InternalServerError({ message: result.value.message }) } return { diff --git a/src/domain/expedicao/DeletaExpedicaoUseCase.ts b/src/domain/expedicao/DeletaExpedicaoUseCase.ts index b356f2f1..300b1ce0 100644 --- a/src/domain/expedicao/DeletaExpedicaoUseCase.ts +++ b/src/domain/expedicao/DeletaExpedicaoUseCase.ts @@ -1,5 +1,5 @@ import { - Either, Left, Right + Either } from '@/library/either/Either' import { ExpedicaoCollection } from './ExpedicaoCollection' @@ -14,19 +14,7 @@ export class DeletaExpedicaoUseCase { this.expedicaoCollection = dependencies.expedicaoCollection } - async execute(id: number): Promise> { - const expedicaoResult = await this.expedicaoCollection.findById(id) - - if (expedicaoResult.left() || !expedicaoResult.value) { - return new Left(new Error('Expedição não encontrada para exclusão.')) - } - - const deleteResult = await this.expedicaoCollection.delete(id) - - if (deleteResult.left()) { - return new Left(deleteResult.value) - } - - return new Right(undefined) + async execute({ id }: { id: number }): Promise> { + return this.expedicaoCollection.delete(id) } } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index c36403eb..e68a2bc0 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -226,12 +226,21 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { async delete(id: number): Promise> { try { - await this.knex.transaction(async trx => { + const affectedRows = await this.knex.transaction(async trx => { + // Deleta as tabelas filhas primeiro await trx('expedicoes_participantes').where('expedicao_id', id).delete() await trx('expedicoes_rotas').where('expedicao_id', id).delete() - await trx('expedicoes').where('id', id).delete() + + // Deleta a expedição e converte a tipagem do resultado explicitamente para number + const count = await trx('expedicoes').where('id', id).delete() + return count }) + // Se apagou 0 linhas, é porque o ID não existia + if (affectedRows === 0) { + return Either.left(new Error('Expedição não encontrada')) + } + return Either.right(undefined) } catch (error) { return Either.left(new CollectionError({ message: 'Failed to delete expedição', cause: error })) From 805699cbbd30e1bc3255dbe903e2c1548bff4f0c Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Mon, 21 Sep 2026 23:29:06 -0300 Subject: [PATCH 24/58] fix(expedicao): corrige mapeamento de erros no cadastro --- src/application/expedicao/CadastraExpedicaoController.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/application/expedicao/CadastraExpedicaoController.ts b/src/application/expedicao/CadastraExpedicaoController.ts index 1729c25a..a557e64d 100644 --- a/src/application/expedicao/CadastraExpedicaoController.ts +++ b/src/application/expedicao/CadastraExpedicaoController.ts @@ -80,6 +80,12 @@ export class CadastraExpedicaoController implements RequestHandler { }) if (result.left()) { + // Se for um erro que sabemos ser de banco/infraestrutura devolve 500 + if (result.value.name === 'CollectionError' || result.value.message.includes('Failed to create')) { + return new InternalServerError({ message: 'Falha interna ao cadastrar expedição' }) + } + + // Se for um erro de validação de domínio (ex: data_fim antes de data_inicio) devolve 400 return new BadRequestError({ message: result.value.message }) } From cce955ef8f4b60f6c598941754acc716678f5a92 Mon Sep 17 00:00:00 2001 From: JordanBonfim Date: Tue, 22 Sep 2026 00:05:30 -0300 Subject: [PATCH 25/58] fix(expedicao): corrige mapeamento de erros na atualizacao --- .../expedicao/AtualizaExpedicaoController.ts | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/application/expedicao/AtualizaExpedicaoController.ts b/src/application/expedicao/AtualizaExpedicaoController.ts index 3d0de868..11a6962b 100644 --- a/src/application/expedicao/AtualizaExpedicaoController.ts +++ b/src/application/expedicao/AtualizaExpedicaoController.ts @@ -5,6 +5,7 @@ import { import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' import { NextHandler, RequestHandler } from '@/library/http/Server' interface Dependencies { @@ -43,13 +44,24 @@ export class AtualizaExpedicaoController implements RequestHandler { cidade_id: number } - const DATA = /^\d{4}-\d{2}-\d{2}$/ + const isValidDate = (dateString: string) => { + if (!/^\d{4}-\d{2}-\d{2}$/.test(dateString)) return false - if (typeof data_inicio !== 'string' || !DATA.test(data_inicio) || Number.isNaN(Date.parse(data_inicio))) { - return new BadRequestError({ message: 'A data_inicio é obrigatória e deve estar no formato YYYY-MM-DD.' }) + const [ + year, + month, + day + ] = dateString.split('-').map(Number) + const date = new Date(year, month - 1, day) + + return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day + } + + if (typeof data_inicio !== 'string' || !isValidDate(data_inicio)) { + return new BadRequestError({ message: 'A data_inicio é obrigatória e deve ser uma data válida no calendário (formato YYYY-MM-DD).' }) } - if (typeof data_fim !== 'string' || !DATA.test(data_fim) || Number.isNaN(Date.parse(data_fim))) { - return new BadRequestError({ message: 'A data_fim é obrigatória e deve estar no formato YYYY-MM-DD.' }) + if (typeof data_fim !== 'string' || !isValidDate(data_fim)) { + return new BadRequestError({ message: 'A data_fim é obrigatória e deve ser uma data válida no calendário (formato YYYY-MM-DD).' }) } if (!Number.isInteger(cidade_id) || cidade_id <= 0) { return new BadRequestError({ message: 'O cidade_id é obrigatório e deve ser um número inteiro válido.' }) @@ -69,7 +81,20 @@ export class AtualizaExpedicaoController implements RequestHandler { }) if (result.left()) { - return new BadRequestError({ message: result.value.message }) + const error = result.value + + // Não encontrado (404) + if (error.message === 'Expedição não encontrada') { + return new NotFoundError({ message: error.message }) + } + + // Erro de Infraestrutura / Banco de Dados (500) + if (error.name === 'CollectionError' || error.message.includes('Failed to update')) { + return new InternalServerError({ message: 'Falha interna ao atualizar expedição' }) + } + + // Erro de validação da Entidade / Regra de Negócio (400) + return new BadRequestError({ message: error.message }) } return { From 95b289737b36b249ddf53a0f49b8795a35d2243d Mon Sep 17 00:00:00 2001 From: Eduardo Date: Tue, 22 Sep 2026 15:56:03 -0300 Subject: [PATCH 26/58] feat: implementa gerenciamento de evidencia com upload e get endpoints --- .env.example | 1 + compose.integration.yml | 2 + package.json | 3 +- src/application/create-app.ts | 6 +- .../evidencia/CriarEvidenciaController.ts | 112 ++++++++++++++++ .../evidencia/ListarEvidenciasController.ts | 43 ++++++ .../ValidarEventoExisteMiddleware.ts | 52 ++++++++ src/application/evidencia/index.ts | 35 +++++ src/config/evidencia.ts | 22 ++++ ...000_adiciona_colunas_arquivo_evidencias.ts | 16 +++ src/domain/evidencia/CriarEvidenciaUseCase.ts | 34 +++++ src/domain/evidencia/Evidencia.ts | 21 +++ .../EvidenciaCollectionKnexAdapter.ts | 26 +++- .../EvidenciaUploadMiddleware.ts | 50 +++++++ src/infrastructure/ExpressApplication.ts | 19 ++- src/library/Application.ts | 8 +- src/library/http/Router.ts | 3 + .../evidencia/evidencia-collection.test.ts | 35 ++++- .../evidencia/evidencia-http.test.ts | 124 ++++++++++++++++++ test/integration/setup/schema.sql | 5 +- test/unit/domain/evidencia/Evidencia.test.ts | 13 ++ yarn.lock | 7 + 22 files changed, 621 insertions(+), 16 deletions(-) create mode 100644 src/application/evidencia/CriarEvidenciaController.ts create mode 100644 src/application/evidencia/ListarEvidenciasController.ts create mode 100644 src/application/evidencia/ValidarEventoExisteMiddleware.ts create mode 100644 src/application/evidencia/index.ts create mode 100644 src/config/evidencia.ts create mode 100644 src/database/migration/20260921100000_adiciona_colunas_arquivo_evidencias.ts create mode 100644 src/domain/evidencia/CriarEvidenciaUseCase.ts create mode 100644 src/infrastructure/EvidenciaUploadMiddleware.ts create mode 100644 test/integration/evidencia/evidencia-http.test.ts diff --git a/.env.example b/.env.example index 94a12608..cb35fdbc 100644 --- a/.env.example +++ b/.env.example @@ -8,6 +8,7 @@ CORS_METHODS=HEAD,GET,POST,PUT,PATCH,DELETE CORS_ALLOWED_HEADERS=Content-Type,Authorization STORAGE_PATH=./uploads +EVIDENCIA_MAX_FILE_SIZE_MB=200 MYSQL_DATABASE=herbario_dev MYSQL_HOST=127.0.0.1 diff --git a/compose.integration.yml b/compose.integration.yml index ebffc49e..732e8c22 100644 --- a/compose.integration.yml +++ b/compose.integration.yml @@ -1,3 +1,5 @@ +name: hcf-api-test + services: postgres: image: postgis/postgis:18-3.6 diff --git a/package.json b/package.json index 2f353c7c..45c16b06 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "@types/cors": "2.8.19", "@types/express": "5.0.5", "@types/morgan": "1.9.10", + "@types/multer": "^2.2.0", "@types/pg": "^8.16.0", "@types/react": "19.2.2", "@types/react-dom": "19.2.2", @@ -84,8 +85,8 @@ "globals": "16.5.0", "husky": "9.1.7", "npm-run-all": "4.1.5", - "tsx": "4.21.0", "supertest": "7.2.2", + "tsx": "4.21.0", "typescript": "5.9.3", "typescript-eslint": "8.46.3", "vitest": "4.0.7" diff --git a/src/application/create-app.ts b/src/application/create-app.ts index 0e18b894..8c68944a 100644 --- a/src/application/create-app.ts +++ b/src/application/create-app.ts @@ -14,6 +14,7 @@ import legacyErrors from '../middlewares/erros-middleware' import { generatePreview, reportPreview } from '../reports/controller' import { routes as createEstadoRoutes } from './estado' import { routes as createEventoRoutes } from './evento' +import { routes as createEvidenciaRoutes } from './evidencia' import { routes as createFaseSucessionalRoutes } from './fase-sucessional' import { routes as createPaisRoutes } from './pais' import { routes as createVegetacaoRoutes } from './vegetacao' @@ -61,7 +62,8 @@ export function createApp({ ...createEstadoRoutes(knex), ...createFaseSucessionalRoutes(knex), ...createVegetacaoRoutes(knex), - ...createEventoRoutes(knex) + ...createEventoRoutes(knex), + ...createEvidenciaRoutes(knex) ] const application = new ExpressApplication({ logger }) @@ -115,7 +117,7 @@ export function createApp({ for (const route of routes) { const sanitizedPath = `/api/${route.path}`.replaceAll(/\/{2,}/g, '/').replaceAll(/\/$/g, '') - application.endpoint(route.method, sanitizedPath, ...route.handlers) + application.endpoint(route.method, sanitizedPath, route.handlers, route.middlewares) } if (legacyRouter) { diff --git a/src/application/evidencia/CriarEvidenciaController.ts b/src/application/evidencia/CriarEvidenciaController.ts new file mode 100644 index 00000000..20a1d262 --- /dev/null +++ b/src/application/evidencia/CriarEvidenciaController.ts @@ -0,0 +1,112 @@ +import { unlink } from 'node:fs/promises' + +import { CriarEvidenciaUseCase } from '@/domain/evidencia/CriarEvidenciaUseCase' +import { ForeignKeyViolationError } from '@/infrastructure/error/ForeignKeyViolationError' +import { InfrastructureError } from '@/infrastructure/error/InfrastructureError' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + criarEvidenciaUseCase: CriarEvidenciaUseCase +} + +interface Body { + nome?: unknown + capturado_em?: unknown +} + +interface UploadedFile { + filename: string + mimetype: string + size: number + path: string +} + +export class CriarEvidenciaController implements RequestHandler { + private readonly criarEvidenciaUseCase: CriarEvidenciaUseCase + + constructor(dependencies: Dependencies) { + this.criarEvidenciaUseCase = dependencies.criarEvidenciaUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { eventoId: rawEventoId, file: rawFile } = request.params as { eventoId?: string; file?: unknown } + const eventoId = parseId(rawEventoId, 'eventoId') + if (eventoId instanceof Error) return new BadRequestError({ message: eventoId.message }) + + const file = rawFile as UploadedFile | undefined + if (!file) return new BadRequestError({ message: 'Arquivo (campo "arquivo") é obrigatório' }) + + const body = (request.body ?? {}) as Body + + const nome = parseString(body.nome, 'nome') + if (nome instanceof Error) return await cleanupAndReturn(file.path, nome) + + const capturadoEm = parseDate(body.capturado_em, 'capturado_em') + if (capturadoEm instanceof Error) return await cleanupAndReturn(file.path, capturadoEm) + + // Substituir por request.usuario.id assim que a + // autenticação for integrada. + const usuarioId = null + + const result = await this.criarEvidenciaUseCase.execute({ + evento_id: eventoId, + nome, + arquivo: file.filename, + mime_type: file.mimetype, + tamanho: file.size, + capturado_em: capturadoEm, + created_by: usuarioId + }) + + if (result.left()) { + await unlink(file.path).catch(() => {}) + + const error = result.value + if (error instanceof ForeignKeyViolationError) return new NotFoundError({ message: error.message }) + if (!(error instanceof InfrastructureError)) return new BadRequestError({ message: error.message }) + return new InternalServerError({ message: error.message }) + } + + return { + body: { ...result.value, url: `/uploads/evidencias/${result.value.arquivo}` }, + statusCode: StatusCode.Created + } + } +} + +async function cleanupAndReturn(filePath: string, error: Error): Promise { + await unlink(filePath).catch(() => {}) + return new BadRequestError({ message: error.message }) +} + +function parseId(raw: unknown, field: string): number | Error { + if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} + +function parseString(raw: unknown, field: string): string | Error { + if (typeof raw !== 'string' || !raw.trim()) { + return new Error(`${field} é obrigatório`) + } + return raw +} + +function parseDate(raw: unknown, field: string): Date | Error { + if (typeof raw !== 'string') { + return new Error(`${field} inválido. Use uma data no formato ISO 8601`) + } + const date = new Date(raw) + if (Number.isNaN(date.getTime())) { + return new Error(`${field} inválido. Use uma data no formato ISO 8601`) + } + return date +} diff --git a/src/application/evidencia/ListarEvidenciasController.ts b/src/application/evidencia/ListarEvidenciasController.ts new file mode 100644 index 00000000..53ddecbd --- /dev/null +++ b/src/application/evidencia/ListarEvidenciasController.ts @@ -0,0 +1,43 @@ +import { EvidenciaCollection } from '@/domain/evidencia/EvidenciaCollection' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + evidenciaCollection: EvidenciaCollection +} + +export class ListarEvidenciasController implements RequestHandler { + private readonly evidenciaCollection: EvidenciaCollection + + constructor(dependencies: Dependencies) { + this.evidenciaCollection = dependencies.evidenciaCollection + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { eventoId: rawEventoId } = request.params as { eventoId?: string } + const eventoId = parseId(rawEventoId, 'eventoId') + if (eventoId instanceof Error) return new BadRequestError({ message: eventoId.message }) + + const result = await this.evidenciaCollection.findAll({ evento_id: eventoId }) + if (result.left()) return new InternalServerError({ message: result.value.message }) + + const body = result.value.map(evidencia => ({ + ...evidencia, + url: `/uploads/evidencias/${evidencia.arquivo}` + })) + + return { body, statusCode: StatusCode.Ok } + } +} + +function parseId(raw: unknown, field: string): number | Error { + if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} diff --git a/src/application/evidencia/ValidarEventoExisteMiddleware.ts b/src/application/evidencia/ValidarEventoExisteMiddleware.ts new file mode 100644 index 00000000..e0f892b1 --- /dev/null +++ b/src/application/evidencia/ValidarEventoExisteMiddleware.ts @@ -0,0 +1,52 @@ +import express from 'express' + +import { EventoCollection } from '@/domain/evento/EventoCollection' + +declare global { + // eslint-disable-next-line @typescript-eslint/no-namespace -- é o jeito canônico de estender o Request do Express + namespace Express { + interface Request { + evidenciaEvento?: { expedicaoId: number } + } + } +} + +export function validarEventoExisteMiddleware(eventoCollection: EventoCollection): express.RequestHandler { + return (request, response, next) => { + const eventoId = Number(request.params.eventoId) + + if (!Number.isInteger(eventoId) || eventoId <= 0) { + response.status(400).json({ + error: { + statusCode: 400, name: 'BadRequestError', message: 'eventoId inválido' + } + }) + return + } + + eventoCollection.findById(eventoId) + .then(result => { + if (result.left()) { + response.status(500).json({ + error: { + statusCode: 500, name: 'InternalServerError', message: result.value.message + } + }) + return + } + + if (!result.value) { + response.status(404).json({ + error: { + statusCode: 404, name: 'NotFoundError', message: 'Evento não encontrado' + } + }) + return + } + + request.evidenciaEvento = { expedicaoId: result.value.expedicao_id } + next() + }) + .catch(next) + } +} diff --git a/src/application/evidencia/index.ts b/src/application/evidencia/index.ts new file mode 100644 index 00000000..6c75ff5a --- /dev/null +++ b/src/application/evidencia/index.ts @@ -0,0 +1,35 @@ +import { type Knex } from 'knex' + +import { CriarEvidenciaUseCase } from '@/domain/evidencia/CriarEvidenciaUseCase' +import { EventoCollectionKnexAdapter } from '@/infrastructure/EventoCollectionKnexAdapter' +import { EvidenciaCollectionKnexAdapter } from '@/infrastructure/EvidenciaCollectionKnexAdapter' +import { evidenciaUpload } from '@/infrastructure/EvidenciaUploadMiddleware' +import { Method } from '@/library/http/common' +import { Route } from '@/library/http/Router' + +import { CriarEvidenciaController } from './CriarEvidenciaController' +import { ListarEvidenciasController } from './ListarEvidenciasController' +import { validarEventoExisteMiddleware } from './ValidarEventoExisteMiddleware' + +export function routes(knex: Knex): Route[] { + const evidenciaCollection = new EvidenciaCollectionKnexAdapter({ knex }) + const eventoCollection = new EventoCollectionKnexAdapter({ knex }) + + return [ + { + handlers: [ + new CriarEvidenciaController({ + criarEvidenciaUseCase: new CriarEvidenciaUseCase({ evidenciaCollection }) + }) + ], + method: Method.Post, + middlewares: [validarEventoExisteMiddleware(eventoCollection), evidenciaUpload], + path: '/v2/eventos/:eventoId/evidencias' + }, + { + handlers: [new ListarEvidenciasController({ evidenciaCollection })], + method: Method.Get, + path: '/v2/eventos/:eventoId/evidencias' + } + ] +} diff --git a/src/config/evidencia.ts b/src/config/evidencia.ts new file mode 100644 index 00000000..f9d38ace --- /dev/null +++ b/src/config/evidencia.ts @@ -0,0 +1,22 @@ +import { resolve } from 'node:path' + +import { upload } from './directory' + +export const EVIDENCIA_DIR = resolve(upload, 'evidencias') + +const DEFAULT_MAX_FILE_SIZE_MB = 200 +const maxFileSizeMb = Number(process.env.EVIDENCIA_MAX_FILE_SIZE_MB) || DEFAULT_MAX_FILE_SIZE_MB +export const EVIDENCIA_MAX_FILE_SIZE_BYTES = maxFileSizeMb * 1024 * 1024 + +export const MIME_TYPE_EXTENSAO: Record = { + 'image/jpeg': '.jpg', + 'image/png': '.png', + 'image/webp': '.webp', + 'video/mp4': '.mp4', + 'video/quicktime': '.mov', + 'audio/mpeg': '.mp3', + 'audio/mp4': '.m4a', + 'audio/wav': '.wav' +} + +export const MIME_TYPES_ACEITOS = Object.keys(MIME_TYPE_EXTENSAO) diff --git a/src/database/migration/20260921100000_adiciona_colunas_arquivo_evidencias.ts b/src/database/migration/20260921100000_adiciona_colunas_arquivo_evidencias.ts new file mode 100644 index 00000000..af261e7f --- /dev/null +++ b/src/database/migration/20260921100000_adiciona_colunas_arquivo_evidencias.ts @@ -0,0 +1,16 @@ +import { Knex } from 'knex' + +export async function run(knex: Knex): Promise { + const hasColumn = await knex.schema.hasColumn('evidencias', 'arquivo') + if (hasColumn) { + return + } + + await knex.transaction(async trx => { + await trx.schema.alterTable('evidencias', table => { + table.string('arquivo', 255).notNullable() + table.string('mime_type', 100).notNullable() + table.bigInteger('tamanho').notNullable() + }) + }) +} diff --git a/src/domain/evidencia/CriarEvidenciaUseCase.ts b/src/domain/evidencia/CriarEvidenciaUseCase.ts new file mode 100644 index 00000000..fdd6c48e --- /dev/null +++ b/src/domain/evidencia/CriarEvidenciaUseCase.ts @@ -0,0 +1,34 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, CreateAttributes, Evidencia +} from './Evidencia' +import { EvidenciaCollection } from './EvidenciaCollection' + +interface Dependencies { + evidenciaCollection: EvidenciaCollection +} + +export class CriarEvidenciaUseCase { + private readonly evidenciaCollection: EvidenciaCollection + + constructor(dependencies: Dependencies) { + this.evidenciaCollection = dependencies.evidenciaCollection + } + + async execute(input: CreateAttributes): Promise> { + const validated = Evidencia.create({ + ...input, + created_at: new Date(), + id: 0, + updated_at: new Date(), + updated_by: input.created_by + }) + + if (validated.left()) { + return Either.left(validated.value) + } + + return this.evidenciaCollection.create(input) + } +} diff --git a/src/domain/evidencia/Evidencia.ts b/src/domain/evidencia/Evidencia.ts index b1b4708d..3423fea2 100644 --- a/src/domain/evidencia/Evidencia.ts +++ b/src/domain/evidencia/Evidencia.ts @@ -4,6 +4,9 @@ export interface Attributes { id: number evento_id: number nome: string + arquivo: string + mime_type: string + tamanho: number capturado_em: Date created_at: Date updated_at: Date @@ -17,6 +20,9 @@ export class Evidencia { readonly id: number readonly evento_id: number readonly nome: string + readonly arquivo: string + readonly mime_type: string + readonly tamanho: number readonly capturado_em: Date readonly created_at: Date readonly updated_at: Date @@ -27,6 +33,9 @@ export class Evidencia { this.id = attributes.id this.evento_id = attributes.evento_id this.nome = attributes.nome + this.arquivo = attributes.arquivo + this.mime_type = attributes.mime_type + this.tamanho = attributes.tamanho this.capturado_em = attributes.capturado_em this.created_at = attributes.created_at this.updated_at = attributes.updated_at @@ -43,6 +52,18 @@ export class Evidencia { return Either.left(new Error('Nome da evidência não pode ser vazio')) } + if (!attributes.arquivo.trim()) { + return Either.left(new Error('Arquivo da evidência é obrigatório')) + } + + if (!attributes.mime_type.trim()) { + return Either.left(new Error('Tipo do arquivo da evidência é obrigatório')) + } + + if (!Number.isInteger(attributes.tamanho) || attributes.tamanho <= 0) { + return Either.left(new Error('Tamanho do arquivo da evidência é inválido')) + } + if (Number.isNaN(attributes.capturado_em.getTime())) { return Either.left(new Error('Instante de captura da evidência é inválido')) } diff --git a/src/infrastructure/EvidenciaCollectionKnexAdapter.ts b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts index 48bf1fd0..13229705 100644 --- a/src/infrastructure/EvidenciaCollectionKnexAdapter.ts +++ b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts @@ -5,7 +5,9 @@ import { EvidenciaCollection, EvidenciaFilters } from '@/domain/evidencia/Eviden import { Either } from '@/library/either/Either' import { CollectionError } from './error/CollectionError' +import { ForeignKeyViolationError } from './error/ForeignKeyViolationError' import { toNullableNumber } from './pg-column' +import { PG_FOREIGN_KEY_VIOLATION, pgErrorCode } from './pg-error' interface Dependencies { knex: Knex @@ -15,6 +17,9 @@ interface Row { id: number evento_id: number nome: string + arquivo: string + mime_type: string + tamanho: number capturado_em: Date created_at: Date updated_at: Date @@ -26,6 +31,9 @@ const COLUMNS = [ 'id', 'evento_id', 'nome', + 'arquivo', + 'mime_type', + 'tamanho', 'capturado_em', 'created_at', 'updated_at', @@ -38,6 +46,9 @@ function toAttributes(row: Row): Attributes { id: row.id, evento_id: row.evento_id, nome: row.nome, + arquivo: row.arquivo, + mime_type: row.mime_type, + tamanho: Number(row.tamanho), capturado_em: row.capturado_em, created_at: row.created_at, updated_at: row.updated_at, @@ -46,6 +57,16 @@ function toAttributes(row: Row): Attributes { } } +function toInfrastructureError(message: string, error: unknown): Error { + const code = pgErrorCode(error) + + if (code === PG_FOREIGN_KEY_VIOLATION) { + return new ForeignKeyViolationError({ message: 'Evento não encontrado', cause: error }) + } + + return new CollectionError({ message, cause: error }) +} + export class EvidenciaCollectionKnexAdapter implements EvidenciaCollection { private readonly knex: Knex @@ -90,6 +111,9 @@ export class EvidenciaCollectionKnexAdapter implements EvidenciaCollection { .insert({ evento_id: attributes.evento_id, nome: attributes.nome, + arquivo: attributes.arquivo, + mime_type: attributes.mime_type, + tamanho: attributes.tamanho, capturado_em: attributes.capturado_em, created_by: attributes.created_by, updated_by: attributes.created_by @@ -98,7 +122,7 @@ export class EvidenciaCollectionKnexAdapter implements EvidenciaCollection { return Either.right(toAttributes(row)) } catch (error) { - return Either.left(new CollectionError({ message: 'Failed to create evidência', cause: error })) + return Either.left(toInfrastructureError('Failed to create evidência', error)) } } } diff --git a/src/infrastructure/EvidenciaUploadMiddleware.ts b/src/infrastructure/EvidenciaUploadMiddleware.ts new file mode 100644 index 00000000..94b1f342 --- /dev/null +++ b/src/infrastructure/EvidenciaUploadMiddleware.ts @@ -0,0 +1,50 @@ +import express from 'express' +import multer from 'multer' +import { randomBytes } from 'node:crypto' +import { mkdirSync } from 'node:fs' + +import { + EVIDENCIA_DIR, EVIDENCIA_MAX_FILE_SIZE_BYTES, MIME_TYPE_EXTENSAO, MIME_TYPES_ACEITOS +} from '@/config/evidencia' + +mkdirSync(EVIDENCIA_DIR, { recursive: true }) + +const storage = multer.diskStorage({ + destination: (_request, _file, callback) => { + callback(null, EVIDENCIA_DIR) + }, + filename: (request, file, callback) => { + const eventoId = String(request.params.eventoId) + const expedicaoId = request.evidenciaEvento?.expedicaoId + const timestamp = Date.now() + const sufixo = randomBytes(2).toString('hex') + const extensao = MIME_TYPE_EXTENSAO[file.mimetype] + callback(null, `${expedicaoId}_${eventoId}_${timestamp}-${sufixo}${extensao}`) + } +}) + +const singleUpload = multer({ + storage, + limits: { fileSize: EVIDENCIA_MAX_FILE_SIZE_BYTES }, + fileFilter: (_request, file, callback) => { + if (!MIME_TYPES_ACEITOS.includes(file.mimetype)) { + callback(new Error(`Tipo de arquivo não suportado: ${file.mimetype}`)) + return + } + callback(null, true) + } +}).single('arquivo') + +export const evidenciaUpload: express.RequestHandler = (request, response, next) => { + singleUpload(request, response, (error: unknown) => { + if (error instanceof Error) { + response.status(400).json({ + error: { + statusCode: 400, name: 'BadRequestError', message: error.message + } + }) + return + } + next() + }) +} diff --git a/src/infrastructure/ExpressApplication.ts b/src/infrastructure/ExpressApplication.ts index 89e8b310..88675a02 100644 --- a/src/infrastructure/ExpressApplication.ts +++ b/src/infrastructure/ExpressApplication.ts @@ -34,13 +34,20 @@ export class ExpressApplication implements Application { return this } - endpoint(method: Method, path: string, ...handlers: RequestHandler[]): this { + endpoint( + method: Method, + path: string, + handlers: RequestHandler[], + expressMiddlewares: express.RequestHandler[] = [] + ): this { this.app[method]( path, + ...expressMiddlewares, async (expressRequest: express.Request, expressResponse: express.Response) => { const params = { ...expressRequest.params, - ...expressRequest.query + ...expressRequest.query, + ...(expressRequest.file ? { file: expressRequest.file } : {}) } const headers: Headers = { ...expressRequest.headers as Record, @@ -80,19 +87,19 @@ export class ExpressApplication implements Application { } get(path: string, ...handlers: RequestHandler[]): this { - return this.endpoint(Method.Get, path, ...handlers) + return this.endpoint(Method.Get, path, handlers) } post(path: string, ...handlers: RequestHandler[]): this { - return this.endpoint(Method.Post, path, ...handlers) + return this.endpoint(Method.Post, path, handlers) } put(path: string, ...handlers: RequestHandler[]): this { - return this.endpoint(Method.Put, path, ...handlers) + return this.endpoint(Method.Put, path, handlers) } delete(path: string, ...handlers: RequestHandler[]): this { - return this.endpoint(Method.Delete, path, ...handlers) + return this.endpoint(Method.Delete, path, handlers) } start(port: number): Promise { diff --git a/src/library/Application.ts b/src/library/Application.ts index 3560eeff..f752d7d4 100644 --- a/src/library/Application.ts +++ b/src/library/Application.ts @@ -1,3 +1,4 @@ +import express from 'express' import http from 'node:http' import { Method } from './http/common' @@ -7,7 +8,12 @@ export interface Application { readonly server: http.Server use(...args: unknown[]): this - endpoint(method: Method, path: string, ...handlers: RequestHandler[]): this + endpoint( + method: Method, + path: string, + handlers: RequestHandler[], + expressMiddlewares?: express.RequestHandler[] + ): this get(path: string, ...handlers: RequestHandler[]): this post(path: string, ...handlers: RequestHandler[]): this put(path: string, ...handlers: RequestHandler[]): this diff --git a/src/library/http/Router.ts b/src/library/http/Router.ts index e4f6eb1b..26d90c4f 100644 --- a/src/library/http/Router.ts +++ b/src/library/http/Router.ts @@ -1,3 +1,5 @@ +import express from 'express' + import { Method } from './common' import { RequestHandler } from './Server' @@ -5,4 +7,5 @@ export interface Route { method: Method path: string handlers: RequestHandler[] + middlewares?: express.RequestHandler[] } diff --git a/test/integration/evidencia/evidencia-collection.test.ts b/test/integration/evidencia/evidencia-collection.test.ts index 17359083..73fab38e 100644 --- a/test/integration/evidencia/evidencia-collection.test.ts +++ b/test/integration/evidencia/evidencia-collection.test.ts @@ -50,6 +50,9 @@ describe('EvidenciaCollectionKnexAdapter', () => { const created = await collection.create({ evento_id: eventoId, nome: 'IMG_0042.jpg', + arquivo: '1_20260215143000-a1b2.jpg', + mime_type: 'image/jpeg', + tamanho: 204800, capturado_em: capturadoEm, created_by: fixtures.usuarios[0] }) @@ -68,10 +71,22 @@ describe('EvidenciaCollectionKnexAdapter', () => { test('lista as evidências de um evento ordenadas por instante de captura', async () => { const tarde = await collection.create({ - evento_id: eventoId, nome: 'b.jpg', capturado_em: new Date('2026-02-15T18:00:00.000Z'), created_by: null + evento_id: eventoId, + nome: 'b.jpg', + arquivo: '1_20260215180000-c3d4.jpg', + mime_type: 'image/jpeg', + tamanho: 1024, + capturado_em: new Date('2026-02-15T18:00:00.000Z'), + created_by: null }) const cedo = await collection.create({ - evento_id: eventoId, nome: 'a.jpg', capturado_em: new Date('2026-02-15T08:00:00.000Z'), created_by: null + evento_id: eventoId, + nome: 'a.jpg', + arquivo: '1_20260215080000-e5f6.jpg', + mime_type: 'image/jpeg', + tamanho: 1024, + capturado_em: new Date('2026-02-15T08:00:00.000Z'), + created_by: null }) expect(tarde.right() && cedo.right()).toBe(true) @@ -94,7 +109,13 @@ describe('EvidenciaCollectionKnexAdapter', () => { test('rejeita evidência de um evento inexistente', async () => { const created = await collection.create({ - evento_id: -1, nome: 'c.jpg', capturado_em: new Date(), created_by: null + evento_id: -1, + nome: 'c.jpg', + arquivo: '-1_1700000000000-0000.jpg', + mime_type: 'image/jpeg', + tamanho: 1024, + capturado_em: new Date(), + created_by: null }) expect(created.left()).toBe(true) @@ -108,7 +129,13 @@ describe('EvidenciaCollectionKnexAdapter', () => { .returning>(['id']) const created = await collection.create({ - evento_id: evento.id, nome: 'd.jpg', capturado_em: new Date(), created_by: null + evento_id: evento.id, + nome: 'd.jpg', + arquivo: `${evento.id}_1700000000000-0000.jpg`, + mime_type: 'image/jpeg', + tamanho: 1024, + capturado_em: new Date(), + created_by: null }) expect(created.right()).toBe(true) if (!created.right()) return diff --git a/test/integration/evidencia/evidencia-http.test.ts b/test/integration/evidencia/evidencia-http.test.ts new file mode 100644 index 00000000..31b34050 --- /dev/null +++ b/test/integration/evidencia/evidencia-http.test.ts @@ -0,0 +1,124 @@ +import { existsSync } from 'node:fs' +import { unlink } from 'node:fs/promises' +import { resolve } from 'node:path' +import { + afterAll, beforeAll, describe, expect, test +} from 'vitest' + +import { createTestApp } from '../setup/app-factory' +import { + cleanupExpedicaoFixtures, ExpedicaoFixtures, seedExpedicaoFixtures +} from '../setup/seeds/expedicao.seed' + +interface EvidenciaBody { + id: number + arquivo: string + mime_type: string + tamanho: number + url: string +} + +function asEvidencia(body: unknown): EvidenciaBody { + return body as EvidenciaBody +} + +async function deleteArquivo(arquivo: string): Promise { + const path = resolve('uploads', 'evidencias', arquivo) + if (existsSync(path)) { + await unlink(path) + } +} + +describe('Evidências (upload, HTTP)', () => { + const { agent, knex } = createTestApp() + + let fixtures: ExpedicaoFixtures + let expedicaoId: number + let eventoId: number + + beforeAll(async () => { + fixtures = await seedExpedicaoFixtures(knex) + + const [expedicao] = await knex('expedicoes') + .insert({ + cidade_id: fixtures.cidades[0], data_fim: '2026-02-18', data_inicio: '2026-02-14', descricao: 'XEVD evidências http' + }) + .returning>(['id']) + expedicaoId = expedicao.id + + const [evento] = await knex('eventos') + .insert({ + expedicao_id: expedicaoId, tipo: 'DIARIO', capturado_em: new Date('2026-02-15T13:15:00.000Z') + }) + .returning>(['id']) + eventoId = evento.id + }) + + afterAll(async () => { + await knex('eventos').where({ id: eventoId }).delete() + await knex('expedicoes').where({ id: expedicaoId }).delete() + await cleanupExpedicaoFixtures(knex, fixtures) + await knex.destroy() + }) + + test('POST grava o arquivo em disco e a evidência no banco', async () => { + const response = await agent + .post(`/api/v2/eventos/${eventoId}/evidencias`) + .field('nome', 'IMG_0042.jpg') + .field('capturado_em', '2026-02-15T14:32:00Z') + .attach('arquivo', Buffer.from('conteúdo de teste'), { contentType: 'image/jpeg', filename: 'foto.jpg' }) + .expect(201) + + const body = asEvidencia(response.body) + + try { + expect(body.mime_type).toBe('image/jpeg') + expect(body.tamanho).toBeGreaterThan(0) + expect(body.arquivo).toMatch(new RegExp(`^${expedicaoId}_${eventoId}_\\d+-[0-9a-f]{4}\\.jpg$`)) + expect(body.url).toBe(`/uploads/evidencias/${body.arquivo}`) + expect(existsSync(resolve('uploads', 'evidencias', body.arquivo))).toBe(true) + } finally { + await knex('evidencias').where({ id: body.id }).delete() + await deleteArquivo(body.arquivo) + } + }) + + test('POST rejeita tipo de arquivo não suportado', async () => { + await agent + .post(`/api/v2/eventos/${eventoId}/evidencias`) + .field('nome', 'anotacoes.txt') + .field('capturado_em', '2026-02-15T14:32:00Z') + .attach('arquivo', Buffer.from('texto qualquer'), { contentType: 'text/plain', filename: 'anotacoes.txt' }) + .expect(400) + }) + + test('POST retorna 404 quando o evento não existe', async () => { + await agent + .post('/api/v2/eventos/999999999/evidencias') + .field('nome', 'IMG_0042.jpg') + .field('capturado_em', '2026-02-15T14:32:00Z') + .attach('arquivo', Buffer.from('conteúdo de teste'), { contentType: 'image/jpeg', filename: 'foto.jpg' }) + .expect(404) + }) + + test('GET lista as evidências do evento com a url computada', async () => { + const created = await agent + .post(`/api/v2/eventos/${eventoId}/evidencias`) + .field('nome', 'audio.mp3') + .field('capturado_em', '2026-02-15T14:32:00Z') + .attach('arquivo', Buffer.from('audio de teste'), { contentType: 'audio/mpeg', filename: 'audio.mp3' }) + .expect(201) + + const createdBody = asEvidencia(created.body) + + try { + const response = await agent.get(`/api/v2/eventos/${eventoId}/evidencias`).expect(200) + const [evidencia] = response.body as EvidenciaBody[] + + expect(evidencia).toMatchObject({ id: createdBody.id, url: createdBody.url }) + } finally { + await knex('evidencias').where({ id: createdBody.id }).delete() + await deleteArquivo(createdBody.arquivo) + } + }) +}) diff --git a/test/integration/setup/schema.sql b/test/integration/setup/schema.sql index c14ca8b8..f23734cd 100644 --- a/test/integration/setup/schema.sql +++ b/test/integration/setup/schema.sql @@ -3101,7 +3101,10 @@ CREATE TABLE public.evidencias ( created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, created_by bigint, - updated_by bigint + updated_by bigint, + arquivo character varying(255) NOT NULL, + mime_type character varying(100) NOT NULL, + tamanho bigint NOT NULL ); diff --git a/test/unit/domain/evidencia/Evidencia.test.ts b/test/unit/domain/evidencia/Evidencia.test.ts index 95e74590..b250bdf5 100644 --- a/test/unit/domain/evidencia/Evidencia.test.ts +++ b/test/unit/domain/evidencia/Evidencia.test.ts @@ -8,6 +8,9 @@ const base: Attributes = { id: 1, evento_id: 10, nome: 'IMG_0042.jpg', + arquivo: '10_20260215143200-a1b2.jpg', + mime_type: 'image/jpeg', + tamanho: 204800, capturado_em: new Date('2026-02-15T14:32:00.000Z'), created_at: new Date('2026-02-16T00:00:00.000Z'), updated_at: new Date('2026-02-16T00:00:00.000Z'), @@ -35,4 +38,14 @@ describe('Evidencia.create', () => { test('rejeita instante de captura inválido', () => { expect(Evidencia.create({ ...base, capturado_em: new Date('não é data') }).left()).toBe(true) }) + + test('rejeita arquivo ou mime_type vazios', () => { + expect(Evidencia.create({ ...base, arquivo: '' }).left()).toBe(true) + expect(Evidencia.create({ ...base, mime_type: '' }).left()).toBe(true) + }) + + test('rejeita tamanho inválido', () => { + expect(Evidencia.create({ ...base, tamanho: 0 }).left()).toBe(true) + expect(Evidencia.create({ ...base, tamanho: -1 }).left()).toBe(true) + }) }) diff --git a/yarn.lock b/yarn.lock index c60eea79..f3c10e88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -793,6 +793,13 @@ dependencies: "@types/node" "*" +"@types/multer@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/multer/-/multer-2.2.0.tgz#f987c770cbe309d1b5e60c251851d6550f121f61" + integrity sha512-3U1troeqGV8Ntp7Q3klwf4zr23VEoqYVocYXaswm9+8z3O9UHDYAqLxjJ/h550iRADTjKdOdhhasXw6gD6kYtg== + dependencies: + "@types/express" "*" + "@types/node@*": version "25.9.3" resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.3.tgz#11dfe7a33e68fa5c560f0aa76cc5595621ef26b9" From f700fdee955c22421c5ac02e878c8a1e3eb5c3c5 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 20:53:36 -0300 Subject: [PATCH 27/58] refactor: update nas interfaces de ExpedicaoCollection por consistencia --- src/domain/expedicao/ExpedicaoCollection.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index 4cd6c818..2147bb04 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -1,6 +1,6 @@ import { Either } from '@/library/either/Either' -import { Attributes, CreateAttributes, ExpedicaoListItem, ExpedicaoDetalhada } from './Expedicao' +import { Attributes, CreateAttributes } from './Expedicao' export interface ExpedicaoOrder { column: 'id' | 'data_inicio' | 'data_fim' @@ -17,21 +17,25 @@ export interface ExpedicaoFilters { order?: ExpedicaoOrder } -export interface PaginatedResult { - items: T[] +export interface Paginated { + itens: T[] total: number - pagina: number limite: number + pagina: number +} +export interface ExpedicaoListItem extends Attributes { + participantes: number[] + rotas: number[] } export interface ExpedicaoCollection { - findAll(filters: ExpedicaoFilters): Promise>> - findById(id: number): Promise> + findAll(filters: ExpedicaoFilters): Promise>> + findById(id: number): Promise> create(attributes: CreateAttributes): Promise> addParticipant(expedicaoId: number, usuarioId: number): Promise> removeParticipant(expedicaoId: number, usuarioId: number): Promise> substituteRoute(expedicaoId: number, rotas: number[]): Promise> - + } From cb332b9f1ddddbc711c25f4b4e5ae33d660645e0 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:01:13 -0300 Subject: [PATCH 28/58] feat: adiciona use cases para adicionar e remover participantes, e, substituir rota --- .../expedicao/AdcionaParticipanteUseCase.ts | 18 ++++++++++++++++++ .../expedicao/RemoveParticipanteUseCase.ts | 18 ++++++++++++++++++ src/domain/expedicao/SubstituiRotaUseCase.ts | 18 ++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 src/domain/expedicao/AdcionaParticipanteUseCase.ts create mode 100644 src/domain/expedicao/RemoveParticipanteUseCase.ts create mode 100644 src/domain/expedicao/SubstituiRotaUseCase.ts diff --git a/src/domain/expedicao/AdcionaParticipanteUseCase.ts b/src/domain/expedicao/AdcionaParticipanteUseCase.ts new file mode 100644 index 00000000..28d10532 --- /dev/null +++ b/src/domain/expedicao/AdcionaParticipanteUseCase.ts @@ -0,0 +1,18 @@ +import { Either } from '@/library/either/Either' +import { ExpedicaoCollection } from './ExpedicaoCollection' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class AdicionaParticipanteUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + execute(expedicaoId: number, usuarioId: number): Promise> { + return this.expedicaoCollection.addParticipant(expedicaoId, usuarioId) + } +} diff --git a/src/domain/expedicao/RemoveParticipanteUseCase.ts b/src/domain/expedicao/RemoveParticipanteUseCase.ts new file mode 100644 index 00000000..7668986f --- /dev/null +++ b/src/domain/expedicao/RemoveParticipanteUseCase.ts @@ -0,0 +1,18 @@ +import { Either } from '@/library/either/Either' +import { ExpedicaoCollection } from './ExpedicaoCollection' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class RemoveParticipanteUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + execute(expedicaoId: number, usuarioId: number): Promise> { + return this.expedicaoCollection.removeParticipant(expedicaoId, usuarioId) + } +} diff --git a/src/domain/expedicao/SubstituiRotaUseCase.ts b/src/domain/expedicao/SubstituiRotaUseCase.ts new file mode 100644 index 00000000..a985d64a --- /dev/null +++ b/src/domain/expedicao/SubstituiRotaUseCase.ts @@ -0,0 +1,18 @@ +import { Either } from '@/library/either/Either' +import { ExpedicaoCollection } from './ExpedicaoCollection' + +interface Dependencies { + expedicaoCollection: ExpedicaoCollection +} + +export class SubstituiRotasUseCase { + private readonly expedicaoCollection: ExpedicaoCollection + + constructor(dependencies: Dependencies) { + this.expedicaoCollection = dependencies.expedicaoCollection + } + + execute(expedicaoId: number, rotas: number[]): Promise> { + return this.expedicaoCollection.substituteRoute(expedicaoId, rotas) + } +} From c8c09e7eaba99e4281b1e4f393b907749119adce Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:02:23 -0300 Subject: [PATCH 29/58] feat: adciona ConflictError para http 409 --- src/library/http/error/ConflictError.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/library/http/error/ConflictError.ts diff --git a/src/library/http/error/ConflictError.ts b/src/library/http/error/ConflictError.ts new file mode 100644 index 00000000..e9c3faa5 --- /dev/null +++ b/src/library/http/error/ConflictError.ts @@ -0,0 +1,7 @@ +import { HttpError } from "./HttpError"; + +export class ConflictError extends HttpError { + constructor(params: { message: string; report?: unknown; cause?: unknown }) { + super({ ...params, statusCode: 409 }); + } +} From 7de22801b2fd3a049220a75303bed4a242e6fedf Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:13:54 -0300 Subject: [PATCH 30/58] feat: adiciona factory para ExpedicaoCollection --- src/factory/ExpedicaoCollectionFactory.ts | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/factory/ExpedicaoCollectionFactory.ts diff --git a/src/factory/ExpedicaoCollectionFactory.ts b/src/factory/ExpedicaoCollectionFactory.ts new file mode 100644 index 00000000..fe19e09e --- /dev/null +++ b/src/factory/ExpedicaoCollectionFactory.ts @@ -0,0 +1,8 @@ +import { ExpedicaoCollectionKnexAdapter } from '@/infrastructure/ExpedicaoCollectionKnexAdapter' +import { singleton } from '@/library/singleton' + +import { createKnexInstance } from './KnexFactory' + +export const createExpedicaoCollection = singleton(() => { + return new ExpedicaoCollectionKnexAdapter({ knex: createKnexInstance() }) +}) From b2daceffd5c9c7ec7f1c1ed40a3adade57d66e20 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:16:00 -0300 Subject: [PATCH 31/58] feat: adiciona controllers e rotas para participantes e rotas --- .../AdicionaParticipanteController.ts | 67 +++++++++++++++++++ .../expedicao/RemoveParticipanteController.ts | 56 ++++++++++++++++ .../expedicao/SubstituirRotaController.ts | 57 ++++++++++++++++ src/application/expedicao/index.ts | 45 +++++++++++++ 4 files changed, 225 insertions(+) create mode 100644 src/application/expedicao/AdicionaParticipanteController.ts create mode 100644 src/application/expedicao/RemoveParticipanteController.ts create mode 100644 src/application/expedicao/SubstituirRotaController.ts create mode 100644 src/application/expedicao/index.ts diff --git a/src/application/expedicao/AdicionaParticipanteController.ts b/src/application/expedicao/AdicionaParticipanteController.ts new file mode 100644 index 00000000..55198a45 --- /dev/null +++ b/src/application/expedicao/AdicionaParticipanteController.ts @@ -0,0 +1,67 @@ +import { AdicionaParticipanteUseCase } from '@/domain/expedicao/AdcionaParticipanteUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { ConflictError } from '@/library/http/error/ConflictError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + adicionaParticipanteUseCase: AdicionaParticipanteUseCase +} + +interface CustomHttpRequest extends HttpRequest { + params: Record + body: any + usuario?: { + id: number + tipo_usuario_id: number + } +} + +export class AdicionaParticipanteController implements RequestHandler { + private readonly adicionaParticipanteUseCase: AdicionaParticipanteUseCase + + constructor(dependencies: Dependencies) { + this.adicionaParticipanteUseCase = dependencies.adicionaParticipanteUseCase + } + + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + try { + // TODO: AUTENTICAÇÃO TEMPORARIAMENTE DESABILITADA + + const { expedicaoId } = request.params + const { usuarioId } = request.body as { usuarioId?: number } + if (expedicaoId === undefined || expedicaoId === null || expedicaoId === '' || !/^\d+$/.test(expedicaoId)) { + return new BadRequestError({ message: 'expedicaoId inválido' }) + } + + if (usuarioId === undefined || typeof usuarioId !== 'number' || usuarioId <= 0) { + return new BadRequestError({ message: 'usuarioId inválido' }) + } + + const result = await this.adicionaParticipanteUseCase.execute(Number(expedicaoId), usuarioId) + if (result.left()) { + if (result.value.message.includes('já está nesta expedição')) { + return new ConflictError({ message: result.value.message }) + } + + if (result.value.name === 'CollectionError' || result.value.message.includes('Falha ao adicionar')) { + return new InternalServerError({ message: 'Falha interna ao adicionar participante' }) + } + + return new BadRequestError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.Created, + body: { message: 'Participante adicionado com sucesso.' } + } + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao adicionar participante' + return new InternalServerError({ message: errorMessage }) + } + } +} diff --git a/src/application/expedicao/RemoveParticipanteController.ts b/src/application/expedicao/RemoveParticipanteController.ts new file mode 100644 index 00000000..8cbdced0 --- /dev/null +++ b/src/application/expedicao/RemoveParticipanteController.ts @@ -0,0 +1,56 @@ +import { RemoveParticipanteUseCase, } from '@/domain/expedicao/RemoveParticipanteUseCase' +import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + removeParticipanteUseCase: RemoveParticipanteUseCase +} + +interface CustomHttpRequest extends HttpRequest { + usuario?: { + id: number + tipo_usuario_id: number + } +} + +export class RemoveParticipanteController implements RequestHandler { + private readonly removeParticipanteUseCase: RemoveParticipanteUseCase + + constructor(dependencies: Dependencies) { + this.removeParticipanteUseCase = dependencies.removeParticipanteUseCase + } + + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + try { + const { expedicaoId, usuarioId } = request.params + + if (expedicaoId === undefined || expedicaoId === null || expedicaoId === '' || typeof expedicaoId !== 'string' || !/^\d+$/.test(expedicaoId)) { + return new BadRequestError({ message: 'expedicaoId inválido' }) + } + + if (usuarioId === undefined || usuarioId === null || usuarioId === '' || typeof usuarioId !== 'string' || !/^\d+$/.test(usuarioId)) { + return new BadRequestError({ message: 'usuarioId inválido' }) + } + + const result = await this.removeParticipanteUseCase.execute(Number(expedicaoId), Number(usuarioId)) + + if (result.left()) { + if (result.value.name === 'CollectionError' || result.value.message.includes('Falha')) { + return new InternalServerError({ message: 'Falha interna ao remover participante' }) + } + return new BadRequestError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.NoContent, + body: undefined + } + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao remover participante' + return new InternalServerError({ message: errorMessage }) + } + } +} diff --git a/src/application/expedicao/SubstituirRotaController.ts b/src/application/expedicao/SubstituirRotaController.ts new file mode 100644 index 00000000..d0ba6cc7 --- /dev/null +++ b/src/application/expedicao/SubstituirRotaController.ts @@ -0,0 +1,57 @@ +import { SubstituiRotasUseCase } from '@/domain/expedicao/SubstituiRotaUseCase' +import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + SubstituiRotasUseCase: SubstituiRotasUseCase +} + +interface CustomHttpRequest extends HttpRequest { + usuario?: { + id: number + tipo_usuario_id: number + } +} + +export class SubstituiRotasController implements RequestHandler { + private readonly SubstituiRotasUseCase: SubstituiRotasUseCase + + constructor(dependencies: Dependencies) { + this.SubstituiRotasUseCase = dependencies.SubstituiRotasUseCase + } + + async handle(request: CustomHttpRequest, _next: NextHandler): Promise { + try { + const { expedicaoId } = request.params + const { rotas } = request.body as { rotas?: number[] } + + if (expedicaoId === undefined || expedicaoId === null || expedicaoId === '' || typeof expedicaoId !== 'string' || !/^\d+$/.test(expedicaoId)) { + return new BadRequestError({ message: 'expedicaoId inválido' }) + } + + if (!rotas || !Array.isArray(rotas) || rotas.some(id => typeof id !== 'number' || id <= 0)) { + return new BadRequestError({ message: 'rotas inválidas' }) + } + + const result = await this.SubstituiRotasUseCase.execute(Number(expedicaoId), rotas) + + if (result.left()) { + if (result.value.name === 'CollectionError' || result.value.message.includes('Falha')) { + return new InternalServerError({ message: 'Falha interna ao substituir rotas' }) + } + return new BadRequestError({ message: result.value.message }) + } + + return { + statusCode: StatusCode.NoContent, + body: undefined + } + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Erro inesperado ao substituir rotas' + return new InternalServerError({ message: errorMessage }) + } + } +} diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts new file mode 100644 index 00000000..7ae8b9d5 --- /dev/null +++ b/src/application/expedicao/index.ts @@ -0,0 +1,45 @@ +import { type Knex } from 'knex' +import { Method } from '@/library/http/common' +import { Route } from '@/library/http/Router' +import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' +import { AdicionaParticipanteUseCase } from '@/domain/expedicao/AdcionaParticipanteUseCase' +import { AdicionaParticipanteController } from './AdicionaParticipanteController' +import { RemoveParticipanteUseCase } from '@/domain/expedicao/RemoveParticipanteUseCase' +import { RemoveParticipanteController } from './RemoveParticipanteController' +import { SubstituiRotasController } from './SubstituirRotaController' +import { SubstituiRotasUseCase } from '@/domain/expedicao/SubstituiRotaUseCase' + + +export function routes(knex: Knex): Route[] { + const expedicaoCollection = createExpedicaoCollection() + + return [ + { + method: Method.Post, + path: '/v2/expedicoes/:expedicaoId/participantes', + handlers: [ + new AdicionaParticipanteController({ + adicionaParticipanteUseCase: new AdicionaParticipanteUseCase({ expedicaoCollection }) + }) + ] + }, + { + method: Method.Delete, + path: '/v2/expedicoes/:expedicaoId/participantes/:usuarioId', + handlers: [ + new RemoveParticipanteController({ + removeParticipanteUseCase: new RemoveParticipanteUseCase({ expedicaoCollection }) + }) + ] + }, + { + method: Method.Put, + path: '/v2/expedicoes/:expedicaoId/rotas', + handlers: [ + new SubstituiRotasController({ + SubstituiRotasUseCase: new SubstituiRotasUseCase({ expedicaoCollection }) + }) + ] + } + ] +} From 8ee9b9bf59d54e3c37d9528e0a827ab976877957 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:18:25 -0300 Subject: [PATCH 32/58] =?UTF-8?q?feat:=20adciona=20metodos=20para=20partic?= =?UTF-8?q?ipantes=20e=20rotas,=20e,=20ajusta=20findId=20e=20findAll=20por?= =?UTF-8?q?=20consistencia=20para=20branch=20irm=C3=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExpedicaoCollectionKnexAdapter.ts | 153 ++++++++++++++++-- 1 file changed, 139 insertions(+), 14 deletions(-) diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 85fcf963..4c94953c 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -1,7 +1,11 @@ import { Knex } from 'knex' -import { Attributes, CreateAttributes } from '@/domain/expedicao/Expedicao' -import { ExpedicaoCollection, ExpedicaoFilters } from '@/domain/expedicao/ExpedicaoCollection' +import { + Attributes, CreateAttributes +} from '@/domain/expedicao/Expedicao' +import { + ExpedicaoCollection, ExpedicaoFilters, ExpedicaoListItem, Paginated +} from '@/domain/expedicao/ExpedicaoCollection' import { Either } from '@/library/either/Either' import { CollectionError } from './error/CollectionError' @@ -59,13 +63,11 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { ]) } - async findAll(filters: ExpedicaoFilters): Promise> { + async findAll(filters: ExpedicaoFilters): Promise>> { try { const query = this.select() - if (filters.cidade_id) { - query.where('expedicoes.cidade_id', filters.cidade_id) - } + if (filters.cidade_id) query.where('expedicoes.cidade_id', filters.cidade_id) if (filters.usuario_id) { query.whereIn('expedicoes.id', this.knex('expedicoes_participantes') @@ -73,19 +75,66 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { .where('usuario_id', filters.usuario_id)) } - if (filters.data_inicio_de) { - query.where('expedicoes.data_inicio', '>=', filters.data_inicio_de) - } + if (filters.data_inicio_de) query.where('expedicoes.data_inicio', '>=', filters.data_inicio_de) + if (filters.data_fim_ate) query.where('expedicoes.data_fim', '<=', filters.data_fim_ate) - if (filters.data_fim_ate) { - query.where('expedicoes.data_fim', '<=', filters.data_fim_ate) - } + // contagem de total de registros + const countQuery = query.clone() + const [result] = await countQuery.clearSelect().count<{ count: string | number }[]>('* as count') + const count = result?.count ?? 0 + const total = Number(count) + + // valores padrão da paginação(20 e 1) + const limite = filters.limite && filters.limite > 0 ? filters.limite : 20 + const pagina = filters.pagina && filters.pagina > 0 ? filters.pagina : 1 + const offset = (pagina - 1) * limite + + query.limit(limite).offset(offset) + // ordenação const order = filters.order ?? { column: 'id' as const, direction: 'desc' as const } query.orderBy(`expedicoes.${order.column}`, order.direction) const rows = await query as Row[] - return Either.right(rows.map(toAttributes)) + + // página vazia, já retorna + if (rows.length === 0) { + return Either.right({ + itens: [], total, limite, pagina + }) + } + + const expedicoesIds = rows.map(row => row.id) + + const [participantesRows, rotasRows] = await Promise.all([ + this.knex<{ expedicao_id: number; usuario_id: number }>('expedicoes_participantes') + .select('expedicao_id', 'usuario_id') + .whereIn('expedicao_id', expedicoesIds), + + this.knex<{ expedicao_id: number; cidade_id: number }>('expedicoes_rotas') + .select('expedicao_id', 'cidade_id') + .whereIn('expedicao_id', expedicoesIds) + .orderBy('ordem', 'asc') + ]) + + const itens = rows.map(row => { + return { + ...toAttributes(row), + participantes: participantesRows + .filter(p => p.expedicao_id === row.id) + .map(p => p.usuario_id), + rotas: rotasRows + .filter(r => r.expedicao_id === row.id) + .map(r => r.cidade_id) + } + }) + + return Either.right({ + itens, + total, + limite, + pagina + }) } catch (error) { return Either.left(new CollectionError({ message: 'Failed to list expedições', cause: error })) } @@ -94,7 +143,32 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { async findById(id: number): Promise> { try { const row = await this.select().where('expedicoes.id', id).first() as Row | undefined - return Either.right(row ? toAttributes(row) : null) + + if (!row) { + return Either.right(null) + } + + const participantes = await this.knex('expedicoes_participantes') + .join('usuarios', 'usuarios.id', 'expedicoes_participantes.usuario_id') + .where('expedicoes_participantes.expedicao_id', id) + .select('usuarios.id', 'usuarios.nome', 'usuarios.email') + + const rotas = await this.knex('expedicoes_rotas') + .join('cidades', 'cidades.id', 'expedicoes_rotas.cidade_id') + .where('expedicoes_rotas.expedicao_id', id) + .select( + 'cidades.id as cidade_id', + 'expedicoes_rotas.ordem', + 'cidades.nome as nome_cidade', + 'cidades.estado_id' + ) + .orderBy('expedicoes_rotas.ordem', 'asc') + + return Either.right({ + ...toAttributes(row), + participantes, + rotas + } as unknown as Attributes) } catch (error) { return Either.left(new CollectionError({ message: 'Failed to find expedição by id', cause: error })) } @@ -149,4 +223,55 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { return Either.left(new CollectionError({ message: 'Failed to create expedição', cause: error })) } } + + async addParticipant(expedicaoId: number, usuarioId: number): Promise> { + try { + await this.knex('expedicoes_participantes').insert({ + expedicao_id: expedicaoId, + usuario_id: usuarioId + }) + return Either.right(undefined) + } catch (error: any) { + //Código 23505 é a violação de constraint unique no Postgres + if (error.code === '23505') { + return Either.left(new Error('Participante já está nesta expedição.')) + } + return Either.left(new CollectionError({ message: 'Falha ao adicionar participante', cause: error })) + } + } + + async removeParticipant(expedicaoId: number, usuarioId: number): Promise> { + try { + await this.knex('expedicoes_participantes') + .where({ expedicao_id: expedicaoId, usuario_id: usuarioId }) + .delete() + return Either.right(undefined) + } catch (error) { + return Either.left(new CollectionError({ message: 'Falha ao remover participante', cause: error })) + } + } + + async substituteRoute(expedicaoId: number, rotas: number[]): Promise> { + try { + await this.knex.transaction(async (trx) => { + // usa uma transaction para garantir que a exclusão e a inserção ocorram sem a perda de dados em caso de falha. + // se qualquer operação falhar, a transação será revertida e nenhuma alteração será feita no banco de dados. + // devido a constraint unique, estamos deletando todas as rotas da expedição e inserindo novamente, + // já na ordem correta e seguindo a constraint. + await trx('expedicoes_rotas').where('expedicao_id', expedicaoId).delete() + + if (rotas.length > 0) { + const insertData = rotas.map((cidadeId, index) => ({ + expedicao_id: expedicaoId, + cidade_id: cidadeId, + ordem: index + })) + await trx('expedicoes_rotas').insert(insertData) + } + }) + return Either.right(undefined) + } catch (error) { + return Either.left(new CollectionError({ message: 'Falha ao substituir rotas', cause: error })) + } + } } From 6909a1561fe008964dd1b034af050d08c1c0bc6e Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:19:56 -0300 Subject: [PATCH 33/58] test: adiciona testes de integracao para participantes e rotas --- ...expedicao-collection.participantes.test.ts | 153 ++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 test/integration/expedicao/expedicao-collection.participantes.test.ts diff --git a/test/integration/expedicao/expedicao-collection.participantes.test.ts b/test/integration/expedicao/expedicao-collection.participantes.test.ts new file mode 100644 index 00000000..2a256fff --- /dev/null +++ b/test/integration/expedicao/expedicao-collection.participantes.test.ts @@ -0,0 +1,153 @@ +import { afterAll, beforeAll, describe, expect, test } from "vitest"; + +import { ExpedicaoCollectionKnexAdapter } from "@/infrastructure/ExpedicaoCollectionKnexAdapter"; + +import { createTestKnex } from "../setup/app-factory"; +import { + cleanupExpedicaoFixtures, + ExpedicaoFixtures, + seedExpedicaoFixtures, +} from "../setup/seeds/expedicao.seed"; + +describe("ExpedicaoCollectionKnexAdapter - Sub-recursos (Participantes e Rotas)", () => { + const knex = createTestKnex(); + const collection = new ExpedicaoCollectionKnexAdapter({ knex }); + + let fixtures: ExpedicaoFixtures; + + beforeAll(async () => { + fixtures = await seedExpedicaoFixtures(knex); + }); + + afterAll(async () => { + await cleanupExpedicaoFixtures(knex, fixtures); + await knex.destroy(); + }); + + async function criarExpedicaoParaTeste(prefixo: string) { + return collection.create({ + descricao: `Expedicao [${prefixo}] - Teste Isolado`, + data_inicio: "2026-04-01", + data_fim: "2026-04-10", + cidade_id: fixtures.cidades[0], + created_by: fixtures.usuarios[0], + participantes: [fixtures.usuarios[0]], + rotas: [fixtures.cidades[1]], + }); + } + + describe("Adicionar e Remover Participantes", () => { + test("addParticipant insere um novo usuário na expedição", async () => { + const created = await criarExpedicaoParaTeste("ADD_PART"); + expect(created.right()).toBe(true); + if (!created.right()) return; + const expedicaoId = created.value.id; + + try { + const novoParticipante = fixtures.usuarios[1]; + const result = await collection.addParticipant( + expedicaoId, + novoParticipante, + ); + expect(result.right()).toBe(true); + const banco = await knex("expedicoes_participantes") + .where({ expedicao_id: expedicaoId, usuario_id: novoParticipante }) + .first(); + + expect(banco).toBeDefined(); + expect(Number(banco.usuario_id)).toBe(novoParticipante); + } finally { + await knex("expedicoes").where({ id: expedicaoId }).delete(); + } + }); + + test("addParticipant falha ao tentar inserir usuário já existente (unique constraint)", async () => { + const created = await criarExpedicaoParaTeste("ADD_FAIL_UNIQUE"); + if (!created.right()) return; + const expedicaoId = created.value.id; + + try { + const participanteExistente = fixtures.usuarios[0]; + + const result = await collection.addParticipant( + expedicaoId, + participanteExistente, + ); + + expect(result.left()).toBe(true); + if (result.left()) { + expect(result.value.message).toContain("já está nesta expedição"); + } + } finally { + await knex("expedicoes").where({ id: expedicaoId }).delete(); + } + }); + + test("removeParticipant exclui o usuário da expedição", async () => { + const created = await criarExpedicaoParaTeste("REM_PART"); + if (!created.right()) return; + const expedicaoId = created.value.id; + + try { + const participanteParaRemover = fixtures.usuarios[0]; + + const result = await collection.removeParticipant( + expedicaoId, + participanteParaRemover, + ); + expect(result.right()).toBe(true); + + const banco = await knex("expedicoes_participantes") + .where({ + expedicao_id: expedicaoId, + usuario_id: participanteParaRemover, + }) + .first(); + + expect(banco).toBeUndefined(); + } finally { + await knex("expedicoes").where({ id: expedicaoId }).delete(); + } + }); + }); + + describe("Substituir Rotas", () => { + test("substituteRoute remove as antigas e insere as novas na ordem correta", async () => { + const created = await criarExpedicaoParaTeste("SUB_ROTAS"); + if (!created.right()) return; + const expedicaoId = created.value.id; + + try { + const novasRotas = [ + fixtures.cidades[2], + fixtures.cidades[0], + fixtures.cidades[2], + ]; + + const result = await collection.substituteRoute( + expedicaoId, + novasRotas, + ); + expect(result.right()).toBe(true); + + const rotasNoBanco = await knex("expedicoes_rotas") + .where({ expedicao_id: expedicaoId }) + .orderBy("ordem"); + + expect(rotasNoBanco.length).toBe(3); + + const arrayValidacao = rotasNoBanco.map((rota) => [ + rota.ordem, + Number(rota.cidade_id), + ]); + expect(arrayValidacao).toEqual([ + [0, novasRotas[0]], + [1, novasRotas[1]], + [2, novasRotas[2]], + ]); + } finally { + await knex("expedicoes").where({ id: expedicaoId }).delete(); + } + }); + }); +}); From b45e95f5d5417986ebb7b318cbc8f8da237ee61b Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:22:09 -0300 Subject: [PATCH 34/58] test: atualiza teste para refletir interface de retorno paginado --- test/integration/expedicao/expedicao-collection.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/expedicao/expedicao-collection.test.ts b/test/integration/expedicao/expedicao-collection.test.ts index fc21cf95..d53f1bbb 100644 --- a/test/integration/expedicao/expedicao-collection.test.ts +++ b/test/integration/expedicao/expedicao-collection.test.ts @@ -122,7 +122,7 @@ describe('ExpedicaoCollectionKnexAdapter', () => { expect(found.right()).toBe(true) if (!found.right()) return - expect(found.value.map(expedicao => expedicao.id)).toEqual([comBruno.value.id]) + expect(found.value.itens.map(expedicao => expedicao.id)).toEqual([comBruno.value.id]) } finally { await knex('expedicoes').whereIn('id', [comAna.value.id, comBruno.value.id]).delete() } From cee01ead3df97fdfb895b9c2f97506647fbb6c0d Mon Sep 17 00:00:00 2001 From: Dimitri Date: Tue, 22 Sep 2026 21:51:27 -0300 Subject: [PATCH 35/58] fix: corrige formatacao e erros do lint --- .../AdicionaParticipanteController.ts | 2 +- .../expedicao/RemoveParticipanteController.ts | 6 +- .../expedicao/SubstituirRotaController.ts | 4 +- src/application/expedicao/index.ts | 11 +- .../expedicao/AdcionaParticipanteUseCase.ts | 1 + .../expedicao/RemoveParticipanteUseCase.ts | 1 + src/domain/expedicao/SubstituiRotaUseCase.ts | 1 + .../ExpedicaoCollectionKnexAdapter.ts | 15 +- src/library/http/error/ConflictError.ts | 4 +- ...expedicao-collection.participantes.test.ts | 166 +++++++++--------- 10 files changed, 111 insertions(+), 100 deletions(-) diff --git a/src/application/expedicao/AdicionaParticipanteController.ts b/src/application/expedicao/AdicionaParticipanteController.ts index 55198a45..b6198278 100644 --- a/src/application/expedicao/AdicionaParticipanteController.ts +++ b/src/application/expedicao/AdicionaParticipanteController.ts @@ -14,7 +14,7 @@ interface Dependencies { interface CustomHttpRequest extends HttpRequest { params: Record - body: any + body: unknown usuario?: { id: number tipo_usuario_id: number diff --git a/src/application/expedicao/RemoveParticipanteController.ts b/src/application/expedicao/RemoveParticipanteController.ts index 8cbdced0..726da6a4 100644 --- a/src/application/expedicao/RemoveParticipanteController.ts +++ b/src/application/expedicao/RemoveParticipanteController.ts @@ -1,5 +1,7 @@ -import { RemoveParticipanteUseCase, } from '@/domain/expedicao/RemoveParticipanteUseCase' -import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { RemoveParticipanteUseCase } from '@/domain/expedicao/RemoveParticipanteUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' diff --git a/src/application/expedicao/SubstituirRotaController.ts b/src/application/expedicao/SubstituirRotaController.ts index d0ba6cc7..3883b85c 100644 --- a/src/application/expedicao/SubstituirRotaController.ts +++ b/src/application/expedicao/SubstituirRotaController.ts @@ -1,5 +1,7 @@ import { SubstituiRotasUseCase } from '@/domain/expedicao/SubstituiRotaUseCase' -import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index 7ae8b9d5..84db0d64 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -1,14 +1,15 @@ import { type Knex } from 'knex' + +import { AdicionaParticipanteUseCase } from '@/domain/expedicao/AdcionaParticipanteUseCase' +import { RemoveParticipanteUseCase } from '@/domain/expedicao/RemoveParticipanteUseCase' +import { SubstituiRotasUseCase } from '@/domain/expedicao/SubstituiRotaUseCase' +import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' import { Method } from '@/library/http/common' import { Route } from '@/library/http/Router' -import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' -import { AdicionaParticipanteUseCase } from '@/domain/expedicao/AdcionaParticipanteUseCase' + import { AdicionaParticipanteController } from './AdicionaParticipanteController' -import { RemoveParticipanteUseCase } from '@/domain/expedicao/RemoveParticipanteUseCase' import { RemoveParticipanteController } from './RemoveParticipanteController' import { SubstituiRotasController } from './SubstituirRotaController' -import { SubstituiRotasUseCase } from '@/domain/expedicao/SubstituiRotaUseCase' - export function routes(knex: Knex): Route[] { const expedicaoCollection = createExpedicaoCollection() diff --git a/src/domain/expedicao/AdcionaParticipanteUseCase.ts b/src/domain/expedicao/AdcionaParticipanteUseCase.ts index 28d10532..caeb2e0c 100644 --- a/src/domain/expedicao/AdcionaParticipanteUseCase.ts +++ b/src/domain/expedicao/AdcionaParticipanteUseCase.ts @@ -1,4 +1,5 @@ import { Either } from '@/library/either/Either' + import { ExpedicaoCollection } from './ExpedicaoCollection' interface Dependencies { diff --git a/src/domain/expedicao/RemoveParticipanteUseCase.ts b/src/domain/expedicao/RemoveParticipanteUseCase.ts index 7668986f..c3b3bae5 100644 --- a/src/domain/expedicao/RemoveParticipanteUseCase.ts +++ b/src/domain/expedicao/RemoveParticipanteUseCase.ts @@ -1,4 +1,5 @@ import { Either } from '@/library/either/Either' + import { ExpedicaoCollection } from './ExpedicaoCollection' interface Dependencies { diff --git a/src/domain/expedicao/SubstituiRotaUseCase.ts b/src/domain/expedicao/SubstituiRotaUseCase.ts index a985d64a..df4df554 100644 --- a/src/domain/expedicao/SubstituiRotaUseCase.ts +++ b/src/domain/expedicao/SubstituiRotaUseCase.ts @@ -1,4 +1,5 @@ import { Either } from '@/library/either/Either' + import { ExpedicaoCollection } from './ExpedicaoCollection' interface Dependencies { diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 4c94953c..b5c4ecb0 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -231,9 +231,10 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { usuario_id: usuarioId }) return Either.right(undefined) - } catch (error: any) { - //Código 23505 é a violação de constraint unique no Postgres - if (error.code === '23505') { + } catch (error: unknown) { + const dbError = error as { code?: string } + + if (dbError.code === '23505') { return Either.left(new Error('Participante já está nesta expedição.')) } return Either.left(new CollectionError({ message: 'Falha ao adicionar participante', cause: error })) @@ -251,15 +252,15 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { } } - async substituteRoute(expedicaoId: number, rotas: number[]): Promise> { + async substituteRoute(expedicaoId: number, rotas: number[]): Promise> { try { - await this.knex.transaction(async (trx) => { + await this.knex.transaction(async trx => { // usa uma transaction para garantir que a exclusão e a inserção ocorram sem a perda de dados em caso de falha. // se qualquer operação falhar, a transação será revertida e nenhuma alteração será feita no banco de dados. // devido a constraint unique, estamos deletando todas as rotas da expedição e inserindo novamente, - // já na ordem correta e seguindo a constraint. + // já na ordem correta e seguindo a constraint. await trx('expedicoes_rotas').where('expedicao_id', expedicaoId).delete() - + if (rotas.length > 0) { const insertData = rotas.map((cidadeId, index) => ({ expedicao_id: expedicaoId, diff --git a/src/library/http/error/ConflictError.ts b/src/library/http/error/ConflictError.ts index e9c3faa5..b8a99193 100644 --- a/src/library/http/error/ConflictError.ts +++ b/src/library/http/error/ConflictError.ts @@ -1,7 +1,7 @@ -import { HttpError } from "./HttpError"; +import { HttpError } from './HttpError' export class ConflictError extends HttpError { constructor(params: { message: string; report?: unknown; cause?: unknown }) { - super({ ...params, statusCode: 409 }); + super({ ...params, statusCode: 409 }) } } diff --git a/test/integration/expedicao/expedicao-collection.participantes.test.ts b/test/integration/expedicao/expedicao-collection.participantes.test.ts index 2a256fff..e1fb8835 100644 --- a/test/integration/expedicao/expedicao-collection.participantes.test.ts +++ b/test/integration/expedicao/expedicao-collection.participantes.test.ts @@ -1,153 +1,155 @@ -import { afterAll, beforeAll, describe, expect, test } from "vitest"; +import { + afterAll, beforeAll, describe, expect, test +} from 'vitest' -import { ExpedicaoCollectionKnexAdapter } from "@/infrastructure/ExpedicaoCollectionKnexAdapter"; +import { ExpedicaoCollectionKnexAdapter } from '@/infrastructure/ExpedicaoCollectionKnexAdapter' -import { createTestKnex } from "../setup/app-factory"; +import { createTestKnex } from '../setup/app-factory' import { cleanupExpedicaoFixtures, ExpedicaoFixtures, - seedExpedicaoFixtures, -} from "../setup/seeds/expedicao.seed"; + seedExpedicaoFixtures +} from '../setup/seeds/expedicao.seed' -describe("ExpedicaoCollectionKnexAdapter - Sub-recursos (Participantes e Rotas)", () => { - const knex = createTestKnex(); - const collection = new ExpedicaoCollectionKnexAdapter({ knex }); +describe('ExpedicaoCollectionKnexAdapter - Sub-recursos (Participantes e Rotas)', () => { + const knex = createTestKnex() + const collection = new ExpedicaoCollectionKnexAdapter({ knex }) - let fixtures: ExpedicaoFixtures; + let fixtures: ExpedicaoFixtures beforeAll(async () => { - fixtures = await seedExpedicaoFixtures(knex); - }); + fixtures = await seedExpedicaoFixtures(knex) + }) afterAll(async () => { - await cleanupExpedicaoFixtures(knex, fixtures); - await knex.destroy(); - }); + await cleanupExpedicaoFixtures(knex, fixtures) + await knex.destroy() + }) async function criarExpedicaoParaTeste(prefixo: string) { return collection.create({ descricao: `Expedicao [${prefixo}] - Teste Isolado`, - data_inicio: "2026-04-01", - data_fim: "2026-04-10", + data_inicio: '2026-04-01', + data_fim: '2026-04-10', cidade_id: fixtures.cidades[0], created_by: fixtures.usuarios[0], participantes: [fixtures.usuarios[0]], - rotas: [fixtures.cidades[1]], - }); + rotas: [fixtures.cidades[1]] + }) } - describe("Adicionar e Remover Participantes", () => { - test("addParticipant insere um novo usuário na expedição", async () => { - const created = await criarExpedicaoParaTeste("ADD_PART"); - expect(created.right()).toBe(true); - if (!created.right()) return; - const expedicaoId = created.value.id; + describe('Adicionar e Remover Participantes', () => { + test('addParticipant insere um novo usuário na expedição', async () => { + const created = await criarExpedicaoParaTeste('ADD_PART') + expect(created.right()).toBe(true) + if (!created.right()) return + const expedicaoId = created.value.id try { - const novoParticipante = fixtures.usuarios[1]; + const novoParticipante = fixtures.usuarios[1] const result = await collection.addParticipant( expedicaoId, - novoParticipante, - ); - expect(result.right()).toBe(true); - const banco = await knex("expedicoes_participantes") + novoParticipante + ) + expect(result.right()).toBe(true) + const banco = await knex<{ expedicao_id: number; usuario_id: number | string }>('expedicoes_participantes') .where({ expedicao_id: expedicaoId, usuario_id: novoParticipante }) - .first(); + .first() - expect(banco).toBeDefined(); - expect(Number(banco.usuario_id)).toBe(novoParticipante); + expect(banco).toBeDefined() + expect(Number(banco?.usuario_id)).toBe(novoParticipante) } finally { - await knex("expedicoes").where({ id: expedicaoId }).delete(); + await knex('expedicoes').where({ id: expedicaoId }).delete() } - }); + }) - test("addParticipant falha ao tentar inserir usuário já existente (unique constraint)", async () => { - const created = await criarExpedicaoParaTeste("ADD_FAIL_UNIQUE"); - if (!created.right()) return; - const expedicaoId = created.value.id; + test('addParticipant falha ao tentar inserir usuário já existente (unique constraint)', async () => { + const created = await criarExpedicaoParaTeste('ADD_FAIL_UNIQUE') + if (!created.right()) return + const expedicaoId = created.value.id try { - const participanteExistente = fixtures.usuarios[0]; + const participanteExistente = fixtures.usuarios[0] const result = await collection.addParticipant( expedicaoId, - participanteExistente, - ); + participanteExistente + ) - expect(result.left()).toBe(true); + expect(result.left()).toBe(true) if (result.left()) { - expect(result.value.message).toContain("já está nesta expedição"); + expect(result.value.message).toContain('já está nesta expedição') } } finally { - await knex("expedicoes").where({ id: expedicaoId }).delete(); + await knex('expedicoes').where({ id: expedicaoId }).delete() } - }); + }) - test("removeParticipant exclui o usuário da expedição", async () => { - const created = await criarExpedicaoParaTeste("REM_PART"); - if (!created.right()) return; - const expedicaoId = created.value.id; + test('removeParticipant exclui o usuário da expedição', async () => { + const created = await criarExpedicaoParaTeste('REM_PART') + if (!created.right()) return + const expedicaoId = created.value.id try { - const participanteParaRemover = fixtures.usuarios[0]; + const participanteParaRemover = fixtures.usuarios[0] const result = await collection.removeParticipant( expedicaoId, - participanteParaRemover, - ); - expect(result.right()).toBe(true); + participanteParaRemover + ) + expect(result.right()).toBe(true) - const banco = await knex("expedicoes_participantes") + const banco = await knex<{ expedicao_id: number; usuario_id: number | string }>('expedicoes_participantes') .where({ expedicao_id: expedicaoId, - usuario_id: participanteParaRemover, + usuario_id: participanteParaRemover }) - .first(); + .first() - expect(banco).toBeUndefined(); + expect(banco).toBeUndefined() } finally { - await knex("expedicoes").where({ id: expedicaoId }).delete(); + await knex('expedicoes').where({ id: expedicaoId }).delete() } - }); - }); + }) + }) - describe("Substituir Rotas", () => { - test("substituteRoute remove as antigas e insere as novas na ordem correta", async () => { - const created = await criarExpedicaoParaTeste("SUB_ROTAS"); - if (!created.right()) return; - const expedicaoId = created.value.id; + describe('Substituir Rotas', () => { + test('substituteRoute remove as antigas e insere as novas na ordem correta', async () => { + const created = await criarExpedicaoParaTeste('SUB_ROTAS') + if (!created.right()) return + const expedicaoId = created.value.id try { const novasRotas = [ fixtures.cidades[2], fixtures.cidades[0], - fixtures.cidades[2], - ]; + fixtures.cidades[2] + ] const result = await collection.substituteRoute( expedicaoId, - novasRotas, - ); - expect(result.right()).toBe(true); + novasRotas + ) + expect(result.right()).toBe(true) - const rotasNoBanco = await knex("expedicoes_rotas") + const rotasNoBanco = await knex<{ expedicao_id: number; ordem: number; cidade_id: number | string }>('expedicoes_rotas') .where({ expedicao_id: expedicaoId }) - .orderBy("ordem"); + .orderBy('ordem') - expect(rotasNoBanco.length).toBe(3); + expect(rotasNoBanco.length).toBe(3) - const arrayValidacao = rotasNoBanco.map((rota) => [ + const arrayValidacao = rotasNoBanco.map((rota: { ordem: number; cidade_id: number | string }) => [ rota.ordem, - Number(rota.cidade_id), - ]); + Number(rota.cidade_id) + ]) expect(arrayValidacao).toEqual([ [0, novasRotas[0]], [1, novasRotas[1]], - [2, novasRotas[2]], - ]); + [2, novasRotas[2]] + ]) } finally { - await knex("expedicoes").where({ id: expedicaoId }).delete(); + await knex('expedicoes').where({ id: expedicaoId }).delete() } - }); - }); -}); + }) + }) +}) From 946e912d4fe858cffc6d4b93543877960283ba9c Mon Sep 17 00:00:00 2001 From: Eduardo Date: Wed, 23 Sep 2026 14:52:37 -0300 Subject: [PATCH 36/58] feat(expedicao): adiciona nome dos participantes no findAll --- src/domain/expedicao/ExpedicaoCollection.ts | 7 ++++++- .../ExpedicaoCollectionKnexAdapter.ts | 17 ++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index 6c3ec532..85141780 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -25,8 +25,13 @@ export interface Paginated { limite: number pagina: number } +export interface ParticipanteExpedicao { + id: number + nome: string +} + export interface ExpedicaoListItem extends Attributes { - participantes: number[] + participantes: ParticipanteExpedicao[] rotas: number[] } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index e68a2bc0..58ac26f7 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -4,7 +4,7 @@ import { Attributes, CreateAttributes, UpdateAttributes } from '@/domain/expedicao/Expedicao' import { - ExpedicaoCollection, ExpedicaoFilters, ExpedicaoListItem, Paginated + ExpedicaoCollection, ExpedicaoFilters, ExpedicaoListItem, ParticipanteExpedicao, Paginated } from '@/domain/expedicao/ExpedicaoCollection' import { Either } from '@/library/either/Either' @@ -27,6 +27,12 @@ interface Row { updated_by: string | null } +interface ParticipanteRow { + expedicao_id: number + usuario_id: number + nome: string +} + function toAttributes(row: Row): Attributes { return { id: row.id, @@ -107,9 +113,10 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { const expedicoesIds = rows.map(row => row.id) const [participantesRows, rotasRows] = await Promise.all([ - this.knex<{ expedicao_id: number; usuario_id: number }>('expedicoes_participantes') - .select('expedicao_id', 'usuario_id') - .whereIn('expedicao_id', expedicoesIds), + this.knex('expedicoes_participantes') + .join('usuarios', 'usuarios.id', 'expedicoes_participantes.usuario_id') + .select('expedicoes_participantes.expedicao_id', 'expedicoes_participantes.usuario_id', 'usuarios.nome') + .whereIn('expedicoes_participantes.expedicao_id', expedicoesIds) as Promise, this.knex<{ expedicao_id: number; cidade_id: number }>('expedicoes_rotas') .select('expedicao_id', 'cidade_id') @@ -122,7 +129,7 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { ...toAttributes(row), participantes: participantesRows .filter(p => p.expedicao_id === row.id) - .map(p => p.usuario_id), + .map((p): ParticipanteExpedicao => ({ id: p.usuario_id, nome: p.nome })), rotas: rotasRows .filter(r => r.expedicao_id === row.id) .map(r => r.cidade_id) From 63f084297dddd13ec74c9cbc5929ba174b61ae46 Mon Sep 17 00:00:00 2001 From: vitormoraes2486 Date: Thu, 24 Sep 2026 08:55:33 -0300 Subject: [PATCH 37/58] =?UTF-8?q?refactor:=20atende=20revis=C3=A3o=20da=20?= =?UTF-8?q?PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - extrai COLETA_FIELDS para Evento.ts e coleta-parsing.ts, eliminando a duplicação de CAMPOS_DA_FICHA - extrai AtualizarEventoValidator com a regra de coerência própria do update - alinha RemoverEventoController com o mesmo mapeamento de erro dos outros 2 controllers (404 para FK, 422 para CHECK) - corrige testes de integração sem try/finally em eventos-http.test.ts (cleanup vazava) --- .../evento/AtualizarEventoController.ts | 52 +------- .../evento/CriarEventoController.ts | 52 +------- .../evento/RemoverEventoController.ts | 9 +- src/application/evento/coleta-parsing.ts | 25 ++++ src/domain/evento/AtualizarEventoUseCase.ts | 77 ++++-------- src/domain/evento/AtualizarEventoValidator.ts | 54 ++++++++ src/domain/evento/CriarEventoUseCase.ts | 2 +- src/domain/evento/Evento.ts | 23 ++++ .../EventoCollectionKnexAdapter.ts | 26 +--- test/integration/evento/eventos-http.test.ts | 14 ++- .../evento/AtualizarEventoValidator.test.ts | 116 ++++++++++++++++++ 11 files changed, 268 insertions(+), 182 deletions(-) create mode 100644 src/application/evento/coleta-parsing.ts create mode 100644 src/domain/evento/AtualizarEventoValidator.ts create mode 100644 test/unit/domain/evento/AtualizarEventoValidator.test.ts diff --git a/src/application/evento/AtualizarEventoController.ts b/src/application/evento/AtualizarEventoController.ts index 421455c7..edf6838d 100644 --- a/src/application/evento/AtualizarEventoController.ts +++ b/src/application/evento/AtualizarEventoController.ts @@ -1,7 +1,5 @@ import { AtualizarEventoUseCase, Input as AtualizarEventoInput } from '@/domain/evento/AtualizarEventoUseCase' -import { - ColetaAttributes, EVENTO_TIPOS, EventoTipo -} from '@/domain/evento/Evento' +import { EVENTO_TIPOS, EventoTipo } from '@/domain/evento/Evento' import { CheckViolationError } from '@/infrastructure/error/CheckViolationError' import { ForeignKeyViolationError } from '@/infrastructure/error/ForeignKeyViolationError' import { InfrastructureError } from '@/infrastructure/error/InfrastructureError' @@ -15,6 +13,8 @@ import { NotFoundError } from '@/library/http/error/NotFoundError' import { UnprocessableEntityError } from '@/library/http/error/UnprocessableEntityError' import { NextHandler, RequestHandler } from '@/library/http/Server' +import { parseColeta } from './coleta-parsing' + interface Dependencies { atualizarEventoUseCase: AtualizarEventoUseCase } @@ -43,7 +43,7 @@ export class AtualizarEventoController implements RequestHandler { const body = (request.body ?? {}) as Body - // Substituir por request.usuario.id assim que a + // Substituir por request.usuario.id assim que a // autenticação for integrada. const input: AtualizarEventoInput = { id: eventoId, updated_by: null } @@ -107,30 +107,6 @@ export class AtualizarEventoController implements RequestHandler { } } -const CAMPOS_DA_FICHA = [ - 'familia', - 'nome_popular', - 'nome_cientifico', - 'municipio', - 'estado', - 'referencia_local', - 'tipo_vegetacao', - 'solo', - 'relevo', - 'substrato', - 'tronco_com_casca', - 'associacoes', - 'folhas', - 'habito', - 'frutos', - 'flores', - 'luminosidade' -] as const satisfies ReadonlyArray - -function isPlainObject(value: unknown): value is Record { - return typeof value === 'object' && value !== null && !Array.isArray(value) -} - function parseId(raw: unknown, field: string): number | Error { if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { return new Error(`${field} inválido`) @@ -175,23 +151,3 @@ function parseOptionalString(raw: unknown, field: string): string | null | Error } return raw } - -function parseColeta(raw: unknown): ColetaAttributes | Error { - if (!isPlainObject(raw)) { - return new Error('coleta inválido. Envie um objeto com os campos da ficha') - } - - const result = {} as Record - for (const campo of CAMPOS_DA_FICHA) { - const value = raw[campo] - if (value === undefined) { - result[campo] = null - continue - } - if (value !== null && typeof value !== 'string') { - return new Error(`coleta.${campo} inválido`) - } - result[campo] = value - } - return result as unknown as ColetaAttributes -} diff --git a/src/application/evento/CriarEventoController.ts b/src/application/evento/CriarEventoController.ts index 50598d7a..6fb0276c 100644 --- a/src/application/evento/CriarEventoController.ts +++ b/src/application/evento/CriarEventoController.ts @@ -1,7 +1,5 @@ import { CriarEventoUseCase } from '@/domain/evento/CriarEventoUseCase' -import { - ColetaAttributes, EVENTO_TIPOS, EventoTipo -} from '@/domain/evento/Evento' +import { EVENTO_TIPOS, EventoTipo } from '@/domain/evento/Evento' import { CheckViolationError } from '@/infrastructure/error/CheckViolationError' import { ForeignKeyViolationError } from '@/infrastructure/error/ForeignKeyViolationError' import { InfrastructureError } from '@/infrastructure/error/InfrastructureError' @@ -15,6 +13,8 @@ import { NotFoundError } from '@/library/http/error/NotFoundError' import { UnprocessableEntityError } from '@/library/http/error/UnprocessableEntityError' import { NextHandler, RequestHandler } from '@/library/http/Server' +import { parseColeta } from './coleta-parsing' + interface Dependencies { criarEventoUseCase: CriarEventoUseCase } @@ -64,7 +64,7 @@ export class CriarEventoController implements RequestHandler { const coleta = body.coleta === undefined ? null : parseColeta(body.coleta) if (coleta instanceof Error) return new BadRequestError({ message: coleta.message }) - // Substituir por request.usuario.id assim que a + // Substituir por request.usuario.id assim que a // autenticação for integrada. const usuarioId = null @@ -92,30 +92,6 @@ export class CriarEventoController implements RequestHandler { } } -const CAMPOS_DA_FICHA = [ - 'familia', - 'nome_popular', - 'nome_cientifico', - 'municipio', - 'estado', - 'referencia_local', - 'tipo_vegetacao', - 'solo', - 'relevo', - 'substrato', - 'tronco_com_casca', - 'associacoes', - 'folhas', - 'habito', - 'frutos', - 'flores', - 'luminosidade' -] as const satisfies ReadonlyArray - -function isPlainObject(value: unknown): value is Record { - return typeof value === 'object' && value !== null && !Array.isArray(value) -} - function parseId(raw: unknown, field: string): number | Error { if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { return new Error(`${field} inválido`) @@ -160,23 +136,3 @@ function parseOptionalString(raw: unknown, field: string): string | null | Error } return raw } - -function parseColeta(raw: unknown): ColetaAttributes | Error { - if (!isPlainObject(raw)) { - return new Error('coleta inválido. Envie um objeto com os campos da ficha') - } - - const result = {} as Record - for (const campo of CAMPOS_DA_FICHA) { - const value = raw[campo] - if (value === undefined) { - result[campo] = null - continue - } - if (value !== null && typeof value !== 'string') { - return new Error(`coleta.${campo} inválido`) - } - result[campo] = value - } - return result as unknown as ColetaAttributes -} diff --git a/src/application/evento/RemoverEventoController.ts b/src/application/evento/RemoverEventoController.ts index 84da9709..f2bb5a70 100644 --- a/src/application/evento/RemoverEventoController.ts +++ b/src/application/evento/RemoverEventoController.ts @@ -1,4 +1,6 @@ import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' +import { CheckViolationError } from '@/infrastructure/error/CheckViolationError' +import { ForeignKeyViolationError } from '@/infrastructure/error/ForeignKeyViolationError' import { HttpRequest, HttpResponse, StatusCode } from '@/library/http/common' @@ -6,6 +8,7 @@ import { BadRequestError } from '@/library/http/error/BadRequestError' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' import { NotFoundError } from '@/library/http/error/NotFoundError' +import { UnprocessableEntityError } from '@/library/http/error/UnprocessableEntityError' import { NextHandler, RequestHandler } from '@/library/http/Server' interface Dependencies { @@ -27,9 +30,11 @@ export class RemoverEventoController implements RequestHandler { const result = await this.removerEventoUseCase.execute({ id: eventoId }) if (result.left()) { - return new InternalServerError({ message: result.value.message }) + const error = result.value + if (error instanceof ForeignKeyViolationError) return new NotFoundError({ message: error.message }) + if (error instanceof CheckViolationError) return new UnprocessableEntityError({ message: error.message }) + return new InternalServerError({ message: error.message }) } - if (!result.value) { return new NotFoundError({ message: 'Evento não encontrado' }) } diff --git a/src/application/evento/coleta-parsing.ts b/src/application/evento/coleta-parsing.ts new file mode 100644 index 00000000..92c09ca0 --- /dev/null +++ b/src/application/evento/coleta-parsing.ts @@ -0,0 +1,25 @@ +import { COLETA_FIELDS, ColetaAttributes } from '@/domain/evento/Evento' + +function isPlainObject(value: unknown): value is Record { + return typeof value === 'object' && value !== null && !Array.isArray(value) +} + +export function parseColeta(raw: unknown): ColetaAttributes | Error { + if (!isPlainObject(raw)) { + return new Error('coleta inválido. Envie um objeto com os campos da ficha') + } + + const result = {} as Record + for (const campo of COLETA_FIELDS) { + const value = raw[campo] + if (value === undefined) { + result[campo] = null + continue + } + if (value !== null && typeof value !== 'string') { + return new Error(`coleta.${campo} inválido`) + } + result[campo] = value + } + return result as unknown as ColetaAttributes +} diff --git a/src/domain/evento/AtualizarEventoUseCase.ts b/src/domain/evento/AtualizarEventoUseCase.ts index 32a8b967..8bb94495 100644 --- a/src/domain/evento/AtualizarEventoUseCase.ts +++ b/src/domain/evento/AtualizarEventoUseCase.ts @@ -1,40 +1,27 @@ import { Either } from '@/library/either/Either' -import { - Attributes, ColetaAttributes, Evento, EventoTipo -} from './Evento' +import { AtualizarEventoInput, AtualizarEventoValidator } from './AtualizarEventoValidator' +import { Attributes } from './Evento' import { AtualizarEventoAttributes, EventoCollection } from './EventoCollection' interface Dependencies { eventoCollection: EventoCollection + atualizarEventoValidator?: AtualizarEventoValidator } -export interface Input { - id: number - tipo?: EventoTipo - capturado_em?: Date - latitude?: number | null - longitude?: number | null - altitude?: number | null - observacoes?: string | null - coleta?: ColetaAttributes | null - updated_by: number | null -} +export type Input = AtualizarEventoInput & { id: number } /** - * O PUT do agregado evento+ficha. `tipo` e `coleta` não são independentes: - * - vira DIARIO -> a ficha é descartada, não importa o que o cliente mandou - * - vira COLETA sem `coleta` no corpo -> mantém a ficha atual - * - vira COLETA com `coleta` no corpo -> substitui a ficha - * - * A coerência do estado final é validada reaproveitando Evento.create() sobre - * o objeto já mesclado. + * O PUT do agregado evento+ficha. A regra de coerência própria do update + * (quando `tipo` da ficha muda), agora está em AtualizarEventoValidator. */ export class AtualizarEventoUseCase { private readonly eventoCollection: EventoCollection + private readonly atualizarEventoValidator: AtualizarEventoValidator constructor(dependencies: Dependencies) { this.eventoCollection = dependencies.eventoCollection + this.atualizarEventoValidator = dependencies.atualizarEventoValidator ?? new AtualizarEventoValidator() } async execute(input: Input): Promise> { @@ -47,46 +34,24 @@ export class AtualizarEventoUseCase { return Either.right(null) } - const merged = this.merge(existente.value, input) - - const validated = Evento.create(merged) - if (validated.left()) { - return Either.left(validated.value) + const validado = this.atualizarEventoValidator.validar(existente.value, input) + if (validado.left()) { + return Either.left(validado.value) } + const mesclado = validado.value + const patch: AtualizarEventoAttributes = { - altitude: merged.altitude, - capturado_em: merged.capturado_em, - coleta: merged.coleta, - latitude: merged.latitude, - longitude: merged.longitude, - observacoes: merged.observacoes, - tipo: merged.tipo, - updated_by: merged.updated_by + altitude: mesclado.altitude, + capturado_em: mesclado.capturado_em, + coleta: mesclado.coleta, + latitude: mesclado.latitude, + longitude: mesclado.longitude, + observacoes: mesclado.observacoes, + tipo: mesclado.tipo, + updated_by: mesclado.updated_by } return this.eventoCollection.update(input.id, patch) } - - private merge(atual: Attributes, input: Input): Attributes { - const tipo = input.tipo ?? atual.tipo - - // Trocar para DIARIO descarta a ficha por definição, mesmo que o - // cliente não tenha mandado `coleta` no corpo do PUT. - const coleta = tipo === 'DIARIO' - ? null - : (input.coleta !== undefined ? input.coleta : atual.coleta) - - return { - ...atual, - altitude: input.altitude !== undefined ? input.altitude : atual.altitude, - capturado_em: input.capturado_em ?? atual.capturado_em, - coleta, - latitude: input.latitude !== undefined ? input.latitude : atual.latitude, - longitude: input.longitude !== undefined ? input.longitude : atual.longitude, - observacoes: input.observacoes !== undefined ? input.observacoes : atual.observacoes, - tipo, - updated_by: input.updated_by - } - } } diff --git a/src/domain/evento/AtualizarEventoValidator.ts b/src/domain/evento/AtualizarEventoValidator.ts new file mode 100644 index 00000000..d90a66b8 --- /dev/null +++ b/src/domain/evento/AtualizarEventoValidator.ts @@ -0,0 +1,54 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, ColetaAttributes, Evento, EventoTipo +} from './Evento' + +export interface AtualizarEventoInput { + tipo?: EventoTipo + capturado_em?: Date + latitude?: number | null + longitude?: number | null + altitude?: number | null + observacoes?: string | null + coleta?: ColetaAttributes | null + updated_by: number | null +} + +/** + * Regra de coerência própria do update, `tipo` e `coleta` não são independentes: + * - vira DIARIO -> a ficha é descartada, não importa o que o cliente mandou + * - vira COLETA sem `coleta` no corpo -> mantém a ficha atual + * - vira COLETA com `coleta` no corpo -> substitui a ficha + * + * Reaproveita de Evento.create() para checagem final de coerência (tipo/ficha, + * coordenadas, capturado_em) sobre o estado já mesclado, afim não duplicar + * essa regra em dois lugares. + */ + +export class AtualizarEventoValidator { + validar(atual: Attributes, input: AtualizarEventoInput): Either { + const mesclado = this.mesclar(atual, input) + return Evento.create(mesclado) + } + + private mesclar(atual: Attributes, input: AtualizarEventoInput): Attributes { + const tipo = input.tipo ?? atual.tipo + + const coleta = tipo === 'DIARIO' + ? null + : (input.coleta !== undefined ? input.coleta : atual.coleta) + + return { + ...atual, + altitude: input.altitude !== undefined ? input.altitude : atual.altitude, + capturado_em: input.capturado_em ?? atual.capturado_em, + coleta, + latitude: input.latitude !== undefined ? input.latitude : atual.latitude, + longitude: input.longitude !== undefined ? input.longitude : atual.longitude, + observacoes: input.observacoes !== undefined ? input.observacoes : atual.observacoes, + tipo, + updated_by: input.updated_by + } + } +} diff --git a/src/domain/evento/CriarEventoUseCase.ts b/src/domain/evento/CriarEventoUseCase.ts index ac002d99..3c868feb 100644 --- a/src/domain/evento/CriarEventoUseCase.ts +++ b/src/domain/evento/CriarEventoUseCase.ts @@ -17,7 +17,7 @@ export class CriarEventoUseCase { } async execute(input: CreateAttributes): Promise> { - // Evento.create() exige um Attributes completo, usado para validar + // Evento.create() exige um Attributes completo, usado para validar // a coerência de negócio (tipo/ficha, coordenadas,capturado_em). const validated = Evento.create({ ...input, diff --git a/src/domain/evento/Evento.ts b/src/domain/evento/Evento.ts index 7813a99c..1ff2eedd 100644 --- a/src/domain/evento/Evento.ts +++ b/src/domain/evento/Evento.ts @@ -24,6 +24,29 @@ export interface ColetaAttributes { luminosidade: string | null } +/** + * Lista de campos da ficha de coleta. + */ +export const COLETA_FIELDS = [ + 'familia', + 'nome_popular', + 'nome_cientifico', + 'municipio', + 'estado', + 'referencia_local', + 'tipo_vegetacao', + 'solo', + 'relevo', + 'substrato', + 'tronco_com_casca', + 'associacoes', + 'folhas', + 'habito', + 'frutos', + 'flores', + 'luminosidade' +] as const satisfies ReadonlyArray + export interface Attributes { id: number expedicao_id: number diff --git a/src/infrastructure/EventoCollectionKnexAdapter.ts b/src/infrastructure/EventoCollectionKnexAdapter.ts index ddf804bc..f2ba0477 100644 --- a/src/infrastructure/EventoCollectionKnexAdapter.ts +++ b/src/infrastructure/EventoCollectionKnexAdapter.ts @@ -1,7 +1,7 @@ import { Knex } from 'knex' import { - Attributes, ColetaAttributes, CreateAttributes, EventoTipo + Attributes, COLETA_FIELDS, ColetaAttributes, CreateAttributes, EventoTipo } from '@/domain/evento/Evento' import { AtualizarEventoAttributes, EventoCollection, EventoFilters @@ -20,26 +20,6 @@ interface Dependencies { knex: Knex } -const CAMPOS_DA_FICHA = [ - 'familia', - 'nome_popular', - 'nome_cientifico', - 'municipio', - 'estado', - 'referencia_local', - 'tipo_vegetacao', - 'solo', - 'relevo', - 'substrato', - 'tronco_com_casca', - 'associacoes', - 'folhas', - 'habito', - 'frutos', - 'flores', - 'luminosidade' -] as const - interface Row { id: number expedicao_id: number @@ -61,7 +41,7 @@ function toAttributes(row: Row & Record): Attributes { if (row.coleta_evento_id !== null) { coleta = Object.fromEntries( - CAMPOS_DA_FICHA.map(campo => [campo, row[`coleta_${campo}`] ?? null]) + COLETA_FIELDS.map(campo => [campo, row[`coleta_${campo}`] ?? null]) ) as unknown as ColetaAttributes } @@ -122,7 +102,7 @@ export class EventoCollectionKnexAdapter implements EventoCollection { 'eventos.created_by', 'eventos.updated_by', 'eventos_coletas.evento_id as coleta_evento_id', - ...CAMPOS_DA_FICHA.map(campo => `eventos_coletas.${campo} as coleta_${campo}`) + ...COLETA_FIELDS.map(campo => `eventos_coletas.${campo} as coleta_${campo}`) ]) } diff --git a/test/integration/evento/eventos-http.test.ts b/test/integration/evento/eventos-http.test.ts index 949a73d8..ff9df775 100644 --- a/test/integration/evento/eventos-http.test.ts +++ b/test/integration/evento/eventos-http.test.ts @@ -77,9 +77,12 @@ describe('Eventos (escrita, HTTP)', () => { .expect(201) const body = asEvento(response.body) - expect(body).toMatchObject({ coleta: null, tipo: 'DIARIO' }) - await knex('eventos').where({ id: body.id }).delete() + try { + expect(body).toMatchObject({ coleta: null, tipo: 'DIARIO' }) + } finally { + await knex('eventos').where({ id: body.id }).delete() + } }) test('POST cria um evento COLETA com a ficha', async () => { @@ -91,9 +94,12 @@ describe('Eventos (escrita, HTTP)', () => { .expect(201) const body = asEvento(response.body) - expect(body.coleta).toEqual(ficha) - await knex('eventos').where({ id: body.id }).delete() + try { + expect(body.coleta).toEqual(ficha) + } finally { + await knex('eventos').where({ id: body.id }).delete() + } }) test('POST retorna 400 quando COLETA não envia ficha', async () => { diff --git a/test/unit/domain/evento/AtualizarEventoValidator.test.ts b/test/unit/domain/evento/AtualizarEventoValidator.test.ts new file mode 100644 index 00000000..2fdb9c4e --- /dev/null +++ b/test/unit/domain/evento/AtualizarEventoValidator.test.ts @@ -0,0 +1,116 @@ +import { + describe, expect, test +} from 'vitest' + +import { AtualizarEventoValidator } from '@/domain/evento/AtualizarEventoValidator' +import { Attributes, ColetaAttributes } from '@/domain/evento/Evento' + +function fichaCompleta(overrides: Partial = {}): ColetaAttributes { + return { + associacoes: null, + estado: null, + familia: null, + flores: null, + folhas: null, + frutos: null, + habito: null, + luminosidade: null, + municipio: null, + nome_cientifico: 'Vellozia squamata', + nome_popular: null, + referencia_local: null, + relevo: null, + solo: null, + substrato: null, + tipo_vegetacao: null, + tronco_com_casca: null, + ...overrides + } +} + +const diarioAttributes: Attributes = { + altitude: null, + capturado_em: new Date('2026-02-15T14:32:00Z'), + coleta: null, + created_at: new Date(), + created_by: null, + expedicao_id: 1, + id: 10, + latitude: -20.2508, + longitude: -46.4167, + observacoes: 'Solo arenoso', + tipo: 'DIARIO', + updated_at: new Date(), + updated_by: null +} + +const coletaAttributes: Attributes = { + ...diarioAttributes, + coleta: fichaCompleta(), + id: 11, + observacoes: null, + tipo: 'COLETA' +} + +describe('AtualizarEventoValidator', () => { + const validator = new AtualizarEventoValidator() + + test('mescla campos comuns sem tocar no tipo nem na ficha', () => { + const result = validator.validar(diarioAttributes, { latitude: -21, updated_by: 5 }) + + expect(result.right()).toBe(true) + if (!result.right()) return + expect(result.value).toMatchObject({ + coleta: null, latitude: -21, tipo: 'DIARIO', updated_by: 5 + }) + }) + + test('COLETA -> DIARIO descarta a ficha mesmo sem o cliente mandar coleta', () => { + const result = validator.validar(coletaAttributes, { tipo: 'DIARIO', updated_by: null }) + + expect(result.right()).toBe(true) + if (!result.right()) return + expect(result.value.coleta).toBeNull() + expect(result.value.tipo).toBe('DIARIO') + }) + + test('DIARIO -> COLETA sem ficha no corpo é rejeitado', () => { + const result = validator.validar(diarioAttributes, { tipo: 'COLETA', updated_by: null }) + + expect(result.left()).toBe(true) + }) + + test('DIARIO -> COLETA com ficha no corpo é aceito', () => { + const ficha = fichaCompleta({ habito: 'Herbácea' }) + const result = validator.validar(diarioAttributes, { + coleta: ficha, tipo: 'COLETA', updated_by: null + }) + + expect(result.right()).toBe(true) + if (!result.right()) return + expect(result.value.coleta).toEqual(ficha) + }) + + test('mantém COLETA e mantém a ficha atual quando coleta não é enviado', () => { + const result = validator.validar(coletaAttributes, { latitude: -22, updated_by: null }) + + expect(result.right()).toBe(true) + if (!result.right()) return + expect(result.value.coleta).toEqual(coletaAttributes.coleta) + }) + + test('mantém COLETA e substitui a ficha inteira quando coleta é enviado', () => { + const novaFicha = fichaCompleta({ habito: 'Arbustiva', nome_cientifico: 'Outra espécie' }) + const result = validator.validar(coletaAttributes, { coleta: novaFicha, updated_by: null }) + + expect(result.right()).toBe(true) + if (!result.right()) return + expect(result.value.coleta).toEqual(novaFicha) + }) + + test('rejeita coordenadas fora de faixa (reaproveita Evento.create)', () => { + const result = validator.validar(diarioAttributes, { latitude: 200, updated_by: null }) + + expect(result.left()).toBe(true) + }) +}) From ed1d5194adb01ca380b0732c5a5171636170c39d Mon Sep 17 00:00:00 2001 From: Dimitri Date: Thu, 24 Sep 2026 13:52:57 -0300 Subject: [PATCH 38/58] fix: lint reafctor --- src/application/expedicao/index.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index f81a13e2..051fdf75 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -1,26 +1,23 @@ import { type Knex } from 'knex' +import { AdicionaParticipanteUseCase } from '@/domain/expedicao/AdcionaParticipanteUseCase' import { AtualizaExpedicaoUseCase } from '@/domain/expedicao/AtualizaExpedicaoUseCase' import { BuscaExpedicaoUseCase } from '@/domain/expedicao/BuscaExpedicaoUseCase' import { CadastraExpedicaoUseCase } from '@/domain/expedicao/CadastraExpedicaoUseCase' import { DeletaExpedicaoUseCase } from '@/domain/expedicao/DeletaExpedicaoUseCase' import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' -import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' - -import { AdicionaParticipanteUseCase } from '@/domain/expedicao/AdcionaParticipanteUseCase' import { RemoveParticipanteUseCase } from '@/domain/expedicao/RemoveParticipanteUseCase' import { SubstituiRotasUseCase } from '@/domain/expedicao/SubstituiRotaUseCase' - +import { createExpedicaoCollection } from '@/factory/ExpedicaoCollectionFactory' import { Method } from '@/library/http/common' import { Route } from '@/library/http/Router' +import { AdicionaParticipanteController } from './AdicionaParticipanteController' import { AtualizaExpedicaoController } from './AtualizaExpedicaoController' import { BuscaExpedicaoController } from './BuscaExpedicaoController' import { CadastraExpedicaoController } from './CadastraExpedicaoController' import { DeletaExpedicaoController } from './DeletaExpedicaoController' import { ListaExpedicoesController } from './ListaExpedicoesController' - -import { AdicionaParticipanteController } from './AdicionaParticipanteController' import { RemoveParticipanteController } from './RemoveParticipanteController' import { SubstituiRotasController } from './SubstituirRotaController' From 027f1186ba75f5d1cd1b084b6cda64055016e0f1 Mon Sep 17 00:00:00 2001 From: maria-gabriela Date: Thu, 24 Sep 2026 17:32:17 -0300 Subject: [PATCH 39/58] fix: ajusta leitura de eventos conforme review --- .../evento/ListaEventosController.ts | 34 +++++- src/domain/evento/EventoCollection.ts | 11 +- src/domain/evento/ListaEventosUseCase.ts | 6 +- .../EventoCollectionKnexAdapter.ts | 29 ++++- .../evento/evento-collection.test.ts | 51 ++++++++- .../integration/evento/eventos-routes.test.ts | 106 ++++++++++++++++++ .../evento/ListaEventosController.test.ts | 106 +++++++++++++----- 7 files changed, 303 insertions(+), 40 deletions(-) create mode 100644 test/integration/evento/eventos-routes.test.ts diff --git a/src/application/evento/ListaEventosController.ts b/src/application/evento/ListaEventosController.ts index b5655257..af1f8535 100644 --- a/src/application/evento/ListaEventosController.ts +++ b/src/application/evento/ListaEventosController.ts @@ -1,3 +1,4 @@ +import { EventoTipo } from '@/domain/evento/Evento' import { ListaEventosUseCase } from '@/domain/evento/ListaEventosUseCase' import { HttpRequest, HttpResponse, StatusCode @@ -19,7 +20,21 @@ export class ListaEventosController implements RequestHandler { } async handle(request: HttpRequest, _next: NextHandler): Promise { - const { expedicaoId } = request.params as { expedicaoId?: string } + const { + expedicaoId, + tipo, + capturado_de, + capturado_ate, + limite, + pagina + } = request.params as { + expedicaoId?: string + tipo?: string + capturado_de?: string + capturado_ate?: string + limite?: string + pagina?: string + } if ( expedicaoId === undefined @@ -30,9 +45,20 @@ export class ListaEventosController implements RequestHandler { return new BadRequestError({ message: 'expedicaoId inválido' }) } - const result = await this.listaEventosUseCase.execute({ - expedicao_id: Number(expedicaoId) - }) + const filters = { + expedicao_id: Number(expedicaoId), + ...(limite && !Number.isNaN(Number(limite)) + ? { limite: Number(limite) } + : {}), + ...(pagina && !Number.isNaN(Number(pagina)) + ? { pagina: Number(pagina) } + : {}), + ...(tipo ? { tipo: tipo as EventoTipo } : {}), + ...(capturado_de ? { capturado_de: new Date(capturado_de) } : {}), + ...(capturado_ate ? { capturado_ate: new Date(capturado_ate) } : {}) + } + + const result = await this.listaEventosUseCase.execute(filters) if (result.left()) { return new InternalServerError({ message: result.value.message }) diff --git a/src/domain/evento/EventoCollection.ts b/src/domain/evento/EventoCollection.ts index f329460d..b040e53d 100644 --- a/src/domain/evento/EventoCollection.ts +++ b/src/domain/evento/EventoCollection.ts @@ -15,10 +15,19 @@ export interface EventoFilters { capturado_de?: Date capturado_ate?: Date order?: EventoOrder + limite?: number + pagina?: number +} + +export interface Paginated { + itens: T[] + total: number + limite: number + pagina: number } export interface EventoCollection { - findAll(filters: EventoFilters): Promise> + findAll(filters: EventoFilters): Promise>> findById(id: number): Promise> create(attributes: CreateAttributes): Promise> } diff --git a/src/domain/evento/ListaEventosUseCase.ts b/src/domain/evento/ListaEventosUseCase.ts index 8ee0c6ac..ac2b3909 100644 --- a/src/domain/evento/ListaEventosUseCase.ts +++ b/src/domain/evento/ListaEventosUseCase.ts @@ -1,7 +1,9 @@ import { Either } from '@/library/either/Either' import { Attributes } from './Evento' -import { EventoCollection, EventoFilters } from './EventoCollection' +import { + EventoCollection, EventoFilters, Paginated +} from './EventoCollection' interface Dependencies { eventoCollection: EventoCollection @@ -14,7 +16,7 @@ export class ListaEventosUseCase { this.eventoCollection = dependencies.eventoCollection } - execute(filters: EventoFilters): Promise> { + execute(filters: EventoFilters): Promise>> { return this.eventoCollection.findAll(filters) } } diff --git a/src/infrastructure/EventoCollectionKnexAdapter.ts b/src/infrastructure/EventoCollectionKnexAdapter.ts index bda60696..8ce84b59 100644 --- a/src/infrastructure/EventoCollectionKnexAdapter.ts +++ b/src/infrastructure/EventoCollectionKnexAdapter.ts @@ -3,7 +3,9 @@ import { Knex } from 'knex' import { Attributes, ColetaAttributes, CreateAttributes, EventoTipo } from '@/domain/evento/Evento' -import { EventoCollection, EventoFilters } from '@/domain/evento/EventoCollection' +import { + EventoCollection, EventoFilters, Paginated +} from '@/domain/evento/EventoCollection' import { Either } from '@/library/either/Either' import { CollectionError } from './error/CollectionError' @@ -105,7 +107,7 @@ export class EventoCollectionKnexAdapter implements EventoCollection { ]) } - async findAll(filters: EventoFilters): Promise> { + async findAll(filters: EventoFilters): Promise>> { try { const query = this.select() @@ -125,11 +127,28 @@ export class EventoCollectionKnexAdapter implements EventoCollection { query.where('eventos.capturado_em', '<=', filters.capturado_ate) } - const order = filters.order ?? { column: 'capturado_em' as const, direction: 'desc' as const } - query.orderBy(`eventos.${order.column}`, order.direction) + const countQuery = query.clone() + + const countRows = await countQuery + .clearSelect() + .count>('* as count') + const [{ count }] = countRows + + const limite = filters.limite && filters.limite > 0 ? filters.limite : 20 + const pagina = filters.pagina && filters.pagina > 0 ? filters.pagina : 1 + const offset = (pagina - 1) * limite + + query.orderBy('eventos.capturado_em', 'desc') + query.orderBy('eventos.id', 'desc') + query.limit(limite).offset(offset) const rows = await query as Array> - return Either.right(rows.map(toAttributes)) + return Either.right({ + itens: rows.map(toAttributes), + total: Number(count), + limite, + pagina + }) } catch (error) { return Either.left(new CollectionError({ message: 'Failed to list eventos', cause: error })) } diff --git a/test/integration/evento/evento-collection.test.ts b/test/integration/evento/evento-collection.test.ts index 3a515dfb..b0d7c778 100644 --- a/test/integration/evento/evento-collection.test.ts +++ b/test/integration/evento/evento-collection.test.ts @@ -168,7 +168,7 @@ describe('EventoCollectionKnexAdapter', () => { expect(found.right()).toBe(true) if (!found.right()) return - expect(found.value.map(evento => evento.id)).toEqual([tarde.value.id, cedo.value.id]) + expect(found.value.itens.map(evento => evento.id)).toEqual([tarde.value.id, cedo.value.id]) } finally { await knex('eventos').whereIn('id', [cedo.value.id, tarde.value.id]).delete() } @@ -186,13 +186,58 @@ describe('EventoCollectionKnexAdapter', () => { expect(found.right()).toBe(true) if (!found.right()) return - expect(found.value.map(evento => evento.id)).toEqual([coleta.value.id]) - expect(found.value[0].coleta).toEqual(ficha) + expect(found.value.itens.map(evento => evento.id)).toEqual([coleta.value.id]) + expect(found.value.itens[0].coleta).toEqual(ficha) } finally { await knex('eventos').whereIn('id', [diario.value.id, coleta.value.id]).delete() } }) + test('filtra por intervalo de captura e pagina os resultados', async () => { + const antes = await collection.create({ + ...novoDiario(), capturado_em: new Date('2026-02-14T10:00:00.000Z') + }) + const dentro1 = await collection.create({ + ...novoDiario(), capturado_em: new Date('2026-02-15T10:00:00.000Z') + }) + const dentro2 = await collection.create({ + ...novaColeta(), capturado_em: new Date('2026-02-15T14:00:00.000Z') + }) + const depois = await collection.create({ + ...novoDiario(), capturado_em: new Date('2026-02-16T10:00:00.000Z') + }) + + expect(antes.right() && dentro1.right() && dentro2.right() && depois.right()).toBe(true) + if (!antes.right() || !dentro1.right() || !dentro2.right() || !depois.right()) return + + try { + const found = await collection.findAll({ + expedicao_id: expedicaoId, + capturado_de: new Date('2026-02-15T00:00:00.000Z'), + capturado_ate: new Date('2026-02-15T23:59:59.999Z'), + limite: 1, + pagina: 2 + }) + + expect(found.right()).toBe(true) + if (!found.right()) return + + expect(found.value.total).toBe(2) + expect(found.value.limite).toBe(1) + expect(found.value.pagina).toBe(2) + expect(found.value.itens.map(evento => evento.id)).toEqual([dentro1.value.id]) + } finally { + await knex('eventos') + .whereIn('id', [ + antes.value.id, + dentro1.value.id, + dentro2.value.id, + depois.value.id + ]) + .delete() + } + }) + test('apaga eventos e fichas junto com a expedição', async () => { const [expedicao] = await knex('expedicoes') .insert({ diff --git a/test/integration/evento/eventos-routes.test.ts b/test/integration/evento/eventos-routes.test.ts new file mode 100644 index 00000000..8f726b70 --- /dev/null +++ b/test/integration/evento/eventos-routes.test.ts @@ -0,0 +1,106 @@ +import { + afterAll, beforeAll, describe, expect, test +} from 'vitest' + +import { createTestApp } from '../setup/app-factory' +import { + cleanupExpedicaoFixtures, ExpedicaoFixtures, seedExpedicaoFixtures +} from '../setup/seeds/expedicao.seed' + +type ListaEventosResponse = { + itens: Array<{ id: number }> + total: number + limite: number + pagina: number +} + +type EventoResponse = { + id: number + tipo: string +} + +describe('Eventos routes', () => { + const { agent, knex } = createTestApp() + + let fixtures: ExpedicaoFixtures + let expedicaoId: number + + beforeAll(async () => { + fixtures = await seedExpedicaoFixtures(knex) + + const [expedicao] = await knex('expedicoes') + .insert({ + descricao: 'XEXP rotas eventos', + data_inicio: '2026-02-14', + data_fim: '2026-02-18', + cidade_id: fixtures.cidades[0] + }) + .returning>(['id']) + + expedicaoId = expedicao.id + }) + + test('lista os eventos da expedição com paginação e ordenação estável', async () => { + const capturadoEm = '2026-02-15T14:32:00.000Z' + + const inserted = await knex('eventos') + .insert([ + { + expedicao_id: expedicaoId, + tipo: 'DIARIO', + capturado_em: capturadoEm + }, + { + expedicao_id: expedicaoId, + tipo: 'COLETA', + capturado_em: capturadoEm + } + ]) + .returning>(['id']) + + try { + const response = await agent + .get(`/api/v2/expedicoes/${expedicaoId}/eventos`) + .expect(200) + + const body = response.body as ListaEventosResponse + + expect(body.total).toBe(2) + expect(body.limite).toBe(20) + expect(body.pagina).toBe(1) + expect(body.itens.map(evento => evento.id)) + .toEqual([...inserted].map(evento => evento.id).sort((a, b) => b - a)) + } finally { + await knex('eventos').whereIn('id', inserted.map(evento => evento.id)).delete() + } + }) + + test('busca um evento pelo id', async () => { + const [evento] = await knex('eventos') + .insert({ + expedicao_id: expedicaoId, + tipo: 'DIARIO', + capturado_em: '2026-02-16T10:00:00.000Z' + }) + .returning>(['id']) + + try { + const response = await agent + .get(`/api/v2/eventos/${evento.id}`) + .expect(200) + + const body = response.body as EventoResponse + + expect(body.id).toBe(evento.id) + expect(body.tipo).toBe('DIARIO') + } finally { + await knex('eventos').where({ id: evento.id }).delete() + } + }) + + afterAll(async () => { + await knex('expedicoes').where({ id: expedicaoId }).delete() + await cleanupExpedicaoFixtures(knex, fixtures) + await knex.destroy() + }) +}) diff --git a/test/unit/application/evento/ListaEventosController.test.ts b/test/unit/application/evento/ListaEventosController.test.ts index e87411b6..40d80593 100644 --- a/test/unit/application/evento/ListaEventosController.test.ts +++ b/test/unit/application/evento/ListaEventosController.test.ts @@ -1,39 +1,47 @@ import { - describe, expect, test, vi + describe, + expect, + test, + vi } from 'vitest' import { ListaEventosController } from '@/application/evento/ListaEventosController' import { ListaEventosUseCase } from '@/domain/evento/ListaEventosUseCase' import { Either } from '@/library/either/Either' import { - Headers, HttpRequest, Method, StatusCode + Headers, + HttpRequest, + Method, + StatusCode } from '@/library/http/common' import { BadRequestError } from '@/library/http/error/BadRequestError' +import { InternalServerError } from '@/library/http/error/InternalServerError' -describe('ListaEventosController', () => { - const headers = {} as Headers +const headers: Headers = { + 'Content-Length': 0, + 'Content-Type': 'application/json' +} +describe('ListaEventosController', () => { test('returns 200 with body when use case succeeds', async () => { const lista = [ { id: 1, expedicao_id: 10, tipo: 'DIARIO' as const, - capturado_em: new Date('2026-09-15T10:00:00.000Z'), - latitude: null, - longitude: null, - altitude: null, - observacoes: 'Observação', - coleta: null, - created_at: new Date('2026-09-15T10:00:00.000Z'), - updated_at: new Date('2026-09-15T10:00:00.000Z'), - created_by: null, - updated_by: null + capturado_em: new Date('2026-09-01T10:00:00.000Z') } ] + const resultado = { + itens: lista, + total: 1, + limite: 20, + pagina: 1 + } + const listaEventosUseCase = { - execute: vi.fn().mockResolvedValue(Either.right(lista)) + execute: vi.fn().mockResolvedValue(Either.right(resultado)) } as unknown as ListaEventosUseCase const controller = new ListaEventosController({ listaEventosUseCase }) @@ -42,17 +50,18 @@ describe('ListaEventosController', () => { body: {}, headers, method: Method.Get, - params: { expedicaoId: '10' }, + params: { + expedicaoId: '10' + }, path: '/expedicoes/10/eventos' } satisfies HttpRequest const response = await controller.handle(request, vi.fn()) - expect(listaEventosUseCase.execute).toHaveBeenCalledWith({ - expedicao_id: 10 + expect(response).toEqual({ + statusCode: StatusCode.Ok, + body: resultado }) - expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) - expect('body' in response ? response.body : undefined).toEqual(lista) }) test('returns BadRequest when expedicaoId is invalid', async () => { @@ -66,19 +75,23 @@ describe('ListaEventosController', () => { body: {}, headers, method: Method.Get, - params: { expedicaoId: 'abc' }, + params: { + expedicaoId: 'abc' + }, path: '/expedicoes/abc/eventos' } satisfies HttpRequest const response = await controller.handle(request, vi.fn()) - expect(listaEventosUseCase.execute).not.toHaveBeenCalled() expect(response).toBeInstanceOf(BadRequestError) + expect(listaEventosUseCase.execute).not.toHaveBeenCalled() }) test('returns InternalServerError when use case fails', async () => { const listaEventosUseCase = { - execute: vi.fn().mockResolvedValue(Either.left(new Error('boom'))) + execute: vi.fn().mockResolvedValue( + Either.left(new Error('erro ao listar eventos')) + ) } as unknown as ListaEventosUseCase const controller = new ListaEventosController({ listaEventosUseCase }) @@ -87,12 +100,55 @@ describe('ListaEventosController', () => { body: {}, headers, method: Method.Get, - params: { expedicaoId: '10' }, + params: { + expedicaoId: '10' + }, path: '/expedicoes/10/eventos' } satisfies HttpRequest const response = await controller.handle(request, vi.fn()) - expect((response as Error).name).toBe('InternalServerError') + expect(response).toBeInstanceOf(InternalServerError) + }) + + test('passes filters and pagination to use case', async () => { + const resultado = { + itens: [], + total: 0, + limite: 10, + pagina: 2 + } + + const listaEventosUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(resultado)) + } as unknown as ListaEventosUseCase + + const controller = new ListaEventosController({ listaEventosUseCase }) + + const request = { + body: {}, + headers, + method: Method.Get, + params: { + expedicaoId: '10', + tipo: 'COLETA', + capturado_de: '2026-09-01T00:00:00.000Z', + capturado_ate: '2026-09-15T23:59:59.999Z', + limite: '10', + pagina: '2' + }, + path: '/expedicoes/10/eventos' + } satisfies HttpRequest + + await controller.handle(request, vi.fn()) + + expect(listaEventosUseCase.execute).toHaveBeenCalledWith({ + expedicao_id: 10, + tipo: 'COLETA', + capturado_de: new Date('2026-09-01T00:00:00.000Z'), + capturado_ate: new Date('2026-09-15T23:59:59.999Z'), + limite: 10, + pagina: 2 + }) }) }) From d36726b373aebbb0d0524d0068ada4be1f519675 Mon Sep 17 00:00:00 2001 From: Arthur Souza Date: Fri, 25 Sep 2026 11:08:42 -0300 Subject: [PATCH 40/58] =?UTF-8?q?fix:=20alinhar=20vers=C3=A3o=20do=20TypeS?= =?UTF-8?q?cript=20com=20o=20projeto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 +- .yarn/install-state.gz | Bin 0 -> 666127 bytes .yarnrc.yml | 8 + tsconfig.json | 6 +- yarn.lock | 1040 +++++++++++++++++++++++----------------- 5 files changed, 624 insertions(+), 433 deletions(-) create mode 100644 .yarn/install-state.gz create mode 100644 .yarnrc.yml diff --git a/.vscode/settings.json b/.vscode/settings.json index a547491a..eb55bbcb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,5 +18,6 @@ "liveServer.settings.port": 5501, "[javascript]": { "editor.tabSize": 4 - } + }, + "js/ts.tsdk.path": "./node_modules/typescript/lib" } diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..9b12ed02776dae07990456d982721c2fdb778fbc GIT binary patch literal 666127 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

d&f`UL5cuwi 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

!6U^NWMLcB+@POkc+y)+3s*kZ3%Zj*JMq4j3vMr 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%0DU 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

$< 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

L;TBt3{km+;Zn8W;2ofFvm*!e&CLZ9Spt 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

4WOKT@D(Gz)$ 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

  • #`-Tw;F3Cl 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

    TQ#*rb0YO;!Zg@dChq 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�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 literal 0 HcmV?d00001 diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 00000000..063ed601 --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1,8 @@ +approvedGitRepositories: + - "**" + +enableScripts: true + +nodeLinker: node-modules + +npmMinimalAgeGate: 0 diff --git a/tsconfig.json b/tsconfig.json index 47a195de..842c5767 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -26,12 +26,12 @@ ], "~/*": [ "./src/*" - ], + ] }, "typeRoots": [ "./node_modules/@types", "./src/@types" - ] + ], }, "include": [ "src/", @@ -44,4 +44,4 @@ "mysql/", "dist/" ] -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index f3c10e88..50a8b78b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -54,16 +54,16 @@ integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== "@babel/parser@^7.25.4": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334" - integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== + version "7.29.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.9.tgz#e7ee0a24f752c5296c6455855ccb72662e67ea96" + integrity sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA== dependencies: - "@babel/types" "^7.29.7" + "@babel/types" "^7.29.8" -"@babel/types@^7.25.4", "@babel/types@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92" - integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== +"@babel/types@^7.25.4", "@babel/types@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.8.tgz#1229eef31d85156d70fa3f4cd859376d0eaf6863" + integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== dependencies: "@babel/helper-string-parser" "^7.29.7" "@babel/helper-validator-identifier" "^7.29.7" @@ -80,9 +80,14 @@ "@esbuild/aix-ppc64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz#7a289c158e29cbf59ea0afc83cc80f06d1c89402" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz#7a289c158e29cbf59ea0afc83cc80f06d1c89402" integrity sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA== +"@esbuild/aix-ppc64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz#bf6e10303bcf2e7c686975fa52f937ec2728d8bc" + integrity sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ== + "@esbuild/android-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz#f78cb8a3121fc205a53285adb24972db385d185d" @@ -90,9 +95,14 @@ "@esbuild/android-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz#b8828d9edfa3a92660644eb8de6e4f3c203d7b17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz#b8828d9edfa3a92660644eb8de6e4f3c203d7b17" integrity sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw== +"@esbuild/android-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz#0c6246bc8d2c4d172aac2db3fb1190d72bd65504" + integrity sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A== + "@esbuild/android-arm@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.7.tgz#593e10a1450bbfcac6cb321f61f468453bac209d" @@ -100,9 +110,14 @@ "@esbuild/android-arm@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz#5ec1847605e05b5dbe5df90db9ff7e3e4c58dca7" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.0.tgz#5ec1847605e05b5dbe5df90db9ff7e3e4c58dca7" integrity sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ== +"@esbuild/android-arm@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.2.tgz#2d84ece6a4e2684d92be26ee13d42757d831c381" + integrity sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg== + "@esbuild/android-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.7.tgz#453143d073326033d2d22caf9e48de4bae274b07" @@ -110,9 +125,14 @@ "@esbuild/android-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz#390642175b88ef82bad4cce03f8ab13fe9b1912e" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.0.tgz#390642175b88ef82bad4cce03f8ab13fe9b1912e" integrity sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA== +"@esbuild/android-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.2.tgz#fc38d4d6358d8dc1cf53f09f7589fe436eb64801" + integrity sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q== + "@esbuild/darwin-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz#6f23000fb9b40b7e04b7d0606c0693bd0632f322" @@ -120,9 +140,14 @@ "@esbuild/darwin-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz#ae45325960d5950cd6951e4f97396f4e1ff7d8d3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz#ae45325960d5950cd6951e4f97396f4e1ff7d8d3" integrity sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q== +"@esbuild/darwin-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz#f83afeeac1d7dac01c7a2fd012b3e451a0591fcc" + integrity sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw== + "@esbuild/darwin-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz#27393dd18bb1263c663979c5f1576e00c2d024be" @@ -130,9 +155,14 @@ "@esbuild/darwin-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz#c079247d589b6b99449659d94f06951b84bff2e4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz#c079247d589b6b99449659d94f06951b84bff2e4" integrity sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ== +"@esbuild/darwin-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz#510147c055a795588dbbe14fd6b1b8ad0a2f30de" + integrity sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw== + "@esbuild/freebsd-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz#22e4638fa502d1c0027077324c97640e3adf3a62" @@ -140,9 +170,14 @@ "@esbuild/freebsd-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz#45c456215a486593c94900297202dc11c880a37a" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz#45c456215a486593c94900297202dc11c880a37a" integrity sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q== +"@esbuild/freebsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz#093b9200ecf0b115ba4e5e248a7485c9c5f8bd5e" + integrity sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw== + "@esbuild/freebsd-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz#9224b8e4fea924ce2194e3efc3e9aebf822192d6" @@ -150,9 +185,14 @@ "@esbuild/freebsd-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz#0399494c1c85e4388e9b7040bd60d48f2a5b0d2c" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz#0399494c1c85e4388e9b7040bd60d48f2a5b0d2c" integrity sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw== +"@esbuild/freebsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz#0be22b6df925d213e841ea87123af5df80b0faf7" + integrity sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg== + "@esbuild/linux-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz#4f5d1c27527d817b35684ae21419e57c2bda0966" @@ -160,9 +200,14 @@ "@esbuild/linux-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz#d6d9f09ef0de54116bf459a4d53cac7e0952fe39" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz#d6d9f09ef0de54116bf459a4d53cac7e0952fe39" integrity sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A== +"@esbuild/linux-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz#1bdbc651cda9ba9995c53ed9c71ceaa65094762d" + integrity sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug== + "@esbuild/linux-arm@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz#b9e9d070c8c1c0449cf12b20eac37d70a4595921" @@ -170,9 +215,14 @@ "@esbuild/linux-arm@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz#7b42ffa84c288ae94fdc431c1b28a89e3c3b9278" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz#7b42ffa84c288ae94fdc431c1b28a89e3c3b9278" integrity sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw== +"@esbuild/linux-arm@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz#beb12ad72b84f72d28488cc1b8ee9f7eb141d753" + integrity sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w== + "@esbuild/linux-ia32@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz#3f80fb696aa96051a94047f35c85b08b21c36f9e" @@ -180,9 +230,14 @@ "@esbuild/linux-ia32@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz#deb15d112ed8dd605346b6b953d23a21ff81253f" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz#deb15d112ed8dd605346b6b953d23a21ff81253f" integrity sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ== +"@esbuild/linux-ia32@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz#b81f9d55529b45c206a46a138214b1aa6879696b" + integrity sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ== + "@esbuild/linux-loong64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz#9be1f2c28210b13ebb4156221bba356fe1675205" @@ -190,9 +245,14 @@ "@esbuild/linux-loong64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz#81fb89d07eecc79b157dea61033757726fce0ca4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz#81fb89d07eecc79b157dea61033757726fce0ca4" integrity sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg== +"@esbuild/linux-loong64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz#598667241a04c99b76ed6ef940ac50038c419f98" + integrity sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ== + "@esbuild/linux-mips64el@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz#4ab5ee67a3dfcbcb5e8fd7883dae6e735b1163b8" @@ -200,9 +260,14 @@ "@esbuild/linux-mips64el@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz#d0e42691b3ff7af9fb2217b70fc01f343bdb62bb" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz#d0e42691b3ff7af9fb2217b70fc01f343bdb62bb" integrity sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w== +"@esbuild/linux-mips64el@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz#1c51eb9cea903f53d97b5af3b1841db70f5596ca" + integrity sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA== + "@esbuild/linux-ppc64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz#dac78c689f6499459c4321e5c15032c12307e7ea" @@ -210,9 +275,14 @@ "@esbuild/linux-ppc64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz#389f3e5e98f17d477c467cc87136e1a076eead87" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz#389f3e5e98f17d477c467cc87136e1a076eead87" integrity sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg== +"@esbuild/linux-ppc64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz#63dd61f17ceb31a81227f413feac8a71bc2c51f2" + integrity sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ== + "@esbuild/linux-riscv64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz#050f7d3b355c3a98308e935bc4d6325da91b0027" @@ -220,9 +290,14 @@ "@esbuild/linux-riscv64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz#763bd60d59b242be12da1e67d5729f3024c605fa" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz#763bd60d59b242be12da1e67d5729f3024c605fa" integrity sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ== +"@esbuild/linux-riscv64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz#3763b08fde5cf25ab1facb8e7752edfe45fbfc27" + integrity sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA== + "@esbuild/linux-s390x@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz#d61f715ce61d43fe5844ad0d8f463f88cbe4fef6" @@ -230,9 +305,14 @@ "@esbuild/linux-s390x@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz#aac6061634872e4677de693bce8030d73b1fd055" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz#aac6061634872e4677de693bce8030d73b1fd055" integrity sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q== +"@esbuild/linux-s390x@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz#1a137ff293a82906eb3176385bd7e8e0e5cfb7cb" + integrity sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg== + "@esbuild/linux-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz#ca8e1aa478fc8209257bf3ac8f79c4dc2982f32a" @@ -240,9 +320,14 @@ "@esbuild/linux-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz#4f2917747188fe77632bcec65b2d84b422419779" integrity sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ== +"@esbuild/linux-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz#268b36211c146ca54f8fe12c578a8d6ef8979485" + integrity sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ== + "@esbuild/netbsd-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz#1650f2c1b948deeb3ef948f2fc30614723c09690" @@ -250,9 +335,14 @@ "@esbuild/netbsd-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz#814df0ae57a0c386814491b8397eeba82094a947" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz#814df0ae57a0c386814491b8397eeba82094a947" integrity sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw== +"@esbuild/netbsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz#22571ad951d62bb6accc82d8d1fad5c8c1ac0ba1" + integrity sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw== + "@esbuild/netbsd-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz#65772ab342c4b3319bf0705a211050aac1b6e320" @@ -260,9 +350,14 @@ "@esbuild/netbsd-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz#e01bdf7e60fa1a08e46d46d960b0d9bb8ac210af" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz#e01bdf7e60fa1a08e46d46d960b0d9bb8ac210af" integrity sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw== +"@esbuild/netbsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz#42fcc57297eb0a0ca3f5fc475291f4c1a3f7c0de" + integrity sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw== + "@esbuild/openbsd-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz#37ed7cfa66549d7955852fce37d0c3de4e715ea1" @@ -270,9 +365,14 @@ "@esbuild/openbsd-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz#4a15c36aacca68d2d5a4c90b710c06759f4c1ffa" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz#4a15c36aacca68d2d5a4c90b710c06759f4c1ffa" integrity sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g== +"@esbuild/openbsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz#9eb32af104ac3dacf4edca01f596664aab0c73ef" + integrity sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ== + "@esbuild/openbsd-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz#01bf3d385855ef50cb33db7c4b52f957c34cd179" @@ -280,9 +380,14 @@ "@esbuild/openbsd-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz#475e6101498a8ecce3008d7c388111d7a27c17bd" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz#475e6101498a8ecce3008d7c388111d7a27c17bd" integrity sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA== +"@esbuild/openbsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz#febed2402d6088225e91f20fb4ce2522ad0a4efd" + integrity sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw== + "@esbuild/openharmony-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz#6c1f94b34086599aabda4eac8f638294b9877410" @@ -290,9 +395,14 @@ "@esbuild/openharmony-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz#cfdc3957f0b7a69f1bde129aad17fcc2f6fa033e" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz#cfdc3957f0b7a69f1bde129aad17fcc2f6fa033e" integrity sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w== +"@esbuild/openharmony-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz#85641c3d466428bfbccea5f21c26836663fef5ce" + integrity sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q== + "@esbuild/sunos-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz#4b0dd17ae0a6941d2d0fd35a906392517071a90d" @@ -300,9 +410,14 @@ "@esbuild/sunos-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz#a013c856fecacd1c3aec985c8afe1d1cb017497d" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz#a013c856fecacd1c3aec985c8afe1d1cb017497d" integrity sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw== +"@esbuild/sunos-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz#a736f9d8962481045fc4c3e54f5479f22c870fb4" + integrity sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g== + "@esbuild/win32-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz#34193ab5565d6ff68ca928ac04be75102ccb2e77" @@ -310,9 +425,14 @@ "@esbuild/win32-arm64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz#eae05e0f35271cad3898b43168d3e9a3bbaf47e5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz#eae05e0f35271cad3898b43168d3e9a3bbaf47e5" integrity sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA== +"@esbuild/win32-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz#ee5ab40fad186201b652a33f8a5eb149e9e42532" + integrity sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ== + "@esbuild/win32-ia32@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz#eb67f0e4482515d8c1894ede631c327a4da9fc4d" @@ -320,9 +440,14 @@ "@esbuild/win32-ia32@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz#06161ebc5bf75c08d69feb3c6b22560515913998" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz#06161ebc5bf75c08d69feb3c6b22560515913998" integrity sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA== +"@esbuild/win32-ia32@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz#c40d28a6d99a127da6711f2afd74b11cb63b06a7" + integrity sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA== + "@esbuild/win32-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz#8fe30b3088b89b4873c3a6cc87597ae3920c0a8b" @@ -330,13 +455,18 @@ "@esbuild/win32-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz#04d90d5752b4ce65d2b6ac25eba08ff7624fe07c" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz#04d90d5752b4ce65d2b6ac25eba08ff7624fe07c" integrity sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw== +"@esbuild/win32-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz#b21affb804cc167c133d95f45b3a1dc1323b9a87" + integrity sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g== + "@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.0": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" - integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== + version "4.10.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz#8911bd72b2c3640a543609e0400b8c4d2e7e7cb6" + integrity sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg== dependencies: eslint-visitor-keys "^3.4.3" @@ -369,9 +499,9 @@ "@types/json-schema" "^7.0.15" "@eslint/eslintrc@^3.3.1": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.5.tgz#c131793cfc1a7b96f24a83e0a8bbd4b881558c60" - integrity sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg== + version "3.3.7" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.7.tgz#76d3dedec4a30ea32df797bf8a0085c1311b7316" + integrity sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw== dependencies: ajv "^6.14.0" debug "^4.3.2" @@ -379,7 +509,7 @@ globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^4.1.1" + js-yaml "^4.3.2" minimatch "^3.1.5" strip-json-comments "^3.1.1" @@ -456,7 +586,7 @@ "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -472,9 +602,9 @@ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + version "1.6.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz#f4c663e862f06dc98ca4d453862c46902789a18d" + integrity sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw== "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.31": version "0.3.31" @@ -489,6 +619,11 @@ resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== +"@napi-rs/lzma-linux-x64-gnu@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz#e57d4306966078662038094fb38eb9146dc3aea9" + integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== + "@noble/hashes@^1.1.5": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" @@ -524,7 +659,7 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@puppeteer/browsers@2.10.13": @@ -540,130 +675,130 @@ tar-fs "^3.1.1" yargs "^17.7.2" -"@rollup/rollup-android-arm-eabi@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.0.tgz#634b0258cc501bef2353cee09a887b434826e81f" - integrity sha512-IPIQ55ythEHkfEd9jMEi32OQ7SxURsGA43JI22lj01OLZNt2NUbJX8YUHxkVWyQ6daHPNn0truF5nSj3DQp6YQ== - -"@rollup/rollup-android-arm64@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.0.tgz#d7804ff9c31c2b8e7c51d966fedac65a4c828578" - integrity sha512-M6s9cr10MibETyo8JsOkq+Lo1+lU6hcvb1MApnUql5qte/5hMEgzlN8/ReIKNfRV8rrqX50W1BX9zoUhC192RA== - -"@rollup/rollup-darwin-arm64@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.0.tgz#f26d03228e48c8bd55ff6be847242308dbfdb50d" - integrity sha512-BqCoMoIbn0keKys+dEAdBa70EtOwV1bEsQCUgU9FdiZmmMge/Zk7LlkYGqbrdHR+Frnt0E1FOanly+rlwvvQzw== - -"@rollup/rollup-darwin-x64@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.0.tgz#6e9037ccfc806a749aa044b063256a26ad32339d" - integrity sha512-SIMzST3VFNXDAbeIWDWiFCNM5qncUBDWaEV7NfE7oZbDt2mgfW4MvbKdbYiGOLoM32gbTv608UMd0XktEYSD7w== - -"@rollup/rollup-freebsd-arm64@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.0.tgz#ff448605b36cc4736a6fea89bd0eb74653f09cbc" - integrity sha512-ezjfSQMP7ArdUsbBwbQIfwAlhE84I2iVnzQNCFSveqV42q+BmKlzVpf7mxv5EchLcoWU4y6/heFzVg1F+hodUQ== - -"@rollup/rollup-freebsd-x64@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.0.tgz#a30fe00a8651b577966022d1db1fb1bd6776105e" - integrity sha512-9+qTWGW9AZRhnUgwtTwzNwcPlL87ngkeN0LA+q1bADvmY9aNvWaF2TFW8BZgnQPYxpDI7+rMVLivcd4V737TAQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.0.tgz#0ba85b63893eb17e11052bd21fe2809afc475a82" - integrity sha512-T1dMEQhXA/jkJ/jyMIw9IovK8bSUq7A8kLIlvZTb/6YIVsp2zLavr4F3oyllHWo7eIVJRyE5n3tUjQJEbE1IuQ== - -"@rollup/rollup-linux-arm-musleabihf@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.0.tgz#982bf23fcfe4e8e13002912d4073f56a2eea2a39" - integrity sha512-2as0LgT7qQpyceQq6VUJYnumUMUrgGQCWIiDIN9DE0/tglsk6o66uCB4f3djRawAltvfCNLyZZrsqbPA6inCsA== - -"@rollup/rollup-linux-arm64-gnu@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.0.tgz#c94d1e8bd116ea2b569aab37dd04a6ccab74f1ab" - integrity sha512-bVURMg+6eNN9C/yc0aVjooZcwTTtYF4YW3xta5pP0//r3o1V8gXEHXWCndj47w/HhwsFroZrFhR+6uQP5T0n0g== - -"@rollup/rollup-linux-arm64-musl@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.0.tgz#a7d79014ba3c5dd2d140309730365d413976db24" - integrity sha512-Ful8pM/2yYI83PViWdFdpZhdI8HJ5qsXANe5atypbHDf+KIBBDsZsbyy8hbXnULVvW9NsTh5DHwbcBftyLTfiw== - -"@rollup/rollup-linux-loong64-gnu@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.0.tgz#5dd943c58bda55d8b269426bd60a47dd9c27776e" - integrity sha512-9Gp/DgrkzfUBmNPVTyPTvay+4xEP7M/clXpj3efXBcm6uTIVIgDg4rqUpqKXvLEuFRVuEpSAOkhgNeecvaZ4Cg== - -"@rollup/rollup-linux-loong64-musl@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.0.tgz#08b1b9d362c64847306fea979b935e93a2590c4e" - integrity sha512-m9tsJz54LUXkSYM8+8PG81B9IKK5r+2T0clMq4QrS16xFosufU7firBDAZEsDheDs7wTlP7h3++S7lMsU955HA== - -"@rollup/rollup-linux-ppc64-gnu@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.0.tgz#1c5de568966d11091281b22bc764ee7adf92667b" - integrity sha512-3UvJ5PNVU16aJf6M3tFI24pWzAl2/ynfbyRN3ICyQajK1lSkrnVYNnLz3v04J32qKa0FczJc22zeToc0lr2A3w== - -"@rollup/rollup-linux-ppc64-musl@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.0.tgz#4dde1c9b941748ea49e07cfc96c64b18236225cd" - integrity sha512-vRWUAbYLGHBZS6Q8Msb2sfnf1fvJf+47t8l/TwOerM2qArzy+IeNMTHrYLHXh95h8MoatPHI5hhSZNs+mGXKPg== - -"@rollup/rollup-linux-riscv64-gnu@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.0.tgz#21dd1014033b970dd23189d1d4d3cdab45de7f9a" - integrity sha512-c00T5SYENHAt86cfW47URaP3Us5vLC/4QO7GYud1G5VNRffCwwCuBspwqYrriuJB+5m0WFzClCn9wed0FBjKvg== - -"@rollup/rollup-linux-riscv64-musl@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.0.tgz#4664e0bae205a3a18eb6407c10054c4b8dd7f381" - integrity sha512-krrCDilhXOwFkSkO3Wm9I/f9H0L92XHHwy2fwxjukxIbh0dem8gZqOW5Y8BsHrpJv5qwlRBV+Wl4ZFyRWhUpwg== - -"@rollup/rollup-linux-s390x-gnu@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.0.tgz#b05a6b3af6a0d3c9b9f7be9c253eb4f101a67848" - integrity sha512-7pfYFSTc4/rUC/FtAI0Qp6QthDBCIi6/AuP1xYqFk5vanI6KnL5dWKP60OM/05LOsbwTmIcvr6eXC4CJuJ75IA== - -"@rollup/rollup-linux-x64-gnu@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.0.tgz#85dda72aa08cdc256f80f46d881b2a988bb0cce2" - integrity sha512-7SDIalKeIpG0Ifogbbdn58HmSotYMlf23K3dCJEmiVd9Fg36Vmni82iPQec27N3wY4Bvbxftkxz6vSx9OcouTg== - -"@rollup/rollup-linux-x64-musl@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.0.tgz#d79f5be62a484b58a8ec4d5ae23acf7b0eb1a8ff" - integrity sha512-eRZevouTH2i1HeAVLqJuLnt256krQkGY0TN6WsTmsIhuzbh457HuWDMakKwmi0Cjadux983CoSr8Lim2QhUIFw== - -"@rollup/rollup-openbsd-x64@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.0.tgz#8ebafe0d66cde1c8ab0a867cd9dcea89e22ee7b1" - integrity sha512-3oVS7FLGa4U1qcvao9ylGxrjXZyUQqR8UwxEcnUEyPX53O/C/mKDZegNXTdHCP+h3e6ta/f1EN38Yif1mmZHYg== - -"@rollup/rollup-openharmony-arm64@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.0.tgz#105537bcfcb2fd82796518184e995ae4396bb792" - integrity sha512-yTB9TgfWj5wHe5QgktAgXTLLot1gvEjl1NiPPAUiCs4oPrIWFl5V4nC3GrkNdj9LaAU4s94nVrGbGOCqUpyWsg== - -"@rollup/rollup-win32-arm64-msvc@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.0.tgz#08ebcfc01b5b3b106ae074bae3692e94a63b5125" - integrity sha512-5LOhoaesY3doG1c+ac/2JtgREpKoJr5bUHH8tKY0V8di7+uSV6BwLs2PlR0/yzefGOkR+wE7ZolZphHCsyG5Rw== - -"@rollup/rollup-win32-ia32-msvc@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.0.tgz#493005cb0fcab009e866ccdbad3c97c512c2bf4b" - integrity sha512-yYkWHhmbhRTWTnWos5HC4GcPQfjlzzCNbM9e/+GXrLuaBXYA3qSDR9f0Vgufd5S8yX81U8jPKp7ZnAjZFMtRnw== - -"@rollup/rollup-win32-x64-gnu@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.0.tgz#47b40294def035268329d5ffd5364347bf726e5f" - integrity sha512-SoTb6lPg25xZlA2ibwQ++ahCCnH+FP0qmEuafMJ4gznZKOlXioKEAeJLgCrqjM98ACziXM9V1amFjICVL4IFoA== - -"@rollup/rollup-win32-x64-msvc@4.62.0": - version "4.62.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.0.tgz#6850434fdb691e9b2408ded9b65ea357bf83636d" - integrity sha512-5L+T1fMX4RIEBoZzT0+sQ0PhTS36NULFmMXtl1TZo44TMAROIMHbZufSOjVWt/Y622BtxgxtaNOokbTDvfsrZA== +"@rollup/rollup-android-arm-eabi@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.4.tgz#e1d06062fb451578b3fb0bdea3360daaa1395f44" + integrity sha512-I+BSHzTAhKN2n7ZwGZsegGcZjDpLqFOMAtJz/u6uFGe0pUFbq56dEHjqJV/ZUdRJtNXNxA+hREUatZBvMR3Oiw== + +"@rollup/rollup-android-arm64@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.4.tgz#2e81dec4e9e879c95c8266e30da67074c4998224" + integrity sha512-pu3BdjS2LtEzRu2elmGzS3fIeWSZy4BMDIaLNwjorO76+k2d0LMluijhsDx3KQyQBQ/lLUZCQA9/s6csvUfuhw== + +"@rollup/rollup-darwin-arm64@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.4.tgz#f48f92f44454aed23d013f7cdb6da0dc2cb598ae" + integrity sha512-xfSrj9MHnWK9GaSqT9U0ImHtH/N8WZlHLx4cZHiuLcqs640hvZ3hLPd5UR2AZS57FaE8HrRUSpltbZdWRxHiDA== + +"@rollup/rollup-darwin-x64@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.4.tgz#39b0b2ad27c49b40aec71fb20210e2e3be5fdbd0" + integrity sha512-bqU99PLJb/dqb3S0GIMdeuyAEETSUgZBoqXYd3Sd+WCsV+MmPhnN6JrotWyir31+QgH7EvvE5/mwGJlEoci8Fw== + +"@rollup/rollup-freebsd-arm64@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.4.tgz#0c85d18f5b9228b7195adbbbc97c1adaf41b8106" + integrity sha512-JinsFZ5G40oXQb+sUuiA5x689vhr6dDYK0H0NL+rwKdL6CqnmYN8PE4ZwfRSoIjrCxqTQG/SLfTtSvHeGxoVlw== + +"@rollup/rollup-freebsd-x64@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.4.tgz#0c6c27471ea950213aad76418f075c96f57e9533" + integrity sha512-GAdA4UxpiNm27cLHr2GqXBpAD0x9FqwYBY7/YSP0Ss0/PNi4k8gbviqpIpYbVSRBaS2ZcegXEzgTQMbRNCwxCw== + +"@rollup/rollup-linux-arm-gnueabihf@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.4.tgz#28cba40d417fb3d2c1536941b02143a2bdda72be" + integrity sha512-qDd6NoA1znaLjp4jR5U/KWCdLAKDJNB8W9ChbbDaKbo0xA+Atln5HK6LFCZ4oJQpemtRZA288DCirFRjrspptw== + +"@rollup/rollup-linux-arm-musleabihf@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.4.tgz#c9f06aa876d6d312012a2048d9e5533c581a7341" + integrity sha512-WtB5Tz5KTNINb8ZA+8sQ7bmjuS1JrRT7YverYIhUGdWWDlpzVWmIwuZE+jidkEXUn1l0zrEkaIMa8dHF3NGcsA== + +"@rollup/rollup-linux-arm64-gnu@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.4.tgz#b26376804ca32b3dcc8f68930f765394fb4e4814" + integrity sha512-VcQ3L1tjnkKzWjryAVaFhHEWcqOfICX9uxVVoDzm2t0DpgKRHd2zOpVrJc0xsWeBZcBFyYROCIBdyR/fS174pg== + +"@rollup/rollup-linux-arm64-musl@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.4.tgz#65f6f5deee9d30904b4d52ee3d45679055743cd1" + integrity sha512-6+ZQX6P5s0cMDN2Ypb8Lbm2+/sZYmZjdaYny992ujUU9UKi/4CWoJWsl1pNvjWJHNHGK51m+jKGLlh1ylb2ifQ== + +"@rollup/rollup-linux-loong64-gnu@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.4.tgz#15d7e44538e967a3d6132f5b9f27f02346df6850" + integrity sha512-D72ZnvkFkBXOfzMMQLcwfPLyGkKb7HZ9/mf97B7v6/P5Lbv4oFOtSY/uHbS8lH6uKUOxoKiuokdb50XZSzzbJw== + +"@rollup/rollup-linux-loong64-musl@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.4.tgz#7afad2b9e41941344883154f754b7f772ef16b01" + integrity sha512-piU6BxeqA3O9KSu3kRCIQQtNqFFaTu21SEV4FwaRZowpnj3bLaWPZHw+xFqCs0XlJ+aOH3PTRWGoglH+mKA/OA== + +"@rollup/rollup-linux-ppc64-gnu@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.4.tgz#3f3131b1a9585851b2875c86a49f6e6deb9e68e0" + integrity sha512-/5PGpHwqt2EEEOUs1XwzubE/ucr0dWDQ+to3zqi4Ds7EWpwtQ79wXc4JBoxqj/OwpawTsKWzJxHfSuBOq3DrWA== + +"@rollup/rollup-linux-ppc64-musl@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.4.tgz#463aeee26c62983c1fc235708d1b41baf4735f98" + integrity sha512-cX3beZDLWt7G2oJF+nhChiT+qtaihs+S2xi7ziGmVB+2pwPng6D0Ed0HmElQOgv2UsUmSJJLGwpBao/3TDx3VA== + +"@rollup/rollup-linux-riscv64-gnu@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.4.tgz#cb495bd8cc978e17593e0d323b36fd95b5eab098" + integrity sha512-1uz2mGWHyptR7DgHHrlbdRAjXK7v7elGZ9lMja910/RP+ZYbX6xAmCiU9UZSX4hqmgtHMv6lr5l3kq1HIOpcag== + +"@rollup/rollup-linux-riscv64-musl@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.4.tgz#655b69144b1e786e0bf8ac3b727f0d7fee590a08" + integrity sha512-nLS8topojxyz7SRpKR2IODRpQ0XPZ+xaOXvT3+hqK/Uy8Lo5HFgkkIBiIrCu5tL5YqzTvgovGw55PwpahTAGig== + +"@rollup/rollup-linux-s390x-gnu@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.4.tgz#70b175b0361a7898acc294a6b14001e2c3ad99be" + integrity sha512-gs7DRKotr3l3q+jGPQBjH0ng1FjlEDm5ueQrkw5JtQvtLyEIcLASqAEaor56BhkKRzk+IcQzrcanBdb/bBQn8g== + +"@rollup/rollup-linux-x64-gnu@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.4.tgz#0c68fa212df249f996b2d75e8fbb3766b1582ee8" + integrity sha512-791ET7W17NnScOZM7h4dX5hYspxE28htPFsb1awY/NRR8+PRNkS53e475rDdxXXDrP+kwnCcNWg9CX5ztn/Aqw== + +"@rollup/rollup-linux-x64-musl@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.4.tgz#93af6206edf751469a43c3614164360136540838" + integrity sha512-iwZQRcmj7g88g3tzefIrQY7qvmuA/cfYwhrDtTBhsmukO4U2huVO5W+86XacUMRvdSFVAc6kZUZy21JaRwiB9w== + +"@rollup/rollup-openbsd-x64@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.4.tgz#7c7680c4004fd602b59cd19f3294fa1b89d0c683" + integrity sha512-dVHFp9gRWrdTpnqQuGfCwd7hOQDatK1VCP2iWhLY/cGrOQs/ucFzJ6A5SRqbXX12ZDI8EUuejSM5kwg+ja7Png== + +"@rollup/rollup-openharmony-arm64@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.4.tgz#f389ff4d8ee8a635ff51d76e8ff20b7db2292bce" + integrity sha512-t3NlauOW6gxZVVFcBEnO62Cb4wbyDFL416gTg1uFI/2tgqYQlf69FbSE115Ajre9I+c26Lk4mcmdFUsS/DGifQ== + +"@rollup/rollup-win32-arm64-msvc@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.4.tgz#55a286f40f9d03c653ceb7183d6c6179ec312c75" + integrity sha512-xWuIaSye5FWZF8+UYtVEcHtRJDN5kN9Kfgxx3Kq8XIov9KSKbc1fiqQCm90SKrgQbUXZelbnUhnlUJmfSE7P9A== + +"@rollup/rollup-win32-ia32-msvc@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.4.tgz#7eb577b64e2a39115182a87a2ea957608d8331f6" + integrity sha512-9ALJJUOg/ZflMJepVo2PlgsGxSaxN7SQ4Z8GoZfVlarWr6r3rkHUNsd/zAio7p4YMtChSMXPionxej4Hkf6CXQ== + +"@rollup/rollup-win32-x64-gnu@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.4.tgz#0e7a7cd5f0db2f570fc312687d67baf21283a3f6" + integrity sha512-blj9z5qx/Pv4WU0W1NMFDB97e0JH5ed+aZGywW8WCvp/NhWX/4PFAq5uu6Q0AebNn+Vo6KzUYDT++JzTT5ojlQ== + +"@rollup/rollup-win32-x64-msvc@4.63.4": + version "4.63.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.4.tgz#f8e11d8ac827db7695d50f1def4c00a7f3cd1510" + integrity sha512-Erx822VRBwLa124shbj+wNXe//BOgMEctDV0m1aqTQdNO1S69DgNUCFKC1RCeZfixs1J31l6igk1ziyXErbigQ== "@scarf/scarf@=1.4.0": version "1.4.0" @@ -722,7 +857,7 @@ "@types/cors@2.8.19": version "2.8.19" - resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342" integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg== dependencies: "@types/node" "*" @@ -734,20 +869,29 @@ "@types/estree@1.0.9", "@types/estree@^1.0.0", "@types/estree@^1.0.6": version "1.0.9" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== "@types/express-serve-static-core@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz#1a77faffee9572d39124933259be2523837d7eaa" - integrity sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A== + version "5.1.3" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz#9d34c88c0c9ee62b9a6e4d9f8ab8d7e29688e6b4" + integrity sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/send" "*" -"@types/express@*", "@types/express@5.0.5": +"@types/express@*": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^5.0.0" + "@types/serve-static" "^2" + +"@types/express@5.0.5": version "5.0.5" resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.5.tgz#3ba069177caa34ab96585ca23b3984d752300cdc" integrity sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ== @@ -788,7 +932,7 @@ "@types/morgan@1.9.10": version "1.9.10" - resolved "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.10.tgz#725c15d95a5e6150237524cd713bc2d68f9edf1a" + resolved "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.9.10.tgz#725c15d95a5e6150237524cd713bc2d68f9edf1a" integrity sha512-sS4A1zheMvsADRVfT0lYbJ4S9lmsey8Zo2F7cnbYjWHP67Q0AwMYuuzLlkIM2N8gAbb9cubhIVFwcIN2XyYCkA== dependencies: "@types/node" "*" @@ -801,16 +945,16 @@ "@types/express" "*" "@types/node@*": - version "25.9.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.3.tgz#11dfe7a33e68fa5c560f0aa76cc5595621ef26b9" - integrity sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg== + version "26.6.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.6.2.tgz#11bfb8e00bafe728d2113e474a7637becc9ab279" + integrity sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g== dependencies: - undici-types ">=7.24.0 <7.24.7" + undici-types "~8.9.0" "@types/pg@^8.16.0": - version "8.20.0" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.20.0.tgz#8bd03d3ac6b19143a8de7d66a9d13da32cd91526" - integrity sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow== + version "8.23.1" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.23.1.tgz#7e712ce02cf44ad100862127f10f52e9c6b9d227" + integrity sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A== dependencies: "@types/node" "*" pg-protocol "*" @@ -853,7 +997,15 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-static@*", "@types/serve-static@^1": +"@types/serve-static@*", "@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + +"@types/serve-static@^1": version "1.15.10" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== @@ -863,9 +1015,9 @@ "@types/send" "<1" "@types/superagent@^8.1.0", "@types/superagent@^8.1.7": - version "8.1.10" - resolved "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.10.tgz#aa1f600eeee83a7b129e06f8e7fec78fb0ac980a" - integrity sha512-nbt4IWXABhW0jGmmpRzCFNlbmwCTzZ2gTUsNIr+X+ItdqPms+PAJZbWsNzpS2USqXjcoNLQcO6nXo60zcPQiIg== + version "8.1.11" + resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-8.1.11.tgz#14da75aa2f916dcdd6fb2a90a8fb24a9a1a86d08" + integrity sha512-KA7srSW/HENDtOw9DOqaFLgWuMqN9WgjEw62lh9dpvRaZDkhdOkazASd7X7i2eMUYLHa1U37ZttnePsH5zTDHw== dependencies: "@types/cookiejar" "^2.1.5" "@types/methods" "^1.1.4" @@ -874,7 +1026,7 @@ "@types/supertest@7.2.0": version "7.2.0" - resolved "https://registry.npmjs.org/@types/supertest/-/supertest-7.2.0.tgz#9620bc998d3e26bcbedba7d31da8fe4c82fc1620" + resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-7.2.0.tgz#9620bc998d3e26bcbedba7d31da8fe4c82fc1620" integrity sha512-uh2Lv57xvggst6lCqNdFAmDSvoMG7M/HDtX4iUCquxQ5EGPtaPM5PL5Hmi7LCvOG8db7YaCPNJEeoI8s/WzIQw== dependencies: "@types/methods" "^1.1.4" @@ -882,7 +1034,7 @@ "@types/swagger-ui-express@^4.1.8": version "4.1.8" - resolved "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.8.tgz" + resolved "https://registry.yarnpkg.com/@types/swagger-ui-express/-/swagger-ui-express-4.1.8.tgz#3c0e0bf2543c7efb500eaa081bfde6d92f88096c" integrity sha512-AhZV8/EIreHFmBV5wAs0gzJUNq9JbbSXgJLQubCC0jtIo6prnI9MIRRxnU4MZX9RB9yXxF1V4R7jtLl/Wcj31g== dependencies: "@types/express" "*" @@ -944,9 +1096,9 @@ integrity sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA== "@typescript-eslint/tsconfig-utils@^8.46.3": - version "8.61.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz#ca88080e0cf191d49516d7f300b67aa090d2254f" - integrity sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg== + version "8.70.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.70.1.tgz#e9353a6e5f3498a29b40946ca3e11f6166fef09e" + integrity sha512-jumze1fPI+sDOaM2TWGQdn39PDxTr7TZGeuyLkAbNyx2vtMT3uRnVKChN0hfht5V2TugphJzF6bYXvBcE09qqg== "@typescript-eslint/type-utils@8.46.3": version "8.46.3" @@ -965,9 +1117,9 @@ integrity sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA== "@typescript-eslint/types@^8.46.1", "@typescript-eslint/types@^8.46.3": - version "8.61.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.61.1.tgz#0c51f518e4e6848371a1c988e859d59eb7522d5a" - integrity sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA== + version "8.70.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.70.1.tgz#2022b9d07d057174eba25b9bbd289641d262a196" + integrity sha512-Dm1ypdhhrGCTyyehxElhgJ6kgk8MVCv5qXdoOVqPr1uqk42jX8KjrZqhROvdShczA8qrDoYiOWn1ykWlx2k81Q== "@typescript-eslint/typescript-estree@8.46.3": version "8.46.3" @@ -1092,9 +1244,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.15.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" - integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== + version "8.18.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.18.0.tgz#4faf01b2d6d326bfeed97aea1f52220b5f4c1940" + integrity sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ== agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.4" @@ -1117,9 +1269,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + version "6.3.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.3.0.tgz#247c8e7b70a1a43b10ce14c0226fcbf58e8815d5" + integrity sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ== ansi-styles@^3.2.1: version "3.2.1" @@ -1137,7 +1289,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: ansi-styles@^6.1.0: version "6.2.3" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== append-field@^1.0.0: @@ -1251,9 +1403,9 @@ axios@1.13.2: proxy-from-env "^1.1.0" b4a@^1.6.4, b4a@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.8.1.tgz#7f16334ca80127aeb26064a28841acbf174840a4" - integrity sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw== + version "1.9.0" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.9.0.tgz#6336313b6e76b299c397afa68676ec6ebc788845" + integrity sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ== balanced-match@^1.0.0: version "1.0.2" @@ -1261,14 +1413,14 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== bare-events@^2.5.4, bare-events@^2.7.0: - version "2.9.1" - resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.9.1.tgz#5c86616966343bcb03a1b3155feab253eadbf349" - integrity sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg== + version "2.9.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.9.2.tgz#01d377b64c3c7167b28b52da7add3221aecf2d7f" + integrity sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA== bare-fs@^4.0.1, bare-fs@^4.5.5: - version "4.7.2" - resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-4.7.2.tgz#0f59b317e5bdbec6a1489b519a06a203cd3fe035" - integrity sha512-aTvMFUWkBmjzKtEQMDGGDNF8bkfpD5N1b/FCwt7A3wrU4t1o/e/85Wzkluh6JlODCjqVESYCkQCdTXqZ9G7VFg== + version "4.8.1" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-4.8.1.tgz#1a946560b45844dc37120c00330eae7c8a1c44cf" + integrity sha512-N1nnXdHZAOSstz0XiHikGS4HGMH4CnSwhqWdGQQMqqdvp4Jybm9sE3R1WVnpWVd4SFkc8ryPDBLViNLwiEqECg== dependencies: bare-events "^2.5.4" bare-path "^3.0.0" @@ -1276,31 +1428,24 @@ bare-fs@^4.0.1, bare-fs@^4.5.5: bare-url "^2.2.2" fast-fifo "^1.3.2" -bare-os@^3.0.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-3.9.1.tgz#660228ca7ffc47a72e96b6047cdd9d8342994e2f" - integrity sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ== - bare-path@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-3.0.1.tgz#c12c81b527936b650e87c5d00264d59ef458082c" - integrity sha512-ghj2DSK/2e99a1anTVPCV4m4YIYtrbXhfM7V3D7XZLOTsybnYyaJloymGqssQc8l/or0UoDyRtNQkmkEF/ysgQ== - dependencies: - bare-os "^3.0.1" + version "3.1.2" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-3.1.2.tgz#67261bc74a9ba0105ba139b8638f218c09e8d82e" + integrity sha512-ZyKbsuuqK6Ag0K8pX6V5Txq6XeJRvY+wXucnFGRjiyVYP9YWDpIQugk/b+enRYrEYBJaqLzghRQpXPMR7341Nw== bare-stream@^2.6.4: - version "2.13.3" - resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.13.3.tgz#f6186c7cbb4bbf53a4560f35e48b16373ba51ce6" - integrity sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ== + version "2.13.4" + resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.13.4.tgz#61d448a268d1efd992103aae6bd729332f278ac0" + integrity sha512-PcrQ8lVLbiJscNm1Kez+Yp4Gy4AHGcN1lzwjvf5NybWen7VvEgUfyfnXYJ2zNqWnzOfCb1Abq6lH8ti0syQszA== dependencies: b4a "^1.8.1" streamx "^2.25.0" teex "^1.0.1" bare-url@^2.2.2: - version "2.4.5" - resolved "https://registry.yarnpkg.com/bare-url/-/bare-url-2.4.5.tgz#50d205f8f2724eec60fd091ba9cebd675fca63aa" - integrity sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ== + version "2.5.4" + resolved "https://registry.yarnpkg.com/bare-url/-/bare-url-2.5.4.tgz#10ab50f39b50335e2aa7672d5941043dbfc7749e" + integrity sha512-Gxa7UVWBr0/edU1b+TJhn/AZvMQUj9OGspvYsaTYQrAbZA4BOTZGL3LiZxvD+CeMlDH4juwD84+eTAp/bLYW5g== dependencies: bare-path "^3.0.0" @@ -1367,17 +1512,17 @@ body-parser@^2.2.0: type-is "^2.1.0" brace-expansion@^1.1.7: - version "1.1.15" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.15.tgz#a6d90d54067236e5f42570a3b7378d594d9b7738" - integrity sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg== + version "1.1.21" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.21.tgz#edf4fab5c64d051aea5a8def49aba1c7522279f3" + integrity sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.1.tgz#c68b1c4111c76aae3a6fba55d496cee10c39dad8" - integrity sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA== + version "2.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.7.tgz#14ea3836731823bb24740225ea43b941b436f9d1" + integrity sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g== dependencies: balanced-match "^1.0.0" @@ -1614,10 +1759,10 @@ content-type@^1.0.5: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -content-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-2.0.0.tgz#2fb3ede69dffa0af78ca7c4ce7589680638b56df" - integrity sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ== +content-type@^2.0.0, content-type@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-2.1.0.tgz#d9389c43c0a8cf6a355db464d21e07092a40493a" + integrity sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag== convert-hrtime@^5.0.0: version "5.0.0" @@ -1852,7 +1997,7 @@ dunder-proto@^1.0.0, dunder-proto@^1.0.1: eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ecc-jsbn@~0.1.1: @@ -1887,7 +2032,7 @@ emoji-regex@^8.0.0: emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== encodeurl@^2.0.0: @@ -2017,11 +2162,12 @@ es-set-tostringtag@^2.1.0: hasown "^2.0.2" es-to-primitive@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.1.tgz#abd6ef5b12d7c25bcd9eb3a7ef63e568b451ba4a" - integrity sha512-CxN9N56HYfd2m/acc/NOFrZQsN9kU4eh+2kk6A707Kz1krH8tKmfrs5RnftB8WNX80T0NS7vSQsDOlg23diR2g== + version "1.3.4" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.4.tgz#0c854291cf0d7b439d6b9e5771ea837ffaf1f991" + integrity sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw== dependencies: es-abstract-get "^1.0.0" + es-define-property "^1.0.1" es-errors "^1.3.0" is-callable "^1.2.7" is-date-object "^1.1.0" @@ -2029,7 +2175,7 @@ es-to-primitive@^1.3.0: esbuild@0.28.0: version "0.28.0" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.0.tgz#5dee347ffb3e3874212a35a69836b077b1ce6d96" integrity sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw== optionalDependencies: "@esbuild/aix-ppc64" "0.28.0" @@ -2059,9 +2205,41 @@ esbuild@0.28.0: "@esbuild/win32-ia32" "0.28.0" "@esbuild/win32-x64" "0.28.0" -esbuild@^0.27.0, esbuild@~0.27.0: +"esbuild@^0.27.0 || ^0.28.0": + version "0.28.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.2.tgz#0f43bd1bad955b72d24e2261e3abe5957ccf0816" + integrity sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.28.2" + "@esbuild/android-arm" "0.28.2" + "@esbuild/android-arm64" "0.28.2" + "@esbuild/android-x64" "0.28.2" + "@esbuild/darwin-arm64" "0.28.2" + "@esbuild/darwin-x64" "0.28.2" + "@esbuild/freebsd-arm64" "0.28.2" + "@esbuild/freebsd-x64" "0.28.2" + "@esbuild/linux-arm" "0.28.2" + "@esbuild/linux-arm64" "0.28.2" + "@esbuild/linux-ia32" "0.28.2" + "@esbuild/linux-loong64" "0.28.2" + "@esbuild/linux-mips64el" "0.28.2" + "@esbuild/linux-ppc64" "0.28.2" + "@esbuild/linux-riscv64" "0.28.2" + "@esbuild/linux-s390x" "0.28.2" + "@esbuild/linux-x64" "0.28.2" + "@esbuild/netbsd-arm64" "0.28.2" + "@esbuild/netbsd-x64" "0.28.2" + "@esbuild/openbsd-arm64" "0.28.2" + "@esbuild/openbsd-x64" "0.28.2" + "@esbuild/openharmony-arm64" "0.28.2" + "@esbuild/sunos-x64" "0.28.2" + "@esbuild/win32-arm64" "0.28.2" + "@esbuild/win32-ia32" "0.28.2" + "@esbuild/win32-x64" "0.28.2" + +esbuild@~0.27.0: version "0.27.7" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.7.tgz#bcadce22b2f3fd76f257e3a64f83a64986fea11f" integrity sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w== optionalDependencies: "@esbuild/aix-ppc64" "0.27.7" @@ -2248,9 +2426,9 @@ events-universal@^1.0.0: bare-events "^2.7.0" expect-type@^1.2.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.3.0.tgz#0d58ed361877a31bbc4dd6cf71bbfef7faf6bd68" - integrity sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.4.0.tgz#24edf7f0cc69a44d008567ba4594ab96f3c3a3d6" + integrity sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA== express-rate-limit@8.2.1: version "8.2.1" @@ -2371,9 +2549,9 @@ fast-safe-stringify@^2.1.1: integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== fastq@^1.6.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" - integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== + version "1.20.3" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.3.tgz#7ab8731e647b56abcfeee997dae333ca3ee1d04d" + integrity sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw== dependencies: reusify "^1.0.4" @@ -2432,9 +2610,9 @@ flat-cache@^4.0.0: keyv "^4.5.4" flatted@^3.2.9: - version "3.4.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.2.tgz#f5c23c107f0f37de8dbdf24f13722b3b98d52726" - integrity sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA== + version "3.4.4" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.4.tgz#aeeca2a506303f0cee61c59e6c9f2a88d2f29fc6" + integrity sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q== follow-redirects@^1.15.6: version "1.16.0" @@ -2450,7 +2628,7 @@ for-each@^0.3.3, for-each@^0.3.5: foreground-child@^3.1.0: version "3.3.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: cross-spawn "^7.0.6" @@ -2507,7 +2685,7 @@ fs.realpath@^1.0.0: fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: @@ -2608,9 +2786,9 @@ get-symbol-description@^1.1.0: get-intrinsic "^1.2.6" get-tsconfig@^4.7.5: - version "4.14.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.14.0.tgz#985d85c52a9903864280ccc2448d413fbf1efed8" - integrity sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA== + version "4.14.3" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.14.3.tgz#7bcc9f3ab5fb6d30ad0a301898c859d34164dcd9" + integrity sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA== dependencies: resolve-pkg-maps "^1.0.0" @@ -2651,7 +2829,7 @@ glob-parent@^6.0.2: glob@10.5.0: version "10.5.0" - resolved "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: foreground-child "^3.1.0" @@ -2760,7 +2938,7 @@ has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -hasown@^2.0.2, hasown@^2.0.3, hasown@^2.0.4: +hasown@^2.0.2, hasown@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== @@ -2831,9 +3009,9 @@ iconv-lite@^0.6.3: safer-buffer ">= 2.1.2 < 3.0.0" iconv-lite@^0.7.0, iconv-lite@^0.7.2, iconv-lite@~0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.2.tgz#d0bdeac3f12b4835b7359c2ad89c422a4d1cc72e" - integrity sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw== + version "0.7.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.3.tgz#84ee12f963e7de50bc01a13e160a078b3b0f415f" + integrity sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -2843,9 +3021,9 @@ ignore@^5.2.0: integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== ignore@^7.0.0: - version "7.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== + version "7.0.9" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.9.tgz#475b2197ade916edab05ade35c691518e8543382" + integrity sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.1" @@ -2898,9 +3076,9 @@ ip-address@10.0.1: integrity sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA== ip-address@^10.1.1: - version "10.2.0" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.2.0.tgz#805fc178b20c518bd4c8548b24fe30892d7f3206" - integrity sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA== + version "10.7.2" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.7.2.tgz#5b3b2b7d46c6293861b82dfcd49cc203aa8f2c5c" + integrity sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w== ip-regex@^5.0.0: version "5.0.0" @@ -2963,11 +3141,11 @@ is-callable@^1.2.7: integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.16.1: - version "2.16.2" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082" - integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== + version "2.17.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.17.0.tgz#75c1c76236c9f7e38ddbfff292e127dc13b21027" + integrity sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA== dependencies: - hasown "^2.0.3" + hasown "^2.0.4" is-data-view@^1.0.1, is-data-view@^1.0.2: version "1.0.2" @@ -3193,7 +3371,7 @@ istanbul-reports@^3.2.0: jackspeak@^3.1.2: version "3.4.3" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -3210,10 +3388,10 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^4.1.0, js-yaml@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.2.0.tgz#2bd9e85682dd91bd469afb809d816043b3d49524" - integrity sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw== +js-yaml@^4.1.0, js-yaml@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.2.tgz#8e44fb14a2643c59726bb15787b5f1512cb3d3fb" + integrity sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== dependencies: argparse "^2.0.1" @@ -3463,9 +3641,9 @@ lru-cache@^7.14.1: integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== lru.min@^1.0.0, lru.min@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.4.tgz#6ea1737a8c1ba2300cc87ad46910a4bdffa0117b" - integrity sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA== + version "1.1.5" + resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.5.tgz#bd32483f4e342261d0eb011b06d2219e6b5ef818" + integrity sha512-5J9ysMYUpYIg9RF2vJpy9SinEmSviFSe0GyPpCQ4L5QSkLAgeLXlTAOu2ZwWUU5m+0SBl6gUU1R1ZQB3aKypfA== magic-string@^0.30.19: version "0.30.21" @@ -3501,9 +3679,9 @@ media-typer@0.3.0: integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== media-typer@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" - integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.1.tgz#6f035400dfe3ab9d5607bc77546ce30cc2f9c6b8" + integrity sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ== memorystream@^0.3.1: version "0.3.1" @@ -3606,9 +3784,9 @@ moment-timezone@^0.5.14, moment-timezone@^0.5.21: moment "^2.29.4" moment@^2.20.0, moment@^2.24.0, moment@^2.29.4: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + version "2.31.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.31.0.tgz#6e19184e8005a9dfc61c9351263d4d6ea2ace7aa" + integrity sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw== morgan@1.10.1: version "1.10.1" @@ -3671,10 +3849,10 @@ named-placeholders@^1.1.3: dependencies: lru.min "^1.1.0" -nanoid@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05" - integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== +nanoid@^3.3.18: + version "3.3.19" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.19.tgz#336d4aa4bcd4fb24d2cddede7ffeae40bec03f0a" + integrity sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug== natural-compare@^1.4.0: version "1.4.0" @@ -3682,9 +3860,11 @@ natural-compare@^1.4.0: integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" - integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.1.0.tgz#16e003d0db4ac24fd9df168edf871625deeae3df" + integrity sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg== + dependencies: + content-type "^2.1.0" netmask@^2.0.2: version "2.1.1" @@ -3697,9 +3877,9 @@ nice-try@^1.0.4: integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-addon-api@^8.3.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.8.0.tgz#b742be05007b37ebc1741bbaf370d22bf25d208a" - integrity sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA== + version "8.9.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.9.2.tgz#db7ac94a13ffd9b55e6cb04584bd5ef8e1d74b18" + integrity sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg== node-gyp-build@^4.8.4: version "4.8.4" @@ -3807,11 +3987,12 @@ optionator@^0.9.3: word-wrap "^1.2.5" own-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" - integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.2.tgz#31448ec1f781ecb1447f6f6aa0d6534222af59de" + integrity sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg== dependencies: - get-intrinsic "^1.2.6" + call-bound "^1.0.4" + get-intrinsic "^1.3.0" object-keys "^1.1.1" safe-push-apply "^1.0.0" @@ -3823,9 +4004,9 @@ p-limit@^3.0.2: yocto-queue "^0.1.0" p-limit@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-7.3.0.tgz#821398d91491c6b6a1340ecd09cdc402a9c8d0ee" - integrity sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw== + version "7.3.3" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-7.3.3.tgz#43464e7094180d03bb0f53f576d9f2cd457b2921" + integrity sha512-SKgVvDU5TNIxQ4r30U75BNLC6a+6GOEjngrk/ysM5+Zu3oJuk1SC5ApzIzY/7PjCEjoVPMWJ0zho/4QUiEB7TQ== dependencies: yocto-queue "^1.2.1" @@ -3963,10 +4144,10 @@ pg-connection-string@2.6.2: resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== -pg-connection-string@^2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.13.0.tgz#8678113465a5af3cc977dcb51eadc847b27aa2de" - integrity sha512-EMnU9E2fSULdsbErBbMaXJvFeD9B4+nPcM3f+4lsiCR0BHLPrLVjv3DbyM2hgQQviKJaTWIRRTjKjWlHg3p2ig== +pg-connection-string@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.14.0.tgz#abc26ee4f37c56c0f3ae0fcf0b0653cc4e1c0fd9" + integrity sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg== pg-int8@1.0.1: version "1.0.1" @@ -3978,10 +4159,10 @@ pg-pool@^3.14.0: resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.14.0.tgz#f35ae4eb846780cad71af24099b3edfa9781ad90" integrity sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw== -pg-protocol@*, pg-protocol@^1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.14.0.tgz#c1f045b74274b007078c687147141f785f59b8de" - integrity sha512-n5taZ1kO3s9ngDTVxsEznOqCyToTgz0FLuPq0B33COy5pPpuWJpY3/2oRBVETuOgzdqRXfWpM9HIhp2LBBT1BA== +pg-protocol@*, pg-protocol@^1.16.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.16.0.tgz#cffb008826561ee9770a8a15dc21f269d731b305" + integrity sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg== pg-types@2.2.0, pg-types@^2.2.0: version "2.2.0" @@ -3995,13 +4176,13 @@ pg-types@2.2.0, pg-types@^2.2.0: postgres-interval "^1.1.0" pg@^8.16.3: - version "8.21.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.21.0.tgz#d7fa2118d960cec5cc7d2b24525f9850dd5932b0" - integrity sha512-AUP1EYJuHraQGsVoCQVIcM7TEJVGtDzxWtGFZd8rds9d+CCXlU5Js1rYgfLNvxy9iJrpHjGrRjoi/3BT9fRyiA== + version "8.23.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.23.0.tgz#5c2026d32bd0cb4fbd9196bac1ecf5ae66607180" + integrity sha512-Ip2EQCngowJLGOfCwkFhPXU7/ljlhn6Rxlmy4XYfL2Y+vyRM59+8uR2xqRWKdYmbXmxCFOAmKxBuSUCdF34qLg== dependencies: - pg-connection-string "^2.13.0" + pg-connection-string "^2.14.0" pg-pool "^3.14.0" - pg-protocol "^1.14.0" + pg-protocol "^1.16.0" pg-types "2.2.0" pgpass "1.0.5" optionalDependencies: @@ -4025,9 +4206,9 @@ picomatch@^2.3.1: integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== picomatch@^4.0.3, picomatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" - integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== + version "4.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.7.tgz#6313360034ccb36b3dc61ecbdff78121f90fe21f" + integrity sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== pidtree@^0.3.0: version "0.3.1" @@ -4045,11 +4226,11 @@ possible-typed-array-names@^1.0.0, possible-typed-array-names@^1.1.0: integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== postcss@^8.5.6: - version "8.5.15" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c" - integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A== + version "8.5.28" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.28.tgz#da4563a99a06e62d6c1cd1acae363224bcaed6e9" + integrity sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A== dependencies: - nanoid "^3.3.12" + nanoid "^3.3.18" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -4086,9 +4267,9 @@ progress@^2.0.3: integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== proxy-addr@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.8.tgz#624e760fd8ab06b1b8320c2f8506d4422cf8e932" + integrity sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ== dependencies: forwarded "0.2.0" ipaddr.js "1.9.1" @@ -4163,11 +4344,12 @@ q@1.5.1: integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qs@^6.12.1, qs@^6.14.0, qs@^6.14.1, qs@^6.15.2: - version "6.15.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.2.tgz#fd55426d710403ddccc45e0f9eab16db7727ece9" - integrity sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw== + version "6.16.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.16.0.tgz#c22c723a28a920f3aacdce8289fabd43eccb79fd" + integrity sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA== dependencies: - side-channel "^1.1.0" + es-define-property "^1.0.1" + side-channel "^1.1.1" qs@~6.5.2: version "6.5.5" @@ -4180,9 +4362,9 @@ queue-microtask@^1.2.2: integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== range-parser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.3.0.tgz#d7f19be812bb62721472b45d3be219ef09572b47" + integrity sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw== raw-body@^3.0.0, raw-body@^3.0.2: version "3.0.2" @@ -4231,7 +4413,7 @@ rechoir@^0.8.0: dependencies: resolve "^1.20.0" -reflect.getprototypeof@^1.0.10, reflect.getprototypeof@^1.0.9: +reflect.getprototypeof@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== @@ -4327,37 +4509,38 @@ reusify@^1.0.4: integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rollup@^4.43.0: - version "4.62.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.62.0.tgz#f68956c966f3c4a51dafbafc5d5388553244191b" - integrity sha512-nc72Wgq62I7rtDV4izT5/aaS0zxy3kttkinf9586ApknY3jZO9NYsmtc24fUckA0X7Q2v+ML4a15pdUlV5V/jA== + version "4.63.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.63.4.tgz#cff29b8d6d959aee7cb5e44b0dad70074493dbf8" + integrity sha512-4U0liVayNIoLp3GFl1FcI8561WepLnZ1rqfraGh7S9B3Ur5F9S283y8Futii7RUU2C/97tOBmBy7nYvhoiOpbQ== dependencies: "@types/estree" "1.0.9" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.62.0" - "@rollup/rollup-android-arm64" "4.62.0" - "@rollup/rollup-darwin-arm64" "4.62.0" - "@rollup/rollup-darwin-x64" "4.62.0" - "@rollup/rollup-freebsd-arm64" "4.62.0" - "@rollup/rollup-freebsd-x64" "4.62.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.62.0" - "@rollup/rollup-linux-arm-musleabihf" "4.62.0" - "@rollup/rollup-linux-arm64-gnu" "4.62.0" - "@rollup/rollup-linux-arm64-musl" "4.62.0" - "@rollup/rollup-linux-loong64-gnu" "4.62.0" - "@rollup/rollup-linux-loong64-musl" "4.62.0" - "@rollup/rollup-linux-ppc64-gnu" "4.62.0" - "@rollup/rollup-linux-ppc64-musl" "4.62.0" - "@rollup/rollup-linux-riscv64-gnu" "4.62.0" - "@rollup/rollup-linux-riscv64-musl" "4.62.0" - "@rollup/rollup-linux-s390x-gnu" "4.62.0" - "@rollup/rollup-linux-x64-gnu" "4.62.0" - "@rollup/rollup-linux-x64-musl" "4.62.0" - "@rollup/rollup-openbsd-x64" "4.62.0" - "@rollup/rollup-openharmony-arm64" "4.62.0" - "@rollup/rollup-win32-arm64-msvc" "4.62.0" - "@rollup/rollup-win32-ia32-msvc" "4.62.0" - "@rollup/rollup-win32-x64-gnu" "4.62.0" - "@rollup/rollup-win32-x64-msvc" "4.62.0" + "@napi-rs/lzma-linux-x64-gnu" "1.5.1" + "@rollup/rollup-android-arm-eabi" "4.63.4" + "@rollup/rollup-android-arm64" "4.63.4" + "@rollup/rollup-darwin-arm64" "4.63.4" + "@rollup/rollup-darwin-x64" "4.63.4" + "@rollup/rollup-freebsd-arm64" "4.63.4" + "@rollup/rollup-freebsd-x64" "4.63.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.63.4" + "@rollup/rollup-linux-arm-musleabihf" "4.63.4" + "@rollup/rollup-linux-arm64-gnu" "4.63.4" + "@rollup/rollup-linux-arm64-musl" "4.63.4" + "@rollup/rollup-linux-loong64-gnu" "4.63.4" + "@rollup/rollup-linux-loong64-musl" "4.63.4" + "@rollup/rollup-linux-ppc64-gnu" "4.63.4" + "@rollup/rollup-linux-ppc64-musl" "4.63.4" + "@rollup/rollup-linux-riscv64-gnu" "4.63.4" + "@rollup/rollup-linux-riscv64-musl" "4.63.4" + "@rollup/rollup-linux-s390x-gnu" "4.63.4" + "@rollup/rollup-linux-x64-gnu" "4.63.4" + "@rollup/rollup-linux-x64-musl" "4.63.4" + "@rollup/rollup-openbsd-x64" "4.63.4" + "@rollup/rollup-openharmony-arm64" "4.63.4" + "@rollup/rollup-win32-arm64-msvc" "4.63.4" + "@rollup/rollup-win32-ia32-msvc" "4.63.4" + "@rollup/rollup-win32-x64-gnu" "4.63.4" + "@rollup/rollup-win32-x64-msvc" "4.63.4" fsevents "~2.3.2" router@^2.2.0: @@ -4432,9 +4615,9 @@ scheduler@^0.27.0: integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.3: - version "7.8.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.4.tgz#c73eceebae0616934be8dff28a7fd70757c8e696" - integrity sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA== + version "7.8.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" + integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== send@^1.1.0, send@^1.2.0: version "1.2.1" @@ -4552,9 +4735,9 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.6.1: - version "1.8.4" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.4.tgz#2edd9a4dcefc96649e2e2cb12f637b1f1d92a190" - integrity sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ== + version "1.10.0" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.10.0.tgz#482033e192e4f5c07151521ffa03400ec71b1b0f" + integrity sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA== shimmer@^1.1.0: version "1.2.1" @@ -4590,7 +4773,7 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.1.0: +side-channel@^1.1.0, side-channel@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab" integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== @@ -4608,7 +4791,7 @@ siginfo@^2.0.0: signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== smart-buffer@^4.2.0: @@ -4626,9 +4809,9 @@ socks-proxy-agent@^8.0.5: socks "^2.8.3" socks@^2.8.3: - version "2.8.9" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.9.tgz#aa5f130ca0f88a43fa44faf4869c50d22aa27752" - integrity sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw== + version "2.8.10" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.10.tgz#23aab4dccc1fdae110aaf4fa51cd190552432dc5" + integrity sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ== dependencies: ip-address "^10.1.1" smart-buffer "^4.2.0" @@ -4665,9 +4848,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.23" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz#b069e687b1291a32f126893ed76a27a745ee2133" - integrity sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw== + version "3.0.24" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.24.tgz#550436df9dc7dcf5c29832ceda40256a9b00de3a" + integrity sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ== split2@^4.1.0: version "4.2.0" @@ -4723,9 +4906,9 @@ streamsearch@^1.1.0: integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== streamx@^2.12.5, streamx@^2.15.0, streamx@^2.25.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.28.0.tgz#035ab56057b7ed2211b51d532e6973f0f99fbf11" - integrity sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw== + version "2.28.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.28.1.tgz#376cd42a089505a69bec0efdb5189aa45586141f" + integrity sha512-zEzXb0s5Cds7tqMH6rhZ05lcJydCWiQPEwiNngVqzsxCc962vLY4Uw+mW7od8kDH258k2Uz/JrOkdIAAhSh9VA== dependencies: events-universal "^1.0.0" fast-fifo "^1.3.2" @@ -4742,7 +4925,7 @@ streamx@^2.12.5, streamx@^2.15.0, streamx@^2.25.0: string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -4751,7 +4934,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -4817,14 +5000,14 @@ string_decoder@^1.1.1: strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== dependencies: ansi-regex "^6.2.2" @@ -4865,7 +5048,7 @@ superagent@^10.0.0, superagent@^10.3.0: supertest@7.2.2: version "7.2.2" - resolved "https://registry.npmjs.org/supertest/-/supertest-7.2.2.tgz#dac3ee25a2aa59942a7f641e50c838a7c8819204" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-7.2.2.tgz#dac3ee25a2aa59942a7f641e50c838a7c8819204" integrity sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA== dependencies: cookie-signature "^1.2.2" @@ -4911,9 +5094,9 @@ swagger-parser@^10.0.3: "@apidevtools/swagger-parser" "10.0.3" swagger-ui-dist@>=5.0.0: - version "5.32.6" - resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.32.6.tgz#4a6a56786915ea4bfea43f00ff17890df8124d4c" - integrity sha512-75ttZNaYCLoFPnozPZcTUU6mS3wKT8l7WLjU5zJSHFeJa23i5vtnze6IiCl4jDMPeQTXVXIgovq4M11NNfQvSA== + version "5.33.0" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.33.0.tgz#db69b90adfa96e1d5ac2f40d1cdc31f3dc663780" + integrity sha512-wpdK+m6BU5yj6pmUdMskZVTSWYG4DLglAx3sIhylloY37i8O37IrH+YEpqdXNfpaTGxILRBFzUqLF2jKqbfI7A== dependencies: "@scarf/scarf" "=1.4.0" @@ -4925,9 +5108,9 @@ swagger-ui-express@5.0.1: swagger-ui-dist ">=5.0.0" tar-fs@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.1.2.tgz#114b012f54796f31e62f3e57792820a80b83ae6e" - integrity sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw== + version "3.1.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.1.3.tgz#05668cc68a30741c3813f9c16593b8dec7dcbcd1" + integrity sha512-/hU4AXnIdZu+Gvl1pk0oI5f5HxWsCJRtY2aFaJdk9VvyL48DWU6iU5WAIPG+wIi1YvWA6eTJvIviP/tMAZZNwQ== dependencies: pump "^3.0.0" tar-stream "^3.1.5" @@ -4936,9 +5119,9 @@ tar-fs@^3.1.1: bare-path "^3.0.0" tar-stream@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.2.0.tgz#0d0064d9b67ea3c9f5abde155e35faab0df37591" - integrity sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg== + version "3.2.1" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.2.1.tgz#952d72f7aba68ce5cb802ef2e0b19f1bd989140d" + integrity sha512-nqsEO8zLZJvrOMdEwkA0QdCLFbetHMn95Zqu4fKwX+hkaTWJPZZOrxx/PwtxoK0MMGQmBQNRW3CPs8IFYQz4cQ== dependencies: b4a "^1.6.4" bare-fs "^4.5.5" @@ -4946,9 +5129,9 @@ tar-stream@^3.1.5: streamx "^2.15.0" tarn@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" - integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== + version "3.1.2" + resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.1.2.tgz#d2922d34a232c8b027605f3873a9c55318ce4f34" + integrity sha512-3RTvqKZcK/17jnJ8rMKFXbyNogywTs1z0gVPPwFsJGX46rkmUHOdIaSQ/aVO1rS7nH+soiXiWk7rvUXxndm8Dg== teex@^1.0.1: version "1.0.1" @@ -5015,9 +5198,9 @@ tinyglobby@^0.2.15: picomatch "^4.0.4" tinyrainbow@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.1.0.tgz#1d8a623893f95cf0a2ddb9e5d11150e191409421" - integrity sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.1.1.tgz#c0168387d3d8d70b6b3c2c0936de5fee738cea20" + integrity sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw== to-regex-range@^5.0.1: version "5.0.1" @@ -5056,7 +5239,7 @@ tslib@^2.0.1: tsx@4.21.0: version "4.21.0" - resolved "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.21.0.tgz#32aa6cf17481e336f756195e6fe04dae3e6308b1" integrity sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw== dependencies: esbuild "~0.27.0" @@ -5121,17 +5304,16 @@ typed-array-byte-length@^1.0.3: is-typed-array "^1.1.14" typed-array-byte-offset@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" - integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.5.tgz#c076d6a0db563933154b3c442204b614bf0d7b15" + integrity sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - for-each "^0.3.3" + call-bind "^1.0.9" + for-each "^0.3.5" gopd "^1.2.0" - has-proto "^1.2.0" is-typed-array "^1.1.15" - reflect.getprototypeof "^1.0.9" + reflect.getprototypeof "^1.0.10" typed-array-length@^1.0.7: version "1.0.8" @@ -5180,10 +5362,10 @@ unbox-primitive@^1.1.0: has-symbols "^1.1.0" which-boxed-primitive "^1.1.1" -"undici-types@>=7.24.0 <7.24.7": - version "7.24.6" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91" - integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== +undici-types@~8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.9.0.tgz#e240d97c8b5d85e5347ce73d25865c7906c1ec9f" + integrity sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg== unpipe@~1.0.0: version "1.0.0" @@ -5245,11 +5427,11 @@ verror@1.10.0: extsprintf "^1.2.0" "vite@^6.0.0 || ^7.0.0": - version "7.3.5" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.5.tgz#90c2d0b7b94a224e7e7dcf22d2912ff0b5291165" - integrity sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww== + version "7.3.6" + resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.6.tgz#0547a395e68d3746e9a505f1fd4469fe09b49cc4" + integrity sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg== dependencies: - esbuild "^0.27.0" + esbuild "^0.27.0 || ^0.28.0" fdir "^6.5.0" picomatch "^4.0.3" postcss "^8.5.6" @@ -5330,9 +5512,9 @@ which-collection@^1.0.2: is-weakset "^2.0.3" which-typed-array@^1.1.16, which-typed-array@^1.1.19: - version "1.1.22" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.22.tgz#8f3cc78aefb40b437346dd40a1dbfa5d1da43fe9" - integrity sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw== + version "1.1.24" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.24.tgz#211f5877c29e6213d50e8f2dce4ac9ca2d0008cf" + integrity sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ== dependencies: available-typed-arrays "^1.0.7" call-bind "^1.0.9" @@ -5394,7 +5576,7 @@ word-wrap@^1.2.5: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -5403,7 +5585,7 @@ wrap-ansi@^7.0.0: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -5416,9 +5598,9 @@ wrappy@1: integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.18.3: - version "8.21.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" - integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== xtend@^4.0.0, xtend@^4.0.2: version "4.0.2" @@ -5441,9 +5623,9 @@ yargs-parser@^21.1.1: integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + version "17.7.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.3.tgz#779dffe6bcafec596a7172e983289a588647faaa" + integrity sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g== dependencies: cliui "^8.0.1" escalade "^3.1.1" From 54724fb58c50144d10a11f0b4203eaca93b103ca Mon Sep 17 00:00:00 2001 From: Dimitri Date: Fri, 25 Sep 2026 12:22:04 -0300 Subject: [PATCH 41/58] fix: corrige inconsistencia com "SubstitiuiRotasController" --- .../{SubstituirRotaController.ts => SubstituiRotaController.ts} | 0 src/application/expedicao/index.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/application/expedicao/{SubstituirRotaController.ts => SubstituiRotaController.ts} (100%) diff --git a/src/application/expedicao/SubstituirRotaController.ts b/src/application/expedicao/SubstituiRotaController.ts similarity index 100% rename from src/application/expedicao/SubstituirRotaController.ts rename to src/application/expedicao/SubstituiRotaController.ts diff --git a/src/application/expedicao/index.ts b/src/application/expedicao/index.ts index 051fdf75..f38d475c 100644 --- a/src/application/expedicao/index.ts +++ b/src/application/expedicao/index.ts @@ -19,7 +19,7 @@ import { CadastraExpedicaoController } from './CadastraExpedicaoController' import { DeletaExpedicaoController } from './DeletaExpedicaoController' import { ListaExpedicoesController } from './ListaExpedicoesController' import { RemoveParticipanteController } from './RemoveParticipanteController' -import { SubstituiRotasController } from './SubstituirRotaController' +import { SubstituiRotasController } from './SubstituiRotaController' export function routes(knex: Knex): Route[] { const expedicaoCollection = createExpedicaoCollection() From 2f9f3d66f4817040edc4f5cd86c9c6a60d03e9a6 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Fri, 25 Sep 2026 19:06:29 -0300 Subject: [PATCH 42/58] fix: remove interface duplicada ExpedicaoListItem --- src/domain/expedicao/Expedicao.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/domain/expedicao/Expedicao.ts b/src/domain/expedicao/Expedicao.ts index 0a22d4f5..f3cc1f7e 100644 --- a/src/domain/expedicao/Expedicao.ts +++ b/src/domain/expedicao/Expedicao.ts @@ -12,11 +12,6 @@ export interface Attributes { updated_by: number | null } -export interface ExpedicaoListItem extends Attributes { - participantes: number[] - rotas: number[] -} - export interface ParticipanteDetalhado { id: number nome: string From 3efcf58adc68708548323eebef5bbe78e692bd50 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Fri, 25 Sep 2026 19:07:50 -0300 Subject: [PATCH 43/58] refactor: implementa DuplicateParticipantError para tratamento do 409 --- src/infrastructure/ExpedicaoCollectionKnexAdapter.ts | 6 +++++- src/infrastructure/error/DuplicateParticipantError.ts | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/infrastructure/error/DuplicateParticipantError.ts diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 6b5538eb..1efdf66d 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -6,6 +6,7 @@ import { import { ExpedicaoCollection, ExpedicaoFilters, ExpedicaoListItem, ParticipanteExpedicao, Paginated } from '@/domain/expedicao/ExpedicaoCollection' +import { DuplicateParticipantError } from '@/infrastructure/error/DuplicateParticipantError' import { Either } from '@/library/either/Either' import { CollectionError } from './error/CollectionError' @@ -281,7 +282,10 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { const dbError = error as { code?: string } if (dbError.code === '23505') { - return Either.left(new Error('Participante já está nesta expedição.')) + return Either.left(new DuplicateParticipantError({ + message: 'O usuário já está nesta expedição', + cause: dbError + })) } return Either.left(new CollectionError({ message: 'Falha ao adicionar participante', cause: error })) } diff --git a/src/infrastructure/error/DuplicateParticipantError.ts b/src/infrastructure/error/DuplicateParticipantError.ts new file mode 100644 index 00000000..3bad74da --- /dev/null +++ b/src/infrastructure/error/DuplicateParticipantError.ts @@ -0,0 +1,7 @@ +import { InfrastructureError } from './InfrastructureError' + +export class DuplicateParticipantError extends InfrastructureError { + constructor(params: { message: string; cause?: unknown }) { + super(params) + } +} From 66466f38a29b4f7fd0192d6e4dd9071264988e41 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Fri, 25 Sep 2026 19:10:38 -0300 Subject: [PATCH 44/58] refactor: altera mapeamento de erro para usar error.name e corrige o nome do SubstituiRotaController --- .../expedicao/AdicionaParticipanteController.ts | 12 ++++++------ src/application/expedicao/SubstituiRotaController.ts | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/application/expedicao/AdicionaParticipanteController.ts b/src/application/expedicao/AdicionaParticipanteController.ts index b6198278..630225e2 100644 --- a/src/application/expedicao/AdicionaParticipanteController.ts +++ b/src/application/expedicao/AdicionaParticipanteController.ts @@ -43,16 +43,16 @@ export class AdicionaParticipanteController implements RequestHandler { } const result = await this.adicionaParticipanteUseCase.execute(Number(expedicaoId), usuarioId) + if (result.left()) { - if (result.value.message.includes('já está nesta expedição')) { - return new ConflictError({ message: result.value.message }) + const error = result.value + if (error.name === 'DuplicateParticipantError') { + return new ConflictError({ message: error.message }) } - - if (result.value.name === 'CollectionError' || result.value.message.includes('Falha ao adicionar')) { + if (error.name === 'CollectionError') { return new InternalServerError({ message: 'Falha interna ao adicionar participante' }) } - - return new BadRequestError({ message: result.value.message }) + return new BadRequestError({ message: error.message }) } return { diff --git a/src/application/expedicao/SubstituiRotaController.ts b/src/application/expedicao/SubstituiRotaController.ts index 3883b85c..f4525c7c 100644 --- a/src/application/expedicao/SubstituiRotaController.ts +++ b/src/application/expedicao/SubstituiRotaController.ts @@ -41,10 +41,11 @@ export class SubstituiRotasController implements RequestHandler { const result = await this.SubstituiRotasUseCase.execute(Number(expedicaoId), rotas) if (result.left()) { - if (result.value.name === 'CollectionError' || result.value.message.includes('Falha')) { + const error = result.value + if (error.name === 'CollectionError') { return new InternalServerError({ message: 'Falha interna ao substituir rotas' }) } - return new BadRequestError({ message: result.value.message }) + return new BadRequestError({ message: error.message }) } return { From f8d2b62d4dad2ac947e136dd8c984359cf89e269 Mon Sep 17 00:00:00 2001 From: Arthur Souza Date: Sat, 26 Sep 2026 18:32:30 -0300 Subject: [PATCH 45/58] feat: implementa DELETE evidencias --- .../evidencia/RemoverEvidenciaController.ts | 46 +++++++++++++++++++ src/domain/evidencia/EvidenciaCollection.ts | 1 + .../evidencia/RemoverEvidenciaUseCase.ts | 35 ++++++++++++++ .../EvidenciaCollectionKnexAdapter.ts | 9 ++++ 4 files changed, 91 insertions(+) create mode 100644 src/application/evidencia/RemoverEvidenciaController.ts create mode 100644 src/domain/evidencia/RemoverEvidenciaUseCase.ts diff --git a/src/application/evidencia/RemoverEvidenciaController.ts b/src/application/evidencia/RemoverEvidenciaController.ts new file mode 100644 index 00000000..2739113d --- /dev/null +++ b/src/application/evidencia/RemoverEvidenciaController.ts @@ -0,0 +1,46 @@ +import { RemoverEvidenciaUseCase } from '@/domain/evidencia/RemoverEvidenciaUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + removerEvidenciaUseCase: RemoverEvidenciaUseCase +} + +export class RemoverEvidenciaController implements RequestHandler { + private readonly removerEvidenciaUseCase: RemoverEvidenciaUseCase + + constructor(dependencies: Dependencies) { + this.removerEvidenciaUseCase = dependencies.removerEvidenciaUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { evidenciaId: rawEvidenciaId } = request.params as { evidenciaId?: string } + const evidenciaId = parseId(rawEvidenciaId, 'evidenciaId') + if (evidenciaId instanceof Error) return new BadRequestError({ message: evidenciaId.message}) + + const result = await this.removerEvidenciaUseCase.execute({ id: evidenciaId }) + + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } + + if (!result.value) { + return new NotFoundError({ message: 'Evidência não encontrada'}) + } + + return { statusCode: StatusCode.NoContent} + } +} + +function parseId(raw: unknown, field: string): number | Error { + if (typeof raw!== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} \ No newline at end of file diff --git a/src/domain/evidencia/EvidenciaCollection.ts b/src/domain/evidencia/EvidenciaCollection.ts index d6fbae1e..8b4f4a75 100644 --- a/src/domain/evidencia/EvidenciaCollection.ts +++ b/src/domain/evidencia/EvidenciaCollection.ts @@ -17,4 +17,5 @@ export interface EvidenciaCollection { findAll(filters: EvidenciaFilters): Promise> findById(id: number): Promise> create(attributes: CreateAttributes): Promise> + delete(id: number): Promise> } diff --git a/src/domain/evidencia/RemoverEvidenciaUseCase.ts b/src/domain/evidencia/RemoverEvidenciaUseCase.ts new file mode 100644 index 00000000..75a6751b --- /dev/null +++ b/src/domain/evidencia/RemoverEvidenciaUseCase.ts @@ -0,0 +1,35 @@ +import { unlink } from 'node:fs/promises' +import path from 'node:path' + +import { Either } from '@/library/either/Either' + +import { EvidenciaCollection } from './EvidenciaCollection' + +const UPLOADS_DIR = path.join(process.cwd(), 'uploads', 'evidencias') + +interface Dependencies { + evidenciaCollection: EvidenciaCollection +} + +export class RemoverEvidenciaUseCase { + private readonly evidenciaCollection: EvidenciaCollection + + constructor(dependencies: Dependencies) { + this.evidenciaCollection = dependencies.evidenciaCollection + } + + async execute({ id }: { id: number }): Promise> { + const evidencia = await this.evidenciaCollection.findById(id) + if (evidencia.left()) return Either.left(evidencia.value) + if (!evidencia.value) return Either.right(false) + + const deleted = await this.evidenciaCollection.delete(id) + if (deleted.left()) return Either.left(deleted.value) + + if (deleted.value) { + await unlink(path.join(UPLOADS_DIR, evidencia.value.arquivo)).catch(() => {}) + } + + return deleted + } +} \ No newline at end of file diff --git a/src/infrastructure/EvidenciaCollectionKnexAdapter.ts b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts index 13229705..f2c42f2f 100644 --- a/src/infrastructure/EvidenciaCollectionKnexAdapter.ts +++ b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts @@ -125,4 +125,13 @@ export class EvidenciaCollectionKnexAdapter implements EvidenciaCollection { return Either.left(toInfrastructureError('Failed to create evidência', error)) } } + + async delete(id: number): Promise> { + try { + const deletedCount = await this.knex('evidencias').where({id}).delete() + return Either.right(deletedCount > 0) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to delete evidencia', cause: error })) + } + } } From 94e34896b5c38df653f43ee3eb92f6aa853a5736 Mon Sep 17 00:00:00 2001 From: Arthur Souza Date: Sat, 26 Sep 2026 18:56:32 -0300 Subject: [PATCH 46/58] =?UTF-8?q?fix:=20remove=20arquivos=20=C3=B3rf=C3=A3?= =?UTF-8?q?os=20ap=C3=B3s=20ON=20DELETE=20CASCADE=20de=20evento=20ou=20exp?= =?UTF-8?q?edi=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/domain/evento/RemoverEventoUseCase.ts | 27 +++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/domain/evento/RemoverEventoUseCase.ts b/src/domain/evento/RemoverEventoUseCase.ts index 40e5a66d..d3ccbda3 100644 --- a/src/domain/evento/RemoverEventoUseCase.ts +++ b/src/domain/evento/RemoverEventoUseCase.ts @@ -1,19 +1,42 @@ +import { unlink } from 'node:fs/promises' +import path from 'node:path' + +import { EvidenciaCollection } from '@/domain/evidencia/EvidenciaCollection' import { Either } from '@/library/either/Either' import { EventoCollection } from './EventoCollection' +const UPLOADS_DIR = path.join(process.cwd(), 'uploads', 'evidencias') + interface Dependencies { eventoCollection: EventoCollection + evidenciaCollection: EvidenciaCollection } export class RemoverEventoUseCase { private readonly eventoCollection: EventoCollection + private readonly evidenciaCollection: EvidenciaCollection constructor(dependencies: Dependencies) { this.eventoCollection = dependencies.eventoCollection + this.evidenciaCollection = dependencies.evidenciaCollection } - execute({ id }: { id: number }): Promise> { - return this.eventoCollection.delete(id) + async execute({ id }: { id: number }): Promise> { + const evidencias = await this.evidenciaCollection.findAll({ evento_id: id }) + if (evidencias.left()) return Either.left(evidencias.value) + + const deleted = await this.eventoCollection.delete(id) + if (deleted.left()) return Either.left(deleted.value) + + if (deleted.value) { + await Promise.all( + evidencias.value.map((evidencia) => + unlink(path.join(UPLOADS_DIR, evidencia.arquivo)).catch(() => {}) + ) + ) + } + + return deleted } } From 59c6af03d252da2bbdc050af3f9477f3dafc5093 Mon Sep 17 00:00:00 2001 From: Arthur Souza Date: Sat, 26 Sep 2026 20:24:50 -0300 Subject: [PATCH 47/58] =?UTF-8?q?test:=20cobre=20remo=C3=A7=C3=A3o=20de=20?= =?UTF-8?q?arquivos=20de=20evid=C3=AAncias=20no=20RemoverEventoUseCase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evento/RemoverEventoUseCase.test.ts | 116 ++++++++++++++++-- 1 file changed, 107 insertions(+), 9 deletions(-) diff --git a/test/unit/domain/evento/RemoverEventoUseCase.test.ts b/test/unit/domain/evento/RemoverEventoUseCase.test.ts index ad70f49d..22c01acc 100644 --- a/test/unit/domain/evento/RemoverEventoUseCase.test.ts +++ b/test/unit/domain/evento/RemoverEventoUseCase.test.ts @@ -1,12 +1,27 @@ +import path from 'node:path' + import { - describe, expect, test, vi + beforeEach, describe, expect, test, vi } from 'vitest' +import { Attributes as EvidenciaAttributes } from '@/domain/evidencia/Evidencia' +import { EvidenciaCollection } from '@/domain/evidencia/EvidenciaCollection' import { EventoCollection } from '@/domain/evento/EventoCollection' import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' import { Either } from '@/library/either/Either' -const makeMockCollection = (overrides?: Partial): EventoCollection => ({ +const { unlinkMock } = vi.hoisted(() => ({ + unlinkMock: vi.fn().mockResolvedValue(undefined) +})) + +vi.mock('node:fs/promises', () => ({ + unlink: unlinkMock +})) + +const UPLOADS_DIR = path.join(process.cwd(), 'uploads', 'evidencias') + +const makeMockEventoCollection = (overrides?: Partial): EventoCollection => +({ create: vi.fn(), delete: vi.fn().mockResolvedValue(Either.right(true)), findAll: vi.fn(), @@ -15,23 +30,56 @@ const makeMockCollection = (overrides?: Partial): EventoCollec ...overrides }) +const makeMockEvidenciaCollection = (overrides?: Partial): EvidenciaCollection => +({ + create: vi.fn(), + delete: vi.fn(), + findAll: vi.fn().mockResolvedValue(Either.right([])), + findById: vi.fn(), + ...overrides +}) + +const makeEvidencia = (overrides?: Partial): EvidenciaAttributes => +({ + arquivo: 'foto.jpg', + capturado_em: new Date(), + created_at: new Date(), + created_by: null, + evento_id: 10, + id: 1, + mime_type: 'image/jpeg', + nome: 'Foto', + tamanho: 1234, + updated_at: new Date(), + updated_by: null, + ...overrides +}) + describe('RemoverEventoUseCase', () => { + beforeEach(() => { + unlinkMock.mockReset() + unlinkMock.mockResolvedValue(undefined) + }) + test('retorna true quando o evento é removido', async () => { - const collection = makeMockCollection() - const useCase = new RemoverEventoUseCase({ eventoCollection: collection }) + const eventoCollection = makeMockEventoCollection() + const evidenciaCollection = makeMockEvidenciaCollection() + const useCase = new RemoverEventoUseCase({ eventoCollection, evidenciaCollection }) const result = await useCase.execute({ id: 10 }) expect(result.right()).toBe(true) expect(result.value).toBe(true) - expect(collection.delete).toHaveBeenCalledWith(10) + expect(evidenciaCollection.findAll).toHaveBeenCalledWith({ evento_id: 10 }) + expect(eventoCollection.delete).toHaveBeenCalledWith(10) }) test('retorna false quando o evento não existe', async () => { - const collection = makeMockCollection({ + const eventoCollection = makeMockEventoCollection({ delete: vi.fn().mockResolvedValue(Either.right(false)) }) - const useCase = new RemoverEventoUseCase({ eventoCollection: collection }) + const evidenciaCollection = makeMockEvidenciaCollection() + const useCase = new RemoverEventoUseCase({ eventoCollection, evidenciaCollection }) const result = await useCase.execute({ id: 999 }) @@ -41,14 +89,64 @@ describe('RemoverEventoUseCase', () => { test('propaga erro de infraestrutura', async () => { const error = new Error('DB failure') - const collection = makeMockCollection({ + const eventoCollection = makeMockEventoCollection({ delete: vi.fn().mockResolvedValue(Either.left(error)) }) - const useCase = new RemoverEventoUseCase({ eventoCollection: collection }) + const evidenciaCollection = makeMockEvidenciaCollection() + const useCase = new RemoverEventoUseCase({ eventoCollection, evidenciaCollection }) + + const result = await useCase.execute({ id: 10 }) + + expect(result.left()).toBe(true) + expect(result.value).toBe(error) + }) + + test('propaga erro quando busca das evidências falha', async () => { + const error = new Error('DB failure ao buscar evidências') + const eventoCollection = makeMockEventoCollection() + const evidenciaCollection = makeMockEvidenciaCollection({ + findAll: vi.fn().mockResolvedValue(Either.left(error)) + }) + const useCase = new RemoverEventoUseCase({ eventoCollection, evidenciaCollection }) const result = await useCase.execute({ id: 10 }) expect(result.left()).toBe(true) expect(result.value).toBe(error) + expect(eventoCollection.delete).not.toHaveBeenCalled() + }) + + test('apaga os arquivos das evidências do evento removido', async() => { + const evidencias = [ + makeEvidencia({ arquivo: 'foto1.jpg', id: 1 }), + makeEvidencia({ arquivo: 'foto2.jpg', id: 2 }) + ] + const eventoCollection = makeMockEventoCollection() + const evidenciaCollection = makeMockEvidenciaCollection({ + findAll: vi.fn().mockResolvedValue(Either.right(evidencias)) + }) + const useCase = new RemoverEventoUseCase({ eventoCollection, evidenciaCollection }) + + const result = await useCase.execute({ id: 10 }) + + expect(result.value).toBe(true) + expect(unlinkMock).toHaveBeenCalledTimes(2) + expect(unlinkMock).toHaveBeenCalledWith(path.join(UPLOADS_DIR, 'foto1.jpg')) + expect(unlinkMock).toHaveBeenCalledWith(path.join(UPLOADS_DIR, 'foto2.jpg')) + }) + + test('não apaga arquivos quando o evento não é removido', async () => { + const evidencias = [makeEvidencia({ arquivo: 'foto1.jpg '})] + const eventoCollection = makeMockEventoCollection({ + delete: vi.fn().mockResolvedValue(Either.right(false)) + }) + const evidenciaCollection = makeMockEvidenciaCollection({ + findAll: vi.fn().mockResolvedValue(Either.right(evidencias)) + }) + const useCase = new RemoverEventoUseCase({ eventoCollection, evidenciaCollection }) + + await useCase.execute({ id: 10 }) + + expect(unlinkMock).not.toHaveBeenCalled() }) }) From 921f9f03f59413603e894a97544b1cc77122e36c Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 10:49:16 -0300 Subject: [PATCH 48/58] fix(evidencia): registra rota DELETE /v2/evidencias/:evidenciaId --- src/application/evidencia/index.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/application/evidencia/index.ts b/src/application/evidencia/index.ts index 6c75ff5a..04fe6085 100644 --- a/src/application/evidencia/index.ts +++ b/src/application/evidencia/index.ts @@ -1,6 +1,7 @@ import { type Knex } from 'knex' import { CriarEvidenciaUseCase } from '@/domain/evidencia/CriarEvidenciaUseCase' +import { RemoverEvidenciaUseCase } from '@/domain/evidencia/RemoverEvidenciaUseCase' import { EventoCollectionKnexAdapter } from '@/infrastructure/EventoCollectionKnexAdapter' import { EvidenciaCollectionKnexAdapter } from '@/infrastructure/EvidenciaCollectionKnexAdapter' import { evidenciaUpload } from '@/infrastructure/EvidenciaUploadMiddleware' @@ -9,6 +10,7 @@ import { Route } from '@/library/http/Router' import { CriarEvidenciaController } from './CriarEvidenciaController' import { ListarEvidenciasController } from './ListarEvidenciasController' +import { RemoverEvidenciaController } from './RemoverEvidenciaController' import { validarEventoExisteMiddleware } from './ValidarEventoExisteMiddleware' export function routes(knex: Knex): Route[] { @@ -30,6 +32,15 @@ export function routes(knex: Knex): Route[] { handlers: [new ListarEvidenciasController({ evidenciaCollection })], method: Method.Get, path: '/v2/eventos/:eventoId/evidencias' + }, + { + handlers: [ + new RemoverEvidenciaController({ + removerEvidenciaUseCase: new RemoverEvidenciaUseCase({ evidenciaCollection }) + }) + ], + method: Method.Delete, + path: '/v2/evidencias/:evidenciaId' } ] } From a5a77387ac09c4ff7d191092961271e964f14269 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 10:51:02 -0300 Subject: [PATCH 49/58] fix(build): remove artefatos locais de Yarn Berry commitados por engano --- .gitignore | 4 ++++ .yarn/install-state.gz | Bin 666127 -> 0 bytes .yarnrc.yml | 8 -------- 3 files changed, 4 insertions(+), 8 deletions(-) delete mode 100644 .yarn/install-state.gz delete mode 100644 .yarnrc.yml diff --git a/.gitignore b/.gitignore index 265da821..31ac6bd9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,10 @@ dist/ coverage/ node_modules/ +# Yarn Berry local state — este projeto usa Yarn Classic (yarn lockfile v1) +.yarnrc.yml +.yarn/ + uploads/ mysql/data/ postgresql/ diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz deleted file mode 100644 index 9b12ed02776dae07990456d982721c2fdb778fbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666127 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

      d&f`UL5cuwi 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

      $< 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

      L;TBt3{km+;Zn8W;2ofFvm*!e&CLZ9Spt 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

      4WOKT@D(Gz)$ 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

    1. #`-Tw;F3Cl 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

      TQ#*rb0YO;!Zg@dChq zDkk%7)E4k_1DF-`P@sKBl8oY(b~uq1A{>yDeok-MId0F*A9xPN%}aOhoA=DV`wlPb zdyilL=4a>ZF*fZO10C^fBUdAFS##Cgo785Uja*FbNV45N5YC2vxlRE|7h>xW_>{|? zn(yp;jgb>)p_Q}*f+}H54uqOs=G2M|k=f_N-})99A7{a3Wa$S?P&g@h8+%bVrjW4> zr}4^Q*pHWILnV-RXivcKyx#5jeSulcioQke)sJ*|2bZ+ThQd4@7%K}UAjT(et^2TwuB{Q zyPP?;lJ~~yX60z$4Vh!@?%^F~7C}#>)o|HG;!y$p+Q|bIQ$J|1h^#tOx7e{#031rt zouhIj>a+k$R7+0q2JZHDu{|}KM&CMX3$mARFzLOmh*2W#OvJ?aQCCWZi=3)0^kAlE zMpwiV_ds0y)ZLF2i$rcqWSsXJ-H3-t`PHjePs_@C z-@CtS2zYAkESU=kG@uN0>hfh>S!p!@fBT;MOn|nB>;ueW@kBymz@Z&e8gHb`j(`9b zercDSjS_I-Mbte{AQ)T|4a(J52H~3(*=eqtX|8^ibU>T=fQBqYfPDJ<*ZBm5M%%y`9CUPR zw7!%L!vHE%qOH`S5tXJEa&kkdjXBFLFXfTw|K7)?89ffRP8@iVqC|!WI0x_u! zS2svJTk$AB=L1C_JutAPjycN}J@^E%?mx*F=jD?v;oi6H*)5^nYzgn9{JwV=^5Osc z7RqmTGG9qEC+RkXj2wpl0}yJmFvI+-^Fiudsq2(oyl1xt^?PH_e)^oy=a(!cMILYw z24_~`NoMmBdkDz4m@r@@^Wv1B~v=Qn1Vye0<%Rn z=CoWbTn>@ZA_@gsstv-@86u;{g(Cq1Id;!-c$NUcOGANvb}r~~HEhOhr}r=U&tAWH z{rb}vUwrv_z5FzvsGjb9`@X9{(?b^uX0-{}e$TxnDvn*KV>zSAn!EM2F0QB-&@*&F zC+5LPA86$5Fesb`JsDh|h`ND(Oqf>rSgX!*?R|T(cOlC$*EBS{Zg=8D#R+CcAX2e) zSWKpku8s+Ez}|4?mc0*@C(h`w(FUZ+0aIKZ3pGrM+P6z%%4+%~a{YDw=~wyb%YW?YneWc`?TJ!gd_2Z4D^tGz_8Y(Xa;urEyMQ`o z04^b29AbrC{0;o9Y(6SAQ%f4j4_-N3@;nx1HY~p4LY^v9N-UV zr;AM;vXkcl_#F$c3qEI+DHQ$};aa)Xmbhq_4d7#+D4k2#1Gr$Iqw zqj=2ToY(2H462B}@UQ0ZqYr=cql+{sv(r8XIVH}8dK!F;_UId@*73g2L5Q^)yCj!T zxU@4sA*a?Dm>6ZsEyHP2JG+_cSPHElEX5Y+tW!|-1{l~f4H>PUCFkLvz*P*NEl0mb zxB|2)6tsmU1EJ4N;=n6^7-mYx+=!JFjrD{rzP8rfg*2>L1d;)h@7@}X0k^s$-{=TD zh@+0r0IjoM>e;!b_Yn{O9(@M(fpXBqz0JW3rOn_R7^FEE@y ztqTY$XGexgW^X*u7~oDYybyzo5*>aj+L8?;uCyV9w6;)ni=*-IPvI&iti=L=U-Tin z#{%J5`7|g}6h+NmT44Un7L7Nm z*?@R~4|nm^a8`Kur$4$zB^jb{>|vZ`9r;9kpr|@v1TL)sD2aebC(}!0@nOzWs45zt zJ%qV+B?Rj6YK{AX@&uxXmZ-tAuC!}%=zM~gA2|gbGtJ%~{+a8&K)zzrAoRSE^NEJw z)Y!C7?Cn#x%idOMX%}wa=Q6dX{owq&4_GPQa$F<=p2;Vc1rbg0h1}6yvuT@gh#?JX zO%s88*c7Tg{IefjC@-=jv1AR9f=kby)C;6K3!u2JOWy_Y}8yd zwe2|Af+5}kh(>v#MGFK)$?m6n8iDlZvmYZqiqZ4Z?qdv_V<#U1;e@I0iKu!SQeDP6 ztF73ZD9d#1T&D&vP=DW*Cr?=7F;hnNBLZvSMSzQ?1KAD=b22STyj!Ej!?L6X{^cDvUxfZcj@(8^0A$GCLps`D;g(*3XD# zqd`gNC-s0$3K7w`z&=CJ?9!16TaQJ0zMse zh}m3x7pyR|nyrKk^w7h<@XibZc(gX= zm8L0Mw_ZxQIR`#<+-3KkKDy@=Wq0HodK*{6J_!b5P()$@0GqbfNG@9#;Un!GRp3cw ze1K0zv)bb2w+4%QKk3^O%1`~%mj?%vC)3zF-?v{rq5SS!5IDUf0{Dwxf9Hcc6)PBw zu;1ai=t9caARYLObaeSDGM$UKEFBeYk48CLZ{8k)N$LNKDobof@`?K`_c4*Wx7qZ=_r5+u z12a7d$dz0XTcf(*B4;rQMv-r7gp#Wil@zLaf%qY>gEe=l}=X@ z5eyrSmyf()U*O#>lYzxf=qA>9N_wYXfsVuykD{p?Xser1r$t*bJZA@}9)o!R#YL|! zLlK;uhd10RJ8NJo=!8Z{QfXchaz3jTW--XyBK&+h18vi&TOL|#B04kRZ5vMrp?AKV zXVVmKr9e*~c~2i6fWHC9?eQekU{(pBR zId!fxUnjQY4kaW&)|+S#o=9JZ_}02!*#IH*^&|faf9);z?Y>f~@0POb>Eqm)HB}n| z8?RDg@oZ#mAh9<#!4Og?ZD7t66c@8D50)I#GZ6SXrL1|LIYB{V9&%RgR?;0rsZAtvD0$U*nVPzt3@SoDm5_0jd@Flym#4uYfAswPyXz-IJoy6dj=gg-id#H z{QB=D@&3Ie-fuIBH&!=Dc`S};C^sZ?cn3m_*6hL7(V%4BaXOWqG3!iAo^!P7e4qz! zDVRt=47sPxB?cqF;Nv?AKC#L+;5_8)Dn8Ks-qN%`sVoqq4g*$ZPF{w|Ofb>vtxg+( zIb4-?UZrx_qdn|g~J_@tTbxwENiW;?3^ zsRvOQ(2i=Pn`hWGIcYK$qG}H~>;tTAs&PHnrtl}{0%&)&wwumCT2kl3%G5Y#zn)pr zHD~%)K6?Le|CX5KV~@^AM(%J#UM)aKoHw`)IJ_9GRbs1!Zs;4g!3(R%X2Hy37fvk+Vxtkz>M@7?A~DNE^Q(=aN*45xdm23ZjmxRr-N(nTM}HX)|mPIRtO))3;b&U}JG z`yjQfx9asf-?L|zwSKd#eSoG&YL_c&4}fSJ8deH>^j-*V6Q11BQ0-^7b+rxn zEQ*fWzEI8w)e(m$Mpkg&fyh1>M`sHR$#6Veqpd_b8gCYcswvy;yS8xdKS1b!+z5n7i80#nzJRM2@&M|2}n_%=t&BdFL%!SbYPwOfu_pme$-jyQ4S zcfbGQ>rTl>zx(z7!=L&qH-GB#EByX1{y!Y%-+vsp99pW@K*JfL;AO`D&)%CfTb>+O zev1}B5+v1XX`yW!7TP7uhlp^G{xE6g;qCzxS*R*z7Mi4~zl2(IYiP~$WSaHuWalPG z0{1;G+E~Sx)z%wW<*P#G&G`RsM7aAozcT{978soRx+uo_WA5Q=4QAl-n^Ov!(^9|3 z{P-iHG~-5dn{$QjtlAem&gd!|Ib;b73_Nk70oX^j>oer9R-1um%oCF6%R8g-yMZF3 zv@ujm8NE|4o$_v2CPK^+r3L#dwZ)`NMC1{w}}#`d4+oj1Mo)?zdjMSKhht^v;dX@ttG9 zHW|J;XoIIVVt9`ujuFn1Pb~|kRzD0{HF%Y{>X?tUk0&He$l6dwXACH(o0NyPQjh9` zDq(W9jJpBGDE7!Lu82X}ww~U(3+w()w9~c`(LiK0@*>r4B;a|BC=pUc0zRLmNgOjXbbL9)kQa1}{4G_`}OXIQT*(-CdjfNZ8R_l)Eyr|##^24uw_RB9` zbbQ`=)n47<#?ub>IUU-6vBP1N3YoNd+d>e-W1NjZv!A2}K_eIVFzSXBGUlzc7LUWo&YM;eDHWf0u zrV(QoB`-OgM!^?|yu+UAmCdPAS`B z;iVnC>91y(Cr*F)7q!W!ru6gv_QossLfLOWll_}Qh9Cd>2j2lf*Q_nLq*3&ZDh8|& zVCm%zc7wCV*gf|G$N~94LoCXwY9qZ%62Q!fffCdtgJ(a48W(1>obagk1*3DG>Am9u z9-G!2HQxis^bYP}PjJ7N3mV=C(Yamtx z2BTl6BZ;T%jj;GR_W>Mj_#BTj56B4ieI^DQ5wK^R_y72(--CzILC+-_2)l`4a!89aO(B#9zyZzC#!-BzP|*VD<{%Q?CE}3wI>?d3wFgG7ppw$IwF|9R|OW*=U6LvZnlsz1GTj-N~9A9GFsnf)q?03-Rh3r zLpEIumt1*ii&%BS`sEBvDffWa0r0>JwVIeC70s3jBye;v>RUOd-#|KG@iQm=U;EQv z{Q0{tKE8WYqyQ>>@zo3c+FP&StFt9~nk{`7_F2gry@=f*0|b!1E<39r*i(vV!eVn3 z^8%ji_k`0nf6SV$-gA5SqD|i+@Px!cOB8hEKTGPrd)Q zfBJ|Ua-=Q|TeD&1QXe!KRGf!+3j)AfbxdCzlrHA;PtG+G6I#+f_#C zZWgp#k>#74R}a`)yp%?1sqlqDeu~XFe1Kw|IB0d-Y%8hUn?QM8Aqej)v}uQKyQw~d z@vnqWy$omBsa^WGr1yp0hsIQPMb48g+ZWA?3E%@9i(520&cjRx!mc3VAa{)ilGI(1 z(Rmfr!@xq@q#;g2DHJY+G9@% zK)jJ8A#gPr6y}jL6;kAk>p9Nlxs%4T=Iy~;Z$hN$1c)_a>&kA`f<8U zu(%JWIWkFg1ULbRWEt4wV7M#Egnq1)MUbOnb>_JZ7pGFqu~ypS6$3Ei_C14u=79$> z&33>dg)FF^^nB<2qmS>t{rZpls}~jLTd&(o>OB4Sl>f)S{=sMW#<`$YX=ivHWUm;Y z0%o|IT!h9!6)_hag9FbhaMj`{RHStlp5vpg#}Wd=ePMCGHE;0t>Z?0N*9&lq^;7dp7 z_1#cs;s>-)p-<-_nut3{^>R_RIPhh7;z6e`lN0G*x3<#jF=OQPx1!Z##(dElmua( zG}^O*z-7?-ZL5-@viLqAYsea0RhwH%#@OhZ`zo)otCU+B@pBB`1W@I2@KvNcdP7Ka z$0Jg~r{2a5N@9p@L$(AEbTkX1bEzHfkd;Lgn#W5oF)k(f+%Wn<>|}4fX0Nn}##4yn z_~&9Ldxnv{@yB^?Rm4{xzj*iY+dl_~?3E3Kpca=hyNqTcM>g3R2>Ur15Zo)!5hq7> zOBDi%$0`-P=lGuzgTe1aFV;M*D-PyHwaXEmjp=$-#o;wkOsmX5C^|xTy;l4 zI3$J+Fj!(k#nPCU@&spUEZ}MvBNN#~_#rXZ&Y`yhOcOn$AwfTMXB}bq^J2nw1ZvgR zY3E8UwAb-h&VjnbhecsFj8{9)djIcz4#(5`fB&c7eZV)n!W(5LQH=pM5-x}Y8ad$1 zMO~v{@l!NADw)!aI3jW1No* zdp<*I-+GPz*|70%y?8Hn)dy(hH+I!ezy9X{8~-1C52g-=@w$L9mm}Sjd^omEpFA(` z*aLZ4NDWIx;#?u`N|4b4)!KDu8V=~TOr^^oMbYp;EJ6Q$gf(-%SoH$idwZR{L`ysO5{W8A! z=9THwTQB2_9uRtr`Wx1!AOHFX-@)Yqir`B^U1!!zi^OQCO9^VX2%-sSBQVA{jgi!3 zhxoWHq$S&;+8|CJQb;mXnxe{w=!rObjZ{X;aF(4`m-lQg0wl`1?frlFm_OZnJdPZv zj&}H6UCW#|%(9ppUByxt3x{kG@C?xq){6lIBU{-8A|r$;pIi(T`qZ%>k4FK_#~z=^E%*^N~fV@Bhj7pgOpYV5GP;xrrn1QbgqL0+VdeDqqGEvD2fP+9 z^UjHQ$9P9F8q#=k3=E6r5WmwONmmj7XP#B*I`Cf*Y`0T43H*GWIi0xMdy@Y=0ZZ&F8KE zBs?p*!U!zCTG+7xRf8md$_Z@kh=@+LwI@LKg(xQ|`xmi9?}IUvZUTRQErglwl$fKy z5thso1l$OSh;tq;DAE|2+UI(`-hKV?FTc(|ewp9!)@%2-mf!H!J@Fq-i~be<;9Ga; zUr%r7+$$6tqZJgC=p$a@r2mN9Q!O#VABR}LP|Y9oBl>WpC5eYnc% z=vqz4?$s13Q>wZhD&zP)2P9?YHJ^nHZ~bwe)${%F+YjCE{xrV)<5#JY)F~MYhBhRU zo@R&@QUOb}a!$6bb{9p9#at)s$(;)x zz(A`&bW1>e&C2t*HoyxBV7D_QA~EXfy7xrbMf9<@ZO~vl?~BXB8-JXq$NC4qjGupz z?>>I}0k`*;Pj&8lH-T^rGgZ#?mwHBb5cMYaRDi1YkBZczx zoJ)3{vIFgki;=1{KK_MzmIkK}gpFz{)9DE~-(Nh{KX^P<`kB(tc>kL}dbQVqI}bvz z3~Vj9FrBGos}mT0B9ALH&6|+j&ZHJ6L8QQ0 zHN24SX7>(hMDaRqfY*FJ53=6+6oJE*TyD~M9-0Yueo`|h5*eF zvVDYx6*dr!qKph$IRL2!@6pb=U_!^7ZD8Rn*%v`!x#)%;0GDr}ZW)C)L8gM6u@U1k zpTJh*VZk_iM%y4KE9_}-U!qbz7adw#HbSjCbq#>jJdb4S zjGH_tPpRva?dU}NT%da2+GCu&a_#vR_SPTgb>a+8+gBdt(!O`PuNKU4G~GHCA(@j8 zOq{?BTAZ=XU-Kc;SCuBWL1vTTH_b9Ty<&mw$ZL%uL$5}#mAU5Jo5}v%tVV(CqBtAqC?#JR_iA(PO$mpu`cl1vBk zY1IZqVb-E7C$j@y`h@u+z{`fN&4J8g93b%b?>toeyt}^j$9cw2{59W3o6t$~f_N#N zamCpX`L8R!mSmIO#S46@46h5GbZn$gm{(?CYn?cO*XjogefY{V4`Jd0m3XLx$6%>C zceGYdZEd`+$LcSS(0}#)g52rv|D%8O_um`-=^ZApzx&U`oWsld1e$yNwV!_WlV8K< zUjEm=|LcGA^8fS?e)qQ&lvz_3`^x2)81GS~flpN1auSjV+LoIt`4NZ3krYkqnSpKFAleDTe@sQS7hb+s&CYnMmRv%>ZxOFH(z{bqWgR2 z8O}F`oFR{t6TQ+0IVr$CU3~nDao;1H>F9cC6vpruVRQ<`9zphE2RmE?- zZm;^8^vTck8FsbzjG;bkOwBZ%jx6R_!k_%TP8;g(CFQHHUYm-q@qsa|Z}>oz6#&O! z`!3cn%|i2AjWmlUOfv~1eI;3}%e!_@ImqJC))5bXtheZdku%P6 zf7ZVApMBH$?K@mfp5M5)Ub$Di`uaqM_zoO&-@~C=GwB#10zA5}W$M8A5p5zr^Q^g% znAlWUVeox5Ew4{2;Y*P@2}B}bLYD0_$0|TKj~pH>qt+gYyA*~Dx$gjQZIl=*AiK|R z9NMVYs>^q)CSRE=aI4W~TXDvLB@k&4nY1aq(iep2Lpme9J0x;>{N zM8XjqJVvFDV}O}<$k&1DfL#ZvaARm@*ebXSZoA3_(NB-ybuN;y&hm=ArXq@J z%8Vgv-cX&7LG2`M1X905+(St@g{|x!_wIWcup!!PNO$OpFd(%M41vfIHvkE(0XDWM zao%#(D~VPBfV~QGA*8CQWXJGuULtJgZd-MMOyUW!*myov|L~iyKYsi35B>37#kViE zxwl@sSGKv|9^LWh>7AHa%P#EQ$z$tmLTiokv;n`X%CuwPcxyC)vPxEC;&xPT6cUnU zs60}xXoiNJDF9T0bhwUmAmko0NGh-g_<`&K)JiZEex|1H2t@f!J#y#LYLNmY696I%?ByQNwe6Ev5rml;JahGi zaP>Zm6TbQRyDz@_)?bj*-+0wtecSlyZTk$%hKx19qlD&$fa6mq_)r+ZW+A;mo?;&G zj;>t7oOMqrQtuH2iAWswJ$wYqeMnZC<_0=>a#7y6;GywN$WWlzgKMCz5Wh3z`A}sc zM^_jZmdxz}5zs>DWz7NLO`EID3VhJOz8 z2u>#Spl6-4QN!Yi{X_5rAB!)>bX|D*2%wOx2e7MxIMa%{TrLj$6@@CNnV1IevZZHWPz zL5OJ?Dc5WuW(v=I_H5JRg}5-!n|s$)V$pzimKMbGR?9S#mmw421(f#sovZG} z@2xr&5uBhUf;Q9*49)%&@KDLY0GD@y9%m+!V!d#@Lz-`77kxf-dM*``&d+#KL5^T%gHKv6rxw~OhXIH!@txoN8Tc>kY#4?;}jXT%tI(sK7G*@1{m zRYLXzw#0yc(bH(7p3=qOf(CEq9=>=kJz#`gB=!#XwfAEfg;qG1^1dr>(`Ctf9QiLR z%%+GTGV@vWw2<9dhZr|!ymva8wrzmq(^F~O-nU&6*(~g93<${_N_=#U2;*B=<(&<6 z(piaA-m77J2Elg~dzkG$Xwna=!G6^n1df*HCc@wS_^0vnpZAA%zxv``eev-H@8hjk z??tn8{!Ha(>o=OEzy87B{5!a3#6lI4xQ?xftoMfYJoyo+4e&J!(sItg)ozrdrX_Sm zFjDr--eR1lV=PFMj^8Q^?H+Ij=t4l)pr%2=wN?^_+C;=*d%yorzlYPOCaqDh@~JdF z@;$kc<+|5xymgT7j65ksemyxrzW{WM+aJNlJrAEv;N_kGuJqos7F6)yej7|2kidx^ z^|dbyQt)irou%vekt zJVL*9@_hRBXLr}P%dyljobSDGXI`63ZewC68>y7%E{FMTF3Q>0Ahb&*pz1lVVHwVO%`Pz9;{B%=lwtZ z9`@S1%8{u!H}t3lZR4P0$PfW#X;NfefW=!NDTf>qvP9DzwhLNE0H=XS0%Yqx?$yvK z?X;Ft4FEH^42V}#fprQ#e7Hwve)eOR%TPsx@an-VUh8GPdFB zIS4H~nn#zxHoIW=Y@G-JxU=(+rQNlt#~h3RRo?1o2&?FC%eK*VqleaPdeh#v9MYAN z>AFm1E#GV3VK!rLG%%+f465lGf`=g9!}RtxK7HBEd9`4h1S1=iK6sxDn{+^IKG^oU z=v>wXCs5-Y5jyVg|FiF*eqvxTw>2Rk#uQe%$5nso#J*zZgk4DWVeuTOPrMHD&HWAn zxNXl<<2JN<5_rdeVGguCYXodDb(_G@T7p@kkLg&woshxBix@?{YxcM~Cp7{mcTY7+ zzoUaedC=kp9T6#AKKVkS?Rs<5H1D~B8d$o6$8=$+pUcOnB5BRMFWajVSbdtneugvuIFGaoT8xY;DhRUizX-G;5*W0@ z=uA7?1(I)v2PjV+M41j=bJ1qlg^%lQN7C8?@5RO=WA7ZtA|t^dcC#_E&>6S-*yiZ z>s>muHi14a+L?$H^nKyKB!I}fo+q$>@0b1I=l$-lcElIzrng?dA8Jh94w02dxK#!s zXONQs3xW7`Yty)e6OyQEX#!B%TReyMsTyNmL!Q!Jdyd9VUadGL*E!HT4_vZf9GWq= zR{?GU5jylha7O%~EH}?$lQ&+v-+bkM|JR0j`kDMj-SRts@ssbMOZ3)e_5b{Ps9fd< zJzzR*b{ZpL7l1Qyp0eQ=?S7djX=mHHB#+Roai#^HA|;psdv})xpGot=dv*9mjk>er z9sro;!haWlHeuHk$;I4dF9K0U_PxZR$Y!dGuvDJCA5$8{&c=P@2V6odYjqfE-|zto z(gJS<`L>Qo2*0=}h=X4MST@oc`IzWvq!6d_W2(0hyo^Sy5TEso$p4r6+j#NPzx9&6 za=!c1FxWrGVKBUvCvywLB14zK_j+;SNp)fpFB+dsUE=-1i-3OeIjWW%IK+JxeJ%}3l}X3J&HJYy=z zfJZWGDq|vJ7e;SnVTs+oX3G!GuR#&LH)hUlVgpnaWqFpm%&`G4u-X&h@A$I=X&#C< zk8Oc#fUDJ}yK_e5Tx*7U-aVJ!Q-ZLk!(|Kz89DY9^l9?!qP?N~^uGP;pHB3jee>b#Z@-3+^k?5h^;a(wY2SDiU%Y+#Gycsf(2qX-`fq-`+XMi@ z0g(jTlz9U>R0z79xLOTidn87LE$+v-RR_jkFrnbU2^v-1;ro1MeBjQL@DtQfndRXyOL4M z!bw+kjJo1Xo{rJP4p~UkL@u#ZF2Ixy?LOIdhn=H}Jta$n@<_|2_y6TjAKmCV%n4V= z?5m{~f;&q1LAWdPJ;9yaA$oiD+MTvt6MvMG;c|0N`PRiJaOtT6*5FWKTnt#*nzb30 zY!>8*LONy52g*@h@Bb@&im4;9sjU?3P%sIjGiVnKsa<_27%?S)FQ`5Uc-iAF;5FJU z71m!UPEmhj63Q%a7cWKaZ@p-*>hI`D zfA<+4f!C?%f~Ipq_9=)F1F72aAK;WD^ zx>rV&Iz_8=wJZRMkv1hM7jmc&m^d4mc5ry9h#@!a^nG?)*OrUzypcVK;pbuO7vL1E z@Ey8h&{D5q(~y+fbdnlHJblv6xavtW7hnyz+xW`3B=-`**ErAIH~Mg+AF=qfpv?vZ z^`83IaHu{RcV2Xi-+1l*);Lt)0pZ(2Efc1drDoYu)8Z~dM^UZeE64cb_>psj5iN+U z-FOm$t0!!C| z*;ELr;y^;YqQ*bv9@I1LJwxYO7t&#Zeie>Y zj=gH%3TUA!X5M)J-~RM7fMER#Cf9e)BlGFZ8eQPx9c$`xS8o{PAMA|teB8eE$9esc z{^%3_@fGsKIB?bsxwYZ@Ksok+zwqEuNSlHOoY1P!q$O+S0o!qjHU#f61X;Ge?oHXa zpMoy9WYd8>M)n!ehS(^)+;{S_#O;w$2c+v?^H522gUXFyJmtr|1d(`2US_bh+t6t| zA*tD9R>hF(Zqdzl^dQT5lWl-7MqeiE^|tS}qW4S+nA>qQJItXIt3{4y}krs@Ezj}ZrF;C@go<(WG)OA38wjhebWfIeA~AY0i6aX zA=x8jE(#|EBzcUT6sE$9EX69z7h3YS{y5KuSfq%3h%df6U%y7D*_~Vg{4idoqJ3(d zEwB%fTMW-$0;yo}M4jPhM=A;k50yM4f`qap@0xv0_(g&Pn~qQD2yaJ4ns7Ec(Msj1c+S~sZ% z*j;Dogbg&alTCZ3uz~OG!t>HyVkY=TBH~r2(SRlyQi}cT?Rx7k&hu?Qe-U52NV)GHH7jdv0|E4UI&<8lw7w@e>Mp zApdZ+@pY6Qh%u$Hx5km`<1oFe;vTPqxyG!CM8F}n7Y>t>u|&__hT-M9qxj&`d2%Z8 zbzWcIY_7Tm?mhp1mqI{90L5LUK(_@vHOl>}X(u)RJI=kTIK~q0U za=`QF;WQui`%#a9-reB7A6Pd<9Derkuwp=Jkq3#&JZr8rISA3D+z^eppINQ5XbeO> z5TXU_Ca{a8%pnsg#S(FPJo~7ACw~DU(u<<RGL57&`IoLfwZ}r(*n3$M$7d z;;KVD#JrkwAWfQ=Ksp2Be+@3tIUqvam?H`}Xo=RRDT;A}Pks4Kfar4^+LjswuxiZ#?=AWVx|+|;Q5MDx zVaR;oE^FHj+JVv2g6c6xa=-uYQ4tW_bsXm6660aZ%i%t6WQi7Smu}~?IQMWqy8^bd$@GAJ z-8Er-3qT&$4BsG$aSv0vo!$~_3W3sI3rDgbtO+$?@OX^Chg>1qc1vpNiN&GlEBm1C zL5W5hKZdP?Wx=+k=XpBfx*42`;C2C9AawiIZM$FuHy(KEz^7VgZ8|)=VNN0*}G4WOfJlGuZ*D&Ws+ZgFz!eLgwrcyDusCI!uz(DI)2w4QTG0S z#MeK89!DPAg-7Eq=hTwuGr&Gp;8Xi9};Wr5M=!j+}jWA%z`_5g-U8;Iu8~?;3 zF^D#voecVG0KH{c-33Fu6tszII_eI!u>kZRQDvYmhjgxD9<&6W22?aW&{Sk0HU}$Z zA1n{+$V2X~3&BkZ2!k6$(*%b9<*Zz@5?E(_|3ClqAN=GyuOOgLK1%=ww75mgPKZ1L zcbM*mLR-c-hMWRe-X|!0wj~CzX{hv|=C3o@D(OB36OS6J)Kf?Jgl40xm+FB1BNq?5 zSAoQ&=R4i7)&m2LfkG)5N8rfj^XRt^;+!{a9`sscQ3__8c<``bb(@!-;yD~Dk=D?O zxx3r7K)SD|I0L4!ZJa|_Vpevat&TXH`&>c%xcaLqUFjl1NXM#LsZ(KIS^Z z0$lobcCSWqZBYow2szOHsS00+u%KO#8X@&&QadA?^me;mz9em1hJ`^Ud@jtPk4kfH zbTZE!0k!Brr<4^q>5E(c3p3#K?!^V~(@5=JQ89v1+)cBs*K=;J>!sG(7HD(mfgt(n z$z@3c(x*xGc%=+1mas>*5*4j;jHeT2thi)^mtni(zcG9EG5p>B`0kfq*RQ_pcVG6O zy}Zo4_3FJ+w%U`_!#>Bijz<}E(#U48+4l}zdjZ#ti~oct<(gs?-h2*iDC`y8EeL+< zA=BZwwRWpbbYnTxnqi9T2`A>tWp@{DD=-Ac0k_NOYF8Rc?W0`NG;BoaCeBKlRQEA*gHL;M9*8?S4uRZ|th)i}dt z!4}1q&&}UI_}Cx*VZZzMZG8Jhz8Js1@zT9|f99wA^LOE3cx%b?4@QCg^15~sJz08; zz543IRgA-N4p5L4aiu|9RtLW&w<$16 zn3RW2U=>yyL54p!9-NIyycdYh%OP0fjrU!0IKOlgf4YOebs6(7s;ck0stWgU6XI-B4LbAsBZ)G7g7tgZQG(qD_!7BFUb(@7N>QyvdPM=9;s#1R*d2ZEhincq}Bz zo`Y`1)a`XaaD#e^7r*~sz6U8YhElKbAw;GAO>mp zKQ?R*0M`vqT%;I9t!rXh=5rtu3S!PZDAIgv+Ph2O6^z1j?5mWhBA zYRrheO)?0zKWN%@_Y$Ikm;|V)@4_|-xlIoA_DbOCNC{#9Z{>Pb6TBHR;;&Ihy|r8U zhh(1q!Q>U942NztHVqJptN9XSpUB@rq?8G|bx_+Lo+m&fG}V1X&^4ew!znl4K1c&L z8A+Nz(XIvLeBKUhOTM>HTW5`p<+sQ79S!2`bI0tBKhD#0{n0n^?Jr(U&sw_1kztrg zT!3qxbHE)ib5WV%a16#9DS3ZyV~d~+YH$}Ovbe-&!`T;AP1LtzUxd~ zRf6yn#%xpD;M*vhb2rGUZXgpFCP@v};AA(7+I^<2z))sg!!H2{Kk8c$yRaEbQKv`n zK#H1NLfHaR_w$(UM_+t=_r*6aJWOxAX0I4aep`<*zY9Ia!{};j16*!~Si!!8N{{m} zasyV+g}^W>Ao;flQsHRFRaP>)T)N%)L2g|0-kHRp&kE4iSFPY{R%c%sr3&Z#z6U4V zn(|=gz5iby^7;e84ADZ;0E!Fj;k3~RAg|f`bj|RNjDQ?8w?MK!=e=kXfOYox#-eV8 z-++2-$PO{RKpRWAxYpo<7#@biee@=W;E&hb>;3=sJ&ebD0PD9=fI$yXIfhNllXWHn z79$YB(uKdkJPdnF0ym`*qtW=>=y2t&gEW_Xh~cIlTaangI_r`kwIi1d)*anVg5XB6 zrOYp4=0;(_N_?`};!@Nth7(}IC&N9E0#?J!cLaQSY`0($##rDU;~obwO`~~CsPf&S zWyAUsJGQO0rj0X_x#40K1WR_O9DL&E!tnR<>#zU#i~gf{(Nuoxb$fM`F`h;l6c;&`2YQ~}=*WvLX6 zJ>PoaULXw#E#%**?tc91AN@+4x^U;Yx96^9HUJuoAq1;{jQ9Tpq73rEMmHt) zItcxc9484-dtUIl5$=Mk$70(s55?SeZqQv|YTO841scOHs;JS~#J5(c@v@uSpp@u~ zNG|m?s3nlpLDziLjrafi_psfotrY3Du?{TryJik-t8mF-dK{beFfuB}!Fdm8V>m9H zXC7>`6upq@yG*?g?m;PKZ5XN@{4I~*hB>8B6`0H+xDMm%;q*gl?mjb9-gxC+6~F3} z`1Lbn@Uae&RSfKf-4qBt?%5;eWG`{}AAr#`i4^!zcbG+M?`i0l32sAlP3f6>u z^I_SA`{Ur^u;!W%tnI$5F4WkfCj`@&ioWMqk^|smip%0kuu`mbNQE8E{fx~2oyhEO zzI{R7d+SyE+adH|5?~Q`sNB9Td(ECvQ)~F0dFo-7th>$RKtI03XKlr$yWpWhP&9Z~ z;PGA}PPD9qGcg90!E>CfQDY${dn{oM8e0bXEU{MZ=Z^1Nf1Kz0z%Re}Wxx9rdH)K! z7Fj-gv5_&TDSLT%MZ-Y8JeU`R-4uC&)n6WXTp<&f^ni7X^Xb5MMT5d))xOpAd?UqMGMNTGmVcpylY<#~=#h%n;3 zdRA{eE67Xnj;uC+K0#*eV=z*S2RyK&|^NDl6! z2eBESMnMam*dQ33G;CtX2vup*bR(!W+X9AbJIa%fDr{@sK$1S^asSJI89WsqKE#X5 z>sv404;45D5+J_V!)ImbaC=x6hF$FBS?kh{1zFOLleNd8N8BnG{PlMI&;$A)Otb7E z=6)O!rvl~kUIYXFa1blj$y1PyD`It|$Gy+u^}0BWV7^?e$w^YU9&c|?ZM=6iT<%$P zW?dDTFnwQ0Y=F+*5(}H55`)5Wh|n_ubgWbM)P|}h3t2*Qz=Hw8A-b>_GqL(#I{JU~ z%^&~#k3RlIjs6(k#)qH3I7Hui^Nd=1z&zmtl9V+<7E$m@VeSw-wRW3(cA9EMx?JK0>xOgNN`4mTN)EqF))bHam3h zMsw^JasefuM@JfnTQ!Ev?!Fstx3kIVaw@o8l`(V3@JSZ;!Vk9;S)Go0t1#?TsHP-z z(ILEw@V@}h#fmg4G{4UPC9U>wht8j#)vbTE*_}WCw&O*m@WzYxL$%3eBv|*b8O;Qb zb)_+&8SCuWh-F{QhsSV5M{j#MVSmTFF*I_h9y2(%16qoKHkmQZ25fNGLO6(v^t_8u z1Bw}5gc<9E<$4|v!J>fFP$zhHR>wdzvb2M6J(bq!bI=S=FVvQI>agLwAGWlfXj`Ji ze72&DLn1}C&9WIpXWQkeYH}OS!ZFpdXV5TA3zfa-OcucBc1%ZW>^R*a=xy$O%c_}yoYa)ujuIsLkp?6_2qOnUgk$^_Fz1Vp5&0MA z>yPrwFMjm`bMV$n_u`fFC+E3;7tV83;t*wkJ#z|bp1TYH%6V?8U=zP*A)RBgUqQ=C zmHCr{PiU7LDyrHnVR|B#Te@t$D-NatK&Uvim!L3bIJsKi|DO+Vb4G?%WyI(x5%^Q;_dS3lMZ9c^2npKs)nAbpU=opVkUAn2mpc>jMtY^rDZBY8;B ze_8Fk7EA=_ZInM;W@{mdUb5GkVh%Y(AmzgLGPU#qZzvQ4!tV0fL!1H&N+D?=pRT6v`GXUxB)IpOb zZC(t3pp%J{-8@z@8AH@4>WHudA(om)-k>BAy=%~lv&S*w_y6w$;&b58>jRtfh{TlQ zhU{7*H@0kl;8NIc(y1J=_d1U>Isnkdxvn;@P;t!hz|A2CX)|(r6~SPmmg=6XDy?Aq zyPpEV@Yh-G^#1?*>32_^@nuMsr8{X(X*BpDTXfer;1z6jZ9R=bG7G+B+c>9S{wB+% zdTwh?%C*|@>aWA~FqWVxa?fhzjqch#1AVls%8pTDUhVS?{+plLcd7?qC|gIa=0v3; z0c(|dSff5Zanw?8^)bqvh2XxGl6emu;!*Pq=*03q%m0VB&ec!LqP_7N8st_LznFsTFs2ZGwKf18#(85 zbLR*2#=Z5*y>j*Br>o~@Sz#YafTHT&PHedi#+1(s1Ds--xR~agaYDOPZbe)G%cf=Q zeQ#_8V!Dwh z+Uj!}6H-$2ao6aYu4gE^+X^*jF;0Gv&Qok1_Gn-V))5CBx$&Wlg)%zlLrYzzW5>EN z#vpX(UaA~_bU*aRU%UXvzww&=P`ikvf)@K-Dk3K9VXkDjHT#D6DFhB9u$Zp_{{$SY zL(dx)b#9|ePXm`Y?>!n+;*DpJ@Cq0ES^e0VY=63m3BUk43Ac;rcpmy*p9}@1N$cIM zV;REJPui*7h!!0+;Z$AW{;S0a=TQA(Jp$SI_c`NmC=8;ab;-M^uHQt7i`XEdcUBM({9_twkz%9$!p zRJYF(AqYaKl{E+4zpO0>$r!x3H|jiK`#^>VLrU`2>YhG9JMtx}>H9RC!#)j1bgZpiU)1_{bI4F@f>Q&WLd~(xlMHy>ROc zs|sPMp#Pt}ciq)ANv`uCnj8}3kdj5ifZ;!K8=4;isu__Hd5D22$oJrX2DT9q897~K zcU7yZn&N=E7Q@%!^I5hfpU-ClK3l#BW4*h2$olpsXke=KRTD!3MDOBM&$si-H{Xni zwVtJAg?%~@Uq29<;}pwg^r9BWw1%}k*3NB^6awWXvF0M}S3L<1X^Gsu=s< zz4*$%e(`%xT8Q^vyJzSf)I?(2@L4Nq z1M`DC0(cnrYBR_3zMUc9gAJo6%oREp7epP7c8qM&;JurIc-?YO+QGL?>o$Xh@#171 z6F}VL>A*SSWE-m;X&2$Ep{_^d(-me958F%zpu2%psmPs0OQs7hO19SSu(qu+OnL0^ zI)rT5m6L3t*ciKKqn}Oa9yJSpmWuY?tM{ymw%@2|f9{m#??6=L1+jXWw^N4ZS)R}s z9Rld=&J?&~n1hkN*rLPiwK5hWEnqITy|fI{_rMK*YOFZxAn-=7%T*Pon(IP1hOCv2 z`&uv*)VI41pbrfQ_bff7Hw4L^lhXiT0d|zNjJJ?askSa+UmrbLcB4TQ!YXr3>T85q z$Dwz2;)34ySy~&Jh$awMD+Phw%i9vSs{Z5!`-9(m`}LcbUp>)O-FeZTIpXx@wW=Sb zWqt3-)x*Dt*5ojyKK6l(y#!gdB$B2E;dAH41Op1q#EV324P2M162v%DvI3z{2md>!;6KH<)Zw;Mtoe%%gXOGsARS>{j|Nd+oMXZoKH`_Mm z7EUB9FV_Ny+auVL%3&^DB*?B^fvQ8meQxFYKQNep5cSg$%lo7z=^C09Z z`i_Tx8K2_%_lbxyGJv5mhf9;&x9Y&?v-< zREqEex1>`*iu9=lvFy~2MsjveNtvqa41M@lz5}!N;O?uh8N|S6EGr+-8SUZo6rSXR zQ+UC~Xf4{@cH*=-X=m%5clS0dr)t?~6_afsW#nXcD@VizhfXkeHV^=vwAW?b=_Ipm zm7R%`y{|EjI;Fs1b=ZeFw{?MX@jnw!KVd9$1-6H(`E;;9!E4T{mL@-`kLoS2K=2r&a>O*ab2IWY=<|8Prqp?$%q;#0y-{e zHNfR=^XS=o_k?54PS{x7B`9VI+FHOZ1KsH<=kP(A#ah*2Np1}xd=a4Pd-jF_Vn+** zeJK+1ex~^R6>N~d_MR+a%c$av1wjgz%juVdy14mK9w@SRpAFq+z}e1f(_}KK@-W@a zw29JSZySHDIwfkE>CkgZ@}finR<&kSs1^>&*2um!_rt&X*(HT_A^$d-tt4+)XeH!Ezwe0URc! zu!5GN9{#n9pa~inE#AO|Es+WEXW#Qozz+w6*xf`3-O?(_G}VUKL(+;lOC4`H;iid( z`tG$3aw}ocH;wJ?<%{PQ*R&11!_YI0Cl}3F1(Plf{3TZ7h{og zAyn!R;(QZU8$BLTaI0t{{b`s`makDpQd8C$>xj2A$*Chvz8>{7@zAC>p0DbnGUwreGzxrEWyapleXIiT__3q6R_58h8 z@R_N;eqcR&{P~mXlE7gQq!Ynyy~`>TyATBJwfgn!bUw3=qH zDibYDgDC23Dd^V(tCtRXXlqL0Moht>j$lBC-f)QAV0rWL#Q8uXO#m<0bJ_|$x>JGcu@t)iYMn@eq zV%HO<#Bb;8SMTc8yBGWA+pk~0y}pzuJMYdb_sOa=gaHLxRy7LVlr7WGb(b7?UKcOo8cD?=b<*Rou{@~@?m+xM`dGY)8(6Qk?xEsaT48>A_8hG>biHzlZ0Unx z_BZtV_F92&Wgkl+m@gh-ogAKu1p$F6r?y65ad3#jpT;<<-vP(evTo zcudW0WgEc|b}$7x<4B+nz4VwmQmoqYOuS*H=1k%Z*1&adSm|wWExH0HKvJ z-S=s&7WYE90TQn9W+$B(m{OMR@;L)d10A}21nzYt0&)Zr>=J2y>g_mygC`uvCR`X3R|Kft3u|BV zoEi%%_jPu_Glye1y%~H{4SDO0x<>?$;!{)g05KMnHkzZ}j!XLzYlLgfwPN3Xo9lDF zzRi2KPkfLJ(Kj^XXA36u- zV@D1*K?4QH5WHWLNE`C20x`Q;PP)O5pP7d=8ioI9C$4Z`km6z604vWtY#{~PDV6HD z;Vm(CtJvPQF(3;Kl>Dm@S?8dNqQ<6~c6yW1t0F0XopmS&T&f&gCg9VTXD2df6J?9zcEU#&Eoh%G#qI#i!5pzHNQXikudoze0 z{%w>+3Qu8fL2%e2fKUhEA0XX{!2Wp}6Ad$!s3?3-3DT@UemIy$U$ytL4ZQ{O9H3>< zg;>$e;I%4P!?lT9mjz7cu>s+O3mq^(S4fe{bb{OIT{YAOd>``ZrLC^l=Ekb08 z!v%?_svv0$!nGTjT`U8I*Tht|R>JzT^{C6>14nt>UeMb6Z&emD7P>?kvf62YF`ymf zwt2-0cqa(j+Bvj$E@Z_YAvWkvuhX4|PFgu?yiH29w&{=A4952;o#s_31v@Q2)a%jX8 zcRP67cu~}=Cy7e;Ub!bv-?*XNjE_XQap(;SZIM=q=j<`ifRLLDok^QO6U98Zd1pf^ zff!zcQ%?;b0DnM$zs{!(TZ~*HPt`)%%MurGzakFix73<;DrO4-l?b)ln$>HZhkx(0 zkFPumgweKW3y!$Od!NQAHxcZL22o6kos^8ED0-+KA(i`U=0dx8J&%kxBwbni9&zQXOmMB=@6H%!1nIy60CXEf6- zbCDeAK&_odXDo!C>oGeM9-<>MD*|awqtUVrzfy24rGdb~#e0PJ0!zvX^8QgUB&)`w zX5z`XV-+9e?Tjvl5Nw}~yX#syCSW0;5XwYY33Y_Wqza;}I-(Y}dK3knzN0Za#vBOM zm>YSBea2~f;K^rRmg>IeQZTDP@ua>pZujCp^1e6zxD8*tsh`vzK8d@z_YyuEZ$~%r zcAuaa2@nH}sM^^fgiD=R5J%5UOt1>0)|_LO&fOD?K(RvbHJ-TWb;%Z>&))-xd#zT4 z=%79`=UD*2j#8vwpo|}rkQfItV1MfRhTE4reUDC7Fd6a ze7AJZ8SHAVYmDM%8Ve4lxx2N%0P6}z-3N}kw1Y7xPmhEw$fO1m5)*aRD&L*OOBv2S zm^eGlj{NMpZ6b2xUJFK&p>4?6ChW2i%S90d6r7){LI_?1aejrq<7(O)M74%EOlorZ zP7(isDSln8jhP)onw*e&^0EB9o_ z$&DI8K9U+C*r;_(rwObo1UnVZZQXTIgC2|NeJy^K9A^s)w8*#-``!_PraUA9j3b zvlU1m985W{_DxI#OQ2}KVvj|#A++@%RZ4?}<=G81j&*emAJ3rBye02wG? zyRMxW=9xxh#`JainS17*Q$|;(V>Z#cJ0YvFEpeX6@MFX%PQu1o%b+{WPTK|z zbv@nB%5kC%={;wh*x*D?)(&u!Vsx z#8Is=B1iy|Mb;&d2m6>C>T88ihFa@}^0k7M9bYQSZ;7*cw33NHzP^SC$gP;(G@a0Y zY4mla0mRIjxBHEFwG09%b05L5)(=~6x-i6_8>8VuC~QfG1mK{p&keAj$_cCBN*72} zp)@>zItn5ntsw(p+cm$X4HZ-GHIJVGG=6~Bxw74o&Hgg}?|$+1m!9>->o0e`d2-y| zdjX#{c#Io^$M^`x?dhYoC7g6NiAd)azE)_3drtR>DlbT+*Fi`phP69tXdl~X7nZtD zz(G(;gsv_1_IvmvOWn{_b~h+~VDbfm+*awgkOLK0#wT z;YAHi^-hlEeX$)TU22B!ZLT%1XqAH$m~}R2PrVs$3#e@pQX(RZVX*@lc1WP7!4X>C zwF|rUTjS+Xi8Bku4hRWz8CeZz<$+s7_TFF{7`zmnwYI=9K6YMh?32*|1(s!(@-_s$epp_U5N3;N#qk&l@thOh4pkImEwe4l|c|-UQ0F|t# zkdHer-LriJyXhm?r?=(Ub<%O9^M&JHvpB%eXBX4NQZUL_sOXrk=D7%lLM;w88Es4p zuK`(CbOcWA0FM4Z5h}uF0+rrgt4%*hnO4kh5DHrW3Vg4$4o|38_g%X0E7(tV*U?lb z(eyqy0@O%cm^U!j@Bmnw-F=?XN4pZ5kv>2m1#qE|=;e?I)Nz=JN|Cfn{p_ZAEp%N3 z7IB@{TVzwS77BG!L-~7~Ml*WP0KnwT-FY9}Lslm6KN+~B$`V5N+Iwd1p}L8hcv~AUqydl@^F(AYwM@&JacNJv&qDuke*13y>@U3+E9C31zWV0X z%XdHhHpud^ar(4#dgo<)Vye^6`2(2g58nU5C$|ClAi{^JR$r3SF=Wkvcz-TFs7AY- z1`ndbNQT)NvdqT;0(2vOW$!V7Dr?kCAWCh3K-Lr(?PeR**kOR!x!IK#*cRmgTIiJ9 z6oiup2`wT$rd;|XU9beQS;tIs2BHMEZUUlS*<+pqw{BK-Zen{1LATKx!x_U#}NlILx{3OWAOCAM8Cw(i=bJRNgm2Nt#6A?L( zpU2V>Fe8FDW8Y`A0X6j;MJ!1HyA2w7jZicq-f;rd&Vx$|1D@Vmwuk@lF$e`z?s8e& z2D4nEgVl619fV)h+}&$M*aBu})1IT_Zr_V$n{CbAXHVVgV@C5eVj(L-RaH8?B-cmk z3MEjX03U53g=c%s%K7jgU83pQPF)F!Gos+S9M!Q(Wo+(e@n@G?p{H{}BfCck zEnI`oX*(5FzT}1lJ6ei0K&Uzbs1g}SGbLnbr(WJKSGLfW zKv4A>&}>COXRGn>pIqccC}R4C!fwZc<_@+xMgX6#8m+;77Jelk9olLb%Mwy^a&PB( zs5;B!wuUu2P;xDl=jyu~SB>pq1>0L2mlRrOZyO3ej-a(3{?qRun&t}g_TIuy?jd7# zg1bApqXW&8QWB%P*>yQ7#6TXl3DGp-P8IraOqtOL8+Stg}EQV^dJEG@X?IAG0^j$EsYisZ< z0GZYialOP*;D9DM3WPIUO`{RHNnDY_Y6Ed(Z6E#P#IVO(!TYoM*B*a*leZ`Hy;tv< zp_Y6wMt%JGBM`C55$YwXt6J;0x*_~*@E-H>2+!V}hIAw|i-C_I5PkP;YD9gIR?dMT zpu{n=q;{%xPCch_o5L1fVtg!U6hx?m*wlfD(=&K=xgkmPxY*DXv;~Wb~9PBG_~OW!P|G3?>LxQGW>d&m+}E{JddVVD+e zBg}fksoDoZ7p`pl;AM4u1zK*6V4Na z4B6>QTkA=P^qoJ>Ew}mQPhNqH`c$niesEhDB@}*2V$9Q_Yd#>+ukP1dYz>}b*+)^>a-!^SYo7#=)4$@4om$|t=~Uy@BMd? zwH9=1bC^n7*?mx(OGe*1g}VjvsJ$Ak2DLtvdDp+1VgY{7X*-8617!zCHPlJ)Z%K@X zJAf@{Li;?i2oq2W->Bqg8@$fLe|g<~Hi`Rbi!S^3+Q~JGc4dM|VjUb6M#x@{@L0aI z94KU-y5+z(HHs5bK~TIATypU<&K_+7EH{wk4C)xI;qF~Fyyt{$3#1o3{8!f#Ce(BJ z;tuT;?lH%^kX#59ND^ZctuuR{_&m$k(Av?L%33_&fyB`c!S5Nh@Gim#xy>=CZ@hlI zfWYcJX+kFp)*jv%(+be&hyVKe6tN%#lR(fyAr8}ln6Bd^6%Mx*GREX;7OjHCATL%p ziQ1tA)nwsUPbzIV_ONATZS5(#0~+ArIwxHm5L{Ma8ShuhuNv)#|K_tF|K*Q;>*yy1 z!nf^cH+x<-Suj!OA&4;#_}X2(rso_sfzLS>QZkqHYtlViVjGyKp2m0Y$qS26}s<$q2Ko`)%9DKm69y6A4OBHP{N>qn@ws6?G8$xa=qyfRu80Xkw zJiL9Zjy(Foh|gTq8fJRA;0yt+iICKqN5-+cDN$3J@f>BqnPICwf69;%iH z-O#`~<^iZ74)wJlz&JgvGnJuI@MGUtvN#1;S4^lR{DxD z2YCl9mUoI7nIcM4Z*64XpKW>Xh5M7+@}K?M-{luS{^Jk(H(q`H)nAo=`r4WQ5cFMhYrHFp2=ve8$rDuJ`6 zj>Y1wr!bQS_(Qf;5ckpj?6&*RiH^NZV9B{qRL(136ZBS}*in5W-x!Ec5Ms)k@&y$^ zuxM2G7NbG}BqM|%@7vkK(mrD1b%{=r<~geav5rQSnGe=pYtIec%7^%h%iAe)0Lsx36A) z`BXQ1-=+J$ngkeqeah99h><^+kh>sk1&Q=Ka`xSON9cGa6N06!EgE1quC>*7+k6!1 zc`d!`jJ|+UB0U3mDijXH;tRQ)dWO!vPHZG$4~upC%I^ytK2Fs(`y5qEGTL@=ckQbm zt~TK?>T&j^Z0k-y=tdaE5BOgnqeiuYG_Ej8Lhvn)J!B!9Lj%|!5iG!Hp*_<~SC+SN zYZCZNZ|d#qFaMxkeEs`BL4ewmyXL)@@7cjV-3<0W!EJYDx5=%WUE{mqOS0y~)MB&d zG!sHrLrsMlsG2_&~F$7r7vKaF#`u- zZE+xcDAqw(qz`My_e4vg=~flA(IEo3J?Y-PzCPW{^YZCn|K3aYeRbm52Ir-fIv-$z zBG%!xQ)RmHiguDGA>v9LuKf;_6yveu9#A-}2T&oHkmuSCB+M^s~YKvpo90_|@zE&6oA!9=!KjeqZqqAfY@70hm@|Y!p$aNpr8>;)1 z3E&m5QO$KMYAk{q&ty@SIffT76JcN_mTR~)AW_hB?TpXe`V3v5*;h*KGmS!PU+v0U z4BHPL^CF*AF?U|HXXg6z12g{P&!608L&_q}17pBZ+>f14^fJT1UOGaolh8Xq$)p%SIi}U97S1;<-AKY%bdoSMiH331kO<y}X0=vO3-$)i#*{^C@5>#;6*!mF>g?a%=AjJ0ttf z-f^*BkVm#!V*R#dEoQjObu`qFAlAm1>rk~7%tzPRGQlF>TfqZd8zDPpA%_3%hW(`r zeecs@m(X69NkW4V8+tG=_tDl_Z7tA$+CsNyLZCveKXJhQ@a@Z8FY*h2^{Sqfu=ifN zXSW>RY`KqN{q&6>lvZ2ZfOtprbXo6J=wtKk+Lz6%e>&H=bZ(bg?NxgCG9e3;Bb=_}F_SsEd7V#rKcvGR!u9 z!0wzIYDym9D-S|~H#HF7`e4HQ0WI4~#9vH^X&RJCHlc(y-1CQY23T@#T3sUQ7%vEE zy}UjAcb{D`dV4Ryml)cM9kj+XbPp}&#zu7z>W;GnMlY)!bI+4usz@nV$QYZQkbH42 zJCLl>0j~2oyY|uzAKc^#BQ(}9H(+T{Ewgg_}4%BTet_(3xO&|>TH+MVabO0-=goG zVE~2i-GaI8xqybRHV>AemNs;5;drr{vRAie)BJ4kV{(_vt~?F^Et4bn^~@8t1amIz z+uJLjA&Tc34+D+``)?u%5A-nW7)~=)J1ciloSCy0`dtfq9nwu}x@e4U3Y%&N!ML3w zj8p*_+gpX&#Uzbpr|UkML9l;un_;(Bwcmc<(|d$5JP%>G_X1J`p}e5YCe#^~99RNbrc!&qi?evP0_0A#*aVXnKlGasTTB@3whb>%oM~ieApWWcnf(YYQbn>h9_HTYuPea%4 zy=u?Ah3C!1Z+;Xb`rVOt|I>HijGWCcOToyDftK#d>qQ=If$i9Ht49oobq!7jMkIO) zYRKhCdT&!D#uzpO9s`0jhbQ7;APs7n-dF46bde3)qEMPiXWo>$Zm*vM7=LR-3~roA zyPUmpkSWbs2<)V46U-Qw%C!@*mGGZm;85DRyLGrS0Q%6X>((Yn{A?6NpkY^z0)^bU zu~^1fla#e)_1iuF5C3d}a=v+$&jr8Td;OkKYJO-`lTXvA2AyXh11%8OxiK=ron)~i zfB`gT-c)0(GZ94Z5sQx!?o@lVZFpqb9#D*W1c&mu66@u_a7=CUwieW^kGXLJ2HY43 zD~;WWZyP)J#`@i!wJ+bkfLQ0rS$pSIdv<6iH$%Ihdzy^LDv?l7?1^qbBEU=oa@Qr( z51hdV1&t5LI*hWLfE>xWgg`LUfpIG#?R}M!FU0g=NN;mTZP<`^DsRk~YMo;T>++?44KcnSI}HhSmL3Y%V!vjvT9luYlIuT2zqv!ZS1ss6P+w;q7$L zoI6zl_`Ildb98z-m~7S874Y5LjNV%SGwU*^4^ZZM4}f3N(}toC+-xzSynG@Aa$mF0 z^x~K<1`1rGHuo+WEzv4OONKq$!Unoj{B~sJrpoEjGR)UuTg7^arO4Vrb{Ukq7ONva zpc?|ty$P)-QdIQuydD?RkK$oP0 zHVv3Z&t~7dgG{S7`$4*xO4yl)1ze@IT@uMRedp5DfnG^9Fen|&6GWdXa}a<{ju@kP zIVTWa*sUj0sRlY331^SY8w-Mb&Y$-``jw9#9NG3l7*4DlKoLx?(a$|sd=y6|cPDQn<<*Ma^<+d_#07y*(!^@$+k z-f;*wJLK2izVmnAynO~+cjsk$2H^D}D7<|PQ257xlh2u<7cM=S1BY)Qt`%;;9^kee zz_EQ)z^v@!taHQ={W|-#1_j6lbf|5|G%vytn!$S{k8CFBOb}RS7|z&Qb2+}=rq}Uu zD?97Cs71X`NJ5WLHp`F|BYo_Z#<>|TT*M6%oQ2e9^8{~jBdq{D;@E9=Y{r~6K`92F z4Pr37YI!Y$pMzI>&K59{M6((4g8vky<5%_OCr`%V_g=bZE|24;9XdY6EeCL9r?H$I zua0V%`4!J}GXa;!H-yV4q>~pW25J*IF)Knb$H0T_h@Rz)DO024;-KP*yn=ODN8v1T zr-_3dY_)?o3Flk16B1C0mhwI z?im3F-+&eP=Lai%7j~N6mKjcYEy9IO>1wZeU+Z+3mQBs*K#kYhByw$fdNRSRhreB6 zRxV~nmoq6(+1fScZqXu~m&f1}GLb*K`$%Z?c88_ymgJEDEKt9~MElv3Z71e4vo}uI zp%N}hv}uuBZ7pOhqn-+xthNgg031N$)2FMj%|;k)o(Z+rzJzJhDn~E%u?mC_u@S^F z=x6WL4}n>~{ME~^o*Z%aUbts^@N$FQ{s?~YkH6vC7DTOYkv@GPY@C|lSm_CrhYUJ^ zjWwO66IE$gPc7>!rn=qM z$7K8T-KwtMFmYBRjnRfrY(%bWq!@Eo%*7MFZ9l=@%6pA;q$*D+$qu@9koPS0VZ;}V z&v^R|-TlH2=B4vbseTX?gaZ2s7V~G_?{8l1Ixk<_iC)Dbkj}(xfli$ojc8u2>Cf%@OQ-OjwX2+i}Ioqv{7yydxWwWV@|BQ%a{sMe=Dt z0&*-gl~3;n>f8vKwOJr@-85Uap~R(tF+-sOT2Nt_d~~2=a@+p?`sIF(3V82Td*;0= zAMCcrpFf@5_QxyvTX0Xk|KaoBd;8;Gdh8FLvkqkHc^urj)}@Vx0PJ<8hlV&_Xn+W@ zc@CP#xAiF3f~9{z1=EERB_^Q|C+K}zEugfK0~vud@I1TCc6#L5<4jS|r54?Gqybj~ z1d9!m3SLbu0BGihZ=0Z>hDM2M>^{9Y%aQ{O5O+Bu)xG=Lt&d5E+cJpz7sQW~4(8~H zo*NoPiQWp12Cm%UAy87yfF0`Bc$;@1=XDko{16);^N>?CuS@fBr|8 zi32xu#lsv1KGIIK55`%(y`1_5g#-_!18g*sN-p$19A~9SnI1Orf*cO-$zB4un)gy@ zVGwjbs%HYdYeeA_|0_s6-dFW<-QeDUt9=e|@DX!4C} zR9)ee*2(&Ud;%D_?eknQj;mQylO5Wo>uHGNp0XTla+?AM63S%6vC{HUlV*Z`hc9kw zCx*HcqgJSR*|6VR>f+m2R{BMP@}J)XPh$s0HU+%0vG4e0zVHi;apd!$SPf( zPhy%ZCyhEBF$19GToPkh2a_Stbyfu0Pg{k?#X7L?cRF>>xKjOS(Y~x*w`J13KhABh z`{D^dfA-c{3W4QWXm~d8qV|yE?gj+1NgCMa8_0K>3ju4rpAe6>!`775X&@Qd7ZuyV zB^{QolX;~VNeTn92$B(^4+D5K3z6f~r_S5QRNgW_X63m zGq>I(eTy^R;EWFeQrI9SU@gLdrECfP=IGL{l6|V8idT>AN1Jb)FC4wkxz;#GL(T$l zc#qCVGEr=er*BjKqhI;>{6=_Sfrjm1XI7lWL5wCN`NoZHQipckb$Ua7^Rgims?l}q zXpNB#v7Ok^RJ*M<9=ETaDY<)B?`t-z;-TOJEusj(Mq}>1=WS(hZ#Leo@vh!}{Y-s& z??rnGQlbx&5`OUh4}SitfErL2jDXX&WQ;?T*r${3>Ycl3ac{YzZ(HYt+QH07jsgVH zXzD=wz?v7b0eYQ@&Ot7P=XS4%1|==K#pafvTAsW ze62YfL}PLV!^k>qA%X?w-Xnzc0({{OsRn#%)6^Zl`&^`(x!0V{Yon;kD=@q5gjsGi z!$hDR@i}Z*xNLd&UoRU5tR59jTfoJ{#Y2J(llnk!>)@bpo4gTkAx)`4j)sQsVDRjW z0b5ul$2m8u$)z9)N1KQohsnIS57=fnw(JgV#%Ss0-01f8c<+yM>sWXXLjQx8Z(qK9 z{pQ8**H522SF0=<`#v^$(y=iIZa!l#NWj6=1x&}G0YY$vMzh^c-@E{g>RWdSbT(t3 zjb9c??tFX>Y9N}9(Fox+csV+_Qn;U;HJ}?hlpl9WW!Q5M`$l*`JueV_o8UPp( zbpGxEyV7kY2%d~MxZce0Iw{bO?qNs!l?7g)a126d_{DNa5rL-!BaG2!Kf;T3Ffa{$ z9Bn6C15t4HE7ayRX0p5t4ETkKV>l{(%ET+}c}3Q*fBoe*KY97;#qYm-LTI}8`aRPE z)SDKdew4P05I(;bY4K>M?K#X%Fsft>b;|J!Lt~x;1wr5@$bfBthh-B~gPuT7cMZ%7 z@vP?wwljMKuO(2>5PX0&vl;QhxE^C7lm)jpv^#&C=QqkP=kpj;n!T4*A%kAaK~E=* zv>g^%dSz7ULidoOs7G`^DK&izXcDZ0v19=x_(a>g2A>VikaQd-&g;cS=A% zark=dkk#GKIuijjIBabaL{)>NE`h|QZ)u9Sk&Ue|qeiL9q)4A3_!^ZDg5tDUU$_Ql zUcnko*l!k*w}!2If1IZcfj{MI?2sE`S1{({?i1mfVXGGf zNB7bViH-qaWwnrH-}|E(aROg(SPl1;FvF*CJ=TzIUP~1=(b~0rv$8rSMFn%1;aJ13 zH-omAMX1>JFmHTZ@w$WwvpcdZSBuvRLj(I=3cmV{h}-avpUAU6QF@=MZpqCs{^ z=E)}+#W8i_}L!=qacsIH9xh`B{03?$^kZK=b8b8GmtSeWlEDX8W0WmDht$x;fS}!to@2o8HyBm>rnUg-Ikt}y{SB3LH*Wy z^V1jg<=4-}9^ZKlpDnlBO}YIs%un~OZ+}s4fAn(u;~RMK%xyNmevyUNB zIn|hUiOp??7aipVnMV$Tc^6?0P^KE)vVYIZFY86UdiUn1FVgdiC*zTOFW-~HWZkfT z*T-Q0LP}B{fronm$ytn8`oo9dd}|#hO7s%LF^uRNRfhH!1UE8(w@0_D!KdtKif#~j9CXFG8lAh((Z8SqYudefg?kf%!=dv@WpKS;^ z5{KwYJ9s(Lc_N%>>89%VX-tWHLPz}7^YYbx@y!z!)4f;inV^dg_k90Id)}iBGjYVp zQrlpg^y{CLyw=>o?6^x%_vSH&4r|C`%+kRLeftIlr^90GKu~&CUWWbM(?Lx;i)6sK z!y;B28XOuyU_+GI!~b#RhC$CU&l zex!$@@oFw38YCfh(8cwI*JG|p);#>!vgRt-JOF{TmP|N0mmt6^_9j1V+Qk0aJ{^^e zA5dl(4yJ4~2T|NMjX%*awA%*Yofqwy2Twk@xjz2<$yH5YZZX3ULK8T*or^SiVM=xi z4GP3p^i^J%u#XF~?RyoGl0fj%Sb;rWoTo|P$aS>A5KJckr!Od~cuV2hI04YJz8!(> zMt0k@JGd%Lu?1;{>2{knB1X@hN_g z9BC4@_OP5+7#&#K)M7HPLbIs)fy9Sy?>N8p_T8J8uYU5+?SkI+i75Qui}$P#i*9^a zALFz~bZ;yTop_hxy5fz-WTc{JcHAq6h3U~AZRSF*Q!FT4WHwcA?4)A01I3MY#Y7e{ zByy1j0rF7VV9It`X=|hNCLn_Nr6zy)zrKSTjtt2)ZR_dV3>5D@=5!ed^#!MccQ3Vt z8|#_kdN7xw9@_d|_^a)za8T&Tr9J{|8^A@vM%{#H_kpTrCXL38MErCbxjNUn)jSE> zzjFuP`fE?j-N6=fl|4*Be~OSLTlPY(OrtI}d@po@OCjuJ&%r$UIXM3mZO=^GmxDkO zlKv3)eguex1PjoV0h^0`cs|>&{*8FOfBNE5JU-d|_g=rJ@~6+)J|BNl{`B|5~axL^o*z0wG5q~>wLXmCGCeT-P?9ZFed zPKdmBrsgH;m`MdW7WvuJfypYkpJ28heP}<>!a;Y3*mhY4e^{;qLddNy_s$>ZdB5!S z?LMP73dhkZ+O%-?VuKkhVCXgs6>DuCJsZJs!?+nT7#DX~!zQ*UPwLKu*w2)6_~?N5 zzrfpXtwBZ@k+=|LM}&NIlZC((CA3<;?OFT^HtJvdF2>0g# z3B|K%4#=IgXNk8yFN$m0ij%vULAKA)o58&_lxx&r&6XZk#`8o07IpRadf!Gzlf&UR z7d*ZXfBzzhEkx#uAZ#Za3|Q#NO#(m$M!jYZw$-dz>iw*}WlTLW;dINL?txV5?AZuu zyA2(jnV1+>=wPOHbecoYQXSOPnV99DHqo=f7exw|LXypi z;xu3slX=j#*@*hvn8ZngAVr%W3|yu+nCjMCz*J5q-@Uc#2}OdR?Y3cOowf7-WAEL1 zHOr24Es1X2Zf|3=*<0Lk@Kcr)F(RUz?ySrtGwt5Z6?=0&gE)xu z@jn26it|x`1bSyyxn1A44B8^gUl!uVvR9R>R?hXUIme86-{;wrRsh^M+I;%2uDQtc zL?=7rS{WcA6|13pN$KKdW|=uaZ7yVJkd?r)3wNX)|$ztjXy64=_%TcBluI zW7vk5XpGgySxbr$%DRN!@$_HgyO_0YF(dZg`qb;A4~E~`fa#%+m;xJk-#*Y$q$4%9 zbvQD~Q&zfGw0;WN-8GzPoX&|X(Ll!s`-`p$9Wv%bBiByIAi&#gexClDkJS7#y(U=y zJ9|fkT|kPZuG0xvflqwSowKNbo65}MH2v>Ev(bcP&}xRg2}tZnu^S!xtKc5@)0 zR*sj2L&vV z;1O+e&o*1Owx~@x*ipBD?#{Geb(}QRZ1oYf7I!KE6C@Namhtr8eM3AI)%!Y+{ z?C$Lni~&En#R(p4y&Xzq=e2f@b50N`-nzQlk%mXAHuBatLx8^6){^1VXl3OBhALLv*+G6{M4cnaGcKh_&7WxP#M?`f|6GAuH33HYgb-+P;^~u zcZ94+3;h-WI6scZSzC5?HBhLKTAU4v6;h~C*NM>(aew;nzk{g+xIS(Y6p5KC%t$~< zUtt1NS~>PENYK*?i{92r~gDf4# zW*H9iaFRj<23^mYajk9~nlx>bI^b5`_dv3#B{H6Ys@f>UnbKi)z|;X!qC_094%u9{ zudp+@?*R?-%wh*}9nrAR)*IJlB(REwHYz5-jS>p2ox2)zXJTkIEug{9nI=#{UJC{E zjr)LJ`D&Xj;3d#P8=V9z--S2CI~UAPkbHg-`Sx8N`*61bdGy75);Y;H&dJYk0|J14 zLLf}A5+_tq(Wf_e?K1EfG+`uj?OX;ONRomzHZBlW!{P`@w57@sb4_19yM*BIjjV2N z06?^|b7&T!Z!kJnP1YK|n z8sQ_^E*m94?nsHWme3N6zF0dFT*zRx#O{KxeAbL?VrTIfGH;Kt(|_EMT%NRgk2cU7Gq+|t*|-VD?GsnKV{)N+tFyVxYlCfPa|)wB^o zGQ+sm@{L>~{C@^4lptJ9z2@D(Envt&SL;x38fBeM1x?!ku@n-`KC9^=swr*Ec^LZ1 zQF69ngMy(4zRRh(2>oo`n=zR{3lWjZrOxqx1-owdnAE|$kzr4%9KKhD1 z8{y%b2+!yA9Q}9|e}s4W^Xlba(dN#iwPXnkQtBeobZ>>CyRUQ?SVYd=Iu4D+H0LF5 zY2fI@3U88vCGxlk;ps*-HxFCKIyyKE*eQ-%qgE=yq8KbTlJb2;^lzgDSiIx-uFVi8 zq>C&J`b+gov+I~q)r56%KtBOp_o<9T&xa490<} zVfqUfYV5R@y8CU8<%jnEFJGT$D$kF;Y|mz}+f4@hGnAhkAdzB8dYJXDxQR?M{4C&j zp~S!sa@Smn1MdM92K6CTPA^COQIc&i$3cl>1t@%W#3+Cw4T**}*_1sB(ObN_?x69`QNyS?_Sn$P;Dj@ZY+|6-vqKyw4zPidYp(K~RWo*Ev(>{2UiZRkhWzP&!gqm9 z-K^dt01;bf!TAKeOUI1_oTW;ZW+(ll;3J~%#ACG2Lx2OW;isb#0>}|%U&7;LdU%V5 zmA*QL3Io)hKwHtkrsJlosrl3Ye0>)~0!kTixXJCzb~4wxG*7&IjB$#$%TjT@sQih; zS@(U&WEYKvJ!_-0$GMu`@MhvA-R7)WKz!AbHfI|;J7Cz5-tG$>!l_UH%g_Goho2m# zk3R;8?S64_c=tj`MCL+wG?;uDLtM5*!%&5mIlC<`+jF(K>EPJiCJ)IRHPz2hpqH)S zGG1~hGJW+Tr^r@IXB&GE{!n%cJG7};>4_q?3_Ri(B2jn^7+D~7YrCnXcFQA(%T+WR zbhwKR1knPaEjoz(LMht|GSLN5rAbP`jtkhN&6?&qd4kD;3{2?ix7C3!^TUg`cK+PH z%oj*++!6I3eEFUw>bD!B{%80M1eZ+7TDtRz6S>q@r8LZ!*0FhFPLSvf3p9ykoGE?L zHj+8~I502m0?G{-Woyr*-g-`8mYSXhW<8K-s#g?qCUSrn{#(1lrZxcwb&%F*mq`nB zmIYU~M%(ELod{YJBC{0xFDD#*6jE7;-V8Wu({uR~!Mp5(I%PMU(N;B!Q%4J+T$h$! z*|c)5oV-%*u&LL}<#V66M_;#Rx#sPLYyK%7e~-T9-?lm){O#NVN#0^Bc^|xpNmdHC zC$H&dl>_bZ&I1Plb5qT+_CA_W+#!q97XXz8USPvZ5yBj zz-cTV2f9tIE;_EH1TUJ9SPyWZf$D4st{nJKz*?hbbAy>TYsN5~3GZk%sl(v&#amD; z%Y<5bWPz4ld)fBWOHRQ}$&9F&ko4ukH4)q5Jq?vpg!~{SgEw@Z@|s-JdfQV*#%N%A ztCrNBvvX6QM{3_ze%|Hz#haIRG1y06wP&7H>*iVYX%b|mJvy>%2Mn>4m@pheO{a*n zZX0&cCs%K!z8R~jiAu6~2jcJRGz~IH-4=!pBn-Q-TyPDr!UQ_2y)BJK zKUYKyMG-#Ieao2y>ukV8 ziue%SgW;e=dj^AnYURHAM4%+JR>SE`#t!INE3f3YC56d2W`JM|<>TQ5hzoVlXB2HI<4Mo|L+h{xVK-#M>a6hgf5%g0s z0rNjJ2|)@}JC7m?nknisMhMbdA~;^dXv;(QJb49@L8z8Cu4vpjGF8xz5R8}NcD(xN zZ|B)a_TL-nzxwi-$EuCJ@x#Xd7cBbNYs7J0)NuIfqj|=Ls!|2# z0jXfnp&nU4FiV}q-6!TQWO?X(>!4^H5vN3Vg%;72wr-@*#xCX0Z;$-1M`!wby8oxd-JQee!tLr z@Wp#p)7Wk_ji2Ew{#5p!9s^TMB!`!iz|$UQ2QAULz`}!E=42*1s%8Vfldy1WHbncn zICq`R-1d>7=pS|iWaP37COTa1xlWHDJy$7$zotCH(FRXg|ADF+ZF)3aKIH)MCQ zGl@P&TgEmJjm9u^I;o%FQ`?tc7r>3 z=

        5Ayw2cN(b&U$MJ0O8+_koPSG~_k*v$@Y#LV@Pb*U8!+~nCz%akSt(7Lv+-WV^jqY!IK?K+`&<%C3()%|;C3vs2|0##qESaXiYL3S>EU+WP`8XzeG8h|1fq32 zmNX1u5*iae!?Ewsaod^~hIkXjRGge}7R$}e0a#+#0)+P&0cpoYzb1vW%d#UZsKr6;X`|Y1Tm%`RRZAl+%ZAew+wR;J^JB=0-g zw6U?cYr9|p8eF-BFieCgZ-!AKfjlhA@F6llO5{XyWMWukwAn|9_11Z$@dT5dX?wFA z)kkUSbURGzZU_e?rccR|K1HL0*S{zcCDvG)iTA}^+feZ8%`Jmy;d3}~v`5O~8m0wT zFdP@OO$7P~48Y7t_h|#&ciGV#TGF|?`NS{F(c9F--za!;{VwC_lpy)bY%cKfvN*(Vx&7ulKG6?Y%Cwm{iwE8$4AvVQOa zg5DOe0g`)OYl7K9RZ6roSr**Pyk+zW%O}sy0?Y9-!;TV%%{G110ER$$zovAB{i~|o zHV=OI`sK+NAKu-4+#Y?|p3Pm$P44&bk6z)5WJBr32F_E&QDT!kA`(kIAhs zK68@p+-Yo^FGd2q7I!Z)fBn4q>g}7?`TE0){OaY05BK9j8j7gzh?Cg(b#5%*4=DQqGC`xfcZl~wz{=L z0RN=$^tq|fwPVsN6&>^LrRH;17T(_J9(?7Vd9aR~2kWPiv8WHIg$8fK=FQtc=DhP6 z99dKs1*x$N!iKL*{^`kyxqAJK_WLL@L+{=mPa|suB8f zR~~H7{`9|p2b->Oa&t{SY8uEZ8_iWp3oF#f-D&3PIs|$zkSF)(TXM|h!#U$(Q2~dK z(;fERKn_o=0ciyhQ)?)2uerNz!!mz^VAObA!R*_7Tb}*v?bpdUZIev*4hhY3pmfWfJB{ukpO?BE@}aUsbCQ|WYlz&9F}K+a)2L`Eg^4hK&8DcVbI%JH4D6*ZB78=6^0d;!K~#+UK)%XLlz)YFkhp`3ZEx> z7N@qU#{@Qe>FEhWCoFVjdT8VK4r$UJ2I9t*`7I3?16`{WYQWoN`5&J*uim`N5BJr~ zM_;$QG0jz0+P^iX`T7f=-C<4FvS38o?d-EF5BC0Tcr8ZstBF23Y5w zip*d}jWKN`x&~7?*fg#diyp%IQ3l(M$I}X_SwZc$TAu208>tg zv}zwBG4X4b?oa;*a_l>JA(!v7wSy|+R5VqkcT^7Zth2;o91)ZZN72d8~ss;Fq* zGbilfPyhHA$hh|46(`GyG%Om1gbnPT#On{0?n4viv}o!^A{hS6sW9@H3k}>&wmAUb zJcwbd71d)*v~*m4(?IEjSL1}XHW?GCZewYTr@#HhC-g=C_C4nxdiB!(^!)PupZ?}c ze~RDUZ?^!q@2zJz$1>+smj-W>tg5qvp{mZ|w zyVvXoU$JKfJL3lA@M$D08yI0;Iq-2`daQO!fJ#%CT>?i zO6J_9;B}6z*FFI%fFooYkQD;vF0Jz%W58?C0MUYp1p2N1^mp+4ITs<6q)`VhlN`Mv z>xP{{is@Bb*PRV9;iE%q0+Y7zqK7ES4u_L?hj$-a3)dI$1Lxes8~Z*e#p&VcOg!X_ z?KE1A7UIhL>7V%GGaxMAzMVh#+qr!^zcxPptEznW92gNEnedi7hbk6W29t_zgr6BYc%_D-%|NvEs7k;6 zjQsEy_Wnh^vM=xR7>~Vdzn^aFr+@b%HBcC`3DJboVJ2#XMGce}6kY;L^}+kV>Ojt| zpf}_+U_X-z1C?A8k0I1?Y9)h$WDNzvwq~DR(u1^ht`1&u+q>8RGrZdeeqTOrkG^cb zpDx*V@Ntui@f^MHP_t}6Sn4Wx@;r94ve`vJV8A0Za@jWCF=XO-s<4reP9`U8t&kzs z`r4+@9lyB)Ue?Zm4+SVREe^V)hBw%|;p3#VV;uqX(`5BFZK$Kc2ahLH-?ds!Vbr`v z^B@Eu=0v30qyr;90oO{uB5Ji4_KH`ea39*ca_c}cY~mlUD>HUhOq6T^A-(yy{rFwJ zfAi|s`J&#vxl1@c`qKS=tV7>HzEN8@m>_KW$7y8ntLOd5UXs}QfUX6tc1lJ%L z&qH5{lxsG(44XIg_Jw#g+R*&!R@S%*#G>~@ioa{DMdog~nkT*DU(p&NNf zyqBEQ`v4sOF2McAFJFJicW>Y2UF_`9*X@~w2;VG3J^^L%(|_JZ3I-!cQ4MU;QFX2r zd#+1t5HfVYHzj-sagmc*4GaUDBig|WUN;aW5NN#y$GHax5zQb>0IZ5TwXv1T1{L*K zr)}TnB6M!2nFH%tWctrZns`_)K8(9v<*=0jep!0O5mJT6?8-1h%0bk7Fr{2<+%SqzJKvPKfL(x=3}($!~L`M(HHR9 zXji+5c6}1PTI@bC>gl#8>okr23GLh2}G1*(04BJ*}Ke%C&6XNnE33^b+N~`wWog)a|R5+E06}- z?OcksomSFKwjP{)b*1!Za5o4CwOS?|HgYU-J=kaHnStHZQXh2MYE$~DLJV#*BOT=Z z#I}t!IW(0j)z;Eh+n@faYvvMDr;P=8pN`zeI2s3UKbS#H8eJ?yO2UwnGz%iJx&qbNZI z%U11_jvwlfD^nb>t8N^&oRVV2*%`r(fY!mM55GpqE2**7 zKKSZA%Ms|H1gefV&r)q=P3Y0*5nxer3I zsTCE0W584$Re}JIEG5_EMr*X0oQoI5mXFv0+XBDHZGjzrJ%))a+NFrds+t#Uo@BAO zA1;}#j(ZHD*3KNqu#edXvKX0=?#zKf(5oGLU9bytO0wBs&}%@5A4v%v)>#y$K@ z6~1dte6V+~?@kd9zGTn7q4Uif`sYM={N@cEo3x05`snU?T(99oWKu8hir?8T#sh~a z91&*@qMWud>TYfC5oTWwr4(Wd@~UGJl~d_(1fFT=5Wy4u+TxH z!)}{r~)UlhkFXr{LVmmNzT1aA0F%4#zsr;H4WROUdDLC zhQ`w7Zj&ImP6BTlID9!Yw?JjD_UbCNRY&wyuVcQ@NjVYpyFkyo4YIbP{*nj`#jp1j1&ECF@ z{Pl-7Z(e=Fkon2`zpyXA%y+*-Mf>Or`Fszy-}YetU%x)!wa$?R&31ePW6(oj^(}av zkRNsejKHI(o+8A`Mgv|}5MYx^KRnP!I^t(bV#5_IN~Z=gRa#?QsgTwuqhxn>`rb_r zTOAGYr+?;)iv<>)0Ye|XaK&n3=h>QzfRK(~V7T9eTgy?HE$Fgv@8kNn6T3j3U(pw-dt+mcR(sAU>BnRZ_bUKhT6hcvBPUCAmxdFo{rEA)wVBOCPo;qXOeEJu@ zxQ1N8dBz-^1@xt(+hK-dES^QPmyZMu)OlXk!y-Zg12>DHA=ZlB0 z-%Bsl%t}uD8QpL=HXV53^c69kp8mz>!)}*>Phu3e(!##pQbvG9x|%8!#V}5tOhp#( zB(7f?DC%uq4@)M8{mG>*(38v#24G0oPJEJS$Y8;r37-O}2G?L&+A&E9Yj?%!M}Ird zqPqURH*fQ`y?y!O;}@UlIg~fK0&vzvG*-nK3i|i_h@+?yTeHU5j%MyC?Q0rnT(MDD z6i?Vi@oK$%CJKvn@mPTUG8R>g+pB?xXbVuUS|=0$Ra!%DkX_{*81uIRVX=r85hC$@ zX%KZRQuRQO4mXIkb=Gl|iD;*{-Ue=5ExZ}5V7T`;&NW0DCfo}YG@9qc!q79TDX|^u zLkAXAququJAN}pz9NPXLf13E^rL&w(&+O+qa1EhYqkvR_QqlmO>=sc@$++wI=_|-L zJZVJR(2%W?!^p&lH97{KRD;`lL3W8GgkJa1E;aDUR;V<*|7KMF2mi=FJpZoYU4Qdy zPS>~okT<-pzvtVHW3h3@IY1}UK4Z`{9bJG59<}U@289}i0c|M;#wcEoY=9c%CTSQ9 z&5{ZphPn@1NVi)3fYdgP+W?q0Pe%|X1kdFP0fEFSFzAe6gwW8ay*@xZ+s3)8iQc!1Xj zSiy#X0O9#eC`FD>tX^%On76m6AH95Cukzq$ar=RL^o4s4Ey}lO(a&;lhVi5U&D$^f z1>zG@LZd2F!Q4y%%O#Ld7M*0YcT9HzG@W`FGQMG`ew1Zfw)S+xZaojyrPSFQQ;bQc zF9lpLWdUK-2U*>|RwmMHhW9PF0Ge!k2bu~?2=<`bDc13HMz`)<_XiN)r8uX1<_1O* z?=nMA!6&+)i*8H$Jez%n&ckMrb_Nw=;q}P|Hl(Y!acV(*oIETjdDfmh$j9OdrTS7tjc>CG zuipLY#j*2?yS>1puiJA&i*Y-&7@yfM<3v*{YL3{%E*^2k3i@m_`Wgo~6P_6#$S%v$^~2&U2;VR~qes zL@!8=uZf{V=uD@>Q`nmJ>-N_7H8~k)vB2finrMS>OxJNBPWRrYp~?uzX%!Ps+~ImL z)%K0iPiB*hQm z+&&`XG{c$*V>r;9X4JA~2F31S=>P@F$#E`-a`B)Q3l++LQ=F`+F zQ5k2nK!p={Z)D5;M3*+>>0ico!NwXB)1aaipn30&_TV|#{WxS?Q1(zQHyR?o%xRjB zU86OabI5uh%x*Pk_L@opy0^XvrR$w_-Rg=XtPjspc)?qW?H8GhzAWi2|behj6^r+@W3Nc(6S`1HMj{{g$BQOu^a2*(7_x#2%WSYgFjY4}~!u(rJU zWS*rmI(HC_n+kE%o4w&}nEBCz>Raf6>DZ3WjskRsIU9t}A=`i(;>Usp_ zwOX>*;Z@LxYs{r^epwFyOb4Oju02*Rq-k3RK|2Np+o!I#xV+lgD+XH42^-gp+xUeI zm5zD=im`DR)9O*wHv)szsP&VA%(tQT?gh9l9n%)0cbHon>#05&(7j;<51^yPI@Ux- z54MzjPCFYsgx+#VUct!GFonO3U;H56eE9J4?vVB9i}oyxcizBw=jZofo1G^B*^CVJ zVqgmBvMYmPaa&S~ZY``P2W*TjG@D9q5~7w-ZR4!|pXHmfmc$W2)K_9*2Q3v4il zOLEMktK;N;E>&B*{jhCX12?Ow$XCJhgaIS!T;4aP;^B{d0)nw37Na^F=W-hZ(3=WgfE?_!J(zHZOh zfWCcmYoF)Mty`yc8rmX#uN-4IGBcfrh>Qe|7d*|Kle=8!>I|hFC@58-iYuXFd&$^C zIkc2qP4K)!Ji*L>C}CXdJQs%x%cBuByv=jl{_2^A|KBE>G38)kI0ZoordYDM%ku53 zTT&P5?vC&&mgfzjggqQ1+TO*F$lx`t@n!DVBDExU@Q8hE?ZvZi*<1jt#BS2(x`mJa z=oj|x#ryM%{OXPt@aPNoeWi^H28%=XX7|=d;(cBaUJ%5|(YP9Y?j%PXzAu#CeVaK% zDGJ9tmeb$@pRR4V9&sN#x{zU#`KRjwM@%44++2qOO5P`CcGO3|wPf37GJ;{z2Juxd8Qn zWj|Q8)Er%t$@3_9NN0mda>rtXl4nl^T)7a|>N-0sTm-u?O|!ibx02~d4YZmbg`d-s zk6VI+a#+Fd93=v10(VqNnv5wh$xH=*V{R>w6r+X!O79Ln^17`G;74)n!;7!%?VWGz z!58k?$1B}DUO&U6886SdVlU7r#WDC8w7GZ|T{~olo1%w~S&~gO1Tx>XX*IE6MPsEj4SGuCWU6FJ8=_5&>> z05;B=SaOni^HVfitROV0btg@hf_=<@PZqWcwDrBmdS%*78ex^#Z55H&u5j#|K}*?`uD0DOek8Tx(*>t#*#)j92f1- zv-C3J9pB-K-R0>Dll7{Fw}i#`taXAp3q}40>pdK_JdvA)QFe1bX0~OZE?WdgCAtP; z7~`t+cJ^5F(9$^oiW}am-@Zuv^>_K<-Cw@2Yg+Qv%lG&2*+*Z$XY<^Aljr^vG$;%L zyD7X98&-$`JZ2RhFbyULfUuBT^aA~C`m)WvT`a18y0oCn2F8q^@mVW-om`!UqVO^hjZ;?;_pO2N zGqyCF(I+6~2`t#$tY=8;iozFqTj1;d?z8Ss-@p0QyOUqp+ZX3e#5O>j6U~8ns%#8M8Kw>F z)=;6jva(r%aum1B}r7LLp{2-`377u4@}Jq zFT+?q5FmaYQECzmTItEzqFu3S5Zyd&L9hgK`84;leXL&XoWMT`x8~Z4{QTXD_#b@z z=G|BJ>g7L{FW%bubNe!1gnhVs(|`0ueCA0YH*fl%W`kFi8+i$B#%(2PC3Zz%Q4qmc z_B59v&<(-6cT~aUl*4(XC-K}1SkWeJa-Cr@u5$53{YK-ZW>7K4PC3l30)TMVG|)KjSQw`^z?6Dv2IXWWGEcKlad!Jo?bx9 z?#B4n=tm$Gc6tJE@vKI3_mPLphY_}o+=CIJ0>M;GVn9ta0$r0v^|xPBn*Z z^b(~g;1YU_0<}zVzHB!1Tc~H9g+>HUWDN{Uz6}qH88T~&M0)2Yb0juaxfxAqBYZRj zp*X&1%U90}(cRvoHc0Waz zfAGQXYBrC)Vs|Nm`E&U>|JGsj2VZ~T6Ql@$&8SmF#5TzN>H;6L)T|X#jaPNcPMi$2 z6t69oa5C9+A1<8?E)=jSB$CaV`67hA*o(z*R0N-ESi~m0rcSpxF>xI_pZ;z9-i;+b zI$RT{HGoa}a25(uWDEL)d}a794(PB+w~Zc4pzPMY6VEtoq)z0p>jiZU^gqBDF0KOE ze&!w%l`d~s(@*4Bc%dzzvY!5(t6I{J4B>0@MsvHCZ}zcev|6QjAL7st>B zu*YK?Zc5sA2LQV#BADUVg1;%x>-IhlzW=~0*GN!U_t1?U?_3UFmfuz*AN}pz<_W)g z`TFHsd;eU(9*WPwfD4Zb+q7c4&BdS&gk;Xv#6UY4bhzz4KmC{KeQ zTY8kA{@trMMY&?K+iqK#=hh9pHCy3&i!H~mMNK?oblE|(y+SHdwDo1rlaw0}qenOOgjf;YkjeR@x>V(D3n7#>mzetawa1Py+U`eFaH2jW%^hASoO}D+E;rr%Y>!Fiym>s^sWzBUQ92*wEeSIhfBGt(gHC|^M z0BxHqlBHAj#b*Lg6{R#%AMId!NO(Cg>APtqPc%^OfC&SytU6A9ep+&LwIaa8P_1-d8)&{rt zcF6n3`TEx{-r9#>+!fd#echhL8PW~T@H1R0Ah@gxrX$s<2g%j7w`X5F#~BUIt;TpP zP21A@O2RU8#MPrN?(AX2 zDA=|8K$v?gf+BhF8*bdUjICULJr+0<6I#JpiE;J;uz$|zgeX}=TF=u(a)D0(j>pKk zRuC-lSc|7c*FO7N#PbwTWw!_DAD>t6U-+wErN4Z4H`RUgrTe{s3~R0-N>@+^8Dvbz zJQBIQw61`V`q4J{swH7ahOJ4ZE!&sA6+uz*F?N=p#0apNa!5`i_F>t<3q)gD_TaND zz1u9LXOc^w{{3sJi*y#(np4+sKn8<%p>4V^{-u}5Mx=IXjjqGfAGbppXzRRgQBxmvuilI)!`s_ z*TddH0>U`FO$7m9+gjn`DztJO zB+_@pMlQpe>4=8mI#w(koox-gN?7*e)6K>*K(GxyLuuZdMpSvhe0-#4?nMhi+5!cO z6f2p)LZF%K2x-oaO7Y#fb`R`Wi&23A0H?$Fy&VF|W4^K92JYZ$wwdEsg0%`L{m2fBWv`>koH} z<40e(XFa{&KFxlXK&G~En+}~T)Y>^bP<|2|--(dxOq%ep*gn&M3F!mQPrzm1$-+2S zIAGEdP*XWZ+E!_dw`^}^E3M#ok=1rtamhsIgf_#eM~1%gkxy1AsBubPTQS1j#@!f0r&hEc!|l7 zK5o0(eNLQm;PFGxHG(D$L@dd^%p+7kKjh;ETFuDY-}!!G9jN>@O^n6%-Ug@oN=&aj*VI|nm%)N?Fg>% z=+tPgTFJ!qd2hA0lSX|>vY zM|v}2o&ig5?`?OPz?*2p-fGR$Lp8-l&$fL5vPA3`_vLWNZjJ-@Xs4r@IJn^SF?eu z;*e*PC~$W*83DGIXiq@`n!#dW0Nn*hkaI1a)CZq|DzKd#k&S&Njg4LbrmlS;0o;^D#eT+$8 z;N1#?=RN3bz$2gn=|K5qP60p3V&H_by8<$_gy3|APjfWi8K4wCi@W;q^^^D=&#*^d zz-R6y{H^BL$N&A=J;5S&+D3s_)`o3MwlkWkMJ9;}-4NMAjRe%$wg_9I-T?YJ38?^~ z?64bjrhJ<1iX4hce0FTG$JHNRNJMqae4tB5Vm-S_Ter8SHO*>t#+D3gvlL*5Kx3BU z5p>CMH&As2z!>s{8wBMBDzpr>EjT<~jKxNXUQVWS8aayEGW^5POwJF zq|s@IE%R(UmcFUGWG9M2Jo`Yk`|LK1FZKomlykU=3NPv!I<-LrFBH{m&unu*puJ>` z6KYTY;TNC&jvE>%?af>@1%TR#@gdVO$-?1DP^9P8Rx6aU#%yy}N1vTyw3x7f%j!F* zl+b}kE1wRy%N0P;@aX9I_?l=t>?tuR8Zqkd>lQEeJ^J83_`>~uc>JHk$NoS14nFpj z0JsfqXHOrTyOIwQW^JL|P^~$(@;fjf*k)Rq+fn3JAjgBkftb~f&X?dvKA@1d60%eK zoO!hv-Qb9ri0=0kGo)}AuXFp-eCiC(1$8jSu5gLt2$4PtNjz6>SqgZLt9qM0E7nDG z8l53{Z7~VUW^w`+n-u^4X?q(M$T)exRMQx3Ay%4d0U6$Er?lVErhfGDH_`sP9nga> z-1pT>x~CZMq8qzbBbmohTL>^zXyK3R4rVa4!We38G&9 zV*Fe!1(t(%-##*?^(i@Ug4Bbl8!*7ALEz<-*Iwj!S1yOCytxe!;IY2!qwcEd$6md9 z;V)m`?HnI{-Ja!c>>KXJ{sgyK_O%^ZQa-4Ysh*K?6=N-iIN%YCvz4%uOptMt`)0{~ z)M$cQJDp?LVVVhH)JA{oR5YGo@l=jotqpSgeXELi%$aDd0+#*sA75~4o0vKnN@$22 z^V%~_S?69r`7rhZHI4b`LCqCeKWQ9$w=vBpxKCuKUmG!a(qSz>eIIqCzAzT1ju4zI z9u2ZO#i4HjLo~FW{*y002kY2>dgU1D0<5Druc%;z(J3Ebx2$8ZDHk4f7*&=a0+}^v z92q+pljYV57O_JfZLjhT@-Qf&3ku8XSO-rC2QZRfXXZSDGDY>8t5-bzXWv17cr6;Z z2ten~j&-vw=cyQLN*x(6uvCG$+|WY-U;>?{1xRxMgOAdGB;fc{$AUDrZ6B0~a7&*l z7w>mA7&*KR=m8Q3qSah-Q9xp zW-+1P*ND+noXP#yr1M#MOi19*2y54PA2&BJ5TQcx7@Ux9R2%q_$84 z^{6LO#u$~LTferj9Gu0Eiww-l5fola`^>l#+C2K(d3Gf8$8TSrH(%L@^NVLjcgrxi z?XeaJR+X|iR)>?Pk9h*!jV@*e5mX0!sPl@b1g?T1Go0bBE2OCUL~7d3>C(eCTS=3% z)YYtc0_ibOREUF~30^?{idX$LeH^tcsLa^5IuYV0!%sWjjr8;pjlF{*1eV<39VUBv zSu35RYk?RUSUZE|XfdF5pn}qHlFmAN;uM-yTnS)kOSY5V8$vZvw=Aak^j4& zWE(4ptcHU+9&Kal!I=!oz}aUaQg^gEkm6{v0(OqR!vDqIoAutA9p`>HjwQ>A?f4+M zI#-5t7l7?rQw_e#hsZU7s#>+wl-Oh+l5JTyMm|l>$vn^VJSX2NcwTl}=H7n;2@ctt zZCHRL{;7eRYrpSWtE!&o_Z&wdn0}5O`2G6c!&p(v?g4`(ujPH0Y-`bE^#UtrV~S>& zMva(bX8Z1&{K@n2Cx7{ufAW0(|HhC1_OJILbNpw2{4JOKZ}`vu?00Vt5gR}cAhz;c zRbX?(0eHH_l*Q?Bb|bJs=X>eWq$;y%2!+C!-@0THE+HFsSfn9juh_v57@PZy4lB?xnMvRdmu5&8YgN}eIz#85)Yn4ry;BKK}eqlpCW0SW8g zyc=u!S_5g}1v8S35p4no8qJ!HevH>Tvb(_CvFBE~0)=vcF(kz*$Wx@Wk*lw6QMah2 zN=Q5rS70eIdLIdd++6eM;5Mn)RI14Ux^+UgV8o;F=jCiu+mPvMYgZzd15>@dWyfHo z^F#nSPg@4z?%|`)&=bL3sWo1=Ld8EU1TNIGU;E2n-A|z&y>?IbM#oKW^kd{&P4B)> zY#0~YU|UARTj)4#lE{gJZ*5&#UE4?Xl1Z)YTJTqq#a{D(%b+4M=bB55G|^Xy=z;gK zcU2#4+7|K{k(#Xs;&Eg=|5rajZ?r^sv_V2Lpn(-N(FNceHyY^rh2TjV>_g=^0%MXF zuCt3^)Cmqa0C9q15^aWWd^*{XfLjldYy%0oc|gnJq$Z=&MBqo=4Pk8o1A9;yA^@Sc zC~6?gAS1{a`u9ZFSbdfq5l1+nj6<=ZmV_F9t{xk3zirNVw3FD$iOaip0quCPVN)NsfKAv?yNXSL>>(m*uDu)3%}l+GTD;` zl>FoNgvZE{8YGRGTCD7I2l30r(5xBf?1*_gj(4?C%;DV;H7y_My7S3`Z z&hPHuJkQe$;O2%Pv%tJsGsDq%9l64}L1$(YzW3F1Tr3y_%MMVn zc*6BZ==gM=b5_O4z1Ho>pMsHTH({A=oeTSr$&AikTdx5QvrOWig?u^aHjr8+ZC@v? zB+v;YKClB-ZC&6Hz;`kr0Y}m}vLMFbYRK|aucSHF2o71dc#oe#D*5#@fA#i`pZMs7 zd!irqAnYFe_4@esv@rlqN_TAb!1LA#p{*OPw>3+Ho=h4l^UOuIO`|sOI zGk5^}ntr+}rnDutpyEAqnw;Yi!xVy_U}8gV5z5y^V1e zF>l05+%|xJIFJ3K7w(Cqoqm(F^AUobK8MHtpL~MHUYFQDG;_95z?$(o1AW&GF3yQ) z$a^}nQ~~>Fde}Tt$Aw%YgCp+Rs)iN1_IvHoU`2pxa_^?6d*bd1@?J;F7h$P*G~1%w zcSJvuy#v(FY7B~qu(^$%G}}U)mm|6K%=Z4zKY>`N#%ma|K}>2igCriwWdJ-BwK4KU zvm+~_sgALLB#})e*^NL}V8kR4Lx+ZKX+ z9N%Z_xP@28pS_!9;2m7Zw9zwG%xh~(G0Uj1%oFjkVFnx02D*x;kw%?+8ipneDU zLdG(zfnD0(ZA|p7WeYFwE2O}2pI7c}^^E49=n>B?de_7hthM zCWdG^6<`=rm$d|G(=E^1XY||Lp`V`DZ@zl5Jzm~D_>W$=Ck;vS#*p++-LJ*CJ!>lB z54&J^mdJEv)vy6!2Yfi2kvhR4xd%ib)@JXk&q+YGC6{q zW$PSv`q0_-ChnMrqy5=Z^ZCDyaeJ2N#dm>9y{oK>v8IlSkyOVxV`g(laHBCvb@n6Z zP>zx-kruJpDVkeXA5;r7+3hnKyCG_Q;&Tw5e`rv~-LSSqo(z zqQ?mc8kGY42A%#}=-;D1&h32sH6F(M$=HFUh8B4UrrRPh5Js>BKx=lzG@ksJa-gk3 zy`lfnG%ZeSL-S6NjNOr3z-LPixYV^?^4>&RO`x-EQp(^Rg%W z_@i&72{jaKA#;y8Eo`6@bMjE<)v`HF$k#aWI~Jf@)d7tIU{BE;s}X9WB9bny<2e#K9-HLYC9HCRkkAPmI(Q--n?<_ zr}gI9uYdLKZ?Y&ncoCnpD6|`k!pA5dcSoG|Acz^UY;Ae86OL)Ulx;+QB3Iz#!Z2{# zB?Q^9f=NFyIwS0LG-pEkn=>W0v>dI+8r`Z_>xjHEyxd7_rih44M=nN!bD*7JYs6Hp{nLv8CW0-6;0q|(O$7P&l*D9kTi7#mxz!iX+y9G*oz81#Y=E;NC?T5;fXcq(*nxV+Za8>G4_s+wBuBswE zGA3{@dqB$4#~3~!EuhH=qid_$n494`!Gm%{u(@aR!Y;CsJHfMq zD#`*pvbm%$IiciXhj7O^;R2%bZMW_ZUVQcS>o@P7oj3LNZZ7iZrF)`$8z0;=-v9hh zf6ss*4m>c1$a_)mgL{B$dpvPb{SO;6p>E#1&^8y0QC+B?rZ(sL}R-U*^nkNCMDL#>uk}F!Qj?1S~$?B=c zA!ljD;5s5#z)>_L5ZNge7{1Ce-Ht|A3$biw2T6Ld`x5-$vsU5rZ)vS1Fy+txolkJj zKv%0Uay}H;WTH-?jPmNoas~>hGg9_Q0Jcza#WGmZh+}VV2c?R&8GZK?Li1?CsMZbh z5vhibFHjH>#Hg9u(y`ZACv4?yX7i)h`1bYtE@bPxdHvPhj{o4L`=J_zWL4v|>@LBy z)OK&41#?Z>0z7~9+-w$2eJiwz1|Sp+g@*=} z9|TG6K!z1mlqBp3+a__jiV1HkENb<}eKt_Z+~HxlZP)$yOMm>c!je&l!r-c37&=2a+Q4DB`0ej}*KmP0Sz~W) zA`1oGI>2Q$-ouYgjHyy~x1nHfw|Qt`CJ6Rg64}9I$S;Fwj@UZfN?PIaQE~_&)kxq* zI75gyW_aOx*5%IXbt^{wLA(!-Ub82gE$yb+@-ZskN52oZy3q%JoZE-v#oPLer>1o> zO+a<3jcN3XStONg(i6ZPpU8=tc~&Wg71X@9g;ow^D1HoqcGP`f;MfepJZcPEL98p8 z!w*8P5VHe0kj2V9#b+>&fpo+Vr*#)P_@lza{_3@Ozo-25?WE^LI1R5R+4??a9itIG z=|(-5h_#gI=8Tw;xN2ct>bNac9JP(<+2T6v(ydNTi{p&&;TU6(x3lZp{L8^iG`$%$ zZurM7sSqt%VQpisq2e1eUPPX+vlr~@LDh&Fo*^LA4PqNc{LaXXJ^K_&B=|MvvCDgF z7^31^Y%5q0L4DwDpCeO%2swh#H;!u7>#m^xmXG=C7yI4auJY)md!nH4ADBAc|NIf= zc4`CZsVy=z=UQ7jvGI20wSDf3^n)o#50Tc;Hm`6{SMoS%=a7-w8gn3<)r1FT>=Y@d zP3N=ND{6F5+H>}E;50-&4Q=xF{69cHtu_X)Ge#%3u}PaF|EvQzI*EjIfh^B!wUWLR z(Kq(KYU`62(KIpIY&2Wv^Z)SYpMgB{ z`G55Dk3Ytb!-OdB*$S?^Dsurp9n|bFEypZ;&>qsl)>O0-STeNcnN%hRbUk=>mKSDv ze&8qvlU<^Fr&Z=L4|(prTy+>?#(XwSj0b}e2kyxb`8V903hCl!8 zO+G?NWG)#EP~g}T1lZM4Q2=(m0@r27(twkG;t);WCLw#Pvi^$nm}d0#^AYVm9M=B`s+PH`kKn)BuDh& zHg6qVKZQ5@S$y5 zAYi427zl$Uxw9L>S}`WR!hmz)r9aw`P(_fpV>CNJK3=)dzNg;%(6D2-lAT9?oZBbl z>o@iCn_bUdK1F}VcMY+g6tB>s0Zw27}RX$ ziHi=#n=Pv~UjT8}*i!A-Q8^ko@(?9w@2R5FM)Y)Nj{{rLI%JCb=-9Vnu0MMB`s>$k zA+O1o2#URx@jiI*p0pje8{6?`_|UDxZO7i*A!mcjYjMX#YqmEk+hJ+B|5_wgfLu#K2IYQNko3X+sBbjOMODJ7>g6HG*68frs@%r5hymPlN-=i1q$=#lAcKgpz&9$43 z=v$D!+OfA5SdKkv^AX;~sc7O{9uZhyQxcf>Of41Hj*(J_a(nD5$fp6MoTrb27}!%; zGB&JG3q@XU1^$@eX*t@5+_p}xZ1XA~+B&y3xFVnl*$o+&;U#DjD_VJGjo=aE6_|1s zyf*MOE~xJIbVk2UITQfRIp>63VD5(e5qP%(b*n8nA6v@ylFBN?D|Kq+Y>ukzv=CL1Y*c1D3OfDk`W^T8j=>& zFav64a{|l72Z(GsY@+`W;D|RJ zSEGHHC5a6iw|daIu(r7tu=Oyks3h5?%~@flPo5*^w0<1%8l5c7;On_i68wY_%AOM1r7xa z0uzx~OZRN4dy;{S2AV>fA-j!Z4IIMBgo_JxkLrutMT8`ur(g{~f~!Wi)w{_gXtyv8 z9jhUjNf2`}A_}dA+;P0TKmV^jLH|xcNEMcO?Oz@6*>61#qG_t398!|!K7hOr+7bk zc1D8LXg+p7(kY_QWA!5<>Cu$86U^m(;L_gb@vuga!vcVWNkxn%Re)jkkX*Dp624i^ z6YR051mNy|F|wUTd;VYl{4)@NJ^yb$2c^&R|MnBe{W|+B_UejP2JEPD<}eY`5|sEA z0h}YsKZZcOzx)ix0yhU4YZzQmqYfL>QP36&WjPFbPmJiYW1W zYR?a32YB?l-R%JSMf+d}c>nX?f*s($`z&^V|Ne8>0scQ#Y0+$_o6zdGsWw~-nA%F1zgIT^I))wb29MQH zzU+L67)OiuR;KglxA!(501wBrx9@)Q@;;5_(JS`^Is3yAHh+u}_9w_<>EbAY&4hr{ zNB!0I9;;B2mmXq2pxjAN3T~ptoEokn2y$yByhkqSV~O_pV<6Drx40YIE<++GvZi|{G^5QCB;B%&rg6sTHMQsnwboXzd5Dk&y>+!YF;5#8 z9Talwg$Th(n3n~nERAytz?j2yc&}7L{N@B7R4e(^UEb8c@IgcH*X6%@qAB?3CH#I; z0zQML;4MGn!5`=L0DB*_`}&(#`-uarb1f%82DRH&qIEjdhFWa3Rn?HOli_>x#itXX zkWB#OswthRjF``*j09&Q*PJ|j=|Nip=yMc~22^!xXt9LWQc^|lyZo*nM_=@-ANS~< z=HIng|JJowZ;P@Af1KNRtzXo;XD?pCi1qeGKJm3KG=rh+MHm}P9*dn2e-cS>`WDd1 zni%fA>ASbq1J{ps(4AyyeTOwsxg>M~cqh`a3BJLc%~&SFJ1|g%>zAn!@W2b6u7M-y zcK*Gtul3PA>sx&CgFnu#r1o|EvJ&6y+pjC%J@LI7H=9ro#5@_=Jj9R)Rw_seI@_G7 z^}ZMFQ0@@j;u6{?lETsoTD=w2PWoJi94sM(3t6%S@#-Pma=D2mh zz5cV`ey?qOF|IH6(L>N5+D!Hd*L^QU8?3cf(AFcFNCMc>Z6?fiqZHRkpi>uuqOA^k zJ3gCa**POeuQB`x#NIuJaMzlSWRZR5p@U(D5bK$2+0zx&63KyJ%Dg{ZQ62vDqa*Wj z%M9ITLD9)gCgN~cbn2+Tyt_4VeBP3+I4)&w?_?9^#BrgU>vS5(RyRP9&)%{6ZVLt8 zC|I1jAFi`?4PWqBuwonLA#uC019=GK9UsQVKAb`Sij+L*dp1F;)k=*(Mg^>qL|zN_ zcF5!d%2%Ar`!H@U$hSw{+4YrG0Y~DAo_KUph@IHFc?xu?RMf;#C{PDNH@!36YjRM{(NVw#5t||M9 zD5E-Z#LH?KxYuw@F-rZ3U<=c9JLclDFukqSNyZRQn8LcT9GvlI?yAy@%Q?nrHgXQ` zd#y9~)`+-`6IwHe99&2PYCsmGpLkTlKyyU*oK%U#(UOAz44JL%G+vt9Cq(Am`slVM zen##jHIhkd_mw=9lokjdl8$WPC8mih@RsQrcPZ-i_D$tCZ{FTf$RE9KPe4S*4Hfhw zaGrmycFBT~!gVwUaPibgynK01lGN}3xTSXsWQ7qB zE`h3}9S7hOAZslTgpH2b&VZd_jDRH-O~y?Oo!=--5mYS=vyN;N|815+HtHKLCtlg+u|yIWW1N?Ezrp50_e?TE9m`a2U1_k&ol zDBF9PA)x&BO8wIpZ=cm)y!*w=*Kya&eDK0OaYt$&2pr%4{Mj8^=xj16WN+9!? zLM@i9=xz3O%hH2#REPRHF&DHZEzaS&d7`{&2&xnK+;Y)agROSRmXiU15%_AexMUH^ zqXVQ$4z0<2*+=(fjayTJ_7H!Bg4vro5$gYo8p`}-f%a4%oHeRoG0e(?HzZ^GI~ zH#q;U-}=$}t&i@6{m>h8`{4dbwU%yOylQpis9B7#wi<(_NmQr%#^|nDrHt|{v8>5s z!!F%LeO=K{>f75EMM6mv_7Oftr5R%4kIkuur=+Tp_9nlb?fp7AYPM_6)91;_BFx7qw`m~(=%DXmr^3)^V_#kuu3u#xn#dCy zeYJsr*oC~((yP?mbMReZGjiG#IxTaXc^ff7ssJDGbhu4t@+{_w*bVp?GSV%9703;d zgdIgRf@!zTvlSP&iQZUPS(6h5qw^Rzht@VaGg~-~!DDv09ku>J$ zvcMiug32kJ(V8-8laT;0_fhSmo#pNVoy^|z`Ty`q0)j(aqSW9T^C`YfV?*pJvW|ft z07JcNS8ZwJ zd-dLE@uf@nBH|b(?sRDA>#;slr$U=C zn9&Rw4x+DG;f6VsI>qe(9jnkkeutT}B0ocKy4#|e&-$&yn z3d}lSNga6v9z6h#tTB;yfkfa0K~?}p7){r91jjJU;y_3+?V~%y4grk=DbA{BA6$q2 z6+8>?uS3hwIucX~R*)l{zSuANd*M8eiHtHuz%b$rQ3ji$RBWfEK`&W|3yB5!7=o}N z+hUSo03b|g&o*RrW#%*TXge#EQU0TnYdN>=jyvtt!-oR9!+~_IaaT^B$RM`Sw=s}dkYfsO+Zj96 zmepV{v$f8K(h9Oa<|(PUC!Miwx3E8a`(=f{`o*(1^^5w8yM64zYxhK2*oSt9@p%F+ za&WtlRJMmhzr1nvMwcJra5G=VDb*TpGg>mwXu6F73Fx4RbIS=mGF}vAuO%g@c{j0j z#hC_`P%ymyprfpXQCqa;!Irl;qaV~W_vp3zp+Z%Nfmq1Z5d>b0*y~p3RF5?k9mg^~ z*35SlrvFzixeFrEEGF@Cc13582Chj^1&F$6vzJeFt&c8)O9err$e)+XIfIj@tTotRs?Q#s2W)HT z4g^BXJub3|%zdsTbaY3hpyBdzCD&}IP-pR%00OE1S?9OWrMlx5%)_uk{ z4)wVL{7J4PXbwWMk=yjHK6uTZaQajiKqaSoD;4s6S7p!Um^!z~b6rIyAOO0$RqNJb zw8E)#8)2%^nkC>%h z{@oMzvme*nmoHwu`|eixZMXVuepz4n-L3M$OZen;RBooD^7%b_Na~^lA}Xu=#DIwk zav4VGF3hI}@%WrjIJ7#{sd$bpiAW^WGThAH=h z3wo)ZR!O&=Z`*@-ZS!;OO1gVsmS|v_0$$qbvCiQd~$DZa;R3r*i6|v z*jKca##qz$!t9ARTHwJQxlMi^VyAOy;tSb;VYr>EdXF5Y`a-&S*CT3mh1*=yn`*nqe)E5L{7Tw$+K zHF7xuPfm*PDM^Pvm}3Bk20zE2FU-00MeIUPE`>NcCtDYE^v*>KBR(>go~ZK!uj#w2f}SB=kmM?3#Xy!@u( z#hZJm+Jl$viAIfl&~SeL^Jn+C9c~zW0V+%mpE2t`O)zf;9vohOTDUx&4tu}(9$MGT zA!u1`sy#YMaT$Xfe}xJ5wN|x6qU_ndCXodPwCHvMG2cr_We%3xlhu|xU%H=>hZ%Y^ z_`&>S+u4y?6WY42K{5C4Jhui!WvV5%aVdwGU!XRf69Ib~diE9{RZtWzNW(y=FPh|S zGbgolC!*%^S4A`a&EK5w67$~wa4X4v@X9^0!OfdC%}0pn_ylbl55ZL@8}H7PE&~SY zbD5y+Y=G@e*2oe*20C3V>ZP(Wrk;qkxD3Lvy;+tO#a^>9d*3n8ze{ka=d`Ye#IAVj z*TU z1>)?ZT05J&oJ!}8vs9_ji*sKC6z?F(3u=9v3G;iueEaM-{?*I77R`fK?a7$E4=aa{ z0F6XZK5N3X0PYXla53CH_A&$?G~P7@>Ah-jw$!qNdqtY@8N_KL2a;1Wq*WWnp8SwzQfUxt6~OMm<9-Rt+sbMO2Ycgnj5 zuip12tk`Fh)I05u}+rs!4A|+^<%?*KmT7oLEmyV?F^Ew35T_urMYykK{B12%APd4 zw6%58Zp;X*ArW`%Y}li^!qtxNN9MMmgIQV=7~jvyWJtK_tce~h8sn`Kw~ZVuv%0%_ zV0?nEE&L1$1)9~t@EG@xfNiqQEYhT=dzc0nCo50hK^a;BH{rbd_ZjMg5=W5P7 z7k6}(7L6`*&NG`5^e&^s9p?9&Xa66>H|NxwXY~)i@t4o?^{cn<{MEZ>?_PX$=bm`< zLjF)QR{+1l1#m-26$85+dob5_&Ix-QMlH0g`B`3PP9$P<3}#PuNJyi%wn7@Z)0>c* zyxLlf1GaY!FV)({z-(>m!wmf&AYC^8_13NPVExo>Y5(rmRqtMT-rYqWy>55@F#4j+ zzh2w__}kz3?4Gz_(JLdRi!|AKk-W;ZpN2e(jqHxYhk<#TI*;!O9Tl{J#487B86i&R z=+3?fM>C(&)mL|H+Ur34h4`?+VngTXBCB5_*Cw}}bJznHrgbOF-D?hlXukWlTDZ9O ze%Med;k}=HS;k0@(3;WJb~L4KJ4Q_7Lp@=j_UOQxP)DkH?;w^-^w#G>uydPqCUT*; z-*(Rb`O5v)pS^wYi)ZKco3H%cyShspdGre2J$u*Q_ScE0-~Pr&&{IxQWXDeU1l%Xi zCt_*TGc#8|kio(KIahQ^?cOW25Z5G#8lY*_%*aA4@tmB?WqDr;z( zZW=fhDoh;>W9itPBzdSMl zDn{hsJh8Kjcfrtgy03FCK=8=B3z69W=& zh0vfO+0eJu83|?RT%)%JL`t7o6+6%n_Om%4yqPtVwzZx}L61(X#C}^p{O;E;&TsBI zg%4h`AF8Aa-2srm2nT_3A@&-$X|BF3sAnt@rlZ}#H@ol~F^68Ly>?__76#$HAYy~1 z<|u^6P2X2db9`)?vZEIaRi^C(U?ywwoUXUN#LwI+a(hL8@ZvpjY{4q>!LfDy#%K4~ z`Q+6>2m@^~32g&A-< z&xL8g9;?>^`y6W>1aFmAOH9aa9=qMSF(y&1bEn3(DNLI$)6sV7nH%PeSP5(-YXRya zHTVEny2eBrJ7Q(#**O{-y88rgpCaBtigyD`RQT8xc$JdEn}UeJ?xhef5J`lLUCjF_2A#4pU$IwlHK5Z(9-OdvazkTtdi!%g{q7 zPA5zmdRFl0{SXhfRgKnJ-nB-Tj`5&LEwf+}vpNYl6@YT1T11P8+_|?q^Q| z5pEN}-bY-o82u!T3gHgpNS|@+s^Yxoo&wly#P6q$z zb$cS%cYJVoz5n@B99|b7cH<=*gr-X`gu|F-r*<&JYZvh;bi{^BybN-OwRUG_-ZYpA z3GKTr>w|5uH80SiTb>9e2Txj=!BDYdV@9ph5yM+cnl`>uygm5iJQ;}dqwCpuVrw}z zF_qQX_BJaTDez%UB?OrbzAR(ZcgsC@a*H^k!^F6ovrn5f+KOt<1ZAFa0r3V*xM)oo zmmpqqH<;%tb22tb&_9g?SqksBmcREezK5EkbVx6X(LEur2kJ;VfGVS}Q!yYC=*#-y zbqz8P%*Ci%UwF-C|QgBsd&&6q8BaQ2L_mvW( zjU8+6I&DRA>yVPH=zHPTYO@WcIr|2c^{;q8|KRy$Klqcs{L4SN==tw|rTEo*tNs7? zqv2eM`%HT72tzFcw81VsE9G}^V3Fd_s zcX!Yw&cm%2cRL%N^Po5bV=c6CW+<(ROn6;n#>l?HyX0^KuQLOH9L(q2|#Sw=2&O-+CXV8J(mQJ)`HF%^1(ayl*>Ncy6nEkv~{sG&jeMf3Z0F; zag}ip@p-p~#19nQJaV=fbB%_YMtcWYXO5&cChoSXgO#;q6-@}L6v-O_Zq-g+K!x>n zyHowqrR;zA`n_%MK49~~i}yq@&ivrQ^8V+~?x9nkh^c8K;NXZpm^o{$3xF{Mo^<6{ zR^?_DSJ%EDLvblm*Dj=^d)rP8>dfr}2roHJnr-k>cOhR7-f$gmBy}!O0vd+r+#(jv zu6a7<6tH|8d{48-R&9fkGmhB-ZW4irn6Aj$6DpYd(2fkD+8(Pd#SOu{L)nL*ah!?l zXC09K17x`=5d-oH$vqsqVD)p${Qmp9&Wl&|?CUqLzpgj$UfjorJbL}U9~;vZoNU&Y z1U|JGR%{OEcAYhK;9ZPa`-(~FNY)q!Lu$rNpl_`WEjuRQwg5GVD-woWvvgw+J%X%z zH=Cfu!9ocaBiICi+ugC}|0|-9nkfl_mM3Z)=UfD#5fo8-AjDwWGQugx7%{-*bNW=a zF)}a?Ez%Wx!gmZGMmw!|*QwdPTIp7-HAFbH+u1!J7I9XsA!l`d{=fbFJu#D9R?8(3 zQ1Q=^V0|FO38SbzwOfLt5U#*rcYNrs8_GUFT-i4M;=(6(S34qQp<1*g2}(K7)V3#( zRS}bDT?T2|ED{pW|MyQ2$>zR|b-BT;pcH$iER12N#&V&&UNi7Y;hF_+jXDx3Hnmzo zvSP7G8y8pywCq?rBypOP@Mxh1q&X4zUfig)H5Z0Y6N7?wPbv_Id6F?|7Og{WDlJjm zwhhrPT-3D3q+z}Lpdj;uNGXxiAQI9x-8>RK2^5W~K4dahqwkIm(4<}md^PFhGjVaQo(L~&Phvk&v(6sQQjtbJ6&)%Sp z>-}<<00-iN*Jh1Qj@Va#wyn#c=r+>ec-}~d?b&px@JiZr0vKHt8>Cq@Q{#5DztucgJYxBq;TMc(t%e6-DD{svV;_QA#`Zi46{_B6o$yJW#SDBfduZ(iLsY?J#5O zfdl8rHZ)^(Y(E_|1kkhE?eO%cU;CT4_3W2#U*FMv9=&kikB#xFBeZyKB34~-QkJB6 zEpLPI`EvG+7^7jn+UeOh84#4E%xHSS9uIKQTxeS2+t~-}K4E>@n8vJ;aj3Pe7bn-Y zX0LT@_c5A0|39$Tp2yAk)U+2&8$mN!zpLh9PzE)R?@U|DT_LN)v#Tk#_~MaD`e=nz3r` z?O-ADB{sYgjVDbc-W^!+#X*E-K+kdmsVPn})&h=LS4yoj5)Pnj9s$AQX#zN(;kX~G zH6y0pZ`-0>LpS08k=oKb`rFO7;0wg;&b#?Ohz*U`NP3xEL2=m3oFaq%1%4%&h( zueKtQ0dC*Ptx-Qy%+YGK&Vekg7Azc4DBCSe@+aHheu;nH>7O3FY)=i6=NBL9pRV8d z2-m&N4gO{&9fr^_5O%zmuF6=0(1(sTrKfHf1 z(uo2w9}BSXz`WKPjpG+C%h3;>wQgIWkN!A!fr4+})|+?FzJB@5Q`40OvY_uat?XjN z&0dS7*?Z&-?+IgQG3=da%`NCNvAJ+r@&;@0niu*UP)5||ozO)Dl|wyef+(4hT^hW6 zL#2{^P+wY&rQOGhe3IcxJH9Elhj<6+5 zvA?gV-L5lg`d~8@Xw#9fqOBH?o2c+qqRf$uvoWX4=@hrIZqW=Y(1*|@brHSPP54u; z)WsR?cy4qj;Xqk|2%qZn3}>4@FT#jUj3t09oST9@}AozJI>Y{xc|Mdyn6R-|Y*;oONxx5~y6QD{g(?b7D+%gM{dAgq`j)LekWxvv8 z9o1(JGQ@}>7#(hYDu(3_2d1ImDv`14Yc=}y%`;WhQ^Wxbr z?=yxUyl799Y#&@3fAs$6k5IDp2Ek+KKyV3iKadjcNwveMxl zojn!d+8pruI)cCy`EdzZ-tKy?|Mc3&R$1%)*ny6eg~>&7bXw2q_THrVvgEk(v!>V}8X&u^)s$MMVT0PqEYacN?lC|nnLdQpY35S^ z304lw%pwW)cWlk`JkRsAm7SYaVAXqnwm=~ZFH43UDhU*C#=AGd!~LA!K@;#C!P&Y! z;1@a=;kIFgc>`Do2(;6&o5POGDZ@C9bXig-b`TmttIb1X9brzCZXK}$r|w>P(d)jd z-qh3rEv8ymZxIZ85sA~c>l%u%OX^uOeXwtg`8Edy*w9LbS zLFgKBnIqVt&l|c8!wsONM$!Ee{!L2Pp<{2jW(EkO2*|q>vS8zi{fq1F?vL@d8 zl!&vhj5-eJrDf~19P#W~&<)ZVJMa@05SMPSk}bG62b&v)F|wl5Hs?ND7i2~p(=oz2 z(Hg>*QV_#oKZT0Uvij12JjgZfoN<4M8Gb(d<1gy%FP^=t&nw=)zBej8cnR+=>ix&m zzafPD@((__mrrTa5aTP#6BJ3PMlE)W-FB;)1j839lZoL@t~lyiB*mL3#}aSceQ%ZA zLy=tv&a`Q#(bmMZW{>I7FIIL#O!a_ZiM(1>-OdAnF-LB1A%r_{YDBIE$pe)ujtQ$O zv08CTM=H*fy1WQ7bWSVQG0SH4cBwB}r%4m0>#$$GJZ;EqyKm5FVlAjqkayNr&%6ah z{IuS`v3GX|{G(UxN#gpvA+G=0e6LTS5A)l$(5K%PTE4d}jO~vv*S%B`rKH=T%4kat zg;JhaA=mg+<{T5*IUE-T+9n@1ULs=Jz;$=x24h?LDKU6m4QD-fhZgOCXSEF``#AG1 zhtVAuf+0{RTeCRTcaJ&eXU^zsk}KEBR*R>|-8&Mm-@SYhuV0-PcSwy#uiV`>vTrOS`y(MWx@fa0 z0i_(hlA2IVT)mnoQPXK zlxqhZY8bb1t6X)q`Sf`H4=~#CC_qR1oCAE|6$;5I0xmR>)1VkCpfPcs1+jES4{^b) z87cyl(2$j^Z4A*sz&O@$9fw*T0NuSrXV-arHS>L%8-{8&`=E86|I43!0t}?*|H@~d z!2I+1zxvrvzW=lu8&)oDyO41idZ`LW^Nr6C$fbdRH<}#O6baDHAh7jB=3I<*5E_)j z56~IvG<6jGETV4U-dqx!g$S~N_De&6-Pv55Obe>R+ez`GALmIm_7ARqxQ?5r4xY8^ zC?%rG4ieRUu&%QYZ3k0#DCLetW6Lqk3r=FYcCUuwAJZuy)Zhk+`cpQ< z!)}Q4!C7VnX%G0D4u=rZoeBNh6Q_zst4lTnD=J8jT^U;>BK9!OX7C{sDdk(c#hJo^ z3lr-(I4L*n=H+>0MPg_f8(HrQmE+BdI!abo_>Nkp|k3+NbYu;|;6Xd!a zNVk^Ga1p~3Y@q$jU2C_EQ5(`=D0Ce&_^1MrS>$Nk!<|7uk8_9pZfsP0Yeb$f9W8*T z=!(3%hP3s4cE^wM{9pU*6OggohL}D0aqdFQklOjI{_Kgp4uv!dtEoY&t)OhHj>H~o zma(5DG)fHcL^1Q;5AqA(ErT7Z517=Na|54lm9{3Mu$3ce0(ldpXddqaEE2l<#7Y-{ zB8Dih``k{t&acpUSdWLxb^1BL@U+>6=3z(7saz<4K?HJb02R%h)&P^Naa-M6=N^L( z<2jL?<+3cPSI5jq6NrH}%Q+l@1#?eORw2Zy@%&%^>|#6@xPTadI1=J za^&im%*9z2+^(QIkOkF|*uzL4kqK^_*bGSmsO$D)Szye9fl1wj+=FoWFhf-a{jQ-p zGH{P!SW!g8A|FyxvGa?=(O(H4XTr47&6@clYojpcQA1|g*aVhDZjwlvZgUPme#TcH z%a6YI;+>kU>zH}aRkPk!N$k@z7aGI`MAw$F&rq2Q z4W;4Z`M>#XjGCa}%$T;oiUq@P8k#{=+PDeGSXT+^+jDj7LO>=N0PQ;==v;<25QB%| z9^+D(s~qyK5Xdou>wOJB16&F%)!r75+Pr(+DQZ^eRvA%8CRJa3W+A(0kQ+sh zomuXOM-i@(NFL+es(TLP;w15CoDpb8iy&udL)828fBRdI$#NA!x7c0wLR7=$ zo@7Itr^CjkG4v|or@ByEsF_vIu3VhVqPDng5NkGKGzW4-96h=bMaN0bMm4h#N#Ag# zgB>#`TW>b>Hb}4g+K!K<2f}s62=t)6@rG&5bBzShs4FU*Sxb6#-d)i>Hkvj;2JR{7 z9?ilN?nHqO%;TiM;8ZpYa)g|RT<1`iIZIKzU)T6=e2#zj!r%CdSNY7|y!reW&wf^) zzp1xRBt1QL6@O!(V1wfe^G&u5&W9OoM-!lCNZ*_@24+s2P9O@cj)VpU_vH#R)B>gN> zgWu__p|(QyCF!>1h*DxS>mhGIOiDxWEAq$4-6eGtwxiZtNBtG(g~$L3$vX?<&e<0P zG0P3YZFg_SH}$cUm>F2i`%?cyCN1ln$ht*ydJO|xbBZQLc7(29M;KW@=*PJg`kgOc z1-^!B7kKIhM@WP?-3O8fee|BR&5$VVVvWFj3x-%Nh`1wsN%$lf6$cZ7F(CE}c4DGx zZRnt(LY~7~$6s|$oDI1gk`eeSkz60BrA=td7~#O$iBS&|&s7V%%Bha98>B&tLexEbg((_C$$BHv%F0D2=E` z-&JlgdJle_r{0h2E_=U$^t~r~DL&++ZQMKE=ITBxQ>$icYLkS80^yV*zA!p(r>5_Y zy9!+}CBrm>4c#a_SKmWL`7~tso;r*6ET}GY>g4H$D7mxwn;Xddas&DJDWWF^cZ_$@ z!6HI56Z^s7-x%Q4rW2OoX2}&yeRU~>BL;P)n%Rz_VzP0!+(rqeDCb{@!6V(*pcLGq?TH(4p0(jOT=G_6U><#+lmbq$d$$`8#YCIrg0S}mm&vg#CW1DrU>~;z& zUEmtp3TYj&?PF`}3aWqFSfY5!eyg*|h z?^6yS(h|W7jT!0ymxNtaWwwSG=PR9O5}^5tgwO1~+DUJldzV$@QV{0c2A=)RclG|w z+t=@3VEoQD1WaN=!G-Lk1F_u>g0gQD;tio^Ng3I6PjcE}4%BP(Jx@+QZPLlWdmHpUv^W^+Km!r*8gScQ3eD1PyU0t8Oftl_+)G|H(TMumIcf^NQF_3XTO`|i#-^XO%J;&r2&J&r!bJ+32Jfu}6L2vf&~w*@qK zOm>XP!7x9k8?@#VQSZ9WN@@_TLn*H)i*!#L@ublh_L>BEzW;F`8rWPhb!LQ;3Ah2K3W+YX`ASL7r`| z<9p;fc+O=EU>r2CaFb-^*(+wv&;rAV!Pz^vlGeZTuHHZUesZ~I8U?IZoa_K_}yiCohwBsHFxdu5CmZJxQ#$e7cl z!*IpoYtI;fl=AAeD#rrsV!(JCxr=1-9I!eNTw7r+k-y=9Vb0m+DW8S~JV*w_SbA-1 z&;Q-euFKDn8RyIk3`!NUBY2c}hict2+faN{xxMQ2F`@o3V`yJN_8fUu0O!{vVP5dn zqtOmt1J%IcgHrZ@ws?h|Atee~BIYIY%;*2!CxPbr_dol|?|*bVOrKgyv+H66t_^o< zqoMAT;Ng(;^;G9<4hgOkb%<>DrgOneM;h=?eeRxw_`gb6BokOwp9Wnw4aD6Hoo-EL zwF8J1ICAH%R25vbd7VMg8umIC?@CF7E2C!)Gxc!s43)^AR%DuFv!9eQ7wxv~VN za9K-`l>pDy>E{sZn%E0!ia8#UXD~}&OS%rdHF|$9e)jrLU){N{9=&MaRpVbPpV&|F z%N;b|j&%rfY#ka-es(V}1Jg{_#94}<9H8h-PFsCd9Vj#i*93I7TI*W9+qlwbhbN|f zv`J)ba-Z`^KY~NXaxJu z-p&wEs^C~LKobvhgT5$H!io1oOu8Bljy(eewoZ!s-R)M_4e}Qx3LUzxYPgym(}>j| zVbU$0HWBx0B&xp5X&Q8WFbEV>+c+n?V=tMA=%iiXT=(6xdE+THuAS07)h^&{w3R)r z`ns)${}8h6XYb-?_0pcbe{1-G?}KL_yo66|eR8w)eFUh)$KU!AeDW@Zrui%q& zTe_Lseu8hFN~7$~W7X+<3`~z0jz-xld~eEgOpxm`(pnseoFf7bBIYDS=n+q_009kL zQPXrwLPy>axDMM9mn};-cj4Jm>-0Xa0G@NJ?!^AjH)7yl4GPhKovgd^vE@knW80w<^1NOfWYX}X!-ahmRc@2i1*ppa!>Hj6wXej@ zKeRV5Zej)g*6TO*%HF*Aau2-s+dp_EpI}IRQ#sH-hH~IrfbOC*GC8nH?s8Sz$C10J zMynmB32iTI7u=~WM5;)6tS;ndXd}D_btzTQa6=4wIjby&?Ez+?fn$lxt|vi^O&@k<8wg-T*afm+o5fs_OFM%y zgggv`(GredHsC-zg|_YpEsdB%l}g_WK<;bAeq<Ieti!yI6_OrP6e(4q(lIz?LyLJpbB<12AT%V&SE_p`H=tS6?np=vUa}`{3H`_88@B}f z^G675-!c8ntX#X8kv9(NIf4m`<}epOZVP;vh_+i`_~QVMKykmTj1I*nurl_dD@P1b zFnR*1Wo`1FU5}hgpDt~L9%^j0ld1J;wL-w0eEuJP3x1%Jgp`80Mh75ZvojRQ=acAzAAaq!eEar4dj0NNHi$4I{aVZB%Rl(! zD#h62;;)fz^+I$h!UUBRj@3;kg2tI+0i3CbY+73<$6~wOBw(*#z!~up~=R z;;l<7h;Nl-ZU{qH@7)u&53@zIZ*R$~_5=!M56j-R#jbtO>w`|fX!Y1;@O9e;MX6{u zXbll3hTS$f4>EYPX3PcGBO<{oNNFuoL8Y}}3`QY_aI}&$I&_4GcjUaazWl&my?gO= z9>}8??#Vn5y2%6i1TV*@=NOyHX{jL@L9#_{JZnQJ$m8pUbt~1&KVy= zobxTH5Ov3ayAVKXlZo$iRP5Z6Y)-ijU-GLiAfwUpps})az^A#qG5*&*)z0x^f&C`*zi7pdhrvEKn%=K_yd8 z;34+83n%L;X_k$g_e_>qn=1^qZb6v0OjYWPj+_V0324H_3eyb0k`12TTg>JUKA8Jn zfAK2sbchdLxZl`y_|bmL@2LIr{$|Q9I+WLLs}gW)z%Dys*DE54RhmT<2ZrKCa(MWr z>AYIAhQ7G(K|O$?uhi2CSlYTmf{!l9MGV6Jot+FR_IIkR_KC=MZl|CR zew}mo)-W7vG^ukF5OtNpPK{Ux*@&@1SEWHJkh0kI zOjzv=6APVVgW z`r$9H2Yu{B)5zL(y94-~xkLw{++Z7itOP*qQ1DNYi`30yH0iDv>6noWZU^1$4M-cH z00N8tuH#X~2ZW{$*)ZA_V#N?)A|Y6}^jHw-+B{M{s-Ii;)(>C2d*+{iQU2oX-AVE2 zmHW*&zrTgjgmRu!jD3Ec?ttJoZ1&qWzOfdAX5qBt?#+1%b>1UeE^6?Bd{k+8NU zbWUk5k;@O83_*7H>W(NPm`o>R#{FzrJsr6ymUf!oZg0H+#99iyA|n9&AUDIdL-#X$ z7icDJ$#6&++lko|p5Bv7Ek_LWUZE;uPdqocu6^&-#1tT1=_K%3O~7;6oz`}xdEKAa z=>E$dlbhG)U%qnx)Q8&U*_QyC*KeO)kNo1is5|xJqu29^o>Sjnhk<|Z%Rl(!-o!%m z#|j|14e%Lk^>F#Eo+EN$XyI@wo9N(J{dcZZ|d95ROiRB5n6MHyl@uYmPSa;ta(C6*4cZz3N%}$!_QOv+B*W`s2@U zU%N*y-jm?3egppc1kc(IjTe*wByjiUf}GS$eFN54SHi>4(@=$Qk~!&Mp4-x6BeaHA z_Z^ZhTswV1E;_x7?aJ%`VgZQ=g7igF%44zAQXioeq*tnbE6efMh*mp=YGM-@lPs}yVJAakhD9;pFB)|LnY{WX>% z`sOr==?kbeZzGOP^>dnPhrwBgZFpi>HGLdblD@tW_~iItme8+Q2@4+ zLmbh-8>tv%3u-IwbV&!>Qrr`U!YSW%0UokHID5LZF*;l%Bs654oHJ6bV(VOMi||_5 z`=Vb*)^5TOO)!-&-Ha6O+Z)B-eev$u`Qr1>|MW$^|Jk#6o%QU^>ld%?BNQLJir-b6 zK_|558fgp))D1|X7hSDIv#x1H933o=87P(!u>u~9AHuXjR>#;M>#=<2QCoDtT2YKM zSY|)5t7WIsz51C0hUCUBGuhg?o1(AHW41*QI|oATW^ZGUv^6wMa+Wr@l6&_#iC`cs zH-t*TNxG2d%dv>Yz%6p^IXD1&^_a*|8Apee7x(RJhxBvK;t9%4%VxLs!XMVl*FXPD zTJ4Wsxw|)R-Mn$@(|qG<9E+7r*EwT0-{TD9GloL$*#|dBN}=W2ppllHZML<~-jgAf z4}?3;hy@}MM=WS^l3+4)M-a|DXTWwwt0C@UfB~TZ@M?*Dhu^qIuiO)fApIs0wL@>qcH~Yso%Y_MS)rpkARl;viFsQ`;3*HV1jm zQq-zaq9HOjB|QKBZ()5 zh0wBo@1yHo?3}sxt}#08li(vX#90p?Ew?lq!-t@svxnf0zOJeMIpZG@Q+^*A>0Y<@6)eIEpJR~ky3P`1n~gs(l#!9~x)n_beNQgzqd@=i6 z0Et*bf|g3brjcSD`P-4RI_e96*m?KfJGS2r5zARJE+X_no*x?|N${D0B7LSqT3V-7 zB38@g3Otj@etW$9tq;MCAdpTP| z*oxv&szuwE>26_dFQn%!&+Qv*DT8sQ&pCA>kCC_W-bgKy=zT!ZpwNvR-I3B%Tf5_0 ze%jcZy8wg7uHBRMcfYB>Kf$XX8qd4wNyMbKPG({Y`SUO%?nAgvlOVauV=WUPNf2pu z8U^!aJDQlfg)QyCQiS-fMwkV4z*J6$M+b^3V}w{&_=q;ME1%5ULb}uga2A!UjD~0_ z)I=%_tmRqO%y`QQ{LhaLjgpwA#s`~Tt}AP5H^o~EmDWT8i%l6ec8@k7?T7)v7D$)1 zLq^Hk9?9C~t-tr5JofJW2Yc_k_vWA1GZ=nf{q)7Ty8u3VA-}68%h{Jt2lQxo$8O=s zEM192;$@`)H{e2er^Fa5)8bGaM2%7{nT!mBRV7I7(ME>e{0?IzJvV79PnwpEF`0&R zSS0q?fdR3|y0iJ7g-EG|F2O;XSwM80@V8FuGEI1ly~eU*0i4T3@FY-@O-4!@VyioY zQISpU3>bjB28W64Sm>V(?FYH1t~!EuaYI$d1|rv;u=MrkuirlV(D}OA@gBTzPwsep zv*Yon_rkTVb9bab&w$u(W~3)GH5?$i38K(_4F}m~1z3z8N*Ik0u0Cj2?qj0T3U@3c zm5RL_M(8#gkq>Qo;*g?(nN;9;c@sOwZpTUAofq!W3-_C8aeWJtA;VI218fiFt{6wL z?U6$S1kzC?zI#j4DPn!2;&S2Z|BjSoB&F7=QD|F^HDvKxK<7few~&%7A*YWqWKZ1; zT~_dDYsh_o>k0)G&WEpldRoK|TM0cEh%IwdiNaF8+t{6DT+h0K_X-NiF%3+sCT9aS zrq#F3i7Vd#2AEy7t*KX^@&G`G+)m)4``K)Ed&K_mXZG&dyI;I?@CR&81q4s{heuc5oov!RRtNDe;d7y~~2Nu3~JQB+oE z$mS4OVCcHrF)1b~j`1*aw8^WZ*{5*m-+~JsoB(}DJ@b11zTSS- zF}cZ zzn#H;^ck$OMAU2}x)>AEJbX!;z#H<;@@B}BN#uV3eaJckUhHPuYt7&sqtpa31-=d= ze#U*4Nc4oRaG;8B!2lc0tMZZb2}rEe)b7m!k_ zumvF!oBQ+s{Ij3@;YV+u^@thMxbQ`*rXs4GHqdc$%+Dmp#{>f7SO-6ZH^}E^5CpqbjF_6d4hwwZAP-B%IU((IBG~Jy4n5fXqx=O@a=x9x(o+5i~Hv85|o@8(a9qb27V6(XJ-q#UZGG zx_1Oa9Dn{_ehcq>jMz34L(H{ZhOL^LlH8B>f_ekz^hhM?+PUHe8J-US3@oLTSa$ko z13La5YarCyv;eA*&lyVU)=5W zk6yVab3NKkuE!@hC)qsbYzajPQus24#T;w&YBD!7@YQ|oK8gqQbzbhHH~5mQ*)g>5 zeJzY_jcc|u>+rM^ps0-*Nj`i)oidOGc{4)t+NSsvPFDC z7q0J!Nu|>R3b?-bm{0c0Uq`Be8;kMA?V3zEAZUuK;$5s0_K3}5LLL2LXzlt2+ml-l zLE?elzH#sC?OQvq-@bgpw*TOjyR+?IZK<#6t-kl=AAE#3@&|j2pZ`~Xg}wGifAe3w ztjK@wOAqot*IxhV`>)^N?`EI>OMm~b{p5Fk@;kq(7;#=!6?BQq*p@Mkz+2X0=N!2H zKwyH#k0hz?1eQcLRqMc$w5^=0JFfwXIDDXJajn+0?LvCc8j+F|9%t~eKAq0A)M~?T zyL*rR75++2??IljXVjd&v)3uKm)b-` z(z)H2sUZSODRkn%ZYmrZ(iqorNULP^9SQvk*rPK#qW${Hoergo4}__&oG`%lg;TY* zuT@PaS_m{P0xd1{gWaVyMHg3EjyW%K*Ejd&*Z%X0_s{;QesMpoe(=hDS5uGaSP^-H zH*d=>OD`OxqM4MK8qX<+S>bRFYh!?GU9M{Z1dv6T0dHL^RxqUM(~IX;k60pYOc$7E zMYH)tX8E35m}`=IU$?uRg6lBF24;rZdglRozyJ@rtBCksOILDqpw3;%P68FS>xj|W z?A{=L+4HoVcn4J&P02>%N_|VrH1uF%a(Wq`w5DT@Fd1=+xBP=Q_O@QVfA;cqe)0KT z_4(+vdy;EGH(ZNf`<=rr_*@smv7Nm&xEQi6Oqk{bgDK~1NB0D=24B+3GeI`$w#1m{ zI^=e|^$9-Ho;~^q^Jr+%##CxHxVKg0c>>LL7$-U~60w_BJpZr14QM(LJ#EPnjI^XN zbnRT-EdrQ0KNIbq(lM9VhD`*sM-{+T6E4)%WOf!P56p=hp_yI@Rudu(yG_qEv!$h(!?%EBHUb-jR z4gIFw&_7DM!Fq4hEQTHi3$e96Z0Me2^JMKi2<43SiaL9$4kWT~89oP9#pZD;XU}O% zc(iIfnxHabTsAd_^#t3_N1IME%n9Q`DG8!}J12Pb|Je18)Stb1Tko*$AEaeZ zj18bY!uV!3rM)}G`8|Bv2BEwfO%VS3BsDnorszzkz2uyceOy@=ed+9Dux1Z!2$>!D zPntmpC7EsZq3(yY=dl_aoNTEz_u4m8-;1|$jSUFR543BX{`HZe> zAg!;XAP7%*2{U{g(yIr~-H~*^=Jg?+T2tfLPMVvwphmKR#$H3t=?ZFbR!>Fp%iPcZ zo6kNzhm_6%hK7LlB9VRe%9RilW?kb^ozzCpRN~IMs_PKg^=AN1z7V;J;X2%mXza9f zgBqrCtuZ0&3p-Q$VWcb(m7Ig%n#Jf1-RaME_O+T~X4j%2sAN?3RK{Fr7bK5rDWO`I zJ_j*C>#Vt;L&12{629E*JaDu^%b&a#H--;0&=W8m7*Vtn?-&d&XvLeh6up&s|3Uoh z?dz8>zIge}U*wDX6aBGkcYnKYKi01w>EHYE4?cndO&jHPgVZs5+s8Ih;($lE#)*NS zN!O9O1XG1`dx!?;PPNyWebS^gkAcKWP`H8<4uz;;)w%_Eceqeeo$56u#$+>KTFdGA ze~Urv*{T{nk0Y8AiVjM}kR98;`_?YZz)g)&J=;Es>Dw4X1+dTwkZ0)0+(;D!&DDHI zl4YJDCY81#2LdqtI#{P9W`A>JGbMWd-#z^WUSYH0)N}>cn1#GTM!HP`J?e97F=UWK zI*5JfrO&oD)(Uw{vvo;Y$X>iCR$PvO)T%+apI>q1sc{H-Aq~5NoPHGKf9wy)L%z$t zeeB~r*$4RBUj_0(#`XSny#D-&-Cy_26D-3TIqr6{bR2ZR26@>aFa$9fKC2)n83=M8 zt25rb)%U_nnU=u|GKYpD8Rq_)t2{Qatd(mPltm}|I{R45Lqr1k>MwWyzxL05m=)`6 zI&g6I7D`Cgjl?CMhpU7DiqxLGc6mo5-Rhc$HK9V(yqz}8YQgCpA&e3H)Q<9GS@basZJ+jyUlgD3 zuYOkk=%4tqO?da$yloeL^GxjyX@H(Navye_1vZp&dIQdYdpoqR81ug1BP&Ay?rO76 zO!65L-Wu0vyO|@XzS&6(6`b0R36{@HL7=HEjTkc%+v)Ifp}U@7>9xnLsSZ&P8pL!O z4?!+v`tcU(hV*L%fiy+Cx8wn`>^YJq8;WYH+MdR;qPaLyzm#+I>L)&=VQ%DKhKBV} zV9Yi_hIeb7I-lG7XJPTP`z!K;7w$>iDBa*jKgMwyaa|g_Hcv}IO(dn1Y)^1%#qJBba49K z&;NTIrz1!vYV0JVH5vVg1;%2;6*Z{=H{FgrTu7uAhsN2A3uXSq7YDD(JTnIPV6{kk zAFWr$(ZrMHu$;LK=guBO^7O7OUOtXI{~x}Ef_8U=o3xq`vf_PrlPfLYqzhUw{pz4} zkY3ha+^wC0e6s*I^VTXSoWn8c1WW*<`UYp5FRp#Eh%!Y*$k-s_3#GY(oi=bd-fq|r z)*9V1DPG$9pZ$fS;@(R3;MM!CTFIb+XQUNxfpmW8QO{TzNy=gf?Q$c>)Iz-#I&`qa zXtW+(*a#x)<5Rohc8-7x2TmS|H8dpY5?lx3)HTCoo0=dLtXo>i9eC$7SWa2U3AiFY zb32YyIRYo`HEExQkkQt-Ggol8bRIF=J`FVHQ);niqQ~OZ3X%^bGB=hU7lt(Yx6Vp-phWP4xU;e?bzu}LLQWvInUmF{>4)^0HRIZl4RG$k?7JfN})}=62G|gwssAf3ggMp>|M?Z zN5MJrl<(R4YCullCXgee@!aredj`7yVS*t6r5(b>A)t@#x{Ahp!rAemA=LWfT|&LQ zq0=^9x1bX}7V02;2sLCtPmEv@p!PfORY*^b$p;q^BvRrLWR5^5Yx0s{(LNH$EP$JkS5f>lEM8ptkOzRNPK5+>u+Lr^T58T5}^%q((U*1;5EK2q3h4yzkBoc#jE${-iQ0xg?r)vmzyb*e2SCJh)wNW zKa*7^e#4FYX`8zRW`_w;dY+oQwjlIS_tg*G?TFQuw#GT$_mOt` z8GS8mxPX$-dYF0E6oPaXgy*5TE5WNGWoq(-9O2t!aCQFYd8 z2LF-m6;MTYLcshLe$#3Tx7J#Ks^St}*=1Zz;m)MGY}FbpzqDfg@H*f>yeZcSKVx0I z7|ny^2_){$v$j*r72br!wkYOhE(WKKYs(&iFr8%TeKS0iu6~fvBivGDjF`Ch1rg<` z?xTuKq`(p6I{-{vT_!X_ z2(d%#LehW;xwvXq-419T?XP^2n|$-CJ$lKWs3rSNGw34-H@<~hQW}yF6yC&T)fR*} zTXgQB4S#xkt~{spi-$}|`@(^i+7`@f&3P5;yo|p)g`!3wTglm#a-11^ow>lP$ zVk7yRd*!@sLAqqG0QaEIgcIq~-Wa-dzI#nRNFS6I-seg_dWc5EvV>JlE@))ybF4zh zq9~lt9kZBg;x?wKqf=jf^ycQRZ5u#%0oLQYCn7(otLJGg`;3 zXX^@Cs!P~3^hj9%tjCcEO_69Ko$KU56A+RU$FZ&r$E4t|A%piDFwSDdr;fVWjS8=oCK8Er6J!EF*6>kA>GK5AUtiYC*$ zkyX1?6lq9oEZHKEz6$~weUd0TuJ}in1s=p~km2uM3f0i_{}q*@*NMH*r3-G`cPt3{ zte5yc%?G}E$ZM8+P-TnJ9reoLK=<^wnie7Ub=w&o8AnFtMI>nWLLJB=4QFENd za_q2Wg4~+V|2I5E982&-Y<22+$qLk+whBa`tFP>d>XO`$)Z3y0={Ytb$e9dOfsP4? zlxVrkEvIT(LlBqoBIb+M-L3j|R^W*6u+3!%(!!qq@1OnT`@gakiFjI5V06L0!cU{H5?5~YR4Aztf#pyOh1W3;Qkvl# zLvY;XdF1l_C z?z@!dcVFO=_+&=WqgU<;uU^0L>U|v1D584iIy_h_!mwk&Dz+G4&`G=-mG)M8M(lyH zna>&m&4fdaNp?VcXI_1z9^bx26%(CN2+hed37UxERwQ7MH!}oQjzv0AtRD!+a&I~cr=HK(Q@ROcxZs1D1g8xK^frgnHbcM26b_e8wLS@ z*^9`6N4}S+X$~%zO(3H_|35F>hlS7_ltdGQ@B|64wd`5*OToIxk!_l`*;iLO;fwtU;55AsDA;Y~A{!85OavKK^=EEA}v%+yyK(=XgJAvfaulhwlv^OullGS{5{4T`6;-D~tq%QzTS6f0&4oGCcV!JUhxZSO1i zYa29CX>Hibz~HVr)R)}h2;jwJvf#)F??I+c6xcp%RI8Jt8ITr=;_4Rg^ytU=>dpDV z&)?m=IRD7&SFfKUJYiV2F`nkmgSj{97Y!)1#O2^n;k6fmvV33+Rt-Uxao>X-=rXq6 z&(5(yp32xYru)Ig)j6APgu{d!7~Fgi^U+o2bA^@GH|K^EobRhvJk;lms$LCT$sOJa zT006^2kAs(PXWVjM{W1T6B>{c;>psLXBHezKIau6g6}W6BbLNBYWd9&BiHx5D#5yQ=wE!>wn zgd&oBsNoiZmnfz<%sI8#i|FL&^HdlpzkMtW6^5BX0_elrj4KG|_Hy~?$GJtK{QTXs zU)am1WU4e8+|Qd2B7GqnhxYC`+$@3o;-VV5XmkJtfi?ztxJ_MEYlur5E*F)e2Z{KU=NWSBV(_$3+^OCChZ-VH!Zt-0!MZ(JBrUM zkOEH&u*`u7l3SC~gJ&DJll3<*;?not6Rsbh2dSip&c!^D$d;LG`z1NdwNpj_9q+tOpL14MuU2u(j zpmEXMw`#aYxO+qlxwPf~z!$!xnTNZ_bYZKj+B&OeFt#t$T5GMf=2B~|wbokmFQ6vv z+^Pn;zs#P28EPi0!G5glud;66d%uWq_j7)S=FU8`Zv-SO9cmIXMs`A(m`i42fxdMZ zjec^MZFVMTgkaG2ZD5MHoI23lkSrJueJ)Gc14*Sq=xmb0Pe6>v4%$Y;-oH1E(V7)J zi~Y3TZSRhp2BGvQ_`th?9=*kG=^?-M3zYTm3s`^Z+xVz`xZT)?-^1i47bl&-Nt}s6 zTu;beybS|qbok++-g>Knc-sK8M{ycG-YDs!{Rn8$!vy(-LJ^LGFLFchIi1(vN2fFt zB6LN#$EhLOK{>vKBs{T+@aFaV{Vr4Hi|0`<@9Wv~eDK;m_3e8g?0_G$eIY;R$KU?o zy?gN_VK-9@QjY;sTnkQ@z&-|hDpkAcP_6yOYJ+dBEJav5_p>R{4O*iQL?s7xXr&w8 z8@04OqlF%gQ3Fxlx}`TLsACI{$bI|bjiWLqZ6sIL>5%_6@{vBbfM5$s3|DX=GqBK` zF7W?*G`UW1JB-i1QqC`ahghZsgt?%$#}pRR1Ws!fwr@nKK=z^Pk_+@I+^@Cr1iLVGK(;Z~U#-M@DDi4Cb3o|q@Q;}tD82YcY37}*e z1h-?s@5RUaF!b*8O6JQp#T>4e9*FmjjR{FY@eBu6(|rVeow+M>d%OGJuD%;VmO7g4 zIZPIu-%fLM+Hu$e)0*x5^Z~(Q)qqOJ##X^J5bG4DAne`viuy|(>^(UrC7d2blaFXY zMQMG(t`G%Q+}eE&jd}OKUp>h5v=K}*yAN4@rG$Ga8z`Lnu#_A`#jPQdG|eV$QfMg+ zBR!_wZ5YZ2-3k0!XMcmL;g6=dUB+qGo39tZIXtLng=k%&hZLoef)Z>h~GSd3SpK`=|mlNk3l zyNp^_R;_W0;V%wVZhh6FjlQt3A@kJV7;@3&I7)K&fBoELUcuYxhdN%VW*f6twLbYk zrRN;75uZA&U@}TtlTf~!9|MecSeu5tA#`Fmf%={eMtzM5&beT!WH{VY+jW|*AW~HP z(MN>c{ohxk;uKo_8;|55N@DbxNGd8kfM|fZY)Uzs(M56vCdj)m=1^TF(5|E=BfW1# zjx12#k(F8?t|&$Yw$A7fx>w%e(gC6n$40kqRcGNmOOe%Bb8AG+tr(5!x}tw_b@crEX+tF- zPML4Y9dgOg_Ta(t+wZEt)97@d0A}J{q{uy-Qxi*(#rZJQ*s`6A{Bkclw zvI_i1mMgXmMY=sSP7A+oDHmj#b`78KePbW3Pfr6p_ZB?;#Fz8PI(%QRpS^zdCI|Sn zfBP}ggAWJ-4-yRQ=o#B>Y^R3!%xc&HLs+ZN(=?Pxpj3klLHHml6TGXnT=^VEp;C$i z4q|>4O0mgwcmn>@V_OH2uSUWRV@f3LHXeXK=loF535&RDAFy6~QQLbXG>WJn2vbg< zA}5)sD-i}h8?E^ul5-BCLgw@wF||`av}8hS5vNNiCN_wY8a)|<)LGtBV;;Z_IM&@C z^TCCVU9;9;9X8>}j%GwLHHz)5z58`G9pEEMO9~ws2riKY0?k|(_>xMH4y_$+c198X#Iko9Bo1Zty;%mtZPaF zN#H0z}3?ihi4D@1DJ0!Ie1x0)CNIyS4 zo?6;3-$5-yx;2`=rxOZY_oa)vGN^Co>VUA11s_mOV38cj!gEzMDj3ReoJX}25@|cj z=8=tTr%8s?SfpN%_co}?eKhWJ_s3zqz?gQS_8zUPVQU%8*#UkBgW{xg--&#r&eZlb zWT#k!O!|$66oa4&A45~pNr)BDzCefv$*A$nRs*FIYQ^DI<4D5JP?)i`yFdPe_ds0# zbV58)dZHpX1bPEzPwApP3 z|A{Z>c7TLn=+CR&XTSVVA1#xhQJ!UO3U-gAv>k-w-mZpbe7`jJ9F^Opw}^c}L4&L| zVqb@PG>KLb*g@tUSxsub2orK^k==V|Iag>V4T6H>WFMCuzkOBwyFcNB_aJQSYZO5Kh}OyvR8-hw4braN3@0@$9WJcM<1(s)?57H!zIe`B zM?vu}B;4#;rw#PS4k8g|%>b+cKm=N8%z*`ejHByK`G&5di{sownhy)LH;czphoya! z-S%#?+sYVxNo-MVGqMQO7jVCrXce&0c$0fpCz=!TJY&DgR_(3JKo%t+!xPHBrQkG# z^&o-x3`=`Q4|*NDpboJ-uP{h2*48?oyFc+-DyGT^_$5@NiNYbXvNc0InXXaNVUaS~ zW|0iZhhd(xWvzM0RZGhO)C5DXUZmY&`@}EkV>LQ>#7)rt&MZ+-Jf(_ z1?V?6s5BG#VmsV?I!z3|hCq1+Qs-7Fo=xe%IntLU7}`C#bLU*i3?lm3*uWCwm*IZ4 z9gG35Npr`A;Y>ZMOB1|~3}yb^pNy+8!n1CiK(m0BaLbL2>H4k4<9d;PA0QtKfCa$O-=^;2$` zfC=x3)kp&|r*gwDMC)2^a@jdWdYH68;4 zArw*l5UfB)7x5;r#Wd#jKtsJHnzM5P{seAP4sKc|hrx$%1$KLpx3i20V_%(ZM|8yQ zW$&k^&64hQdN0?zKOI*gOX1<@O}4o6&_h60uJVfIjZ7?RPQ1=iVm%C?J_>Fb#nmRh zKg%cqtDv2LJ^G?Ens}_$QU^K!j%F1?duU-Sij2K3h$XrEGd{SGg3cya!=u6$!-256 zg)TqL^R#dfLUBCP*t)~YbHV{7Xu6;pbKqlP<<9c6Ivgbgx0AS|L3R#ijM)hN?4;JC zFYSKW+}gbRGjSC~+Cqf~AKN=>@njrSpcuEnA+-T;7J%*m%b5^B#Hpvex)Lu~&2r!US-6VUrR_1s9J?0tT*w+23!z4| zr8q(wAy;Lt=_zojW7fhGf|HO7vQX|9q&?aou%MPQ1bo`q6ASoRWX-`HiFOQ%5HuX& z;yCB-&;H;&AmV+^0DX^~;$^773KT3Da=x8$$LcU+?+_R`)>=Ruck3|9E!XwZ19H_QRbtc-@rESD=#Aqy5upFkNa=Ac# z>w>Y3UXEi(U;)h)@M%xiE9q%^I_H>ukIlm{`-UrQErM2XiNGg{>_&z}cJR6JwtmR{ zLwVZ}f7)Q5uTjp>BQ4-g!xTwYROpU@-ae$%S)o+v@`l~IPAKBTH&%*`r5+HDHRSZe zUa%M9cSFi}En#R{QW!A6j?~}TCZ<*%lNG&0aBa6mW>uO(c7&R6pctOp z+SxcMAj}=2AJ{|UsOTAMomdiQ@;*ZcAspoH&%L&1uWgukLc+fmvy9U(OewtEiXoZl z^x;j3RzoUD(LCw9d#$Uh*W96Y&@p(RpV#&|!?p$c!ii)u3Es}LA(7zj z&wF!_9uP;MJg%y9Ji#(Jr?A58fyw3QDjmYBHd+nJmTg82Ke9WhNL_L69B4r4N?E!Y zy5uNyVj<2*oU3+2wvkzlHih2s5vJ4Kpa16Awpt}7RM=oV8vw428KK1^)SMKW=%w)4 z2nZpoU!s^Ohc?t(akeE)i0(ld@1wyLaT;egr3-S5ehp}hl+goE7+NinG41XzxQ_D+ z@CIz6(rm(YM}cwe9E|>$Cj78Vj}6$v!2bWh;c+@;;qYaFhaAs;<1xV`Q9p2K@LxZ>>w0h;f z1if2Z`DQw{d**I&K*Yp<9IJ0+-dt%U3vE47-v_hK>Rmhn&|M@WbYs5zi>~)#B^^l7 zd4twmLO=!Dm`B)bsZ6~Ng~$|!cS;PR^pUiNfD>H}9V6a23&w`gtz&;Mlwj~w9A@pV z9gEC{sC==v4ZW7-Olfz2@l{mBS+xvB8q7?qM(;BPJa>d|5DuukH7VeBKzyLUTiV!+ zVfR&7Vu*37H;yenZN!KMbNh;Y={sxe#hA`sIQx~^D|KIkV;@q?Hr>r|LIcZ5 zsjFOOZaNRoub5469m$ab41e9m6Hpu_0Dy$#wr{y`wz1y-+;JObX zHgYwe(Z=0hj;kQ+(dOFSX2+Rm?zU+sm=`_>zI*Uchg#K@j_c4DpVh!49#{L7=rpB1 zlW8KG$4h+f@aFTh#aJi6G(<>4LISx#@1V@1ZP2>=E3VR}!n^j_)S#M!Y%mYIgP z>M+BXRbxa0+oY=diO^}imLnl%Y=?Z}#B@s|3%kNrQOX&Zoy%(Z3_XKUA53j$oH-6w z1KoFj<+XOAsbl4}&i0kgZFi{+ZaunVBU5bo>5!$MSrd*}@TRuc0{$3DT?4{WI#Ehy zI#de2RoqmANl4^CwGs~%kMndcKMlv>lMzaS?g3IIAC|moOgfq zRpuqkHHh0_+0YM3nhAnQomcDC$0#}w*C$ALo;sP{plkarWI`^TD@XylYMWJhMj5jzpNn+ywF=7 zM%cMyrWVMXQP>jq0o1a@R)eS-(Iv<~?ABle07|cb|ROZLp+toG6cyd7tE_KIR%MgVa+e+~;jIK#ig6Ms9XEWb78ryKgPYrFP{o zH8dvDXi)8v6@wc~c5k4!H>;9`Cb+M4=|gWtK#SHycT$@-G%iG$0t(*J(fT@dyu+nA zmxQrFn$=6Ct!bqOU}GFHJVuA#VkVTyP|(S4el6v4RM0ByK;Eod%jl2! zy?=81!awybd+@@y88tPF*F&T7Q{TWZzIZ?NX6a-4kiTFV{fWT)aIYN(F{iOM!{Hu{fLW0x(Js^nZ&73}-y^?ytXU zusOJ!ZpXken{Qoe6J=(g3}WMn_Sf`JvCYUt);MrG5j5KuV)ira9C90rkLAoJTb zX3OHC8?cGtdj>p1or&-`w>fvc`x|f-D0t3lD4@`)+=7#+)_{Ne%qXOUkQfGtTmq3K zbT7T2RZcExv7^t$=;f)FpQhM+X10TFodqY(i6tY4RPs2e-pR5OxC_4f8?QY(pD@>|aG_DaMzim|;+evz}2t!Enl@j1DAUHwHkg)0g#` zhv$Jt;5aspAH%36{ygO5dqxNH{wkp5kPPxbnR47Jc^{9I$->?vz*|E zoJca9ylZ>oVJADuYzVW%%&p^1)pZ==_lb;)X>gXpN(zfkCC_#DH-GT0pLu87#1|I6 z-}K`7{`vTY`=9^VpTB$-FP?w+3-@oqkBO=U$FhR~FHUV}u7_XKUD1Bw!>0_J78fD} zXc#@<5>0q5#tA`#egpAk%(Z?b9yg|9AOYiC|_DCC~rDo~#qGI$#o z9xqcTnBQ7;+=D7YZ|okKk0Sb8>R+-QXGEZbupvbJmb3E<0z{lGaxq zOj)VNu)DwYgZBW*@^vG`JR<(pLfftriNrv<+5omdNxv~WY@>#3MN~N9tF&Rf6%L2E zjL=)hFubGTVXzibG>Qq!J9JvP79h~R8x5Q*W@Ll-b#4k6hu6mc3G0X(@o#?v<$m|k zqA}VN<3t!rD3q6RWkPo#1v7v!}}>&=)ngLv8ScRZCR}j-M6mas--$of{zZ zwT-h)W>K3{OJ!a#j?B}}>0_)lZ$tbrDm2Jx@i+Df;68>!SpW)#Ld}&>z4yx^+2Tq> z_le9KV4{K+PzSmY_dBuD^*lHU0q8_Opj5 z=cm4HkC3bShw>$I75@CIU(VK^3&K{PwDwUn_5}IJ1+K}QzQ&H$BJl`NeHpAZwk**Q zYRjRSPpBym1rIjzLG)@YM!w4`BH`xHqU4dmr=g zcBsU`@--+FnuYHmcpzdx7>#Kuf^TuOGN;uL1jz-;r`Bz9<*x@O^#1wldf0z^;`{c< zCeAm<*!MC?cY+O^>oD}N5Z8~5xUSU)_)cxrz*coqllu$}oR|v$8jP)WPwk|g*{NaG zgO)WJvDlMs!SIV7QabUeb#1aU;K^;vayUe|?E-mfCC!+y!p5+|jH^z@VaX?r4BYaMAP`4w&o%G4j&_mu}B~ z>976Scb?aGpY6}id5B_v>f86Dfl|H?Jg&d}gZBW*^9>>BofCqd+C6o<-97Q;+%^iI z-#`1MHRw@sb-)rmpygi^iQ0SlfCW{6cl41`iS$Ek*2fKUeJIg*b-;oUTh%*o5Ldoq zhd8g~(!#{)Z3y9f1-2j{M={PuWPp>>Imva-qlV^pA0aX~WV5|NM{rQ2AF&lneIqC# zTf$_6)(B@vk}Fcl0n`}XG)G!cjIoP$3L zukk9~IozkYE1e(GEH zqv_cG5E#jE4Wlu=EZ%((_segcRL!c3w3Kb zOH>%4rH71LcxU7mX^}XLUYhW6Kz41fnfkO%}{ITV)*0U5b`MB5x#@^kpV_TGKATEC;++ zbSihpkB#djF=Aira)ww>kcmTslaNc|h1Mqlvk)D@BcK9o?isV){T)AqZW@fUdr3x@ zL35tAF^2$9t_}{Nyn8m370Yz>Xe_$}0k&krR=Y%cRE%O)D2(+p9Brxw*o<0|1nGcMGZI6wh(-wz&N16qk^3C9-D?~w7-?aR^0Z0hG zO+9^&7z77KTNg{OZ(u)YA1G>?n3Wl56>F=`aT~P03y|(S-ne#0qECZA3{kGovL)jI zuN?#j%`|)+p;J*WkVofka5D@)EBk>C03L*Z+^Q2&FUEkbZLi)EyaU8O2CN&y5Y$n0 z+ra&ay5FBYfAJvu`l;{Q0|q^P*ya~IYCrz=2fzA-7N9Xox!QUP4qZHQb`;jHF`FkmJ@mq>VT>9Glv^e#qn z_jg_@A>?)r1!zFq*jx*pMvS&+62oFv09CHRvo-eyC)a5VL3ft!E}GRH+MWHXLg~bu*BQ8WMF9vLJ(;??*6W87HpF4!b55AE6dRR5+_oDmC^T!N%PP^ z7OqT(j4R9RIP#C1Es4fM7d&SSycDrD2&#I)cYUgfA<9=2x}|jrF~Kr4k`bz&cYpUA zfJaiBiq~4!m6JFb-YOU>awen5;%(#Z@438o%cMhXXa(w9)CP9d*0FTtOz80jM6u}a3 zHJwwGh*Ln2wCvt5m*J|VXL?o^n1(F$=9o3p*R`XK7_+x?HiVCNf8XVDgMKqQoNjy; zMB)ygp!(=k9XfMqVN81#vM!qB)IJC*#n}#w5U4+(YJ`kXz!&8lXW=k3Vu&?J?gq4y zsbFcs!8H#7`d`@Fcd$n#l(CD?Lm~2*h}UW$#|xqIgoo> zU)2G+hrGSh-9LCagt6uTA+R^+8DMq#LN??TK1eZQ>vBjdbSz+GL7=O{v-#TD-1@9I zHuu>!dm9sc<5Dn8O>3+PoB`NG;*BN}#(-Z!H={>Usx5lOgg6PT^Yiyed5%QspRyd|&I20^n z&g%V&$WUE@exfHO!n8yMG%snRUpeX+lC~~>_m5oOTx}heYOIy0^r7cU+U`~X6cWuT z2!%c1E3OF_F`5Jr6_1$#Ya!dA4Q68?CtZ;ikd0(?IN!T7Bnuv=T(Vt%XJNEQ1@$@I z{iD}DvQ{D1vuN9?$=xa?8U(Az9ocmbto|lI3&rSw6hOcZGrHRtvs3Swln~Yef~y$r z-c4tgB!&&m!C%B~L!j=+TI=FM1Vfm7_m5pyF?L@LiV0#_OS?~>yU98gi5-)qAr0-E z-rIsPy1&5$^w}_jXr^m2Z2Tt<{GfZ`YZwHeUntUp#Fx)CC)voErDNaE`C-GL6y1@>{$uSF2Y$1?L=V8U{?grYd6@jB)Xlp z4M%{wvLF#It?uEQTq1#=jlq<9_fK4J=j7(VZsj@dyWo3}Rmhww?;;q@a!^Gc9**v? z`9d%-2oIBhB80OCL?0N&b~Qmreb0u+cf7zc#dfHEtg(XH2N={`xIIVj{>e92k^RI# z-f|pT<)eXHvTbeDE<5zt$%3x%RILVHU7oe6Jo`c&+>oMsmR-yR7HLSu6c91mE(eAR z$>!srr67Q2RToTHwyfrL_fLIrk=MIsz)f&z3(X7mUNs{Ccmu78tpIx<+&89->>7iV z6_{{Ce$*9mu{XkeO?hrj7i5`k+Bno9mvc7AEj-~I?b9VSNBK$GcmMQ7-2m7Y&36QIB>8b-k(v*xPh(!Sr z30l3OFNcSpIyUr4h}Pcfrx0Q)V9G!)PzeEwz;!iakLrH+&tANXXliA+Te7H=@|u{v zGoV6*Ktg~n10&rxO(}>}kux&`JC&z(>lhl+YNc4!bZD;C`N~0RV2~q6xyI-uiQ|jx z8S~6V80XymbJru>e0UvvPdl6n2iyU87=~R53f?2Z zIB=+COQ)B;*$eTKI`sZ{NP*iEA0jRw%`AEzO7?_-k<;Cvrj$= zlRu1J{kETc^$DszfAL5C?%(TMzxNkD_2T)<&wlZlfBNyS;8VZ&1Af>2XD?sf|G-au z_xa1-zT#8A>6bp0{^@t0zx;t8dvjsWy|?fCv6uCF-{%kfZEr5^D}LK={^dLSGCzIw zJip?uJ^b9`|LiY+?tEJH)tC31A3m#J(dWME+24NdzAyU4@B6t|pVZ4=$@RUteP4Bb zzvcGX{@@S3eQaO#!JmEXiTr?1etxfi@F(BgofofOz5MpC=#!s5zmMxg1{Ab4jbj%y$-=8#qFqju?mN6SOdc3XQY_ zyrkh)7r`_bS^`w?p@_7ouV>@%sqfljjl=Qb_;TYAKlnA!IQ*C1i^k!<{9ZH;|CRTm zarm#k7mdSz?Y(Fm{_F2Wo%f<~`0u_Kjl+NM zy=WZ%`|m~L@IQDj8i)Vkd(k-jkKT*M;eY&IG!Flh_o8w5pS~B3!~g8PXdM3M??vPA zzj!YihyUe!(K!6C-iyZJfBjA4@SDcrH;uz@8i!BSI3zySe4$&g+VF`K5gAfrR|IeH zhM*!vHMlpdZ;~S?$4K#o<&(#h4ToJqASYef&`j!0hBa9{(%2}Hm7&B&pipg6!EROc zAV`lOSsm>n1IPmDz)@Axj>8@~WFddB57M!!#@ee4kbM#zU~F*8Ld*cKNTF0{h?5h+ zI<*n!$VapcSz~=6>m|UTg12Z5jd{~J{Db_{PyKsu{FEPFDYLJ?_ep(t55&f8Gx4eK z&bGzJ`!Kat zsdMMbHlc$jL`Vw27&|yLy?L@xZ@Q1fL5^Z2(i`sno2%eZJ882qu+&$+Hjs%))kUqL ztH+~_B|vm@U4UdDiUGYs@O_s`G$*xWtT8Phh{jO_u(aL)R$i00E@U8_q$_tvCJ6!z zyPVsglc&C%$5;o?_VbsIg~!_2n-!5%GNJK$^ zSt0~0Cn{^pGIv}hp=%=G*iWRERZvd1=8^u!tn>V3eV!ltydJa8(m`KlgR%@vOQEEQLwcorr%!R~(vN8lF!Rn41Hfe0&CU;ImZ6GN~ zuCS=7o08gyDJ-VBIC;WNB5qz@2#iO=xZB--`;902*Q6(VivX`nb51{aWikwjCI=BP z8DqFKG@QEZxki{?WoH9N*Ctxrw#TLMFP71P&%jG#^Mn%sx4O}B9fQUx*vF7ngP^1t zZO!GkYsOPw&dnqJ>2KHTUk<2yEJu7KTLN#rHI7n=TD=$ziGnzzsSwA^@@a!;93ZtE8rZI#1k@;}FukUHW!1oaq?Il>9-=Y5iziaxB=MijhRk&Z^~i}qNY_#s zN6^*A-mz9|==!6b(LtWZbP_22*_HZcm416<$%7MQZk$<8tJX)KS zPFY4vDUw`z#S@y*D@c%ayliTy{6JO5F%kulYIp4ne?9l@*e5d$E``f(= z({1diUI=)VkTj18%=owWr?jzd3(=!-V;U3G<_8!j#sP(lCceU2#t&+SbvvV~tpl zOCe%!wT>3jzEX%pP?UqbkFjlL!%TN{WQ^HF+9bl)PN-j`-HE*S%mIGv3^fSmc;XwO zcFTkTaoq;e;}c1G%R^b3mjcs|%wd+2qeo>8k)&xhX_Ing;bvlh4Q#1LW8K&6iLl^W zSs=$#kAw5Lk6L1F^Ciffndy8G{c7`aq3CyW?kzvE z%Zdm?4s=mc)|A-CHpF^bg}~>9;3q`=vh)RM$>Ih?-msLjaJ-}ebVvCtG_7b@gf_jc z)1qYZwrZpG1Tti?&58K!ut0nXmbyl^ua*oqUBH8A!(@6vFtnpbEo#{ktE`^hfF?+2 zkr2w)qfhDUw2r1UQfBAbYgk;#kDo`i{PZXOslRwpFY?pp->J7>h+h|qHbAKbik+z-vYHrlpP7&!Q{DX!KZN&xP^>X@>IP;M;qUGZ zDLxq6AKtN-;`_X$f*adGGB1V{q%P8JF`lbe%s7y1@Q@5v1gAi+YNJ|G!*F`rStQ7V zX!yP_j0o&Dsz{cSSMN=>xHEnY1p;d^Rq#e82GS!+VL@K`MM6TPW6LN;Ffnp-j1p`P z+K`~QBe1fG$68Rrq5FaOhS36qG4%guL%g!BbvtMI+2{Aq?mzNRKVSU60%7^oH}OX{ zVtMLn>zm^59T$H;gau_ML|{3GxKu$xge~4zA8EO*=2|faA3CujXdwHj$)?c~oUEb~ zy+P-+awDad+gzu|slCo>8S?I`#^Zj zmCG(joS)MNqo|yhq!V3!6l(-Ni?bJ9c)0Wxg~^48&9$Y~YI{IWkKwPh+A>)s2hm6b zperI0ZeNiXuhQ>7`taNJfdBT?H|`NAmwc&%^ybg+9h+!CaV4h(l<-M7EH`KIIhie` zVVJeXI_VdAicCpP*EL5C0&LCprWP@+Bdh*6m$S`7w9pslBEWhC{B9JYrI609h4vh| z^KGYnG+u-NVG?oEOUCCg8d?ztim)G;{# zl<(G%yp`_HCyFa3*a>CuJiahVr0vE zv&Fp!^K8X?mO>dBiCCWp-L0z+f|}zT==IMSlGlJ%Rz$aw-Ns^a)HRBx9ui&(%1UIz z!E0u1Y)Ivi=jEA$B$c=B*@AdQpSF1gObcS|kawHSPH*!{Qa~80j0e$ZPklMJ%*SuP z`sA^viRg!%wtU!}MujG1i-iP{)mlsJe+su1w>k=ESXHz!#@MwFw+ft-+a45^1EGf< zL{!mijoYcsQ>6OIA;LPT*6vvY+VnG9>ko%&Z+evo9X%Ien_F)(lP?=wN;En8)pG(?hrmXWbqd zp89fbp5|}($nT%Meszyw>9=3|w;xkifHPOU%{)`w0{WMUZ#?pYA=U5jUEv(5(Qu?F zf}R_i`?Z+`|^?JSz(f$R}gTl5U%Y)=#g$S)&-aWz3UeAvAi_Y0z_@tZXn6;b}?|-M_WC(&>CwYpVvKWgHYK6^aIP>bdk&5D@p*J~&M!W4j9P8OR_4+y-G<5?c(1Xstp0Qle zkZ#R39YaIMWe?3Zb@!HY=fpR{)}YoMLIJQIfm@!&J^Gd@NVhdQ1Ga^=3d0@I z{ni}*Y2Cki@tp^H&ZoX>53-T@!`43JFH{OY@%c~Qfj#`2$>guK$z*Fd$WXVr+gdgC zY)@`MtF3vUsL5@*4y~SR0fByPPMaq3vE#T1B)g0at-wYQ80U7gHi+QqMQEC-4Rdt;jN%w3@Ph5hIb!V0(&)L9))>PCa?wUi0$cZo>chq zYZO6A)xm|vmV06zyob`Aa@9V2Ey(R5_~Pw~FsbOYrMmUYx6Lii;qd)Q2@zJ;5Ug__A`N_wBX#XSMF7-e6x%J}@fr;bw^Ot{ky!!YPfBpGO@JD>> zTW@!V-|_Zu{PvIh{-fWqcCza?TgNwB$Jb%&xJ?y#;>)>tq(Afg{@De;|M*pY_M#q> zwQ!cN<2x;-7FH4k?87_SQ3z{IMVM}HC((}@RqlPC?zwA92g!u(WCufoBgt(kyD@wO zW^Il$oUH3aL8P&V3ETN(aS@5Z-N$S1y>+aBE~{`#Z0G2f5O zm8fa6wK_zny`kkd+BHLFZN3prV?%df_K#>>Es>Nem=#u2Dlgb>nu&NR8dQC5MDjJP zP@^|pCkAJZz~9GgzaO%7_Q+=W$Xsb$&-AI!HVy!!O@{WIja z*Qej9XZPRx7#rOEv-9H7F3-W<-W1}EBQTI8b>9OaL~AmiH)+5q=F+ubqftixS0~!^ zGaAv}X;XC_m9CSM5wL+4^6s-~gVm=kCrred42d&YA;m3<9_jMXJM9X5-{WIIG!5_q zX;w@GgYR%7$MAlFm8K$HGZ(NAa=d}=(>JdQtKqN(%#Hjf2|p*2i|* z<}Alr*EkgYoY|%-O}S0^d1|lW&D-=_zo<_5elqo^zK!3=)V~H(pZ8L!@E(|NZs!C~ zd^xvsg6H>N7AZZ_S3aP?t%%y%GYZ}B5oa{_guxTiIwUR$9N|E4Ed@&s^fk*`tD(y5 zLEPpX$FTFHdH_GuWZCEpM$$mZ0Xo-EmlaKwAZI)6##MzpIsM(g?pr_h?&Ic{2i4rw zYCAM~xYFT`2^5~{zOp(I=4Z=z4IrQTnmkVpUrc29F0Bo#vvrl+_-1N@=Twi#&}LfR zy)MLO)R{aoi?4P1RuNDJC}m;j);4o2?PLpHv{CS!Mw(Z zOdBFI>wEOWBHZk#(oh)JKy@5e){>#*Y)X3fAQ@8#j6J@ zl&8LTk8BWMj-2Or5jp=J)Z^c@2i|#m;Hl?(-;5jI;kXf#uC)wjB_7!c>!ca3rP|#1 z|C|Tw=gP>G6&y2{O0}C}@<>EW{ zFmY3?8eJgB?38d$Y%lfot+2TJmg1{QJCr(F4khAJEZI}VfF1m zan!be)di+7o_2Hvq5%8c*3O2Cy(N-ZH|WO^M+HNQbplbP6PQ$mps(GEM}G3vcV9mH zUG>nl^whWQ(L#`K3c+_F|9fik!8ag=9}0+pX_F7-(6KiR{L&*sz%w0Y02j{&rZQhx zmN}x)$lYcxjK~geTNyQT*x3o8^cX0sW|0o;gFraOU&^|Cqg%2A1(q1l3|_*>y;%v%);tWz}vi)(K@(*~|UxF1=5z1p@)5 zQ2U|-Kx@%lmbK+Y^R)@d~hxS}!6rtxrVcsmAwY##CC3$$&|R&7~h zPDZ7Ti~~TB$5J^7Ao@D1UntrrLAK2e0KlQGymk17vFn~poMSR?6AgeURryT79n3*YNAZ+ zt984136VLWks8Lp4|si zJ>DXI=X*Znl@U7D(k|8jxt&&Gg`?}S%`;A{>KnGYlo>nIv&oq-WlVO5zzq7^8ZkMtu| z!x|-Tp2R%{trjzYA%XfnVGK6Z+^wSLA|BV`xf&raUe;-LBu_L1Qu~-VATSNS9WDIE z7tdeT{WE`=&*IgK&pv+nVDo?K`}e5!Uv9MjziPkQySJKjR*3FY&7BU-#@9{a*uFt< zIc5k3&$#`@SKU(BIh$Z z>upoHBg??&wdA0NY&L?D9X`}5awX!f4c>?ji`c9s@ zOZQFF@YftD=k9;`;N2gPBs*;nW0B5^=NShq4$S6&vJV36@+2?{Cf#V$npZ#*(QJ^0 zFI10vX{ZOJ z0`X)VW5{mF!qM|Ao76mvddBJ;qg0?=n1}^JJPl$Ic)BASq-_~~Mqwm&A?yR-ojHb5 zb9Bh9yZ`ly0_hS_gDjAn z#C*owC`}F>fJ6$N(bh()N$Z_f*AXSh$k(ok{1d}QA-!nrdHQ5-8%QMpPrxKLFpLT9 z%eF^1?EeYg>=AF%Zf$%|eL1)FUfn-?TgUtBS06vNs7AI`b5+xs&bA|@A+l)aV3j`%=^HH_oIE?_b|$k|31O;;%oE?YXP(#Vy$?RnMPfzn zcxXuUBx>)anRE7P6^8fyX6_;g91G}2QzRiyt4EuJ?>Ko7^pq147T;bjv~Jo!n{&p6 zAWBb`?~&A)MNU{Np^>`r+`~hhhU~c?uK{wMax??-Xwk9c;3!_4Um$T7wxxxXs>X2 z#^?MUE)RbF(G__@flfM(_shc9w%x@j&STX$b|vZ1OhNcvP1)$VZrnM+EF;pSDReA# zt?apFX`O{|G^9}0&>4QUCnE|{k-xI1pgt6__ z!v~L4CQN{5=^V(4oVpkQH!q_haQ;WB>!zImgmj10s=B8*7A&JfTzy6tsLcD+yw5Uh z-OS>PVwsHvMl!H-L}iLfi+s=F#0~NE08DUJ>$E+CL4A&KHt$7+SQLlGjAZthtEy7D ziF@Ae3)b8MI!i|NklD0nAOZ7fo&L@*kR5*s-0Q6$;Hx_tKkaD$#OLTo&>{LEH>^HZ z$?RJn3!hG@4}VGxnJJ6l8#^a!lT(?TIknsmv?PvJQ@ikpXoKcB^YX*t!*`;qk74fW zHke{0IT5E*C41k1YLKQK^u6qd*1z*-$TO+k<`3WN~PNh5vG17Y79Pv zEMrW*kl&tyJjU{d3C7kXIASg=P}LGQ3GUZJNQEReZOx23n+YNB7Cn@dG%YKGuQCTg#z7sk6Qpb=I4oQUBHVa7H08-F;YN zPdpp%_}w_XLzUbXYd zJ)*VY9bJB=9y6(X)Sunwkl>h^+o?_Do1N440H5)!BJ_esks|~=E-2JFU=;O z{NP^ol+cr>Mjg-#4~iOiRYxk)%flh;=%6 zoSAl%JMz5yZ*UO6ZT?=qM6pk3%7_&gAmq!a{uhR1(|Bt7*k}*+T#lhn9uTH$xSYEV zCA0{Ono4hVA?Az9ub9|fWJ=8xx<~R3I z8-*PK@$VTL9>dwzG$hd301-}B5u8BiOA}*9pb>nDiDB#{;=a2N-mHs+K7%Dp8=>gu zcn5=90$nDe>gK{%KsD(ZnfKNo=h-I*WL|vv2>E-BxYeS1*WSy3-w=tzYl4q=TA2zO zFc~?vGQx?8CSJSiJYv{@0PuK@c@m_+YcAZ)Yuvf4s-i%FzuJM#Bv*# z-1flYD6n=chIW)KUVee4Uq#kJF}n%A7)>PSAUH>)X(6}m9FY4WcdoP1eoa)iJvySE zi;TB!VZH))`~|JT3s=n>KfGToi2u@`wb*_E?D}gz|G__bNxZM;k-NxVZ380ad3&{Zlp8wITmB*=}M7B`%EdZD{8fe1bw)b|YN z%6HA|^X|X<9%A^Ga2;$HY^&C7sHArj*lK)dGK84(fC=g{984at+_{eOG2ao_r|RyF zltl8t%mVSI1`ykBOWXx|Orn*NjGV@e-`+75VW`g$>^n;z*@kPXAJ+>`@`cbHcOtnZ zty@}c*ac`B+DwZ(SXKD%L+di0X|q;C?8Pbgz*q z@YG#~rOrt-z{P1d)9RUZGF@=OT$D%yH)uWP;B4&4H`Xu)yrwOV4_)`lgqHLg>q^Rl z2zTg4my0Az%}2QQT#L#PV*T>QP2UH=V2FXdga36|IE?f0*cr)Uj*C(VVj@>Y=0Kx# zd~gEgG=)z>#w`Y^L}w&IlGDMVweFeg;^OaMLKEJF8E}C2I5Fof`1<3eDEE%`t(T4= zY#3vu7QNOj9{dE8--?=^LfrK|JU9oyF4nhyk4)4|m>&+cTdeOd8$h{f7Oh|gjm zLrx}y{xOfxZM}ZibCvx!zWMg6pM3VkxAk@4ApH41ef2__`_@nK6RYsk5%G_$;(TK$ z=nslf`ik(0Ohm3de!<>bg(hZhBi!FPC{ zniK9ka^^r{u^>Txs%Yh�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 diff --git a/.yarnrc.yml b/.yarnrc.yml deleted file mode 100644 index 063ed601..00000000 --- a/.yarnrc.yml +++ /dev/null @@ -1,8 +0,0 @@ -approvedGitRepositories: - - "**" - -enableScripts: true - -nodeLinker: node-modules - -npmMinimalAgeGate: 0 From 113d11c1668e245b480ab6667822a52dfad55736 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 10:54:38 -0300 Subject: [PATCH 50/58] =?UTF-8?q?fix(http):=20remove=20vazamento=20do=20ti?= =?UTF-8?q?po=20express=20da=20camada=20agn=C3=B3stica=20de=20framework?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infrastructure/ExpressApplication.ts | 6 ++++-- src/library/Application.ts | 5 ++--- src/library/http/Router.ts | 6 ++---- src/library/http/common.ts | 10 ++++++++++ 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/infrastructure/ExpressApplication.ts b/src/infrastructure/ExpressApplication.ts index 88675a02..86b0b347 100644 --- a/src/infrastructure/ExpressApplication.ts +++ b/src/infrastructure/ExpressApplication.ts @@ -4,7 +4,7 @@ import http from 'node:http' import { Application } from '@/library/Application' import { - Headers, HttpRequest, HttpResponse, Method + Headers, HttpRequest, HttpResponse, Method, RawMiddleware } from '@/library/http/common' import { HttpError } from '@/library/http/error/HttpError' import { InternalServerError } from '@/library/http/error/InternalServerError' @@ -38,8 +38,10 @@ export class ExpressApplication implements Application { method: Method, path: string, handlers: RequestHandler[], - expressMiddlewares: express.RequestHandler[] = [] + middlewares: RawMiddleware[] = [] ): this { + const expressMiddlewares = middlewares as express.RequestHandler[] + this.app[method]( path, ...expressMiddlewares, diff --git a/src/library/Application.ts b/src/library/Application.ts index f752d7d4..59243e84 100644 --- a/src/library/Application.ts +++ b/src/library/Application.ts @@ -1,7 +1,6 @@ -import express from 'express' import http from 'node:http' -import { Method } from './http/common' +import { Method, RawMiddleware } from './http/common' import { RequestHandler } from './http/Server' export interface Application { @@ -12,7 +11,7 @@ export interface Application { method: Method, path: string, handlers: RequestHandler[], - expressMiddlewares?: express.RequestHandler[] + middlewares?: RawMiddleware[] ): this get(path: string, ...handlers: RequestHandler[]): this post(path: string, ...handlers: RequestHandler[]): this diff --git a/src/library/http/Router.ts b/src/library/http/Router.ts index 26d90c4f..b9b35ebb 100644 --- a/src/library/http/Router.ts +++ b/src/library/http/Router.ts @@ -1,11 +1,9 @@ -import express from 'express' - -import { Method } from './common' +import { Method, RawMiddleware } from './common' import { RequestHandler } from './Server' export interface Route { method: Method path: string handlers: RequestHandler[] - middlewares?: express.RequestHandler[] + middlewares?: RawMiddleware[] } diff --git a/src/library/http/common.ts b/src/library/http/common.ts index 8bda7739..19729f52 100644 --- a/src/library/http/common.ts +++ b/src/library/http/common.ts @@ -57,3 +57,13 @@ export interface HttpResponse { headers?: Partial body?: Body } + +/** + * Assinatura estrutural de um middleware de framework (ex: Express), usada + * pela camada http/Application agnóstica de framework. `req`/`res` ficam + * como `any` de propósito: o formato real (Request/Response do Express) é + * decidido por quem implementa `Application` — esta camada não deve + * importar `express` diretamente. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any -- req/res assumem o shape do framework concreto (ex: Express), decidido por quem implementa `Application` +export type RawMiddleware = (req: any, res: any, next: (err?: unknown) => void) => void From 0ebcbe89676fb51fb8a9b24ce0e5b9f07bfefec2 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 10:57:32 -0300 Subject: [PATCH 51/58] =?UTF-8?q?fix(evidencia):=20loga=20falha=20ao=20rem?= =?UTF-8?q?over=20arquivo=20=C3=B3rf=C3=A3o=20em=20vez=20de=20engolir=20o?= =?UTF-8?q?=20erro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/domain/evento/RemoverEventoUseCase.ts | 12 +++-- .../evidencia/RemoverEvidenciaUseCase.ts | 48 +++++++++++-------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/domain/evento/RemoverEventoUseCase.ts b/src/domain/evento/RemoverEventoUseCase.ts index d3ccbda3..9b9ecafb 100644 --- a/src/domain/evento/RemoverEventoUseCase.ts +++ b/src/domain/evento/RemoverEventoUseCase.ts @@ -31,12 +31,18 @@ export class RemoverEventoUseCase { if (deleted.value) { await Promise.all( - evidencias.value.map((evidencia) => - unlink(path.join(UPLOADS_DIR, evidencia.arquivo)).catch(() => {}) + evidencias.value.map(evidencia => + unlink(path.join(UPLOADS_DIR, evidencia.arquivo)).catch((error: unknown) => { + // eslint-disable-next-line no-console -- evento já apagado do banco; sem log aqui, o arquivo órfão nunca seria detectável depois + console.error( + `Falha ao remover arquivo órfão de evidência (evento_id=${id}, arquivo=${evidencia.arquivo})`, + error + ) + }) ) ) } - + return deleted } } diff --git a/src/domain/evidencia/RemoverEvidenciaUseCase.ts b/src/domain/evidencia/RemoverEvidenciaUseCase.ts index 75a6751b..3721f40b 100644 --- a/src/domain/evidencia/RemoverEvidenciaUseCase.ts +++ b/src/domain/evidencia/RemoverEvidenciaUseCase.ts @@ -8,28 +8,36 @@ import { EvidenciaCollection } from './EvidenciaCollection' const UPLOADS_DIR = path.join(process.cwd(), 'uploads', 'evidencias') interface Dependencies { - evidenciaCollection: EvidenciaCollection + evidenciaCollection: EvidenciaCollection } export class RemoverEvidenciaUseCase { - private readonly evidenciaCollection: EvidenciaCollection - - constructor(dependencies: Dependencies) { - this.evidenciaCollection = dependencies.evidenciaCollection + private readonly evidenciaCollection: EvidenciaCollection + + constructor(dependencies: Dependencies) { + this.evidenciaCollection = dependencies.evidenciaCollection + } + + async execute({ id }: { id: number }): Promise> { + const evidencia = await this.evidenciaCollection.findById(id) + if (evidencia.left()) return Either.left(evidencia.value) + if (!evidencia.value) return Either.right(false) + + const deleted = await this.evidenciaCollection.delete(id) + if (deleted.left()) return Either.left(deleted.value) + + if (deleted.value) { + const { arquivo } = evidencia.value + + await unlink(path.join(UPLOADS_DIR, arquivo)).catch((error: unknown) => { + // eslint-disable-next-line no-console -- evidência já apagada do banco; sem log aqui, o arquivo órfão nunca seria detectável depois + console.error( + `Falha ao remover arquivo órfão de evidência (evidencia_id=${id}, arquivo=${arquivo})`, + error + ) + }) } - async execute({ id }: { id: number }): Promise> { - const evidencia = await this.evidenciaCollection.findById(id) - if (evidencia.left()) return Either.left(evidencia.value) - if (!evidencia.value) return Either.right(false) - - const deleted = await this.evidenciaCollection.delete(id) - if (deleted.left()) return Either.left(deleted.value) - - if (deleted.value) { - await unlink(path.join(UPLOADS_DIR, evidencia.value.arquivo)).catch(() => {}) - } - - return deleted - } -} \ No newline at end of file + return deleted + } +} From decbd0d8b0637e3825899ca9faf2c342a3d632bd Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 10:59:29 -0300 Subject: [PATCH 52/58] fix(evidencia): reusa EVIDENCIA_DIR em vez de path hardcoded para limpeza de arquivo --- src/domain/evento/RemoverEventoUseCase.ts | 5 ++--- src/domain/evidencia/RemoverEvidenciaUseCase.ts | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/domain/evento/RemoverEventoUseCase.ts b/src/domain/evento/RemoverEventoUseCase.ts index 9b9ecafb..6e0fbdcc 100644 --- a/src/domain/evento/RemoverEventoUseCase.ts +++ b/src/domain/evento/RemoverEventoUseCase.ts @@ -1,13 +1,12 @@ import { unlink } from 'node:fs/promises' import path from 'node:path' +import { EVIDENCIA_DIR } from '@/config/evidencia' import { EvidenciaCollection } from '@/domain/evidencia/EvidenciaCollection' import { Either } from '@/library/either/Either' import { EventoCollection } from './EventoCollection' -const UPLOADS_DIR = path.join(process.cwd(), 'uploads', 'evidencias') - interface Dependencies { eventoCollection: EventoCollection evidenciaCollection: EvidenciaCollection @@ -32,7 +31,7 @@ export class RemoverEventoUseCase { if (deleted.value) { await Promise.all( evidencias.value.map(evidencia => - unlink(path.join(UPLOADS_DIR, evidencia.arquivo)).catch((error: unknown) => { + unlink(path.join(EVIDENCIA_DIR, evidencia.arquivo)).catch((error: unknown) => { // eslint-disable-next-line no-console -- evento já apagado do banco; sem log aqui, o arquivo órfão nunca seria detectável depois console.error( `Falha ao remover arquivo órfão de evidência (evento_id=${id}, arquivo=${evidencia.arquivo})`, diff --git a/src/domain/evidencia/RemoverEvidenciaUseCase.ts b/src/domain/evidencia/RemoverEvidenciaUseCase.ts index 3721f40b..f5d56d0a 100644 --- a/src/domain/evidencia/RemoverEvidenciaUseCase.ts +++ b/src/domain/evidencia/RemoverEvidenciaUseCase.ts @@ -1,12 +1,11 @@ import { unlink } from 'node:fs/promises' import path from 'node:path' +import { EVIDENCIA_DIR } from '@/config/evidencia' import { Either } from '@/library/either/Either' import { EvidenciaCollection } from './EvidenciaCollection' -const UPLOADS_DIR = path.join(process.cwd(), 'uploads', 'evidencias') - interface Dependencies { evidenciaCollection: EvidenciaCollection } @@ -29,7 +28,7 @@ export class RemoverEvidenciaUseCase { if (deleted.value) { const { arquivo } = evidencia.value - await unlink(path.join(UPLOADS_DIR, arquivo)).catch((error: unknown) => { + await unlink(path.join(EVIDENCIA_DIR, arquivo)).catch((error: unknown) => { // eslint-disable-next-line no-console -- evidência já apagada do banco; sem log aqui, o arquivo órfão nunca seria detectável depois console.error( `Falha ao remover arquivo órfão de evidência (evidencia_id=${id}, arquivo=${arquivo})`, From b70b7574fcf532a1860f357948766d43667e94c6 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 11:20:43 -0300 Subject: [PATCH 53/58] =?UTF-8?q?style:=20corrige=20formata=C3=A7=C3=A3o?= =?UTF-8?q?=20(indenta=C3=A7=C3=A3o,=20espa=C3=A7amento)=20apontada=20pelo?= =?UTF-8?q?=20eslint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/application/evento/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/application/evento/index.ts b/src/application/evento/index.ts index 812f056d..ddb47fd8 100644 --- a/src/application/evento/index.ts +++ b/src/application/evento/index.ts @@ -6,6 +6,7 @@ import { CriarEventoUseCase } from '@/domain/evento/CriarEventoUseCase' import { ListaEventosUseCase } from '@/domain/evento/ListaEventosUseCase' import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' import { EventoCollectionKnexAdapter } from '@/infrastructure/EventoCollectionKnexAdapter' +import { EvidenciaCollectionKnexAdapter } from '@/infrastructure/EvidenciaCollectionKnexAdapter' import { Method } from '@/library/http/common' import { Route } from '@/library/http/Router' @@ -17,6 +18,7 @@ import { RemoverEventoController } from './RemoverEventoController' export function routes(knex: Knex): Route[] { const eventoCollection = new EventoCollectionKnexAdapter({ knex }) + const evidenciaCollection = new EvidenciaCollectionKnexAdapter({ knex }) // TODO: adicionar autenticação quando a camada HTTP de autenticação estiver disponível. @@ -60,7 +62,7 @@ export function routes(knex: Knex): Route[] { { handlers: [ new RemoverEventoController({ - removerEventoUseCase: new RemoverEventoUseCase({ eventoCollection }) + removerEventoUseCase: new RemoverEventoUseCase({ eventoCollection, evidenciaCollection }) }) ], method: Method.Delete, From 021355078fc6c2b7791f3fdbc28725c134b7167d Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 11:27:29 -0300 Subject: [PATCH 54/58] =?UTF-8?q?style:=20corrige=20formata=C3=A7=C3=A3o?= =?UTF-8?q?=20apontada=20pelo=20eslint=20em=20evidencia/evento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evidencia/RemoverEvidenciaController.ts | 46 +++++++++---------- .../EvidenciaCollectionKnexAdapter.ts | 2 +- .../evento/RemoverEventoUseCase.test.ts | 18 +++----- 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/src/application/evidencia/RemoverEvidenciaController.ts b/src/application/evidencia/RemoverEvidenciaController.ts index 2739113d..cfa2c1c5 100644 --- a/src/application/evidencia/RemoverEvidenciaController.ts +++ b/src/application/evidencia/RemoverEvidenciaController.ts @@ -9,38 +9,38 @@ import { NotFoundError } from '@/library/http/error/NotFoundError' import { NextHandler, RequestHandler } from '@/library/http/Server' interface Dependencies { - removerEvidenciaUseCase: RemoverEvidenciaUseCase + removerEvidenciaUseCase: RemoverEvidenciaUseCase } export class RemoverEvidenciaController implements RequestHandler { - private readonly removerEvidenciaUseCase: RemoverEvidenciaUseCase + private readonly removerEvidenciaUseCase: RemoverEvidenciaUseCase - constructor(dependencies: Dependencies) { - this.removerEvidenciaUseCase = dependencies.removerEvidenciaUseCase - } - - async handle(request: HttpRequest, _next: NextHandler): Promise { - const { evidenciaId: rawEvidenciaId } = request.params as { evidenciaId?: string } - const evidenciaId = parseId(rawEvidenciaId, 'evidenciaId') - if (evidenciaId instanceof Error) return new BadRequestError({ message: evidenciaId.message}) + constructor(dependencies: Dependencies) { + this.removerEvidenciaUseCase = dependencies.removerEvidenciaUseCase + } - const result = await this.removerEvidenciaUseCase.execute({ id: evidenciaId }) + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { evidenciaId: rawEvidenciaId } = request.params as { evidenciaId?: string } + const evidenciaId = parseId(rawEvidenciaId, 'evidenciaId') + if (evidenciaId instanceof Error) return new BadRequestError({ message: evidenciaId.message }) - if (result.left()) { - return new InternalServerError({ message: result.value.message }) - } + const result = await this.removerEvidenciaUseCase.execute({ id: evidenciaId }) - if (!result.value) { - return new NotFoundError({ message: 'Evidência não encontrada'}) - } + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } - return { statusCode: StatusCode.NoContent} + if (!result.value) { + return new NotFoundError({ message: 'Evidência não encontrada' }) } + + return { statusCode: StatusCode.NoContent } + } } function parseId(raw: unknown, field: string): number | Error { - if (typeof raw!== 'string' || !/^\d+$/.test(raw)) { - return new Error(`${field} inválido`) - } - return Number(raw) -} \ No newline at end of file + if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} diff --git a/src/infrastructure/EvidenciaCollectionKnexAdapter.ts b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts index f2c42f2f..8cf84f6f 100644 --- a/src/infrastructure/EvidenciaCollectionKnexAdapter.ts +++ b/src/infrastructure/EvidenciaCollectionKnexAdapter.ts @@ -128,7 +128,7 @@ export class EvidenciaCollectionKnexAdapter implements EvidenciaCollection { async delete(id: number): Promise> { try { - const deletedCount = await this.knex('evidencias').where({id}).delete() + const deletedCount = await this.knex('evidencias').where({ id }).delete() return Either.right(deletedCount > 0) } catch (error) { return Either.left(new CollectionError({ message: 'Failed to delete evidencia', cause: error })) diff --git a/test/unit/domain/evento/RemoverEventoUseCase.test.ts b/test/unit/domain/evento/RemoverEventoUseCase.test.ts index 22c01acc..551247e8 100644 --- a/test/unit/domain/evento/RemoverEventoUseCase.test.ts +++ b/test/unit/domain/evento/RemoverEventoUseCase.test.ts @@ -1,13 +1,12 @@ import path from 'node:path' - import { beforeEach, describe, expect, test, vi } from 'vitest' -import { Attributes as EvidenciaAttributes } from '@/domain/evidencia/Evidencia' -import { EvidenciaCollection } from '@/domain/evidencia/EvidenciaCollection' import { EventoCollection } from '@/domain/evento/EventoCollection' import { RemoverEventoUseCase } from '@/domain/evento/RemoverEventoUseCase' +import { Attributes as EvidenciaAttributes } from '@/domain/evidencia/Evidencia' +import { EvidenciaCollection } from '@/domain/evidencia/EvidenciaCollection' import { Either } from '@/library/either/Either' const { unlinkMock } = vi.hoisted(() => ({ @@ -20,8 +19,7 @@ vi.mock('node:fs/promises', () => ({ const UPLOADS_DIR = path.join(process.cwd(), 'uploads', 'evidencias') -const makeMockEventoCollection = (overrides?: Partial): EventoCollection => -({ +const makeMockEventoCollection = (overrides?: Partial): EventoCollection => ({ create: vi.fn(), delete: vi.fn().mockResolvedValue(Either.right(true)), findAll: vi.fn(), @@ -30,8 +28,7 @@ const makeMockEventoCollection = (overrides?: Partial): Evento ...overrides }) -const makeMockEvidenciaCollection = (overrides?: Partial): EvidenciaCollection => -({ +const makeMockEvidenciaCollection = (overrides?: Partial): EvidenciaCollection => ({ create: vi.fn(), delete: vi.fn(), findAll: vi.fn().mockResolvedValue(Either.right([])), @@ -39,8 +36,7 @@ const makeMockEvidenciaCollection = (overrides?: Partial): ...overrides }) -const makeEvidencia = (overrides?: Partial): EvidenciaAttributes => -({ +const makeEvidencia = (overrides?: Partial): EvidenciaAttributes => ({ arquivo: 'foto.jpg', capturado_em: new Date(), created_at: new Date(), @@ -116,7 +112,7 @@ describe('RemoverEventoUseCase', () => { expect(eventoCollection.delete).not.toHaveBeenCalled() }) - test('apaga os arquivos das evidências do evento removido', async() => { + test('apaga os arquivos das evidências do evento removido', async () => { const evidencias = [ makeEvidencia({ arquivo: 'foto1.jpg', id: 1 }), makeEvidencia({ arquivo: 'foto2.jpg', id: 2 }) @@ -136,7 +132,7 @@ describe('RemoverEventoUseCase', () => { }) test('não apaga arquivos quando o evento não é removido', async () => { - const evidencias = [makeEvidencia({ arquivo: 'foto1.jpg '})] + const evidencias = [makeEvidencia({ arquivo: 'foto1.jpg' })] const eventoCollection = makeMockEventoCollection({ delete: vi.fn().mockResolvedValue(Either.right(false)) }) From 09cfd262e4f434499b482d463801dac89c62dff4 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 27 Sep 2026 11:40:11 -0300 Subject: [PATCH 55/58] fix: remove rotas duplicadas em create-app --- src/application/create-app.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/application/create-app.ts b/src/application/create-app.ts index 83c0caf3..931068e1 100644 --- a/src/application/create-app.ts +++ b/src/application/create-app.ts @@ -68,7 +68,6 @@ export function createApp({ ...createRelevoRoutes(knex), ...createFaseSucessionalRoutes(knex), ...createVegetacaoRoutes(knex), - ...createEventoRoutes(knex), ...createEvidenciaRoutes(knex), ...createExpedicoesRoutes(knex) ] From 1f58c7c032858bf0d95f19186170685126c0e2d0 Mon Sep 17 00:00:00 2001 From: Defendi Date: Sun, 27 Sep 2026 22:26:54 -0300 Subject: [PATCH 56/58] =?UTF-8?q?integra=C3=A7=C3=A3o=20com=20a=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/domain/expedicao/ExpedicaoCollection.ts | 2 ++ .../ExpedicaoCollectionKnexAdapter.ts | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index 17096b1b..534088d7 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -31,6 +31,8 @@ export interface ParticipanteExpedicao { } export interface ExpedicaoListItem extends Attributes { + cidade_nome: string | null + estado_sigla: string | null participantes: ParticipanteExpedicao[] rotas: number[] } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index 1efdf66d..cc9c8f9b 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -28,6 +28,11 @@ interface Row { updated_by: string | null } +interface ListRow extends Row { + cidade_nome: string | null + estado_sigla: string | null +} + interface ParticipanteRow { expedicao_id: number usuario_id: number @@ -72,7 +77,15 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { async findAll(filters: ExpedicaoFilters): Promise>> { try { + // nome da cidade e sigla da UF vêm junto para o cliente não precisar de uma requisição por cidade const query = this.select() + .leftJoin('cidades', 'cidades.id', 'expedicoes.cidade_id') + .leftJoin('estados', 'estados.id', 'cidades.estado_id') + .select([ + 'cidades.nome as cidade_nome', + // estados.sigla é char(4): remove o preenchimento com espaços + this.knex.raw('trim(estados.sigla) as estado_sigla') + ]) if (filters.cidade_id) query.where('expedicoes.cidade_id', filters.cidade_id) @@ -102,7 +115,7 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { const order = filters.order ?? { column: 'id' as const, direction: 'desc' as const } query.orderBy(`expedicoes.${order.column}`, order.direction) - const rows = await query as Row[] + const rows = await query as ListRow[] // página vazia, já retorna if (rows.length === 0) { @@ -128,6 +141,8 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { const itens = rows.map(row => { return { ...toAttributes(row), + cidade_nome: row.cidade_nome, + estado_sigla: row.estado_sigla, participantes: participantesRows .filter(p => p.expedicao_id === row.id) .map((p): ParticipanteExpedicao => ({ id: p.usuario_id, nome: p.nome })), From 6f61587b32e3702480c7bc8372974623fde4e189 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sun, 4 Oct 2026 09:53:00 -0300 Subject: [PATCH 57/58] feat(expedicao): adiciona filtros de data_fim_de e data_inicio_ate na listagem --- .../expedicao/ListaExpedicoesController.ts | 12 +- src/domain/expedicao/ExpedicaoCollection.ts | 2 + .../ExpedicaoCollectionKnexAdapter.ts | 2 + .../expedicao/expedicao-collection.test.ts | 28 ++ .../ListaExpedicoesController.test.ts | 245 ++++++++++++++++++ .../expedicao/ListaExpedicoesUseCase.test.ts | 85 ++++++ 6 files changed, 373 insertions(+), 1 deletion(-) create mode 100644 test/unit/application/expedicao/ListaExpedicoesController.test.ts create mode 100644 test/unit/domain/expedicao/ListaExpedicoesUseCase.test.ts diff --git a/src/application/expedicao/ListaExpedicoesController.ts b/src/application/expedicao/ListaExpedicoesController.ts index ef49845b..4c3ca3fc 100644 --- a/src/application/expedicao/ListaExpedicoesController.ts +++ b/src/application/expedicao/ListaExpedicoesController.ts @@ -13,7 +13,7 @@ interface Dependencies { } // interface do formato da nossa query -interface CustomHttpRequest extends HttpRequest { +export interface CustomHttpRequest extends HttpRequest { params: Record } @@ -33,6 +33,12 @@ export class ListaExpedicoesController implements RequestHandler { // Filtrar por intervalo de datas: // GET /api/v2/expedicoes?data_inicio_de=2026-01-01&data_fim_ate=2026-12-31 + // Filtrar próximas expedições (ainda não terminaram, com a que começa primeiro antes): + // GET /api/v2/expedicoes?data_fim_de=2026-10-04&order=data_inicio:asc + + // Filtrar expedições realizadas (já terminaram, com a mais recente antes): + // GET /api/v2/expedicoes?data_fim_ate=2026-10-03&order=data_fim:desc + // Filtrar com ordenação segura: // GET /api/v2/expedicoes?order=data_inicio:desc @@ -42,6 +48,8 @@ export class ListaExpedicoesController implements RequestHandler { cidade_id, usuario_id, data_inicio_de, + data_inicio_ate, + data_fim_de, data_fim_ate, order, limite, @@ -59,6 +67,8 @@ export class ListaExpedicoesController implements RequestHandler { } if (data_inicio_de) filters.data_inicio_de = data_inicio_de + if (data_inicio_ate) filters.data_inicio_ate = data_inicio_ate + if (data_fim_de) filters.data_fim_de = data_fim_de if (data_fim_ate) filters.data_fim_ate = data_fim_ate // Validação da ordenação diff --git a/src/domain/expedicao/ExpedicaoCollection.ts b/src/domain/expedicao/ExpedicaoCollection.ts index 534088d7..10d6ec3c 100644 --- a/src/domain/expedicao/ExpedicaoCollection.ts +++ b/src/domain/expedicao/ExpedicaoCollection.ts @@ -15,6 +15,8 @@ export interface ExpedicaoFilters { cidade_id?: number usuario_id?: number data_inicio_de?: string + data_inicio_ate?: string + data_fim_de?: string data_fim_ate?: string order?: ExpedicaoOrder } diff --git a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts index cc9c8f9b..c6fb8726 100644 --- a/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts +++ b/src/infrastructure/ExpedicaoCollectionKnexAdapter.ts @@ -96,6 +96,8 @@ export class ExpedicaoCollectionKnexAdapter implements ExpedicaoCollection { } if (filters.data_inicio_de) query.where('expedicoes.data_inicio', '>=', filters.data_inicio_de) + if (filters.data_inicio_ate) query.where('expedicoes.data_inicio', '<=', filters.data_inicio_ate) + if (filters.data_fim_de) query.where('expedicoes.data_fim', '>=', filters.data_fim_de) if (filters.data_fim_ate) query.where('expedicoes.data_fim', '<=', filters.data_fim_ate) // contagem de total de registros diff --git a/test/integration/expedicao/expedicao-collection.test.ts b/test/integration/expedicao/expedicao-collection.test.ts index b0beee26..fdaf25a6 100644 --- a/test/integration/expedicao/expedicao-collection.test.ts +++ b/test/integration/expedicao/expedicao-collection.test.ts @@ -210,6 +210,34 @@ describe('ExpedicaoCollectionKnexAdapter', () => { expect(returnedIds).not.toContain(ids[0]) }) + test('filtra por data_fim_de (data_fim maior ou igual a uma data)', async () => { + // Busca expedições com data_fim a partir de 2026-06-01 (exp2 e exp3) + const found = await collection.findAll({ + data_fim_de: '2026-06-01' + }) + expect(found.right()).toBe(true) + if (!found.right()) return + + const returnedIds = found.value.itens.map(e => e.id) + expect(returnedIds).toContain(ids[1]) + expect(returnedIds).toContain(ids[2]) + expect(returnedIds).not.toContain(ids[0]) + }) + + test('filtra por data_inicio_ate (data_inicio menor ou igual a uma data)', async () => { + // Busca expedições com data_inicio até 2026-06-01 (exp1 e exp2) + const found = await collection.findAll({ + data_inicio_ate: '2026-06-01' + }) + expect(found.right()).toBe(true) + if (!found.right()) return + + const returnedIds = found.value.itens.map(e => e.id) + expect(returnedIds).toContain(ids[0]) + expect(returnedIds).toContain(ids[1]) + expect(returnedIds).not.toContain(ids[2]) + }) + test('aplica ordenação (order) corretamente', async () => { const foundDesc = await collection.findAll({ order: { column: 'data_inicio', direction: 'desc' } }) expect(foundDesc.right()).toBe(true) diff --git a/test/unit/application/expedicao/ListaExpedicoesController.test.ts b/test/unit/application/expedicao/ListaExpedicoesController.test.ts new file mode 100644 index 00000000..7449bbed --- /dev/null +++ b/test/unit/application/expedicao/ListaExpedicoesController.test.ts @@ -0,0 +1,245 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { + CustomHttpRequest, + ListaExpedicoesController +} from '@/application/expedicao/ListaExpedicoesController' +import { + ExpedicaoFilters, + ExpedicaoListItem, + Paginated +} from '@/domain/expedicao/ExpedicaoCollection' +import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' +import { Either } from '@/library/either/Either' +import { + Headers, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { InternalServerError } from '@/library/http/error/InternalServerError' + +describe('ListaExpedicoesController', () => { + const headers = {} as Headers + + test('returns 200 with body for "Próximas expedições" (data_fim_de and order=data_inicio:asc)', async () => { + const paginatedResult: Paginated = { + itens: [ + { + id: 1, + descricao: 'Próxima expedição', + data_inicio: '2026-10-05', + data_fim: '2026-10-15', + cidade_id: 1, + created_at: new Date('2026-10-01T00:00:00.000Z'), + updated_at: new Date('2026-10-01T00:00:00.000Z'), + created_by: null, + updated_by: null, + cidade_nome: 'Curitiba', + estado_sigla: 'PR', + participantes: [], + rotas: [] + } + ], + total: 1, + limite: 20, + pagina: 1 + } + + const listaExpedicoesUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(paginatedResult)) + } as unknown as ListaExpedicoesUseCase + + const controller = new ListaExpedicoesController({ listaExpedicoesUseCase }) + + const request: CustomHttpRequest = { + body: {}, + headers, + method: Method.Get, + params: { + data_fim_de: '2026-10-04', + order: 'data_inicio:asc' + }, + path: '/v2/expedicoes' + } + + const response = await controller.handle(request, vi.fn()) + + expect(listaExpedicoesUseCase.execute).toHaveBeenCalledWith<[ExpedicaoFilters]>({ + data_fim_de: '2026-10-04', + order: { + column: 'data_inicio', + direction: 'asc' + } + }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) + expect('body' in response ? response.body : undefined).toEqual(paginatedResult) + }) + + test('returns 200 with body for "Expedições realizadas" (data_fim_ate and order=data_fim:desc)', async () => { + const paginatedResult: Paginated = { + itens: [ + { + id: 2, + descricao: 'Expedição realizada', + data_inicio: '2026-09-01', + data_fim: '2026-09-10', + cidade_id: 1, + created_at: new Date('2026-09-01T00:00:00.000Z'), + updated_at: new Date('2026-09-01T00:00:00.000Z'), + created_by: null, + updated_by: null, + cidade_nome: 'Curitiba', + estado_sigla: 'PR', + participantes: [], + rotas: [] + } + ], + total: 1, + limite: 20, + pagina: 1 + } + + const listaExpedicoesUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(paginatedResult)) + } as unknown as ListaExpedicoesUseCase + + const controller = new ListaExpedicoesController({ listaExpedicoesUseCase }) + + const request: CustomHttpRequest = { + body: {}, + headers, + method: Method.Get, + params: { + data_fim_ate: '2026-10-03', + order: 'data_fim:desc' + }, + path: '/v2/expedicoes' + } + + const response = await controller.handle(request, vi.fn()) + + expect(listaExpedicoesUseCase.execute).toHaveBeenCalledWith<[ExpedicaoFilters]>({ + data_fim_ate: '2026-10-03', + order: { + column: 'data_fim', + direction: 'desc' + } + }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) + expect('body' in response ? response.body : undefined).toEqual(paginatedResult) + }) + + test('forwards all query parameters correctly', async () => { + const emptyResult: Paginated = { + itens: [], + total: 0, + limite: 10, + pagina: 2 + } + const listaExpedicoesUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(emptyResult)) + } as unknown as ListaExpedicoesUseCase + + const controller = new ListaExpedicoesController({ listaExpedicoesUseCase }) + + const request: CustomHttpRequest = { + body: {}, + headers, + method: Method.Get, + params: { + cidade_id: '123', + usuario_id: '456', + data_inicio_de: '2026-01-01', + data_inicio_ate: '2026-02-01', + data_fim_de: '2026-03-01', + data_fim_ate: '2026-04-01', + order: 'id:asc', + limite: '10', + pagina: '2' + }, + path: '/v2/expedicoes' + } + + const response = await controller.handle(request, vi.fn()) + + expect(listaExpedicoesUseCase.execute).toHaveBeenCalledWith<[ExpedicaoFilters]>({ + cidade_id: 123, + usuario_id: 456, + data_inicio_de: '2026-01-01', + data_inicio_ate: '2026-02-01', + data_fim_de: '2026-03-01', + data_fim_ate: '2026-04-01', + order: { + column: 'id', + direction: 'asc' + }, + limite: 10, + pagina: 2 + }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) + }) + + test('returns BadRequestError when order format or column is invalid', async () => { + const listaExpedicoesUseCase = { + execute: vi.fn() + } as unknown as ListaExpedicoesUseCase + + const controller = new ListaExpedicoesController({ listaExpedicoesUseCase }) + + const request: CustomHttpRequest = { + body: {}, + headers, + method: Method.Get, + params: { order: 'invalido' }, + path: '/v2/expedicoes' + } + + const response = await controller.handle(request, vi.fn()) + + expect(listaExpedicoesUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('returns InternalServerError when use case returns Either.left', async () => { + const listaExpedicoesUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('DB failure'))) + } as unknown as ListaExpedicoesUseCase + + const controller = new ListaExpedicoesController({ listaExpedicoesUseCase }) + + const request: CustomHttpRequest = { + body: {}, + headers, + method: Method.Get, + params: {}, + path: '/v2/expedicoes' + } + + const response = await controller.handle(request, vi.fn()) + + expect(response).toBeInstanceOf(InternalServerError) + expect((response as InternalServerError).message).toBe('DB failure') + }) + + test('returns InternalServerError when unexpected exception occurs', async () => { + const listaExpedicoesUseCase = { + execute: vi.fn().mockRejectedValue(new Error('Crash')) + } as unknown as ListaExpedicoesUseCase + + const controller = new ListaExpedicoesController({ listaExpedicoesUseCase }) + + const request: CustomHttpRequest = { + body: {}, + headers, + method: Method.Get, + params: {}, + path: '/v2/expedicoes' + } + + const response = await controller.handle(request, vi.fn()) + + expect(response).toBeInstanceOf(InternalServerError) + expect((response as InternalServerError).message).toBe('Crash') + }) +}) diff --git a/test/unit/domain/expedicao/ListaExpedicoesUseCase.test.ts b/test/unit/domain/expedicao/ListaExpedicoesUseCase.test.ts new file mode 100644 index 00000000..661426a2 --- /dev/null +++ b/test/unit/domain/expedicao/ListaExpedicoesUseCase.test.ts @@ -0,0 +1,85 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { + ExpedicaoCollection, + ExpedicaoFilters, + ExpedicaoListItem, + Paginated +} from '@/domain/expedicao/ExpedicaoCollection' +import { ListaExpedicoesUseCase } from '@/domain/expedicao/ListaExpedicoesUseCase' +import { Either } from '@/library/either/Either' + +const makeMockCollection = (overrides?: Partial): ExpedicaoCollection => ({ + findAll: vi.fn().mockResolvedValue(Either.right({ + itens: [], + total: 0, + limite: 20, + pagina: 1 + })), + findById: vi.fn(), + create: vi.fn(), + addParticipant: vi.fn(), + removeParticipant: vi.fn(), + substituteRoute: vi.fn(), + delete: vi.fn(), + update: vi.fn(), + ...overrides +}) + +describe('ListaExpedicoesUseCase', () => { + test('returns paginated items when collection succeeds', async () => { + const expected: Paginated = { + itens: [ + { + id: 1, + descricao: 'Expedição 1', + data_inicio: '2026-10-01', + data_fim: '2026-10-10', + cidade_id: 100, + created_at: new Date('2026-10-01T00:00:00.000Z'), + updated_at: new Date('2026-10-01T00:00:00.000Z'), + created_by: null, + updated_by: null, + cidade_nome: 'Curitiba', + estado_sigla: 'PR', + participantes: [], + rotas: [] + } + ], + total: 1, + limite: 20, + pagina: 1 + } + + const collection = makeMockCollection({ + findAll: vi.fn().mockResolvedValue(Either.right(expected)) + }) + + const useCase = new ListaExpedicoesUseCase({ expedicaoCollection: collection }) + const filters: ExpedicaoFilters = { + data_fim_de: '2026-10-04', + order: { column: 'data_inicio', direction: 'asc' } + } + + const result = await useCase.execute(filters) + + expect(collection.findAll).toHaveBeenCalledWith(filters) + expect(result.right()).toBe(true) + expect(result.value).toEqual(expected) + }) + + test('propagates collection error as Either.left', async () => { + const error = new Error('DB query error') + const collection = makeMockCollection({ + findAll: vi.fn().mockResolvedValue(Either.left(error)) + }) + + const useCase = new ListaExpedicoesUseCase({ expedicaoCollection: collection }) + const result = await useCase.execute({}) + + expect(result.left()).toBe(true) + expect(result.value).toBe(error) + }) +}) From 61cc3647b818cfe4be9eec88fedcf2cfc1ce46c4 Mon Sep 17 00:00:00 2001 From: Defendi Date: Mon, 5 Oct 2026 00:25:04 -0300 Subject: [PATCH 58/58] =?UTF-8?q?adi=C3=A7=C3=A3o=20de=20lembretes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/application/create-app.ts | 2 + .../lembrete/AtualizaLembreteController.ts | 69 +++++++ .../lembrete/BuscaLembreteController.ts | 41 +++++ .../lembrete/CriaLembreteController.ts | 56 ++++++ .../lembrete/ListaLembretesController.ts | 83 +++++++++ .../lembrete/RemoveLembreteController.ts | 41 +++++ src/application/lembrete/index.ts | 70 +++++++ src/application/lembrete/lembrete-parsing.ts | 38 ++++ .../20261005120000_cria_tabela_lembretes.ts | 68 +++++++ .../lembrete/AtualizaLembreteUseCase.ts | 69 +++++++ src/domain/lembrete/BuscaLembreteUseCase.ts | 20 ++ src/domain/lembrete/CriaLembreteUseCase.ts | 36 ++++ src/domain/lembrete/Lembrete.ts | 108 +++++++++++ src/domain/lembrete/LembreteCollection.ts | 33 ++++ src/domain/lembrete/ListaLembretesUseCase.ts | 22 +++ src/domain/lembrete/RemoveLembreteUseCase.ts | 19 ++ .../LembreteCollectionKnexAdapter.ts | 171 ++++++++++++++++++ .../lembrete/lembrete-collection.test.ts | 110 +++++++++++ test/integration/setup/global-setup.ts | 1 + test/integration/setup/schema.sql | 56 ++++++ .../lembrete/CriaLembreteController.test.ts | 90 +++++++++ .../lembrete/ListaLembretesController.test.ts | 81 +++++++++ .../lembrete/AtualizaLembreteUseCase.test.ts | 93 ++++++++++ .../lembrete/CriaLembreteUseCase.test.ts | 89 +++++++++ test/unit/domain/lembrete/Lembrete.test.ts | 76 ++++++++ 25 files changed, 1542 insertions(+) create mode 100644 src/application/lembrete/AtualizaLembreteController.ts create mode 100644 src/application/lembrete/BuscaLembreteController.ts create mode 100644 src/application/lembrete/CriaLembreteController.ts create mode 100644 src/application/lembrete/ListaLembretesController.ts create mode 100644 src/application/lembrete/RemoveLembreteController.ts create mode 100644 src/application/lembrete/index.ts create mode 100644 src/application/lembrete/lembrete-parsing.ts create mode 100644 src/database/migration/20261005120000_cria_tabela_lembretes.ts create mode 100644 src/domain/lembrete/AtualizaLembreteUseCase.ts create mode 100644 src/domain/lembrete/BuscaLembreteUseCase.ts create mode 100644 src/domain/lembrete/CriaLembreteUseCase.ts create mode 100644 src/domain/lembrete/Lembrete.ts create mode 100644 src/domain/lembrete/LembreteCollection.ts create mode 100644 src/domain/lembrete/ListaLembretesUseCase.ts create mode 100644 src/domain/lembrete/RemoveLembreteUseCase.ts create mode 100644 src/infrastructure/LembreteCollectionKnexAdapter.ts create mode 100644 test/integration/lembrete/lembrete-collection.test.ts create mode 100644 test/unit/application/lembrete/CriaLembreteController.test.ts create mode 100644 test/unit/application/lembrete/ListaLembretesController.test.ts create mode 100644 test/unit/domain/lembrete/AtualizaLembreteUseCase.test.ts create mode 100644 test/unit/domain/lembrete/CriaLembreteUseCase.test.ts create mode 100644 test/unit/domain/lembrete/Lembrete.test.ts diff --git a/src/application/create-app.ts b/src/application/create-app.ts index 47ed5f92..96dd93ac 100644 --- a/src/application/create-app.ts +++ b/src/application/create-app.ts @@ -17,6 +17,7 @@ import { routes as createEventoRoutes } from './evento' import { routes as createEvidenciaRoutes } from './evidencia' import { routes as createExpedicoesRoutes } from './expedicao' import { routes as createFaseSucessionalRoutes } from './fase-sucessional' +import { routes as createLembreteRoutes } from './lembrete' import { routes as createPaisRoutes } from './pais' import { assertCookieSafeOrigins } from './parseCorsOrigins' import { routes as createRelevoRoutes } from './relevo' @@ -72,6 +73,7 @@ export function createApp({ ...createVegetacaoRoutes(knex), ...createEvidenciaRoutes(knex), ...createExpedicoesRoutes(knex), + ...createLembreteRoutes(knex), ...createUsuarioSessaoRoutes(knex) ] const origins = assertCookieSafeOrigins(cors.origins) diff --git a/src/application/lembrete/AtualizaLembreteController.ts b/src/application/lembrete/AtualizaLembreteController.ts new file mode 100644 index 00000000..34620531 --- /dev/null +++ b/src/application/lembrete/AtualizaLembreteController.ts @@ -0,0 +1,69 @@ +import { AtualizaLembreteUseCase, Input as AtualizaLembreteInput } from '@/domain/lembrete/AtualizaLembreteUseCase' +import { InfrastructureError } from '@/infrastructure/error/InfrastructureError' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +import { + parseFicha, parseId, parseRequiredString +} from './lembrete-parsing' + +interface Dependencies { + atualizaLembreteUseCase: AtualizaLembreteUseCase +} + +export class AtualizaLembreteController implements RequestHandler { + private readonly atualizaLembreteUseCase: AtualizaLembreteUseCase + + constructor(dependencies: Dependencies) { + this.atualizaLembreteUseCase = dependencies.atualizaLembreteUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { lembreteId: rawLembreteId } = request.params as { lembreteId?: string } + const lembreteId = parseId(rawLembreteId, 'lembreteId') + if (lembreteId instanceof Error) return new BadRequestError({ message: lembreteId.message }) + + const body = (request.body ?? {}) as Record + + const ficha = parseFicha(body, { preencherAusentes: false }) + if (ficha instanceof Error) return new BadRequestError({ message: ficha.message }) + + // Substituir por request.usuario.id assim que a + // autenticação for integrada. + const input: AtualizaLembreteInput = { + ...ficha, id: lembreteId, updated_by: null + } + + if (body.data_coleta !== undefined) { + const dataColeta = parseRequiredString(body.data_coleta, 'data_coleta') + if (dataColeta instanceof Error) return new BadRequestError({ message: dataColeta.message }) + input.data_coleta = dataColeta + } + + if (body.local_coleta !== undefined) { + const localColeta = parseRequiredString(body.local_coleta, 'local_coleta') + if (localColeta instanceof Error) return new BadRequestError({ message: localColeta.message }) + input.local_coleta = localColeta + } + + const result = await this.atualizaLembreteUseCase.execute(input) + + if (result.left()) { + const error = result.value + if (!(error instanceof InfrastructureError)) return new BadRequestError({ message: error.message }) + return new InternalServerError({ message: error.message }) + } + + if (!result.value) { + return new NotFoundError({ message: 'Lembrete não encontrado' }) + } + + return { body: result.value, statusCode: StatusCode.Ok } + } +} diff --git a/src/application/lembrete/BuscaLembreteController.ts b/src/application/lembrete/BuscaLembreteController.ts new file mode 100644 index 00000000..aa2b3cd9 --- /dev/null +++ b/src/application/lembrete/BuscaLembreteController.ts @@ -0,0 +1,41 @@ +import { BuscaLembreteUseCase } from '@/domain/lembrete/BuscaLembreteUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +import { parseId } from './lembrete-parsing' + +interface Dependencies { + buscaLembreteUseCase: BuscaLembreteUseCase +} + +export class BuscaLembreteController implements RequestHandler { + private readonly buscaLembreteUseCase: BuscaLembreteUseCase + + constructor(dependencies: Dependencies) { + this.buscaLembreteUseCase = dependencies.buscaLembreteUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { lembreteId: rawLembreteId } = request.params as { lembreteId?: string } + const lembreteId = parseId(rawLembreteId, 'lembreteId') + if (lembreteId instanceof Error) return new BadRequestError({ message: lembreteId.message }) + + const result = await this.buscaLembreteUseCase.execute({ id: lembreteId }) + + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } + + if (!result.value) { + return new NotFoundError({ message: 'Lembrete não encontrado' }) + } + + return { body: result.value, statusCode: StatusCode.Ok } + } +} diff --git a/src/application/lembrete/CriaLembreteController.ts b/src/application/lembrete/CriaLembreteController.ts new file mode 100644 index 00000000..0252be9c --- /dev/null +++ b/src/application/lembrete/CriaLembreteController.ts @@ -0,0 +1,56 @@ +import { CriaLembreteUseCase } from '@/domain/lembrete/CriaLembreteUseCase' +import { FichaAttributes } from '@/domain/lembrete/Lembrete' +import { InfrastructureError } from '@/infrastructure/error/InfrastructureError' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +import { parseFicha, parseRequiredString } from './lembrete-parsing' + +interface Dependencies { + criaLembreteUseCase: CriaLembreteUseCase +} + +export class CriaLembreteController implements RequestHandler { + private readonly criaLembreteUseCase: CriaLembreteUseCase + + constructor(dependencies: Dependencies) { + this.criaLembreteUseCase = dependencies.criaLembreteUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const body = (request.body ?? {}) as Record + + const dataColeta = parseRequiredString(body.data_coleta, 'data_coleta') + if (dataColeta instanceof Error) return new BadRequestError({ message: dataColeta.message }) + + const localColeta = parseRequiredString(body.local_coleta, 'local_coleta') + if (localColeta instanceof Error) return new BadRequestError({ message: localColeta.message }) + + const ficha = parseFicha(body, { preencherAusentes: true }) + if (ficha instanceof Error) return new BadRequestError({ message: ficha.message }) + + // Substituir por request.usuario.id assim que a + // autenticação for integrada. + const usuarioId = null + + const result = await this.criaLembreteUseCase.execute({ + ...ficha as FichaAttributes, + created_by: usuarioId, + data_coleta: dataColeta, + local_coleta: localColeta + }) + + if (result.left()) { + const error = result.value + if (!(error instanceof InfrastructureError)) return new BadRequestError({ message: error.message }) + return new InternalServerError({ message: error.message }) + } + + return { body: result.value, statusCode: StatusCode.Created } + } +} diff --git a/src/application/lembrete/ListaLembretesController.ts b/src/application/lembrete/ListaLembretesController.ts new file mode 100644 index 00000000..2866d43f --- /dev/null +++ b/src/application/lembrete/ListaLembretesController.ts @@ -0,0 +1,83 @@ +import { isDataValida } from '@/domain/lembrete/Lembrete' +import { LembreteFilters, LembreteOrder } from '@/domain/lembrete/LembreteCollection' +import { ListaLembretesUseCase } from '@/domain/lembrete/ListaLembretesUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +interface Dependencies { + listaLembretesUseCase: ListaLembretesUseCase +} + +const COLUNAS_ORDENAVEIS: ReadonlyArray = ['id', 'data_coleta'] +const DIRECOES: ReadonlyArray = ['asc', 'desc'] + +export class ListaLembretesController implements RequestHandler { + private readonly listaLembretesUseCase: ListaLembretesUseCase + + constructor(dependencies: Dependencies) { + this.listaLembretesUseCase = dependencies.listaLembretesUseCase + } + + // Próximos lembretes (a partir de hoje, o mais próximo primeiro): + // GET /api/v2/lembretes?data_coleta_de=2026-10-05 + + // Lembretes de um intervalo: + // GET /api/v2/lembretes?data_coleta_de=2026-11-01&data_coleta_ate=2026-11-30 + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { + data_coleta_de, + data_coleta_ate, + order, + limite, + pagina + } = request.params as Record + + const filters: LembreteFilters = {} + + if (data_coleta_de) { + if (!isDataValida(data_coleta_de)) { + return new BadRequestError({ message: 'data_coleta_de inválido. Use o formato YYYY-MM-DD' }) + } + filters.data_coleta_de = data_coleta_de + } + + if (data_coleta_ate) { + if (!isDataValida(data_coleta_ate)) { + return new BadRequestError({ message: 'data_coleta_ate inválido. Use o formato YYYY-MM-DD' }) + } + filters.data_coleta_ate = data_coleta_ate + } + + if (order) { + const [column, direction] = order.split(':') as [LembreteOrder['column'], LembreteOrder['direction']] + if (!COLUNAS_ORDENAVEIS.includes(column) || !DIRECOES.includes(direction)) { + return new BadRequestError({ + message: 'order inválido. Use o formato "data_coleta:asc", "data_coleta:desc", "id:asc" ou "id:desc"' + }) + } + filters.order = { column, direction } + } + + if (limite && !Number.isNaN(Number(limite))) { + filters.limite = Number(limite) + } + + if (pagina && !Number.isNaN(Number(pagina))) { + filters.pagina = Number(pagina) + } + + const result = await this.listaLembretesUseCase.execute(filters) + + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } + + return { body: result.value, statusCode: StatusCode.Ok } + } +} diff --git a/src/application/lembrete/RemoveLembreteController.ts b/src/application/lembrete/RemoveLembreteController.ts new file mode 100644 index 00000000..ec3a828a --- /dev/null +++ b/src/application/lembrete/RemoveLembreteController.ts @@ -0,0 +1,41 @@ +import { RemoveLembreteUseCase } from '@/domain/lembrete/RemoveLembreteUseCase' +import { + HttpRequest, HttpResponse, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { HttpError } from '@/library/http/error/HttpError' +import { InternalServerError } from '@/library/http/error/InternalServerError' +import { NotFoundError } from '@/library/http/error/NotFoundError' +import { NextHandler, RequestHandler } from '@/library/http/Server' + +import { parseId } from './lembrete-parsing' + +interface Dependencies { + removeLembreteUseCase: RemoveLembreteUseCase +} + +export class RemoveLembreteController implements RequestHandler { + private readonly removeLembreteUseCase: RemoveLembreteUseCase + + constructor(dependencies: Dependencies) { + this.removeLembreteUseCase = dependencies.removeLembreteUseCase + } + + async handle(request: HttpRequest, _next: NextHandler): Promise { + const { lembreteId: rawLembreteId } = request.params as { lembreteId?: string } + const lembreteId = parseId(rawLembreteId, 'lembreteId') + if (lembreteId instanceof Error) return new BadRequestError({ message: lembreteId.message }) + + const result = await this.removeLembreteUseCase.execute({ id: lembreteId }) + + if (result.left()) { + return new InternalServerError({ message: result.value.message }) + } + + if (!result.value) { + return new NotFoundError({ message: 'Lembrete não encontrado' }) + } + + return { statusCode: StatusCode.NoContent } + } +} diff --git a/src/application/lembrete/index.ts b/src/application/lembrete/index.ts new file mode 100644 index 00000000..99432b36 --- /dev/null +++ b/src/application/lembrete/index.ts @@ -0,0 +1,70 @@ +import { type Knex } from 'knex' + +import { AtualizaLembreteUseCase } from '@/domain/lembrete/AtualizaLembreteUseCase' +import { BuscaLembreteUseCase } from '@/domain/lembrete/BuscaLembreteUseCase' +import { CriaLembreteUseCase } from '@/domain/lembrete/CriaLembreteUseCase' +import { ListaLembretesUseCase } from '@/domain/lembrete/ListaLembretesUseCase' +import { RemoveLembreteUseCase } from '@/domain/lembrete/RemoveLembreteUseCase' +import { LembreteCollectionKnexAdapter } from '@/infrastructure/LembreteCollectionKnexAdapter' +import { Method } from '@/library/http/common' +import { Route } from '@/library/http/Router' + +import { AtualizaLembreteController } from './AtualizaLembreteController' +import { BuscaLembreteController } from './BuscaLembreteController' +import { CriaLembreteController } from './CriaLembreteController' +import { ListaLembretesController } from './ListaLembretesController' +import { RemoveLembreteController } from './RemoveLembreteController' + +export function routes(knex: Knex): Route[] { + const lembreteCollection = new LembreteCollectionKnexAdapter({ knex }) + + // TODO: adicionar autenticação quando a camada HTTP de autenticação estiver disponível. + + return [ + { + handlers: [ + new ListaLembretesController({ + listaLembretesUseCase: new ListaLembretesUseCase({ lembreteCollection }) + }) + ], + method: Method.Get, + path: '/v2/lembretes' + }, + { + handlers: [ + new CriaLembreteController({ + criaLembreteUseCase: new CriaLembreteUseCase({ lembreteCollection }) + }) + ], + method: Method.Post, + path: '/v2/lembretes' + }, + { + handlers: [ + new BuscaLembreteController({ + buscaLembreteUseCase: new BuscaLembreteUseCase({ lembreteCollection }) + }) + ], + method: Method.Get, + path: '/v2/lembretes/:lembreteId' + }, + { + handlers: [ + new AtualizaLembreteController({ + atualizaLembreteUseCase: new AtualizaLembreteUseCase({ lembreteCollection }) + }) + ], + method: Method.Put, + path: '/v2/lembretes/:lembreteId' + }, + { + handlers: [ + new RemoveLembreteController({ + removeLembreteUseCase: new RemoveLembreteUseCase({ lembreteCollection }) + }) + ], + method: Method.Delete, + path: '/v2/lembretes/:lembreteId' + } + ] +} diff --git a/src/application/lembrete/lembrete-parsing.ts b/src/application/lembrete/lembrete-parsing.ts new file mode 100644 index 00000000..4d1643a0 --- /dev/null +++ b/src/application/lembrete/lembrete-parsing.ts @@ -0,0 +1,38 @@ +import { FICHA_FIELDS, FichaAttributes } from '@/domain/lembrete/Lembrete' + +export function parseId(raw: unknown, field: string): number | Error { + if (typeof raw !== 'string' || !/^\d+$/.test(raw)) { + return new Error(`${field} inválido`) + } + return Number(raw) +} + +export function parseRequiredString(raw: unknown, field: string): string | Error { + if (typeof raw !== 'string') { + return new Error(`${field} inválido`) + } + return raw +} + +/** + * Lê só os campos da ficha que vieram no corpo. Com `preencherAusentes`, os + * que faltam viram null (criação); sem, ficam de fora (atualização parcial). + */ +export function parseFicha( + body: Record, + { preencherAusentes }: { preencherAusentes: boolean } +): Partial | Error { + const result: Partial> = {} + for (const campo of FICHA_FIELDS) { + const value = body[campo] + if (value === undefined) { + if (preencherAusentes) result[campo] = null + continue + } + if (value !== null && typeof value !== 'string') { + return new Error(`${campo} inválido`) + } + result[campo] = value + } + return result +} diff --git a/src/database/migration/20261005120000_cria_tabela_lembretes.ts b/src/database/migration/20261005120000_cria_tabela_lembretes.ts new file mode 100644 index 00000000..45f7b29f --- /dev/null +++ b/src/database/migration/20261005120000_cria_tabela_lembretes.ts @@ -0,0 +1,68 @@ +import { Knex } from 'knex' + +/** + * Lembrete de coleta: a mesma ficha botânica de `eventos_coletas`, mas sem + * evento por trás. Guarda uma data e um local para voltar a coletar numa + * expedição futura. + * + * Como na ficha de coleta, os campos são strings planas, não FKs: a captura + * é offline e a determinação é provisória. + */ +const CAMPOS_DA_FICHA = [ + 'familia', + 'nome_popular', + 'nome_cientifico', + 'municipio', + 'estado', + 'referencia_local', + 'tipo_vegetacao', + 'solo', + 'relevo', + 'substrato', + 'tronco_com_casca', + 'associacoes', + 'folhas', + 'habito', + 'frutos', + 'flores', + 'luminosidade' +] + +export async function run(knex: Knex): Promise { + const hasTable = await knex.schema.hasTable('lembretes') + if (hasTable) { + return + } + + await knex.transaction(async trx => { + await trx.schema.createTable('lembretes', table => { + table.increments('id').primary() + + table.date('data_coleta').notNullable() + table.text('local_coleta').notNullable() + + CAMPOS_DA_FICHA.forEach(campo => { + table.text(campo).nullable() + }) + + table.timestamp('created_at').notNullable().defaultTo(trx.fn.now()) + table.timestamp('updated_at').notNullable().defaultTo(trx.fn.now()) + + table.bigInteger('created_by').nullable() + table.foreign('created_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.bigInteger('updated_by').nullable() + table.foreign('updated_by') + .references('id') + .inTable('usuarios') + .onDelete('NO ACTION') + .onUpdate('CASCADE') + + table.index('data_coleta', 'lembretes_data_coleta_index') + }) + }) +} diff --git a/src/domain/lembrete/AtualizaLembreteUseCase.ts b/src/domain/lembrete/AtualizaLembreteUseCase.ts new file mode 100644 index 00000000..1809181e --- /dev/null +++ b/src/domain/lembrete/AtualizaLembreteUseCase.ts @@ -0,0 +1,69 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, FICHA_FIELDS, FichaAttributes, Lembrete, UpdateAttributes +} from './Lembrete' +import { LembreteCollection } from './LembreteCollection' + +interface Dependencies { + lembreteCollection: LembreteCollection +} + +export type Input = Partial & { + id: number + data_coleta?: string + local_coleta?: string + updated_by: number | null +} + +/** + * Campos ausentes no corpo mantêm o valor atual; o estado mesclado passa + * por Lembrete.create() antes de persistir. + */ +export class AtualizaLembreteUseCase { + private readonly lembreteCollection: LembreteCollection + + constructor(dependencies: Dependencies) { + this.lembreteCollection = dependencies.lembreteCollection + } + + async execute(input: Input): Promise> { + const existente = await this.lembreteCollection.findById(input.id) + if (existente.left()) { + return Either.left(existente.value) + } + + if (!existente.value) { + return Either.right(null) + } + + const atual = existente.value + const mesclado: Attributes = { + ...atual, + data_coleta: input.data_coleta ?? atual.data_coleta, + local_coleta: input.local_coleta ?? atual.local_coleta, + updated_by: input.updated_by + } + + for (const campo of FICHA_FIELDS) { + const value = input[campo] + if (value !== undefined) { + mesclado[campo] = value + } + } + + const validado = Lembrete.create(mesclado) + if (validado.left()) { + return Either.left(validado.value) + } + + const patch: UpdateAttributes = { + ...validado.value.ficha, + data_coleta: mesclado.data_coleta, + local_coleta: mesclado.local_coleta, + updated_by: mesclado.updated_by + } + + return this.lembreteCollection.update(input.id, patch) + } +} diff --git a/src/domain/lembrete/BuscaLembreteUseCase.ts b/src/domain/lembrete/BuscaLembreteUseCase.ts new file mode 100644 index 00000000..9d12699c --- /dev/null +++ b/src/domain/lembrete/BuscaLembreteUseCase.ts @@ -0,0 +1,20 @@ +import { Either } from '@/library/either/Either' + +import { Attributes } from './Lembrete' +import { LembreteCollection } from './LembreteCollection' + +interface Dependencies { + lembreteCollection: LembreteCollection +} + +export class BuscaLembreteUseCase { + private readonly lembreteCollection: LembreteCollection + + constructor(dependencies: Dependencies) { + this.lembreteCollection = dependencies.lembreteCollection + } + + execute({ id }: { id: number }): Promise> { + return this.lembreteCollection.findById(id) + } +} diff --git a/src/domain/lembrete/CriaLembreteUseCase.ts b/src/domain/lembrete/CriaLembreteUseCase.ts new file mode 100644 index 00000000..fd449ea7 --- /dev/null +++ b/src/domain/lembrete/CriaLembreteUseCase.ts @@ -0,0 +1,36 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, CreateAttributes, Lembrete +} from './Lembrete' +import { LembreteCollection } from './LembreteCollection' + +interface Dependencies { + lembreteCollection: LembreteCollection +} + +export class CriaLembreteUseCase { + private readonly lembreteCollection: LembreteCollection + + constructor(dependencies: Dependencies) { + this.lembreteCollection = dependencies.lembreteCollection + } + + async execute(input: CreateAttributes): Promise> { + // Lembrete.create() exige um Attributes completo, usado só para validar + // a regra de negócio (data e local de coleta). + const validated = Lembrete.create({ + ...input, + created_at: new Date(), + id: 0, + updated_at: new Date(), + updated_by: input.created_by + }) + + if (validated.left()) { + return Either.left(validated.value) + } + + return this.lembreteCollection.create(input) + } +} diff --git a/src/domain/lembrete/Lembrete.ts b/src/domain/lembrete/Lembrete.ts new file mode 100644 index 00000000..9af3a48d --- /dev/null +++ b/src/domain/lembrete/Lembrete.ts @@ -0,0 +1,108 @@ +import { Either } from '@/library/either/Either' + +export interface FichaAttributes { + familia: string | null + nome_popular: string | null + nome_cientifico: string | null + municipio: string | null + estado: string | null + referencia_local: string | null + tipo_vegetacao: string | null + solo: string | null + relevo: string | null + substrato: string | null + tronco_com_casca: string | null + associacoes: string | null + folhas: string | null + habito: string | null + frutos: string | null + flores: string | null + luminosidade: string | null +} + +/** + * Lista de campos da ficha do lembrete (clone da ficha de coleta do evento). + */ +export const FICHA_FIELDS = [ + 'familia', + 'nome_popular', + 'nome_cientifico', + 'municipio', + 'estado', + 'referencia_local', + 'tipo_vegetacao', + 'solo', + 'relevo', + 'substrato', + 'tronco_com_casca', + 'associacoes', + 'folhas', + 'habito', + 'frutos', + 'flores', + 'luminosidade' +] as const satisfies ReadonlyArray + +export interface Attributes extends FichaAttributes { + id: number + data_coleta: string + local_coleta: string + created_at: Date + updated_at: Date + created_by: number | null + updated_by: number | null +} + +export type CreateAttributes = Omit + +export type UpdateAttributes = Omit + +const DATA_ISO = /^\d{4}-\d{2}-\d{2}$/ + +/** + * Aceita apenas YYYY-MM-DD de um dia que existe (rejeita 2026-02-30, que o + * Date normalizaria para março). + */ +export function isDataValida(value: string): boolean { + if (!DATA_ISO.test(value)) { + return false + } + const date = new Date(`${value}T00:00:00.000Z`) + return !Number.isNaN(date.getTime()) && date.toISOString().startsWith(value) +} + +export class Lembrete { + readonly id: number + readonly data_coleta: string + readonly local_coleta: string + readonly ficha: FichaAttributes + readonly created_at: Date + readonly updated_at: Date + readonly created_by: number | null + readonly updated_by: number | null + + private constructor(attributes: Attributes) { + this.id = attributes.id + this.data_coleta = attributes.data_coleta + this.local_coleta = attributes.local_coleta + this.ficha = Object.fromEntries( + FICHA_FIELDS.map(campo => [campo, attributes[campo]]) + ) as unknown as FichaAttributes + this.created_at = attributes.created_at + this.updated_at = attributes.updated_at + this.created_by = attributes.created_by + this.updated_by = attributes.updated_by + } + + static create(attributes: Attributes): Either { + if (typeof attributes.data_coleta !== 'string' || !isDataValida(attributes.data_coleta)) { + return Either.left(new Error('Data de coleta do lembrete é obrigatória e deve estar no formato YYYY-MM-DD')) + } + + if (typeof attributes.local_coleta !== 'string' || attributes.local_coleta.trim() === '') { + return Either.left(new Error('Local de coleta do lembrete é obrigatório')) + } + + return Either.right(new Lembrete(attributes)) + } +} diff --git a/src/domain/lembrete/LembreteCollection.ts b/src/domain/lembrete/LembreteCollection.ts new file mode 100644 index 00000000..1a707b1b --- /dev/null +++ b/src/domain/lembrete/LembreteCollection.ts @@ -0,0 +1,33 @@ +import { Either } from '@/library/either/Either' + +import { + Attributes, CreateAttributes, UpdateAttributes +} from './Lembrete' + +export interface LembreteOrder { + column: 'id' | 'data_coleta' + direction: 'asc' | 'desc' +} + +export interface LembreteFilters { + data_coleta_de?: string + data_coleta_ate?: string + order?: LembreteOrder + limite?: number + pagina?: number +} + +export interface Paginated { + itens: T[] + total: number + limite: number + pagina: number +} + +export interface LembreteCollection { + findAll(filters: LembreteFilters): Promise>> + findById(id: number): Promise> + create(attributes: CreateAttributes): Promise> + update(id: number, attributes: UpdateAttributes): Promise> + delete(id: number): Promise> +} diff --git a/src/domain/lembrete/ListaLembretesUseCase.ts b/src/domain/lembrete/ListaLembretesUseCase.ts new file mode 100644 index 00000000..eae330df --- /dev/null +++ b/src/domain/lembrete/ListaLembretesUseCase.ts @@ -0,0 +1,22 @@ +import { Either } from '@/library/either/Either' + +import { Attributes } from './Lembrete' +import { + LembreteCollection, LembreteFilters, Paginated +} from './LembreteCollection' + +interface Dependencies { + lembreteCollection: LembreteCollection +} + +export class ListaLembretesUseCase { + private readonly lembreteCollection: LembreteCollection + + constructor(dependencies: Dependencies) { + this.lembreteCollection = dependencies.lembreteCollection + } + + execute(filters: LembreteFilters): Promise>> { + return this.lembreteCollection.findAll(filters) + } +} diff --git a/src/domain/lembrete/RemoveLembreteUseCase.ts b/src/domain/lembrete/RemoveLembreteUseCase.ts new file mode 100644 index 00000000..3472ef31 --- /dev/null +++ b/src/domain/lembrete/RemoveLembreteUseCase.ts @@ -0,0 +1,19 @@ +import { Either } from '@/library/either/Either' + +import { LembreteCollection } from './LembreteCollection' + +interface Dependencies { + lembreteCollection: LembreteCollection +} + +export class RemoveLembreteUseCase { + private readonly lembreteCollection: LembreteCollection + + constructor(dependencies: Dependencies) { + this.lembreteCollection = dependencies.lembreteCollection + } + + execute({ id }: { id: number }): Promise> { + return this.lembreteCollection.delete(id) + } +} diff --git a/src/infrastructure/LembreteCollectionKnexAdapter.ts b/src/infrastructure/LembreteCollectionKnexAdapter.ts new file mode 100644 index 00000000..c232871a --- /dev/null +++ b/src/infrastructure/LembreteCollectionKnexAdapter.ts @@ -0,0 +1,171 @@ +import { Knex } from 'knex' + +import { + Attributes, CreateAttributes, FICHA_FIELDS, FichaAttributes, UpdateAttributes +} from '@/domain/lembrete/Lembrete' +import { + LembreteCollection, LembreteFilters, Paginated +} from '@/domain/lembrete/LembreteCollection' +import { Either } from '@/library/either/Either' + +import { CollectionError } from './error/CollectionError' +import { toNullableNumber } from './pg-column' + +interface Dependencies { + knex: Knex +} + +interface Row extends FichaAttributes { + id: number + data_coleta: string + local_coleta: string + created_at: Date + updated_at: Date + created_by: string | null + updated_by: string | null +} + +function toAttributes(row: Row): Attributes { + return { + id: row.id, + data_coleta: row.data_coleta, + local_coleta: row.local_coleta, + ...Object.fromEntries(FICHA_FIELDS.map(campo => [campo, row[campo] ?? null])) as unknown as FichaAttributes, + created_at: row.created_at, + updated_at: row.updated_at, + created_by: toNullableNumber(row.created_by), + updated_by: toNullableNumber(row.updated_by) + } +} + +export class LembreteCollectionKnexAdapter implements LembreteCollection { + private readonly knex: Knex + + constructor(dependencies: Dependencies) { + this.knex = dependencies.knex + } + + private select(trx?: Knex.Transaction): Knex.QueryBuilder { + const knex = trx ?? this.knex + + return knex('lembretes') + .select([ + 'lembretes.id', + // `date` sem conversão vira Date em meia-noite local; devolve como YYYY-MM-DD + knex.raw('to_char(lembretes.data_coleta, \'YYYY-MM-DD\') as data_coleta'), + 'lembretes.local_coleta', + ...FICHA_FIELDS.map(campo => `lembretes.${campo}`), + 'lembretes.created_at', + 'lembretes.updated_at', + 'lembretes.created_by', + 'lembretes.updated_by' + ]) + } + + async findAll(filters: LembreteFilters): Promise>> { + try { + const query = this.select() + + if (filters.data_coleta_de) { + query.where('lembretes.data_coleta', '>=', filters.data_coleta_de) + } + + if (filters.data_coleta_ate) { + query.where('lembretes.data_coleta', '<=', filters.data_coleta_ate) + } + + const countRows = await query.clone() + .clearSelect() + .count>('* as count') + const [{ count }] = countRows + + const limite = filters.limite && filters.limite > 0 ? filters.limite : 20 + const pagina = filters.pagina && filters.pagina > 0 ? filters.pagina : 1 + const offset = (pagina - 1) * limite + + // Padrão: o lembrete mais próximo primeiro + const order = filters.order ?? { column: 'data_coleta', direction: 'asc' } + query.orderBy(`lembretes.${order.column}`, order.direction) + query.orderBy('lembretes.id', order.direction) + query.limit(limite).offset(offset) + + const rows = await query as Row[] + return Either.right({ + itens: rows.map(toAttributes), + total: Number(count), + limite, + pagina + }) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to list lembretes', cause: error })) + } + } + + async findById(id: number): Promise> { + try { + const row = await this.select() + .where('lembretes.id', id) + .first() as Row | undefined + + return Either.right(row ? toAttributes(row) : null) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to find lembrete by id', cause: error })) + } + } + + async create(attributes: CreateAttributes): Promise> { + try { + const created = await this.knex.transaction(async trx => { + const [{ id }] = await trx('lembretes') + .insert({ + ...attributes, + updated_by: attributes.created_by + }) + .returning>(['id']) + + return await this.select(trx) + .where('lembretes.id', id) + .first() as Row + }) + + return Either.right(toAttributes(created)) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to create lembrete', cause: error })) + } + } + + async update(id: number, attributes: UpdateAttributes): Promise> { + try { + const updated = await this.knex.transaction(async trx => { + const updatedRows = await trx('lembretes') + .where({ id }) + .update({ + ...attributes, + updated_at: trx.fn.now() + }) + .returning>(['id']) + + if (updatedRows.length === 0) { + return null + } + + return await this.select(trx) + .where('lembretes.id', id) + .first() as Row | undefined + }) + + return Either.right(updated ? toAttributes(updated) : null) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to update lembrete', cause: error })) + } + } + + async delete(id: number): Promise> { + try { + const deletedCount = await this.knex('lembretes').where({ id }).delete() + return Either.right(deletedCount > 0) + } catch (error) { + return Either.left(new CollectionError({ message: 'Failed to delete lembrete', cause: error })) + } + } +} diff --git a/test/integration/lembrete/lembrete-collection.test.ts b/test/integration/lembrete/lembrete-collection.test.ts new file mode 100644 index 00000000..e2ef23ab --- /dev/null +++ b/test/integration/lembrete/lembrete-collection.test.ts @@ -0,0 +1,110 @@ +import { + afterAll, describe, expect, test +} from 'vitest' + +import { CreateAttributes } from '@/domain/lembrete/Lembrete' +import { LembreteCollectionKnexAdapter } from '@/infrastructure/LembreteCollectionKnexAdapter' + +import { createTestKnex } from '../setup/app-factory' + +const PREFIXO = 'XLEMB' + +function novoLembrete(overrides: Partial = {}): CreateAttributes { + return { + data_coleta: '2026-11-20', + local_coleta: `${PREFIXO} Serra do Cipó`, + familia: 'Velloziaceae', + nome_popular: 'canela-de-ema', + nome_cientifico: 'Vellozia squamata', + municipio: 'Santana do Riacho', + estado: 'MG', + referencia_local: 'Trilha da cachoeira', + tipo_vegetacao: 'Campo rupestre', + solo: 'Arenoso', + relevo: 'Ondulado', + substrato: 'Afloramento rochoso', + tronco_com_casca: null, + associacoes: null, + folhas: 'Lineares', + habito: 'Herbácea', + frutos: null, + flores: 'Esperadas em novembro', + luminosidade: 'Pleno sol', + created_by: null, + ...overrides + } +} + +describe('LembreteCollectionKnexAdapter', () => { + const knex = createTestKnex() + const collection = new LembreteCollectionKnexAdapter({ knex }) + + afterAll(async () => { + await knex.destroy() + }) + + async function limpar() { + await knex('lembretes').where('local_coleta', 'like', `${PREFIXO}%`).delete() + } + + test('cria, busca, atualiza e remove um lembrete', async () => { + try { + const criado = await collection.create(novoLembrete()) + expect(criado.right()).toBe(true) + if (criado.left()) return + + expect(criado.value.data_coleta).toBe('2026-11-20') + expect(criado.value.familia).toBe('Velloziaceae') + + const encontrado = await collection.findById(criado.value.id) + expect(encontrado.value).toEqual(criado.value) + + const { + id, created_at: _c, updated_at: _u, created_by: _cb, ...resto + } = criado.value + const atualizado = await collection.update(id, { + ...resto, + data_coleta: '2026-12-01', + flores: 'Lilases' + }) + expect(atualizado.right()).toBe(true) + expect(atualizado.value).toMatchObject({ data_coleta: '2026-12-01', flores: 'Lilases' }) + + const removido = await collection.delete(id) + expect(removido.value).toBe(true) + + const depois = await collection.findById(id) + expect(depois.value).toBeNull() + } finally { + await limpar() + } + }) + + test('update e delete de id inexistente não quebram', async () => { + const { created_by: _cb, ...attrs } = novoLembrete() + + const atualizado = await collection.update(999999, { ...attrs, updated_by: null }) + expect(atualizado.right()).toBe(true) + expect(atualizado.value).toBeNull() + + const removido = await collection.delete(999999) + expect(removido.value).toBe(false) + }) + + test('lista filtrando por intervalo de data_coleta, o mais próximo primeiro', async () => { + try { + await collection.create(novoLembrete({ data_coleta: '2030-03-10' })) + await collection.create(novoLembrete({ data_coleta: '2030-01-05' })) + await collection.create(novoLembrete({ data_coleta: '2030-08-01' })) + + const result = await collection.findAll({ data_coleta_de: '2030-01-01', data_coleta_ate: '2030-06-30' }) + + expect(result.right()).toBe(true) + if (result.left()) return + const doTeste = result.value.itens.filter(item => item.local_coleta.startsWith(PREFIXO)) + expect(doTeste.map(item => item.data_coleta)).toEqual(['2030-01-05', '2030-03-10']) + } finally { + await limpar() + } + }) +}) diff --git a/test/integration/setup/global-setup.ts b/test/integration/setup/global-setup.ts index 468a51e0..72b45255 100644 --- a/test/integration/setup/global-setup.ts +++ b/test/integration/setup/global-setup.ts @@ -11,6 +11,7 @@ const TABLES = [ 'estados', 'paises', 'fase_sucessional', + 'lembretes', 'evidencias', 'eventos_coletas', 'eventos', diff --git a/test/integration/setup/schema.sql b/test/integration/setup/schema.sql index 8ee02517..19f111bf 100644 --- a/test/integration/setup/schema.sql +++ b/test/integration/setup/schema.sql @@ -3531,3 +3531,59 @@ ALTER TABLE ONLY public.expedicoes_rotas ALTER TABLE ONLY public.expedicoes ADD CONSTRAINT expedicoes_updated_by_foreign FOREIGN KEY (updated_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + + +-- +-- Modulo Expedicao: lembretes +-- Migration 20261005120000 +-- + +CREATE TABLE public.lembretes ( + id integer NOT NULL, + data_coleta date NOT NULL, + local_coleta text NOT NULL, + familia text, + nome_popular text, + nome_cientifico text, + municipio text, + estado text, + referencia_local text, + tipo_vegetacao text, + solo text, + relevo text, + substrato text, + tronco_com_casca text, + associacoes text, + folhas text, + habito text, + frutos text, + flores text, + luminosidade text, + created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + created_by bigint, + updated_by bigint +); + +CREATE SEQUENCE public.lembretes_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE public.lembretes_id_seq OWNED BY public.lembretes.id; + +ALTER TABLE ONLY public.lembretes ALTER COLUMN id SET DEFAULT nextval('public.lembretes_id_seq'::regclass); + +ALTER TABLE ONLY public.lembretes + ADD CONSTRAINT lembretes_pkey PRIMARY KEY (id); + +CREATE INDEX lembretes_data_coleta_index ON public.lembretes USING btree (data_coleta); + +ALTER TABLE ONLY public.lembretes + ADD CONSTRAINT lembretes_created_by_foreign FOREIGN KEY (created_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; + +ALTER TABLE ONLY public.lembretes + ADD CONSTRAINT lembretes_updated_by_foreign FOREIGN KEY (updated_by) REFERENCES public.usuarios(id) ON UPDATE CASCADE; diff --git a/test/unit/application/lembrete/CriaLembreteController.test.ts b/test/unit/application/lembrete/CriaLembreteController.test.ts new file mode 100644 index 00000000..7570d035 --- /dev/null +++ b/test/unit/application/lembrete/CriaLembreteController.test.ts @@ -0,0 +1,90 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { CriaLembreteController } from '@/application/lembrete/CriaLembreteController' +import { CriaLembreteUseCase } from '@/domain/lembrete/CriaLembreteUseCase' +import { CollectionError } from '@/infrastructure/error/CollectionError' +import { Either } from '@/library/either/Either' +import { + Headers, HttpRequest, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { InternalServerError } from '@/library/http/error/InternalServerError' + +const headers = {} as Headers + +const validBody = { + data_coleta: '2026-11-20', + familia: 'Velloziaceae', + local_coleta: 'Serra do Cipó' +} + +function makeRequest(body: unknown): HttpRequest { + return { + body, headers, method: Method.Post, params: {}, path: '/v2/lembretes' + } satisfies HttpRequest +} + +describe('CriaLembreteController', () => { + test('retorna 201 e preenche com null os campos da ficha ausentes', async () => { + const criado = { id: 1, ...validBody } + const criaLembreteUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(criado)) + } as unknown as CriaLembreteUseCase + + const controller = new CriaLembreteController({ criaLembreteUseCase }) + const response = await controller.handle(makeRequest(validBody), vi.fn()) + + expect(criaLembreteUseCase.execute).toHaveBeenCalledWith(expect.objectContaining({ + data_coleta: '2026-11-20', + familia: 'Velloziaceae', + local_coleta: 'Serra do Cipó', + nome_cientifico: null + })) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Created) + expect('body' in response ? response.body : undefined).toEqual(criado) + }) + + test('retorna 400 quando local_coleta está ausente', async () => { + const criaLembreteUseCase = { execute: vi.fn() } as unknown as CriaLembreteUseCase + const controller = new CriaLembreteController({ criaLembreteUseCase }) + + const response = await controller.handle(makeRequest({ data_coleta: '2026-11-20' }), vi.fn()) + + expect(criaLembreteUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 400 quando um campo da ficha não é string', async () => { + const criaLembreteUseCase = { execute: vi.fn() } as unknown as CriaLembreteUseCase + const controller = new CriaLembreteController({ criaLembreteUseCase }) + + const response = await controller.handle(makeRequest({ ...validBody, solo: 42 }), vi.fn()) + + expect(criaLembreteUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 400 quando a validação de domínio falha', async () => { + const criaLembreteUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('Data de coleta inválida'))) + } as unknown as CriaLembreteUseCase + + const controller = new CriaLembreteController({ criaLembreteUseCase }) + const response = await controller.handle(makeRequest(validBody), vi.fn()) + + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 500 quando a collection falha', async () => { + const criaLembreteUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new CollectionError({ message: 'Failed to create lembrete' }))) + } as unknown as CriaLembreteUseCase + + const controller = new CriaLembreteController({ criaLembreteUseCase }) + const response = await controller.handle(makeRequest(validBody), vi.fn()) + + expect(response).toBeInstanceOf(InternalServerError) + }) +}) diff --git a/test/unit/application/lembrete/ListaLembretesController.test.ts b/test/unit/application/lembrete/ListaLembretesController.test.ts new file mode 100644 index 00000000..6cf032ac --- /dev/null +++ b/test/unit/application/lembrete/ListaLembretesController.test.ts @@ -0,0 +1,81 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { ListaLembretesController } from '@/application/lembrete/ListaLembretesController' +import { ListaLembretesUseCase } from '@/domain/lembrete/ListaLembretesUseCase' +import { Either } from '@/library/either/Either' +import { + Headers, HttpRequest, Method, StatusCode +} from '@/library/http/common' +import { BadRequestError } from '@/library/http/error/BadRequestError' +import { InternalServerError } from '@/library/http/error/InternalServerError' + +const headers = {} as Headers + +function makeRequest(params: Record): HttpRequest { + return { + body: undefined, headers, method: Method.Get, params, path: '/v2/lembretes' + } satisfies HttpRequest +} + +const pagina = { + itens: [], total: 0, limite: 20, pagina: 1 +} + +describe('ListaLembretesController', () => { + test('repassa filtros de data, ordenação e paginação', async () => { + const listaLembretesUseCase = { + execute: vi.fn().mockResolvedValue(Either.right(pagina)) + } as unknown as ListaLembretesUseCase + + const controller = new ListaLembretesController({ listaLembretesUseCase }) + const response = await controller.handle(makeRequest({ + data_coleta_ate: '2026-12-31', + data_coleta_de: '2026-10-05', + limite: '10', + order: 'data_coleta:desc', + pagina: '2' + }), vi.fn()) + + expect(listaLembretesUseCase.execute).toHaveBeenCalledWith({ + data_coleta_ate: '2026-12-31', + data_coleta_de: '2026-10-05', + limite: 10, + order: { column: 'data_coleta', direction: 'desc' }, + pagina: 2 + }) + expect('statusCode' in response ? response.statusCode : undefined).toBe(StatusCode.Ok) + }) + + test('retorna 400 quando data_coleta_de é inválida', async () => { + const listaLembretesUseCase = { execute: vi.fn() } as unknown as ListaLembretesUseCase + const controller = new ListaLembretesController({ listaLembretesUseCase }) + + const response = await controller.handle(makeRequest({ data_coleta_de: 'ontem' }), vi.fn()) + + expect(listaLembretesUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 400 quando order é inválido', async () => { + const listaLembretesUseCase = { execute: vi.fn() } as unknown as ListaLembretesUseCase + const controller = new ListaLembretesController({ listaLembretesUseCase }) + + const response = await controller.handle(makeRequest({ order: 'familia:asc' }), vi.fn()) + + expect(listaLembretesUseCase.execute).not.toHaveBeenCalled() + expect(response).toBeInstanceOf(BadRequestError) + }) + + test('retorna 500 quando a collection falha', async () => { + const listaLembretesUseCase = { + execute: vi.fn().mockResolvedValue(Either.left(new Error('DB failure'))) + } as unknown as ListaLembretesUseCase + + const controller = new ListaLembretesController({ listaLembretesUseCase }) + const response = await controller.handle(makeRequest({}), vi.fn()) + + expect(response).toBeInstanceOf(InternalServerError) + }) +}) diff --git a/test/unit/domain/lembrete/AtualizaLembreteUseCase.test.ts b/test/unit/domain/lembrete/AtualizaLembreteUseCase.test.ts new file mode 100644 index 00000000..c28c3583 --- /dev/null +++ b/test/unit/domain/lembrete/AtualizaLembreteUseCase.test.ts @@ -0,0 +1,93 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { AtualizaLembreteUseCase } from '@/domain/lembrete/AtualizaLembreteUseCase' +import { Attributes } from '@/domain/lembrete/Lembrete' +import { LembreteCollection } from '@/domain/lembrete/LembreteCollection' +import { Either } from '@/library/either/Either' + +const existente: Attributes = { + id: 10, + data_coleta: '2026-11-20', + local_coleta: 'Serra do Cipó', + familia: 'Velloziaceae', + nome_popular: null, + nome_cientifico: 'Vellozia squamata', + municipio: null, + estado: 'MG', + referencia_local: null, + tipo_vegetacao: null, + solo: null, + relevo: null, + substrato: null, + tronco_com_casca: null, + associacoes: null, + folhas: null, + habito: null, + frutos: null, + flores: null, + luminosidade: null, + created_at: new Date(), + updated_at: new Date(), + created_by: null, + updated_by: null +} + +const makeMockCollection = (overrides?: Partial): LembreteCollection => ({ + create: vi.fn(), + delete: vi.fn(), + findAll: vi.fn(), + findById: vi.fn().mockResolvedValue(Either.right(existente)), + update: vi.fn().mockImplementation((_id, patch) => Promise.resolve(Either.right({ ...existente, ...patch }))), + ...overrides +}) + +describe('AtualizaLembreteUseCase', () => { + test('mantém os campos ausentes e troca só os enviados', async () => { + const collection = makeMockCollection() + const useCase = new AtualizaLembreteUseCase({ lembreteCollection: collection }) + + const result = await useCase.execute({ + data_coleta: '2026-12-01', + flores: 'Lilases', + id: 10, + nome_cientifico: null, + updated_by: null + }) + + expect(result.right()).toBe(true) + expect(collection.update).toHaveBeenCalledWith(10, expect.objectContaining({ + data_coleta: '2026-12-01', + familia: 'Velloziaceae', + flores: 'Lilases', + local_coleta: 'Serra do Cipó', + nome_cientifico: null + })) + }) + + test('retorna null quando o lembrete não existe', async () => { + const collection = makeMockCollection({ + findById: vi.fn().mockResolvedValue(Either.right(null)) + }) + const useCase = new AtualizaLembreteUseCase({ lembreteCollection: collection }) + + const result = await useCase.execute({ id: 99, updated_by: null }) + + expect(result.right()).toBe(true) + expect(result.value).toBeNull() + expect(collection.update).not.toHaveBeenCalled() + }) + + test('não persiste quando o estado mesclado é inválido', async () => { + const collection = makeMockCollection() + const useCase = new AtualizaLembreteUseCase({ lembreteCollection: collection }) + + const result = await useCase.execute({ + id: 10, local_coleta: '', updated_by: null + }) + + expect(result.left()).toBe(true) + expect(collection.update).not.toHaveBeenCalled() + }) +}) diff --git a/test/unit/domain/lembrete/CriaLembreteUseCase.test.ts b/test/unit/domain/lembrete/CriaLembreteUseCase.test.ts new file mode 100644 index 00000000..bd596479 --- /dev/null +++ b/test/unit/domain/lembrete/CriaLembreteUseCase.test.ts @@ -0,0 +1,89 @@ +import { + describe, expect, test, vi +} from 'vitest' + +import { CriaLembreteUseCase } from '@/domain/lembrete/CriaLembreteUseCase' +import { Attributes, CreateAttributes } from '@/domain/lembrete/Lembrete' +import { LembreteCollection } from '@/domain/lembrete/LembreteCollection' +import { Either } from '@/library/either/Either' + +const fichaVazia = { + familia: null, + nome_popular: null, + nome_cientifico: null, + municipio: null, + estado: null, + referencia_local: null, + tipo_vegetacao: null, + solo: null, + relevo: null, + substrato: null, + tronco_com_casca: null, + associacoes: null, + folhas: null, + habito: null, + frutos: null, + flores: null, + luminosidade: null +} + +const validInput: CreateAttributes = { + ...fichaVazia, + created_by: null, + data_coleta: '2026-11-20', + local_coleta: 'Serra do Cipó', + nome_cientifico: 'Vellozia squamata' +} + +const attributes: Attributes = { + ...validInput, + created_at: new Date(), + id: 10, + updated_at: new Date(), + updated_by: null +} + +const makeMockCollection = (overrides?: Partial): LembreteCollection => ({ + create: vi.fn().mockResolvedValue(Either.right(attributes)), + delete: vi.fn(), + findAll: vi.fn(), + findById: vi.fn(), + update: vi.fn(), + ...overrides +}) + +describe('CriaLembreteUseCase', () => { + test('cria o lembrete quando os dados são válidos', async () => { + const collection = makeMockCollection() + const useCase = new CriaLembreteUseCase({ lembreteCollection: collection }) + + const result = await useCase.execute(validInput) + + expect(result.right()).toBe(true) + expect(result.value).toEqual(attributes) + expect(collection.create).toHaveBeenCalledWith(validInput) + }) + + test('não chama a collection quando a data de coleta é inválida', async () => { + const collection = makeMockCollection() + const useCase = new CriaLembreteUseCase({ lembreteCollection: collection }) + + const result = await useCase.execute({ ...validInput, data_coleta: 'amanhã' }) + + expect(result.left()).toBe(true) + expect(collection.create).not.toHaveBeenCalled() + }) + + test('propaga erro de infraestrutura da collection', async () => { + const error = new Error('DB failure') + const collection = makeMockCollection({ + create: vi.fn().mockResolvedValue(Either.left(error)) + }) + const useCase = new CriaLembreteUseCase({ lembreteCollection: collection }) + + const result = await useCase.execute(validInput) + + expect(result.left()).toBe(true) + expect(result.value).toBe(error) + }) +}) diff --git a/test/unit/domain/lembrete/Lembrete.test.ts b/test/unit/domain/lembrete/Lembrete.test.ts new file mode 100644 index 00000000..d3a0d725 --- /dev/null +++ b/test/unit/domain/lembrete/Lembrete.test.ts @@ -0,0 +1,76 @@ +import { + describe, expect, test +} from 'vitest' + +import { + Attributes, isDataValida, Lembrete +} from '@/domain/lembrete/Lembrete' + +const lembrete: Attributes = { + id: 1, + data_coleta: '2026-11-20', + local_coleta: 'Serra do Cipó, trilha da cachoeira', + familia: 'Velloziaceae', + nome_popular: 'canela-de-ema', + nome_cientifico: 'Vellozia squamata', + municipio: 'Santana do Riacho', + estado: 'MG', + referencia_local: '300 m após a ponte', + tipo_vegetacao: 'Campo rupestre', + solo: 'Arenoso', + relevo: 'Ondulado', + substrato: 'Afloramento rochoso', + tronco_com_casca: null, + associacoes: null, + folhas: 'Lineares', + habito: 'Herbácea', + frutos: null, + flores: 'Esperadas em novembro', + luminosidade: 'Pleno sol', + created_at: new Date('2026-10-05T00:00:00.000Z'), + updated_at: new Date('2026-10-05T00:00:00.000Z'), + created_by: 7, + updated_by: 7 +} + +describe('Lembrete.create', () => { + test('cria um lembrete com data e local de coleta', () => { + const result = Lembrete.create(lembrete) + + expect(result.right()).toBe(true) + const criado = result.value as Lembrete + expect(criado.data_coleta).toBe('2026-11-20') + expect(criado.ficha.familia).toBe('Velloziaceae') + }) + + test('rejeita data de coleta fora do formato YYYY-MM-DD', () => { + const result = Lembrete.create({ ...lembrete, data_coleta: '20/11/2026' }) + + expect(result.left()).toBe(true) + }) + + test('rejeita data de coleta inexistente', () => { + const result = Lembrete.create({ ...lembrete, data_coleta: '2026-02-30' }) + + expect(result.left()).toBe(true) + }) + + test('rejeita local de coleta vazio', () => { + const result = Lembrete.create({ ...lembrete, local_coleta: ' ' }) + + expect(result.left()).toBe(true) + }) +}) + +describe('isDataValida', () => { + test.each([ + ['2026-11-20', true], + ['2028-02-29', true], + ['2026-02-29', false], + ['2026-13-01', false], + ['2026-11-20T00:00:00Z', false], + ['', false] + ])('%s -> %s', (value, esperado) => { + expect(isDataValida(value)).toBe(esperado) + }) +})
    2. !6U^NWMLcB+@POkc+y)+3s*kZ3%Zj*JMq4j3vMr zb52R8vz>t_fl!QrP3E?@+oQFo-5w$D4&H*F53%#AqRTGbfi{+B zdZCWycA??s+SM4@jIu=5yDCozXQ6;jrPzfV5r)*W73f&xwkYHgABHWr5F2tn_a>XX zVk_%p>1X+OwumBf?Zn2hBwhGv^^k##-pk(fGOOG;Km=D|6wN#O7E!dAHktI3M%oAB zBBV_SBLn=BPawcVJWvf&O`1-3I1Dhdm`!SGKu}k%`f0i zqY#rkT{T)+8~Ez`ok;&Y1egR#dtu$Y&)H*HZC&RLbH*wNi(G>PH{-xQyxwtVHZGm3 zEo2E$o$k|{*lL8?-E?9Otd$7pK?8AwB)81FyV z)^diiTh(3f?M$sUq(|@f!m62;fa3l7;C(kH=&1qux=(B8cIl|U&ps6n=PCdnO-8d@ z!%f~$AU|*D?3UICN19selNg==(VExAig1*X*4LI(8Uq;?=Ek@iWQ*2*OwYa6;l5S1 zuCs_xnLDKomfQf(QVJ{qJ_c#n{A3wx~DeYV||pjNx*H94&}D`2QES(}}SVxzhZ zk^RybJ=+8_%o7>%_T9ha)cfh*{3U<>(?9-~{ORBRI9mMkfBkjm3N(O_ly{@_+QvN9 zjoRLHDLvL+kjEBg)itp5Fgk5Eq^XXIjvIcHAK`@5FfxrPMf&!Kx7S8tK5O9F+3JgA zS3rKLsSqkYr}_4n{CixN&|{>_uKlceAasN}u`23UC=uA~QPOMi0<~7OB|viw1ch8> zdoErwxaUmYWhNEB4Y9O)D`!M|EDx^?;au~6SV>AhN~ zyNq)luO!Ei!h?_V?{}i^y$(%U2~HQ`acoD!!R>>MAQ|8s(p;-Fn?)WleG=tDSRWW6OQ>;92U`tud9>eA)Yy zgw<2^^XH$_CB5YUuuymlD2wVMCt<_#mQ_8K!=CM32SuE*VwZiE!|sF6K`E|IzUc|? zLvEElH`PN`jDqvdvt(DFJnJ|p`ZQ~Kzq9VGBZAr-^4C5D|B+dm=*0P|cB=w_5fmcX zPB(yc$K@K{pGS-91!eo>x^j9s?5rJ$UFV-0>;3gSTD3~95X zq^5;%nC;lQ{OK;S#i=1wxoDd7vqmg>kE5*$983EXMWJ3{!r03uRq$rs4VO3~`-2&_ zy`>_|&2f1vDl)%n<^Be)Sc)s=DEDqZ#ZYfGc2T6$xt#2PyHsG)tl`#}3m9Q7HN&QJ z+kAu3I8$GXKl`S@oTJRc(Wr)FdMpkdlal1rTh`*dSH8RIQaI)YQGs*XGs{o%JP-2S z*fB{`Yw5UHh63_CC*{_9j(3E@&>7B&0Us`_UbLs)9(p{l>cr{0tfQgY+Z(=6(O!hm z<>%zUrYQ^L%K(6I4OkqR z6}~pnVZKF_Cz}TaTljr^Mo%9ZZG3+I2pGMloh@JWMOCFR9;Ge<#(TCvBrL|+ALhUr z>#nHfIYMcK6fkn~E^>BQ5e0}awPZrHcf$dF5=FS)(Ze(rp`*DKAG?B*|Id_ zpj0Mrl_+qhN`?6Py(ACdr|kRUur8uLGkgR8)OwFPm%;0HNP1lj8_Zae@OfWx5k0Rq z`t1a?7v%=zOKZBn8-bmx5RAQ@W_y!2frMAEnvJgCN2bV00!%k*r^yZHu>UMTo^}Bh{4sf%A7Kr~f zu^DINq#>VdKGb(e-lXkWh;7^beE#Winf;8?SZ(By#Cl)h@wP=XECu1Jj)WKp%383f z4nWqmUB{DB+U5};M^9-&F13$c#>B~Y6j3+QZ=)ju!C*DXs(ZgV+jI3fjgRKvb~n8_kH3gx z_zD$^U)ep{=ELt+4Z$ITTsbNHzohiJ^!(#Ki_qu$W2L*bwYJ=X?PokvY$}@4>O?37 z-5I+=C)d&;mR2~ghM%leU7Ui-4lT6cN1eT1K1Vu*-&M>y%L$z0ExRS8_-9wd!}lr_sEWsdDHw0DUII+zfUNMetVx45iS@rV&z!bdHZG)atT;9lR**f zAXF7_bc1>{cGcNy99I9b#{52)&iUi4TkjpqdH9el82z{uCHf9o8D2-ZXWrPQ-4+`F za5>#(;r=_MWm~%dha>6$Ov;EkhyZju)$WipQD~Oqyl2J*NW1L&`3C|=*KEvY`3g|W z>tWjkMdw6z@gQnr9011EL0U|aO;^O&Yf2p_nXv2@69*_|eQuq&H93cej_fC6`GNl> zHOt~`KF9iee_u$2JCA8RTq$6EV4d?aQL%p0JO#o-qJVQf z9i3Uw5MWTY0{fyb^m-gzwIa`WZsi>?!Bf67Pn&^Rl6AQwX1jMUkSP1a>OwoYUA+tO zJxk;Uu%68%_<_;8bxzEql1Z1tn3MdyOpixDs2<;5(B8g}eJb+{jok zX6EXbJ>A$7?-oEYeCvQ;fOmOcOHR*nHY3~f?o$UST(9lYSuIiTJRBk{GIT8)8?B^5 zE5s`@1}+U|7H#w@x{ulS^P6i2FoO|XD?bKRlMw5+!)H^ZKRz z1;y7xD3(g;X^yKDOb;=1YK)!X!b8~bEF5#Q^$?cg`=DYPqpC#d88KBZfF{}CXh`I* zKz5poS@-vFTC^&F+=89b$h#t3dL6L4N-I08^YSVbrhZ(>S`Ypf*Kr=2NZl@Zuz^+z zqT1E&jpMS&7HPDq+IZUqFQvgb8>M;W6!`i3TZdJ#F(!p_w4^`y^vBKL6J79)4#Bko zh@kb^1w^fa1v8$TH)d7MQ6tWv^b($F6Qq67Dpa<80H@M5d0LdRHzJnR>iGQg_Y*~8 zfmFu60OuUYam|njtizn zA0&7}E^u&r08QNENRz9y#r1g1K31JF4Et|VU>cBXO2}`}Ttk53SVoA=mDUC_#d(ze zD+<+|*gp`bkh3crhw_BTErO`G8YiOSFlv;#o;-vOAo2hzI*&+!tVV7QITSh&*HZo9 z^8I}Nzg01%9%E{=FQ$f7t}Nt9h7Wu*JS=tCtz)xR1h5pWP>gB#ZR7>;oXrcaxh}{> zdS;=+q#XA56pRWYtOCx=NKPNLc(i?f{=;;4c6CjAb`Isko)sm$g&b;wDPFj=48}ek z4P&-MsG)0{#gaMq-HZ6^4+AdzL*>G>$7G(DK=4>U|U9U`xa#9<}P^KIeZwH9LIu0eXR|Ox|x;d7s>`6(bRLNOlm(j{z6bR*1hE^Kuq2}O`rh>s6 zzd>YiR9kKCSXqybQCsPKx6Tev4!a}JWZ>N>1ZT~B(H={YUYmG-RrTK$CKvY<1khT_RJECQ< zTBWNp%!Ft2Z{RGc1f2=&tR1C0z%-;PbDPWnYC3)7$_0OKWK1+{*b7QP8>{;QR$>Rh z7#PZZosFM;Sc3MT8R{UISY6yK%BmzzE5k|be{VkG;GiUvk`73UN4%*Css)l+C}~^4 zVC{Qy)>#=1m%~l9UD2xesr#)mKn@1Vt!H7SHPNsSGF^4Jq~4)^6344S@{S!Fu@Dc| z8BS@+E{QbdjwW5YE$#ljTvqu~ZF|$a=|`E*z(<$c?;L>lumbF?yAp=RCJab2M3axZ zJa(_wyyb98)wNeHt~Lkg)U*4J-q4lgLb`hSv6J<_t459Qxwvuwh6Cxr9aH=ms=``S zN}&bjdt6@~)oT@U&WvZvM48lkgM(Bq@2++3m}gb(aq7@!@f8?kQO3(Re`oY{k#{ks;fUjaA_>mry8O7H_Iw94DQg z!>TFX#?_Fdb@6@?bKMJHZ8Z3nouc6V{Qafcxd^Q>s&V!sEjT(q5$)1`$9@yDOI7a3 zl|jGv%2Q}x9i6Yu!#rgbuLD^DZa&2KB1!gDt{tlDG}p~&#>&LQeZoj|Ou zBBrgIXS&i0N2B`8`bs9-s$j=>x$vFlwM$usjEpq2ZUD+W7key^-N)g)c_<&Q^j&r? zWLb-lD>nuFu=Cj1@MdA~2Xy5T6O#DAgizK#N5~Sl+iW$^HuPHhy|GVvy@42$E$`*$wxf`e#`mw0BBBK0MbTDEPh zQn8?VFjfO}H#WFBU-N_z8*Z|z9=u_;h>bExf*MM2OVGyRkFizwoV8jY&qal48PTu)Y*9o0&H@C`d-eOJ1P0f zdE}Y3hRj`w*dW=;3E@{Hhyxfo|AVy*hZ@Am!W>lu8 zcaO$UF97X*Lvyq+v3*`qkQ}=DA%PX@^!!VstQQ1^E{65IT*9CUY?!)0q##<6`YOv=5A&OgqU8zZfMsD_>{7%siS8+fx=cwmCOUict-+ zZ#m0J3mkZ-+hRi^oS;uSP71vj2K~NyZd=bgljXbfID(-6k)f~^_QDg?w@$^JqSgjF z(XvY8VqW(P{6LLn3o$wLvCGw3MiU1(xS)R?24DBu$etOV&AJUG={T3z&11v1r+j~Y z76nzPWw8c&lVoqusi3%(hTpNvI-nE^=<`}i8dLMfY0Tpl*ZP`UT6>p-ew)ATeGhES zvI!@*Q|@h2uHdq0BfNF9;Ew(M{Dy0bvTRoFuTN~ZLq?Y7*)jvl>T2PkL8aer_Acn7 z8T)5%+cmophkFk(0h$*4h|}eX%?VaptWkA>M{frY<30^$-{&A3-N#~{Z9vafL+{N223&Zzrt@TLZ#^^fykrx#&&f&k+_mxU zG!2IDW0UcuQ$@=vyQ2@JTnvnuQ98x{j=5QpBjQFQaru3IWlzqDfVM3pUU@rqf9h9=?LW+cm&?v?YGTCESQ2^SY?PlgRy$w_u{gumb13idT&o+?(D4E zp1(n_HluY@>2{+LC-lg?G8Od3o`&s%a^}%N%kVNlzIGp`BM~!Px3Ok7r=4wT6+q*i z1m-EKpXNkZ{CHOLm_ov)7-FMf8U8&#z|`t&_RL=2blH(cjQw&!a)bzBuU;CL0VX>J zBaT#G1}+P|4CnGiC3Lyfr6Xv%&*wT6#b? z<`TnN_nxO+wB)q_uWAOpv?8N$qz;+(7L#C-P_N(G=Q@Y|*`|ce8o1in4!xwiN?Qsq zjI^bnK`yP_@A(Z`mZKrJPP^hN)*>OSL9;I3XErr(EpceCa{wbvn z(Tzi$V9uh_G~?4{!rFVD94s?#u=uK2)>W=Y+7me6Xja`hOX7 zp{N2;1$6FG$-4{29@C-UVE;JVf>U}H@pf&4W-C}1jBs5md>IXr=G}A=M3sEbrtaRP z!G|fMFVIagj}^EVdgYMUjY}`I`ok%<%we(O^fIWV((M1~&gZv|wlRn0GNiY|v$CCZ{X&@Us$8*`5mt6x4rqU600wz=`pSzE-Uii9XY|AZ=gN zYrk^|3hJy9&M|E&t?*mQTJ5a5JWFrhPv5|{?lE-P(>mMS-8WxDkyv%Ac) z|I?rUoPW*y%TNE)Km6_=fA7CL|LN!7{nx+vyFdOZ@^|MSfB%1D2>tYTfBw_YfBpR* zfBq}%+keMD^*{gffBT0&@Q?n#9>rmGHWo9fFjj3(Kz^xv`%rGB^@y~+7icKnV*1dH zBiC$^4T3g}k2{jxBhtlZT_$S{7-)W`5*rGfBc{S^8fh1^M?X2A>b95P9vCHm%K8^RGYb^ZJg)V zZ344_J<(Pr^^a`bUdvi%wT-=r-s4zpR2^iZVKCi67{8u(%CYZThn}pxvlmx}-{VIh z4CUKpvne^9L_43Q0X}Ur`le6T@%eU!ULOas_d6r|2M`UO6ia6((!vPTJ&x{lR5Q&m zb!Ytn*k$~KXGb`}2exDV`T7)4d}y!7t5?3_{$Ce3{)6CVSI zMNN|>&!<5l9tK0;U2;gxkL&B<=hdp8Uq6=-z$Ka7bxoS!K1FQzcgJvJ?s&SkVpYJv zJ8HeA2p;eFrZFh3d2TO#-1}?}gqcWai;&=`xGd(*i^aT0%>xeT7%Khw?~e5AFI$_< zL%;?K>pi`Oj>u3vwsqHvx|8!PrgUNO!l^`QKrt`hyyx3~3=aopSz=aXQ=#@zcRzG( zkS1`n8%RI{S$ALk=imQ!?5?Dz1wc`lCAwjbgs*=*(@fGCaayNS1bf2!RD1f`0&P+X zpQVu3z(4ETG|j}Lca4)h#&R(63chB%yjfc)zaRP?#8}s zp*5ccKfn+u|y4`Qk=78Oqb2tov4Hq5JekzGqv^e*gKGQtkn>V{r>^ zIkn@UG9BPiE)J#ZlUtwI8Us{jVV9h8zZigh{7Xqu1|9w0^jT7td)+f0h{_Q@RUesE zZC7VBZB}d#RH--chE_;7PIUjkY{C~0-ASM6aW2Mi-KL})Y(w5V zEE0>)Nw9@%0|11*?1Y-~7_H+@c%xsJwfrqvzt?w{1?rW4!AGo|ZaSR9G@8U5X z@ueTf06DsK#{Cjdhck^DXD@cJi}J(Cb*c?p_@R$1d&6?nwnf)te=fQw;BN8Q0eZTG zBj-u6#-4F_VkvkrtJdj`n3R^*$d{SLaBvl^@pH z)&Z>Lx-ua#USxe$6gY&&J?ZfCnt4%QxOVTVGO^?L>a^3(&(DA9+Q!s=+jfrhxTLZMIS6k948y1qn(1B{ei0$N0!7na7mZN1!U zw0B1NPR>KUSV+9xefO$u^QCfKTkaRFP5U$4DjR%H%}G|UHd>KoI~D>-2m)%uuE-pF zy;&(Dr&Zjsbt-nc?R!6WYnKm==ytlg)mw8DPg#SuA1>dn^+xnHUp)4RJjeFWPVeMe5hg~jxN$;a2(d{UkKjj&M`Ca6+zeU_HrL z`<;9-vLM7DRC>s&8M{G(-hAvFM|?Z}o}q+Ci7^ut!U7%t^ZWPI&SkIcyvhoC)VDaD z3`BYN-MX*YQ~Vd})rcMix<`Zo>WK6gl76nL3=0tMcF_JK{lA{^dXFWgzkpY zuyN@d7aW01>_YJB8n+f`wfl9L@)$s}$<@{&(HGih(BU*Or9p->&$Ga+|E=-;U;cIe z_21;b&wuiN&cFPRe~>-@uYZE$>R;tw?|*ptZ}Q*&<$w5>|Nnpb2h5ND%fIXS)lBo) z-j+Hgkn z9tSNog(JR1H+LX6Xg+sHXE{FXw#iEB0jeE?V@chah;4gP*duouFm#6}IUBARVAl+Z zY8#eSiFKuFce;Q-KRcZFvOE}{fT7;QP=X3Mp1ipTLy!W6Hz2)RUx;8YpM=^cFWxI! zljmrQcw@m)@1x-)<1D08A7Tz>J=lz%q4q6Y&=~1{MlTEnXMEaYMw%e)JD#ZrkUNnO zb)7~B1*iRO!y5;jxya$fv}^(;`i09Axf|zXn1AuXjsJ@R?;GNK<>Yk)$!5JVrfH7% z`|RV)D{BUX)?4SiJ@0FaXST2-r7yA+2#g(qHNC$iXrud$b{W+p>1}kAdfG8*2i-}h zfSZ>H$+bzq&I{u2z2~w9=|ouCJb%LK3714~SCVPUaSUbN5;!JkPn5#zyow?TFC&sdAz z{JhsX$4mftzejJLJ2-xy2zm}|%}1_@HlF8^w0FTNd|FY76M;wDu3HKkSWSz^B8-w1 z*}&y+?ewi}9%eZFNRQ6B0@KbSl3^#1sEl_0mh|%Ptu9sbChM^+McpFLY!XY~c-NUB zorvuq{ANV7)Wf>q zuKhIL^0r_*kprl6kFq9O502K)XZN5&o(u2LCfzxY9*pH;Z@y5*+{t3f!oCuiCs=}B zHz>KSk^Zhr?3Yz6CIN=#r+JA^4FG9CmcNa9)je^NGV9$BqpC1Fs|h9W=jV@{e(%?? zO5R6@P<{WDCf%oY8z4$+pnCNEdOJ;JAob{bwgz2xb^?OE1kI7X*{fL6AMw&?t+eOm zbh)mz5BWR3^sxgd`Mvs#bK-n`)C6kR+t4A6_%`;Zt=4xK5tR^?K^tSm=*Y-=5<0HQ zLv($I)~}&AS7hJ4g92s@$6z+v-Z!G3veKHG>x%1wZu#@?pKny(s_Zu6drrhP5XsVn zJ-vX9|=OY`?YyPnp)^4aR71%~5FN2~81967Zu<-tX00gw3&6TnHY} zEvAk|Ze_JeCq?&LS*Q&85k5&&2V&haD5!&HGjBY>vM4??E`UbVf{X0i1M&{Ro1=2y zgp8yx?Xg7F{{8&PF$Fs5`Zlx2PUG?XlGh{0AqxG|`nZcvv&I8UlP#66b{!+iIPYF| zL-C2!%e@cC^yZ&c$Cu2#=DM2}O*=ET4y~@F?0%14ew-i1r{f6TA@*f=VR_o+j}Z<~ zcjyc1cdyxVoP1}{1bz3S%=5#k)TGf+?9$Ksd^b-Pu-UU)G-IR0O5>{0uHJxE8BPCu zemK6g$v|ru+CTT!L9-%l$_Y-vb8cIb*zob>0-P@M0WZ$33BX1sWU+#59XCk)F zfX3PD$A#x!HF%-^QKp>L9*eKdzospTjL?Kb$|xq*%|w7ojv%v=5(NK z-h<#^8<&+P`4exMGvrB84o7WL-0jmJY|jPH^G}%FpO_ejjHUuz!u6?~4qYh0)#KTLMAw_D5C+`G@PJRI&z{gpbfX zYA+5KSgz>g!o7*xwEOBapxZ9_#_9heG zBavb48jX6g^C$=xDcId>tGM0QS~W10l>Hc^_)s7=D`k;!>yN6+LuiB?ArWT)OQc)2 zk))N*vwna6)Vr;TbR}hLX04FJP?wL^SKIQH_l(xkz{q&d5JO4`g!0-;3lBX(+I2op zxdpJCzo{_go_Piw2grR3_|P>-z&kQA|Ni{`I!@1rkSdR6mk%ndOL=hiJ6_K5K67$i9M+IwAgiWLNK31Oc( z_qmM;7!@y{N*-+SK(pVgp8=klDyr{jUY|SZWDd`~wz_#-emV%QioVbq@dIj*#AHX9 zxG^5>M$?1#BqAoif-b2Ms=a-;F-*r^^V|g*hVjJU{oQ_ke!f1j1aC)me_&HCWoyP9 zycu&#BKJMfP03^UT)xc7X!h~}Qf*nbfHsud0HLkbnX@=ds#UvVD=OuA%L~pI)yk;t zuZ#VB{uvT86nfOUf`y933`r+0NS$oD$Tu0R`moHP=6JC^nfR(?#rH^Rp1FtbH5FMy zwY?aD?tQdnP{3O9-9ib)W#TunnfrJ2*UiB&-uLEzZ{*zbk1!s$@fOM zth@4H_e6HiOJr5wt<^w|&>{O5)b-Or3Z1o^y+Qr_{*F#Opt{2N8c#(~j>p!e&(R-O zj#Z*}!?Rv{i{5vT*fOfp!Ps$C@61V)SHiA1O4yCze^`I~5$HY5)n?G(1K{~|={j!o z8GnBN@-Eus9wG4EpmaLa-n*Yhe3~886KXH!!*vJcOB_JwYV=g!=`*|NTdhBseo}iA z_NCU^!4u6$f$p})= z?M*T!nZeOs_T;KSzuyo&$lF0=Z^pf*3hzUWFz|dW5N(2kQIXs@Eq>2l3{LoVPHz~t zL`bDMbBEP$Z>63vux|8wpY6uF!fC}w#?bjXHnGZK_VH@E?U84aR*kdXqtsp#--Em% zyNlb|%|=%IF(LaC&_NRm2MejN8!w3B3kR`LxC$VSm)!lhmCayO67#&n!zbQbz0BqE zB_gI7yD3jHrbx$n)BO#*pc|5ESR?fIX}rH@!Px%2dh4-mG9g%yq^_fViCINq1&2J{ zxIN{fxjb-1V*-8H%mA$-CP+bep+NRA`ox>s*Yfdj;Z(a5)q|d4)%JPOT6}kT=MVii zzQ2F@um7jN{=@&~|L))Z<-a3a@Spz8-(AZ2=3|G*0PKQ#qc!Ku7Tm&VANX1j+s^1` zF+#yf${)F^d<3ER^VY2Z0Y@c`q8oZ5e&@Hd=t#3cQntuWY9w4lGT}l*!S%` zfjg+H07*vp)}tjz(w`4@_nzMBoHfc5rLe8@lrs(!-NJ0P&wZ6_J#_WP`-vR0hTr#? zj|L6cG$x>B-?QK-UbtejsjWt>!K~}_PAy|xSXT&D+dRK_x{n-pv`AJ7hA7 z47i39Z{~vGUzRVXcMY4M;P({Vr@uQ9wDKkU$d1XW%?o)u;Yr2SVXvqUo;z546F`9T zSDr97KXY)xhQGRwJ)c2bbLsBqP(ZhKaHR z#G}y#Dl>U@#Ch;QKgu0Z$HR2wotWb-P=>%eb3*}GVT!8+iZA~YWVhZrm>71~cJ7B5?U2vVQ+J@vJFVlB@wCy0aK6F@5+BB@ z!^_aSHZ6M#{sYHe44;IuM%wQOBVcv(U_r{#Zsm8WN|;n!Z=;xAp4Q{_-B*2>hS__M zx~GOfSD=&HqE8%L#If(B^eq$_@!l-(z%UbxE(;qnXjBRG;P;C$D=YH)`m`k7#U?@r#u z1T-Vg9tkGuO>-F^=y_Up(d zCZJUYb8{ERfDR{O^WemJ*$*XAHuR$B%=h2BfGXqun1HO z??2%Ar~II3so}i6>}*Ye3U5lbRZWsITpu6$lvpT0y09jj9!@;8p(K68!@yH*++ z%^Uc-@(xlIxzzU9<`1r$xpg^I1p9a=FXdzrZf^s6#_y%T))%Q+7H}LT(4Ez*HzyD_ zfW&;$l)vr=Su;wpu{8`D^wxKycnQ4|wI_RER9KAtvsO*cc4t?PEgC{WBeA~ce2A8D=Xh4R@(zH6a!>^*70cJhdPf0R-3idnq}j2 zGcMY&2)(y`aV&Ka!mo{5Lp5D5f_+UK)wjLV)48_hI14yhy}lbyu%8Euhr3?g`ov$( z9&(E7DDt=pnic~Xi0SCrA<~@W4E?6q1sz2G6^L6ej?5qL$!h{K{Nt1VR^dO7jT7*q zIhtI+5r>TSdoY(v`f0PCD?8%uu5LL$Yw$XsxtJX1Xg98zt6o{$8LM>?ZsG+u^bxh3 z!@Vow#cZ8b&j53bgd$)>y2~Xo&K$Ds2TT9Gp9e#_C&<%vM4lw?ul}A$F;C1)d5CSA zk8Z$C&@?75A`aOJXCO!WMC(#QD^ssCsV-pwT=70}PmJnxfg8Vzv%i_#=yS|JA=tOp z>;1;X!BDe{g6ZZ)Kleg;IcDb+%9=>~85p2_&2EHsn-RI;Kh2$>2fSp zHJoYm&^hPFtQ0vo!8h1$uEl@ctEvRH(J%n~6C<1+1to_CYkjKc4h+v7cfz25^zy!I zi)^*)BXzm&&*x{#0I(5787Eo?@VM@=On5gPDFtkSZ5>$u+5Dmx0t&}k%Y_{YDNn3y zb$7qx=$x2N+TKIgI%D;2dZsqynts7LP}9tb=lSRNuV1VT0DkaYH=sDZYs?iW`@n{ytO=u@75-d}7IN2JN-skR4_I}5mlDh(h$gI_7KYQ%WgKGYPxLkii zF(wyWjpL*8Kt#VtJJyU1ipM((0}&#KLyQhgByOK_V~0ER z>AOiqgD?(hpX56}-@~1?;U!wE{i;5)#h6dPa1i%9?@byIjh*_>pZ|^4i3;?_$JVwT z{(`q0W`#QxQo50NuqtoOU-6x~FMZ^mLXE3EZuv0}(WHm4l{o&%MDBR2o3x_2y; zP+LYrXU)p>=g&W3)58EosU5Fba31X;As6)-1UGt&WQEa^?Mhv5lbhC1f#!2KhLR#8 zOn(i|I>X3yJH_f{fr`uDm!;9;U(558MS1?dSUq(|9DP@GH!~uMcdrL(=nJ%wA{bds z&jP79Iv`YtR2qvWjjG(teWxmH^ZROx?i+eeaGS0vub{rB6_t1)t6(9Ej_S>ypP!vF zPL1t>a)PU$!RNa{#%3a~?=MNf7xRd|$SN^VpITSKi&K!Z(j#?sST41?yfN~#6%85N zWHP~$=^bb(y&DjR{Y;mi&p!!QWv@kZ9WLkiZUC`zY~Jt%oe-2IRD(>rXEM6XRe(zd z^r6ibQkESkG(3%gmmHHy;V-43C?lk`dB;pGr~c-fk*@#Fqz$(2GS^i&Uo0Ei3X#Uz z7Dx42vpL96XbAoE>??aStf-?l&znI$fD!f)Ac|m6&Z*6QZO>x%lXb>EyJj{UpN#mT zh>&}Ke}7p+J=<5lVfG-6xJv>_-;V?n7w;g0l?uhUE~*tG_7FcTH6A^TJ5FVs;3SIO z^IPZ{T@r23yTl>ok{o4!2*}sJk%cld%-#3ERVGky}G`bTvezu z4A%^gr^ZZu&jX|f2B903>tkc<=BiVBJ0G6KZ}+~nL0R%KobArA$q1w5jw$VSk9el7 zIy@;m>(R%h=(pPVJ(!4M%Xg%mF_t;f_hSI7p-s%f1Sn6F%ixlQp{TJYotHwPeR&TM zU3q6-8S5_DN-}x3NlQ-F8P0v3xoABhyFW04kCV4w|9yXysImCn_Eqh5l4zWwnELb13|RE-lg8Ie(H%$(l) zJ=i@-c6{p=2-mX*l@XXD_dv74)Iclhj=dj@2h@czvnxQ^{uXX*8F7fUoHYfncy;wT z`f9evU4GV%JLUvJc57!{2N>?u{oZ9 zRAv}q+vn_$&#v$>M_^O*-6#HGmUww5LGR~X=cXyv+6$^+WI*P1vC+<^zdUXiF&~Y; z4(Y`Uj%e%BKJ#}bHmBtGmWP^*epjzErmGJY0zlp*8Hu320k3k+$oa8`Spv|=<}-mx zv#l9;VwN_ z3>3FTV;k;FZDg1L>PBjF?c;6qJfv;`c$2u~IqGc7XbOBdoq2*a4b9@HZ;*RjBocj*Ss0_wbMTk*V?LeZ&c@?M zYh?qo_|^KS5xp6j0j}`0FY1u*pwY%*azEHGvKEIR3hA3vXFONxBJa5muj`GcIJLHY(6IbsH`HMZ{|cpD943B zN#h)AFP`75X(Tq%*rpnbOxsiBd+8i-`F{cwP^TjaO_l9$w&xl5o7SG1rx>C$KwsF! z9CHAD)wp@@&c_o4?qnmwu_!}ydNHlXTDQQiUge{QPk?VRWZP`I$VUjdi{JAbxUd0x zBfJ}Qbs=v6?imAh+m_@&hn$5?5tE_avfSKolg_;!%$j%cu|$K8u@=j&xleVcrM?bh zmMH0Et(S1?-+tcM`)|B||MFk{$N%_`?=S!Q4`vPj`tM7Wy`IVavCVfI0mN8ZHj9 z=kDiE6oqnGnS$@O6{nS$!Pa42zk90X2Dlq6#fT!S9+;nW{`f@4g0q~{G zz?NwCicbLbiIyhzJ?_h#(n!2x3rTM#IR_Z9jj{-43~ku4k^@GZ-xCq@hNVzTn&ddn z8z?{oA7d-UAxk8+-77Jz){KH)^Eg){v!1VcuJ>Yo>_D5NHB5|hQGxK^EPM6irm0Xb zYSTCK{AOO^{pS-YCfC5=x47{k6ysj`er$Ydx;xgDD1LBRA3op9DD@AkeNWP}TKi+dkUlsHMIx6xB=fsX6qO&{ z&az#KGKvJ04Cn(?6G<0wzu!?KIOIqPGfrvua<`;6xhIXzI|fGYX5~;sKsSp@9-9+x zDXoIZUE(aTo%fL!OJ|D2BPyb4;F`@>ZD4vpIeEO;SvCe={(IGMSZ+!z3TkQ(E-2OJ zKr?Z$iPag+$$8s;l+u`vT`r8#<8-Wh8AboI2`di6wT!w0SmQY-fth< zrOBnVv1g~w*7tjy*Uf}OiNG(e}ZNKBaT?> z_vggodSKJIOgWtyqwT# znAOK_P7>`|@?}t#T^J(p;aO>ec@P<)&RUmS)tycz^4xnL;_|j;T{vH$-U*-3|F4gk zu0kx``|b#po@N{Kem2XN)$+}^{pTCOCpLLp%R0|~uDC3aVE=6LNiiq3=`(~yLAr|P zTnG_Y(!^@7xJqUyThS=;-nV*7NBPuI(-(YyC?9`zC?sNZdi>-)#^EwFR%{K4`Je<*JD zL7@4*1GP4}^Y=uqN8{=IlH5S!H=PSJA!emHI{WVCb6Au9Hf2*8uXTyHZ(HnHWXf*C zD)5ZYwK3?CorlaeK^MMv$48~76-Tu35jf@vv3}pkR0DL{pbP3F$6&>3^by(lRHc`# zUSUZ?Z@ZM_@a~wUkdK^=`h2gbP1UULZD6Wa41&1pT--KA3u{WvApeL+V6JXReBTHiXK1EV{P`g{XhA46HZK8|2XVhyotFq>+r{Fz4P)UEqs^68+QQY& z=Xk~#Zt74}Jd9t5Es5MF@wXE7fBAp@_5bVt=HKK${lowC*Y_XpU;f{JT#f&;fB1J7 zuZRZk)p@83v9XAja*44xsGv27Mh`)=C$9uRS(|gFp^Af7>o_9}0!VoB|Y%_M`AP{dpuIwgtk5%Mg-}(V?|@Nby;8Z^_qe3 zW=(&lBv{_Ad+T<+`?R^4qV~CtIk^B9f1S0^&)3WgP((imG(YX(F~s@wgX5lTl{g}t_ zcAZ(EV^jFC=DwegTNb1td9TRd8ns{uC6CwjeeS`1Mhk2$*NHziJ_yiWMD)>qUwkl$0A6s%vEfSKwS$Yj9UI5qZ`X+7eHfv$e7qXi{2lLi zSLfSaUo`98=mT+#B>z#VPOiE&OITxWB%7fV&b4!M^hPKB^Wb-)DZ^_b;qzEX##?>H znc;5^Zuau<4|Ey$oru+cG3k6L<38Y=QqgONgoPKf>dsF(_Sj>*IO=_4Zu-QwBj~r*3b;8%a?fs@(_fV<48rxWAnAR3UFI4g@|Z|ymraU>xDDG& zr}i=Kk^y+MSsRjW{(|oiH<6h&#-_0x_4Arz)C3chbh{?Cw>9&uR$sMxwGFmr8LBnL zCWc~hAphe}6HJYC_Fj9=y@e#~a&eeimBng_?k=e(!=Ca+GNK1iy7S7~^G~puX+v;I zO`w}+WAFHmPUzT;e_FBa6(g=&d{XGe1!KEr{iqNnPMO>K_$v4PCNBiLOtqd>qdXTl zlqdax@{3jPaONBNH-k5S`EUOBfB5VD|Kz{(zx;Q9+z|fd-~XLRhQ3#q*dr`QPc?>Y zV=8Iko0sEfe2jD^_X+U`YC^WL@rVh-v6<9!P!5~PDS1=G6< zS zXAfn0u+DPYZpFWza`F=I0G7(#u)uFMGcwLr)Ez!P7MZ?dg>HF$8^wwO>JFA=;v@6@3 zwq)Hq=e4%dtXWeuKdR^Fo8_kLs6(@coPE$;?*8T_S0k53*rp@I+Gwu^DI%Hb<&(^+ z)0(138O7qTbLH=J<=d1bkVByZ10thfrJ`OGSA-gZi;4aTp0l{<*(o`8?VU;w$>F>1 zq>y!1=xHYqYdk1ZaqzAk`%>wxHiz;#s7$m*z@o9+{%mrme*v7lF&f#Thf{)Fua98& zFOOK&-*__p7yta%|CNW*`^Ufj^QYtfcYpV|LgXmK#6gn&SWf(uPzQZeh@tIF&z0~y zE#%s?q4?uMdrGdO`DNy;Z>AZGlvlpat*t}xZ8(XquPl|eZl^cfCsN@NQ~o9ZC;uA% z@gM)~`^$g(hg|3TH~+sa4)QAR%~MjhftNTA1(YID_N$&hvOpZ!#}e zKr?*E?1wf&*p&e7JM)y!Jd{q~WO8|$Do6S*=VjPPIZw3slu!1SGT7bZ_n1v|_Gou8PH;ew zG9R5`X;?E<8R?wf{pVM_j#IAv?SRpVBv7X{_R1I5@g-<6>xK6APBv|uQFiP4)m`P? zvf1~blr+{}P#-aU!S@+u>wF5zmzPrAO9P12G>L>3!-79S*gIq!g!~PTe45~zqBTQV z#~v=qZgt5uwri+i@HtO**05A<4}zvMpMf&J%Xh?{7i0)-qeIuf?HE(0%{%U*=f02f z6s$i18cy-PwU!$S&e7>}mp+n=$=clGaB;ok+|}*`o+rpx{i5i$HYIGGk4Sm9A4cAz z2JMT+df*O1HZHqyFp*=2KZQ>-_PhG~6_sN-ljAXL8qn49$Fx^%EHD*!AIlqYg7Mzy zWq5SHp%~ot5lk`PEs3$#hdd}+?BAq&yMQuTeBs$W&I*~Nu&AJe&#C@%x7v@C`(?n? z$IcxRlm6#f`I_C{*}8cLxN$KvI_Ew~&l(O)&9PPQG=%S`Q^T7`w{id|y>`yLrwG(! z`5PlSFSk#RfG=+S{QR+;_j!8}Lnx~_A#sZ!aqy4`woh9$V|cj68``rr-lKD=242oi z>UTsvWiq^kYXq8}D;+PPRlCj(Atj0QAWhf&`S;I2o$yOc;REe`-$ymHe0NP2s*5|ah?Y1|_9ZGpc#QIiudES{b7N+*H zV5;AN!I=CJd;WbzGNCoCn2!B;YS_zL=kB*B=#qR0*JlSRk<#8(;vwCsMz;Y)zP}-~ z*Umd*Zji%xtFZ{+0)Cs&%kt5gqshb#qbas(;&uaUAFL0Yi?CE#u z+U>E#Nt~Q zq11g0iG6ObfnuI+Y^f1KSj$kE^#$)zR|=El2DTbfOFQGZg>xf+glmQ>tZ^G~Z^4PE zn$Gvdo$l}5t_kk-&JBU<+4Ik=L(KG#qy^exc1v3ycv*gbm$!t!x}2lMk$Mnp?7~MJ z>q6J@O`3#N?##W}E4Nlv$%ZR+l7Jie-tS2ay_+-pu6F@Jw!AZnvR3akK1|YSg_E<7 z)z0bX14b6<@X!rv(bCiu!=iWkHw-J*%8#+(?_Gx0O70e7sIHrpXcGOtihMrL#Y=YfM2# z8`^$;e`UL;vtQeWx&UpB^=-7=ri^~D4Ja)G~-+vhyy}_MG;UIJTnLCMB(MoT-TGho;lTcZf zcjcS`z;(+o%+U)b@a~C@|2_ftAe9_Md-~)m~ zf~g4umkp3>XR;_t`?@y!%3i#Ob(`(`EgjEngo)4k`TVeAZ9UNN?%;UbF)%$wz~}N_ zKFI>^ARrW>bZtg4!6%8R9gxA(*QFl*hq#ARsVP!#A`Kv#Y}451@9fYz@w$U^ER(qV zI~%sOdvbya9}Z7C-ZWy=JMRN~c|DkqoKbpfvOU!EwgGTa8|-A5_OA6N>{{3TTAcl` zC)LNlM8wjpGopN-mul?sUUQUO_4Dt)lWc1DBZqa}N;Hcm#6EBHu)e$t=G<$rbZ%(j z&an2;Ik97bitVMrk>UE(9ehP%QXNU0kIS7?hRLX>wRBJNeh2#diQlE03#!{|DU*0rF3Ha7=c+b(AeJy7pvdk3Vx0xy$2 zSXJNH%uREXA|8L^ru?5;g#WKUb`Jl*?EU{{pRk~1Owa=mNoo4^JX(9-# zo4udy4a6)Z%>#M!)J-uX8mzV3B15_d=7VX>nugx2JbO@tuDRVwwc_!e?CPi zGjZlW`B=^IRhlck5ABA5Yx;Pz@Dx0XBIm4JT=Jx;?ytOLg*q5;{-AH}ryZ;nIyPn1 zq}uj{6zK`QV7)cD&v}#kJKFB2Vst!vD4s_B&Q$%gKP*P#?RYuqjh}B3GT#i48YtLnUrwsM z(pH-k7x~oFxzY{kh_QgoYTypJA9d)IyLW!9Z=w{>rzsz?H%9DDUeRenU#7)%P>0FK z7F zIGv|Bk8f0|Q+?VV_{L~?AF;4?DUO$CP z%g8xC5~mtkfZ01!&=p9-#;fZ40%^dd<8z%Pho<2;-+f-59YYMSF z%`GTY{Y0nvwoYxwtZWo49Y?jVPxEU?9o?sTkayBj?>{$8dOV7Bg$$E4V@2+)sI&0K zExHgFxp!Vl1IqgGw zMEE1Gc(?9&?;v8IooIKBd(e5}NBQ}QTImB%B}Uh=gL?$=$WI_|N|S}KHG8~3*fn&W z%0>M1`Z$SvUN$d$s&c`m7@g`oq923@;ESxi;H_sl6`5v&$Y?c8gFo-pq<<0N2OWA@ zP_v@fHDr%J01v1eN@L99l0tKJZe4FD&F06}$~INEY!J2@Hm|k)Hu37(`fTk+j@j(i ziV6{L>y#?sjP`rOkZa1jqx)T*fK(8ORV0$&aE&$7sHQf(!1@%C9x6u|9N=e_I;F-Dmuc|xF@NvQ~8P^u1UdIW1QqMOVw^I|UjiV`xwa5Lv z;ST}S(c_)>fY7x=KX+LBPF7_p_&ciOAy+bk119b!;}@Z+a^x_D*iB3}cvGxVf{h z8GW2RM<1&LW#Tg6Pq~J2lud1{Axt>e}tp=qP2pbBfQr`u{+p$|H8)hFrzrScr zy;H;|PQKFHFTx#pz4CR+rij9PTDQ~tgw%=}z`?7B7(+`Yu~*L46tXSYJa^lj(UPR_ zbhcU6J@_1TuId}%YH!)|=ebw|(}Lhpbc+JnC)zll?%p7dDC@lWU@|ScJ|_ct&TRW0 zk?1%}Gy3TaE)X@=eq+l;>-cO_+vs=lx3_cIhKb+qkvj>sM*cq65FJ+YBcd628GPpQ zB04~n9XYt4Bbqv^q;(%3vjr>aJ|1r&o`@IOp;w55bGuFaw#6CNjsI_8^6*c*u6$05Ev)XK)pTcW}kT4Y(DaM zxgyu<#o9ng*W#@9a{3R-3q`P{_ftUy^mpd|{9<+45EObghQN7BaO$YcPo2dF9|122 z=zI19-P^b=j~-0F@4D1_&~=_t2#Jr9@Bl2`V_b;F-xJBQ_pTRh;%uuF3DD1km%de( z2RrI!FF0%tVo{JE$!(wA1f^cI@wo{ZQ1A2Pgxq#tB$hEQWTRphG6T|7fWLZ0V-S01 zpZCh*Tprq?zCxIm$LaLv^TS1TF>qb_&U=T9ZzZ+3)X0*X81Eke(>CW?wS&iO19 zy+1}`JvaSMYJs=Sm>q}~nYIZxOm>?=HgEc}{-ksl!i+;9?C0-q;|GIv1yzKV;ALFP z2+AtZtr+a0#%1;@le-73{T*_oLGqT~+Dyw^=@%ldGI6wv_Q!D*>gl z7H}j_JJLbHTAepx+@+3j)VIl7jV46=3Dr}?Dz7sm&E0LT&j5Zop8%$0eERf2P3&cT zm5&Q%!~>yQM3)jeic~TgZS``l4M#wfB*d8LW%i# z;cWmd8k`?MX}pg5PRGu#LKl3j=y9#29pTm%jQzIfv!(b)Xe;FsO-s9K1Ybdq9zUx= zFoC{lUluIlzGxIce?LE4&Q5EJGX6T7zkwFEbgVFShJ<*Az4b?;7}N-^O_Ew`!=^MD z4J|Ex9w4ZqV(0wv_04lBgehbCez)P88I;P7r9XfB{9c_!s)mv9pb5*E!t%1^@$~M) zd|63+y_F6lx?C^TY1j}SBMPlk8yB>WD!EQL^|}V8o?EKD9@|7@EmiMcd}>=~7^XP= zc_Mcj5vaW`r<&|}^<(11er-v$_s47g9vhu@_UNp2`j>^det^C=g&{|t&V1b6+ShRm zpC*w*+UoFkP`dk!N2m7xVC`&nbxo49DkQ5X7;J&K0M3L7Z6Y%=@~4L$d*EA$jEux3 zx2s!KZG&ZTH(V%Mxod({LX^LnSk*sPpR@P(y>Dj3^Q=Y9glI;IpK~UC`^_KyhadBY zZ~y6Q3$lIZ?|=LC@BL!3!c5!qaJ7#MsqdmRIpd@+VVl|N9kXAs2-2~g)8P+H>(jOk z_Mi!PDmB-ZwS)CSU2{^(l0Fw;a+G5OaUjj_%Uf9-j#P%Pct94CaXCV9_f_Q& z3wQT~v7QZRJ|2n+YPTIk6=L%_yMh$x)P5Ok&%6%qB*P`w&Z4dCmXDAuC;JlY!yre zTg-g1Osg7VupMackUKR)j!Bi*v-%w7?iK8{7CLRZ`zg%ZWLP_ziZLo;SATtaf~!UL z-Lp&wl3E&H0o^h3ey&93&|;+V32t4d>#!Pc>w+t!^K8wl^cWBMHiWkeb5Md^l7ja3Koee)RtBDXc)+t%uzwB0d-BlHF}$-_Fx#`#C(-Q9`O81UJOA$Im45=|w%0DU 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