Repository navigation
Releases: rocket-lease/contracts
Releases · rocket-lease/contracts
Release list
0.4.0: Merge pull request #31 from rocket-lease/dev
feat(vehicle): add optional owner to GetVehicleResponse for US-20
v0.3.0
Merge pull request #30 from rocket-lease/dev Dev
v0.2.5
Merge pull request #24 from rocket-lease/dev fix: update package.json version
0.2.4
Merge pull request #23 from rocket-lease/dev fix: delete tests in workflow
v0.2.3
Merge pull request #22 from rocket-lease/dev fix: merge conflicts (again!)
v0.2.2
Merge pull request #20 from rocket-lease/dev fix: merge conflicts
v0.2.1
Dev (#19)
* feat(auth): add password reset schemas (US-03)
* feat: add schemas and types for user profile and vehicle management
* feat(us-21): add favorite schemas, recover missing auth/vehicle schemas
## Especificación funcional
### Nuevos schemas — Gestión de favoritos (US-21)
`src/schemas/favorite.schema.ts` define el contrato entre `api` y `web`
para el feature de favoritos del conductor:
- `AddFavoriteRequestSchema` — body del POST /favorites: { vehicleId: UUID }
- `AddFavoriteResponseSchema` — respuesta 201: { id, vehicleId, conductorId, createdAt (ISO) }
- `FavoriteItemSchema` — elemento individual en la lista: { id, vehicleId, createdAt }
- `ListFavoritesResponseSchema` — respuesta del GET /favorites: { items: FavoriteItem[] }
Todos los IDs son UUID v4 (z.string().uuid()). Las fechas son ISO 8601
(z.string().datetime()). Sigue las convenciones del paquete (money en cents,
fechas ISO, IDs UUID).
### Nuevos error codes
`src/errors/error-codes.ts` agrega dos códigos al enum:
- `FAVORITE_ALREADY_EXISTS` — el conductor ya tiene ese vehículo en favoritos (→ 409)
- `FAVORITE_NOT_FOUND` — se intenta eliminar un favorito que no existe (→ 404)
El `api` mapea estos códigos en su `DomainExceptionFilter`.
El `web` puede ramificar sobre ellos sin usar el HTTP status directamente.
### Recuperación de schemas pre-existentes
`src/auth/login.ts` y `src/auth/vehicle.ts` existían en `main` pero no
habían sido mergeados a `dev`. Al crear la rama `us-21` desde `dev`, estos
archivos no estaban presentes. Fueron recuperados del paquete publicado
v0.1.3 para mantener compatibilidad con el `api` (que importa
`CreateVehicleRequestSchema`, `LoginUserRequestSchema`, etc.).
Sin estos archivos, el `api` en rama `us-21` fallaba al importar schemas
que no encontraba en el contracts local (cuando se usa `pnpm link` para
desarrollo cross-repo sin publicar).
`src/index.ts` ahora exporta los 6 módulos: register, login, vehicle,
error-codes, problem-details, favorite.schema.
### Tests
`test/schemas/favorite.schema.test.ts` — 16 casos Vitest:
- parse con valores válidos para cada schema
- rechazo de UUID mal formado, datetime inválido, campos faltantes
- rechazo de vehicleId inválido dentro de un array (ListFavorites)
Ejecutar: `pnpm test` (requiere Node ≥ 22 y pnpm ≥ 11)
Resultado verificado: 24/24 tests pasan (8 pre-existentes + 16 nuevos)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: vehicle dtos
* feat: manage vehicle dtos (#13)
* feat: vehicle dtos
* fix: vehicle file and adding field in get response dto
* fix: manage vehicle dtos (#14)
* feat: vehicle dtos
* fix: manage vehicle dtos
* merge dev into us-21 and resolve conflicts
Agent-Logs-Url: https://github.com/rocket-lease/contracts/sessions/db5e165c-04f0-40a1-9b81-0f1e7ac44b98
Co-authored-by: echepereza <142249406+echepereza@users.noreply.github.com>
* fix: missing `isAccessible` field in create vehicle dto (#15)
* feat: vehicle dtos
* fix: manage vehicle dtos
* chore(us-21): remove dead auth/vehicle.ts recovered in previous commit
src/vehicle/vehicle.ts (from dev) supersedes the compatibility copy we
added in auth/vehicle.ts. The public index.ts already exports from
vehicle/vehicle, so auth/vehicle.ts was unreachable dead code.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore: drop misplaced auth/vehicle.ts (vehicle schemas live in their own module)
* Nuevos campos en publish y get vehicle
* fix: strict UpdateVehicleSchema
---------
Co-authored-by: Aizen Sanchez <127356367+AizenSanchez@users.noreply.github.com>
Co-authored-by: echepereza <epereza@fi.uba.ar>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: SantinoZucconi <santinozucconi@gmail.com>
Co-authored-by: Santino Zucconi <107319354+SantinoZucconi@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: echepereza <142249406+echepereza@users.noreply.github.com>
Co-authored-by: juanma <drjuanma2712@gmail.com>
v0.2.0
Merge pull request #17 from rocket-lease/feature/us3-password-reset-s…
v0.1.4
feat: Manage vehicle DTOs (#16) * feat: add schemas and types for user profile and vehicle management * feat: manage vehicle dtos (#13) * feat: vehicle dtos * fix: vehicle file and adding field in get response dto * fix: manage vehicle dtos (#14) * feat: vehicle dtos * fix: manage vehicle dtos * fix: missing `isAccessible` field in create vehicle dto (#15) * feat: vehicle dtos * fix: manage vehicle dtos --------- Co-authored-by: Aizen Sanchez <127356367+AizenSanchez@users.noreply.github.com>