App Function Services
packages/app-function-services/README.md
@repo/app-function-services
Servicios server-side reutilizables para Cloud Functions. Este package contiene casos de uso que requieren el Admin SDK; no debe importarse desde componentes o codigo ejecutado en el navegador.
Cuando usarlo
- Usar
@repo/app-servicespara servicios iniciados desde una app cliente. - Usar este package desde
functions/cuando la operacion necesita privilegios de Firebase Admin. - El acceso a Firebase pasa por
@repo/firebase-admin-adapter; no importar el SDK directamente. - Las rutas de Firestore se obtienen de
@repo/constants(FIRESTORE_PATHS).
API publica
Todos los exports salen de src/index.ts y se importan desde @repo/app-function-services.
Verification codes
createVerificationCode(input)valida concreateVerificationCodeSchemay crea el documento.getVerificationCodeByUidAndCode(uid, code)obtiene un codigo onull.getVerificationCodesByUidAndCode(uid, code, limit?)obtiene coincidencias.updateVerificationCodeUsedAt(uid, code, newCode)actualiza codigo e incrementa intentos.deleteVerificationCodesByUidAndCode(uid, code)elimina los codigos encontrados.
Invitations
Las funciones de invitaciones estan en src/invitations/invitations-service.ts y se reexportan
desde src/invitations/index.ts. createInvitation conserva estateId e invitationType cuando
la invitacion corresponde a un estate; la validacion de esos campos permanece en @repo/schemas.
Consultar ese archivo antes de agregar o documentar una nueva operacion.
Como agregar un servicio
- Crear un modulo dentro de
src/<dominio>/. - Validar entradas con un schema de
@repo/schemas. - Usar funciones de
@repo/firebase-admin-adapterpara persistencia. - Usar constantes de
@repo/constantspara rutas y nombres compartidos. - Reexportar desde el barrel del dominio y
src/index.ts. - Agregar tests Vitest junto al servicio.
Validacion
bash
pnpm lint --filter @repo/app-function-services
pnpm build --filter @repo/app-function-services
pnpm type-check --filter @repo/app-function-services
pnpm test:run --filter @repo/app-function-services