@tmf/email-front (6.0.0)
Installation
@tmf:registry=npm install @tmf/email-front@6.0.0"@tmf/email-front": "6.0.0"About this package
@tmf/email-front
Módulo Email plug-and-play da plataforma TMF — caixa de e-mail pessoal do usuário autenticado (Microsoft Graph / Gmail).
Extraído do módulo de e-mail do
Hub(tmf-management). Distinto do@tmf/mailbox-front(inbound multicanal de mensageria WhatsApp/E-mail/SMS) — este pacote é o e-mail 1:1 do colaborador, com contrato (EmailApiClient) e backend próprios.
- Versão: 0.1.0
- Distribuição: registry npm privado (org TMF, Forgejo)
- Peer deps:
react,react-dom(>= 18) - Deps:
@tanstack/react-query,lucide-react
Instalação
npm install @tmf/email-front
Uso (plug-and-play)
import { EmailApp } from '@tmf/email-front'
<EmailApp baseUrl="/api/service/email" getToken={() => auth.token} />
⚠️
baseUrldeve ser/api/service/email— é o prefixo que otmf-email-backexpõe (S2S, espelha/api/service/mailbox). O Provider monta sozinho oEmailApiClient(fetch sobre${baseUrl}/messages) e umQueryClientinterno — o host não precisa prover<QueryClientProvider>.
Uso (modo avançado — client próprio)
import { EmailApp, type EmailApiClient } from '@tmf/email-front'
const client: EmailApiClient = {
listMessages: (params) => http.get('/api/service/email/messages', params),
}
<EmailApp client={client} />
Contrato de backend
O front é agnóstico de transporte. O backend próprio do módulo
(packages/email/back — SDK Python — e packages/email/back — serviço
FastAPI) implementa:
| Método | Endpoint | Retorno |
|---|---|---|
listMessages(params) |
GET /api/service/email/messages |
EmailListResponse |
F0 (scaffold): o contrato acima é a superfície mínima para o módulo compilar e montar ponta-a-ponta. O serviço ainda não tem a rota de domínio implementada (só
/health) — a integração real com Graph/Gmail e a rota de mensagens chegam em fases seguintes deste epic.
Exports
EmailApp— componente top-level (Provider + header + caixa de e-mail)EmailInbox— só a tabela da caixa de e-mail (uso avulso, stub)EmailProvider,useEmailContext,useEmailUIdefaultEmailUIPrimitives,mergeEmailUI(slot pattern de UI)emailQueryKeys, tipos (EmailMessage,EmailApiClient,EmailLabels, …)PACKAGE_VERSION
Documentação
| Arquivo | Conteúdo |
|---|---|
FUNCIONALIDADES.md |
Catálogo de componentes, hooks, slots e tipos |
CONFORMANCE.md |
Checklist de conformidade ao padrão-ouro TMF |
CHANGELOG.md |
Histórico de versões |
Publicação (release)
⚠️ Não publicado ainda. Preparado para publish em TH-58610 (LICENSE,
CONFORMANCE.md, versão consistente package.json == src/version.ts) —
o publish real (tag + CI) é passo humano, pós-merge do epic
TH-58593 em develop.
- Registry: npm privado Forgejo TMF
(
https://git.trademarketingforce.com/api/packages/TMF/npm/, já configurado empublishConfig) - Trigger:
.forgejo/workflows/publish.yml— dispara empush:tags: v*ouworkflow_dispatchmanual (canônico: skill/release;push:tagsé instável no Forgejo Actions — sempre confirmar rodada verde antes de considerar publicado) - Pré-requisito: bump de
versionnopackage.jsonantes da tag (o CI não bumpa sozinho)
Dependencies
Dependencies
| ID | Version |
|---|---|
| @tanstack/react-query | ^5.0.0 |
| dompurify | ^3.0.0 |
| lucide-react | ^0.400.0 |
Development dependencies
| ID | Version |
|---|---|
| @tmf/platform-core | file:../../platform-core |
| @types/dompurify | ^3.0.5 |
| @types/react | ^18.2.47 |
| @types/react-dom | ^18.2.18 |
| tsup | ^8.5.1 |
| typescript | ^5.3.3 |
Peer dependencies
| ID | Version |
|---|---|
| react | >=18.0.0 |
| react-dom | >=18.0.0 |