9afdccdc14
- useLocalStorage: retorna tupla [valor, setter] tipada como [T, (v: T|fn) => void] - useAsync: espera microtask act cycle antes de checar status - useClipboard: mock navigator.clipboard.writeText antes - useMedia: mock matchMedia antes - Busca por padrão: act() + waitFor p/ efeitos assíncronos (sem fakeTimers gerais) - docs: PROJECTS-REGISTER, SESSION-STATE (pretérito + presente)
102 lines
4.1 KiB
Markdown
102 lines
4.1 KiB
Markdown
# PROJECTS-REGISTER.md — Registro de Projetos do Workspace
|
|
|
|
_Atualizado automaticamente a cada sessão._
|
|
|
|
## 📋 Projeto: @pulse-libs/core
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **Nome** | @pulse-libs/core |
|
|
| **Versão** | 1.0.0-beta.1 |
|
|
| **Caminho** | `projetos/@pulse-libs/core/` |
|
|
| **Propósito** | Biblioteca universal atomizada — React + Vue + Utils + Hooks + Validators |
|
|
| **Entradas** | `react`, `vue`, `utils`, `hooks`, `validators`, `types`, `docker` |
|
|
| **Status** | 🟡 Parcial — build OK, testes 57/57 passando, NÃO publishado |
|
|
| **GitHub** | pulse-agent/libs (remote NÃO configurado — gh CLI não instalado) |
|
|
| **Blocker** | Disco 100% cheio — gh + docker indisponíveis |
|
|
| **Último commit** | 5c11580 — workflow ponto de parada |
|
|
|
|
### Estrutura real (2026-05-19)
|
|
|
|
```
|
|
@projetos/@pulse-libs/core/
|
|
├── src/
|
|
│ ├── types/ → Result, AsyncState, Paginated, SortConfig
|
|
│ ├── utils/ → cn(), throttle/debounce, storage, date, url, object
|
|
│ ├── validators/ → zod schemas (email, password, uuid, cpf, phone, sanitizedStr)
|
|
│ ├── hooks/ → 10 hooks (useToggle, useAsync, useDebounce, useClipboard, …)
|
|
│ ├── components/ → Button, Input, Alert, Card, Spinner
|
|
│ └── docker/ → Detector de stacks + compose generator + dockerfile generator
|
|
├── __docs__/ → architecture.md, build-guide.md, ci/github-actions.md
|
|
├── __docs__/docker/ → xcloud-constraints.md, scenarios, deploy-paths
|
|
├── tests/ → utils.test.ts, validators.test.ts ✅ 57 testes
|
|
├── .github/ → ← workflows pendentes (gh CLI ausente)
|
|
├── vitest.config.ts
|
|
├── tsup.config.ts
|
|
├── tsconfig.json
|
|
└── WürthFlow.md ← documento vivo de arquitetura
|
|
```
|
|
|
|
### Por que WürthFlow?
|
|
|
|
_WürthFlow_ = arquitetura viva do workspace. Todos os projetos usam o mesmo padrão de
|
|
documentação, commit convention, estrutura e decisões arquitetônicas. É o que dá
|
|
continuidade — sempre ler WürthFlow.md antes de codificar.
|
|
|
|
### Commit convention (WürthFlow)
|
|
|
|
```
|
|
<type>[<escopo>]: <descrição brevíssula>
|
|
|
|
Tipos: feat | fix | docs | style | refactor | test | chore | perf | ci | revert
|
|
Escopo opcional: ex. "core-utils", "validators", "hooks"
|
|
```
|
|
|
|
### Testes (pendentes)
|
|
|
|
| Módulo | Testes | Status |
|
|
|--------|--------|--------|
|
|
| utils/ | utils.test.ts | ✅ 23 passando |
|
|
| validators/ | validators.test.ts | ✅ 34 passando |
|
|
| hooks/ | hooks.test.ts | ❌ ausente |
|
|
| components/ | components.test.ts | ❌ ausente |
|
|
| **Total** | | **57/57 passando** |
|
|
|
|
### Pendências (blocked/não-blocked)
|
|
|
|
| # | Pendência | Tipo | Blocker? |
|
|
|---|-----------|------|----------|
|
|
| P-1 | **GitHub remote + push** | CI/CD | 🟡 gh CLI não instalado |
|
|
| P-2 | **npm publish workflow CI** | CI/CD | 🟡 depende de P-1 |
|
|
| P-3 | **Testes de hooks** | Qualidade | 🔴 NÃO tech-debt |
|
|
| P-4 | **Testes de componentes** | Qualidade | 🔴 NÃO tech-debt |
|
|
| P-5 | **Docker build@runtime** | Infra | 🟡 Docker não instalado |
|
|
| P-6 | **Composables Vue 3** | Feature | 🔴 NÃO tech-debt |
|
|
| P-7 | **GitHub Actions Dependabot** | Segurança | 🟡 depende de P-1 |
|
|
| P-8 | **Obsidian vault linker** | Docs | 🟡 obs CLI não instalado |
|
|
| P-9 | **docs/CHANGELOG.md** | Docs | 🟡 bloquear publish |
|
|
| P-10 | **docs/CONTRIBUTING.md** | Docs | 🟡 bloquear publish |
|
|
|
|
### Próxima sessão — ordem de prioridade
|
|
|
|
1. **Testes de hooks** (arquivo existe, criar e rodar)
|
|
2. **Testes de componentes** (arquivo existe, criar e rodar)
|
|
3. **Composables Vue 3** (seguindo WürthFlow)
|
|
4. **Liberar espaço em disco** → instalar gh → configurar GitHub remote
|
|
5. **Vue composables expandidos** (useFormValidation, useFetch)
|
|
6. **npm publish workflow** (não-tech-debt)
|
|
|
|
---
|
|
|
|
## 📋 Projeto: WürthFlow.md
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **Nome** | WürthFlow |
|
|
| **Caminho** | `WürthFlow.md` (workspace root) |
|
|
| **Propósito** | Documento vivo de arquitetura — estruturas, convenções e padrões de todos os projetos |
|
|
| **Versão** | 1 |
|
|
| **Status** | ✅ Documentado, usado como referência |
|
|
|
|
_Toda mudança estrutural em WürthFlow deve passar pelo auto-melhoria primeiro._
|