# Como Publicar o @reachy/audience-module no NPM

## 📦 Pré-requisitos

1. Conta no [npmjs.com](https://www.npmjs.com)
2. Configurar autenticação local

## 🚀 Passo a Passo

### 1. Fazer Login no NPM

```bash
cd /Users/vitorhugo/reachy/audience-module
npm login
```

Será solicitado:
- Username
- Password
- Email
- OTP (se tiver 2FA habilitado)

### 2. Verificar se o Nome está Disponível

```bash
npm view @reachy/audience-module
```

Se retornar erro 404, o nome está disponível! ✅

Se já existir, você precisa:
- Mudar o nome no `package.json`, ou
- Publicar sem escopo: `audience-module` (não recomendado)

### 3. Atualizar Informações do Pacote

Edite `/Users/vitorhugo/reachy/audience-module/package.json`:

```json
{
  "name": "@reachy/audience-module",
  "version": "1.0.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/seu-usuario/audience-module.git"
  },
  "bugs": {
    "url": "https://github.com/seu-usuario/audience-module/issues"
  },
  "homepage": "https://github.com/seu-usuario/audience-module#readme"
}
```

### 4. Build Final

```bash
cd /Users/vitorhugo/reachy/audience-module

# Limpar dist antiga
npm run clean

# Build
npm run build

# Verificar arquivos que serão publicados
npm pack --dry-run
```

### 5. Publicar

```bash
# Primeira publicação
npm publish --access public

# Ou se já existir, apenas atualizar versão
npm version patch  # 1.0.0 -> 1.0.1
npm publish
```

### 6. Verificar Publicação

```bash
npm view @reachy/audience-module
```

## 📝 Versionamento Semântico

```bash
# Patch (1.0.0 -> 1.0.1) - Correções de bugs
npm version patch

# Minor (1.0.0 -> 1.1.0) - Novas features
npm version minor

# Major (1.0.0 -> 2.0.0) - Breaking changes
npm version major
```

Após cada `npm version`, faça:

```bash
npm publish
```

## 🔄 Atualizar no reachy-api

Depois de publicar no NPM:

```bash
cd /Users/vitorhugo/reachy/reachy-api

# Atualizar package.json para usar a versão do NPM
# Mudar de: "file:../audience-module"
# Para: "^1.0.0"

# Ou instalar diretamente
npm install @reachy/audience-module@latest
```

## 🏷️ Tags (Opcional)

Para versões beta ou canary:

```bash
# Publicar como beta
npm publish --tag beta

# Instalar beta
npm install @reachy/audience-module@beta
```

## 🔐 Organização no NPM

Se quiser criar uma organização "@reachy":

1. Acesse https://www.npmjs.com/org/create
2. Crie a organização "reachy"
3. Adicione membros da equipe
4. Publique pacotes sob @reachy/

## ⚠️ Importante

- ✅ Sempre faça `npm run build` antes de publicar
- ✅ Teste localmente antes (`npm pack` e instalar o .tgz)
- ✅ Use versionamento semântico
- ✅ Documente mudanças no README
- ❌ Não publique com `node_modules/` (já está no `.npmignore`)
- ❌ Não publique `src/` se não quiser expor TypeScript

## 📊 Status do Pacote

Depois de publicar, você verá no NPM:
- Versão atual
- Downloads por semana
- Link do repositório
- README renderizado

