Sync project with Nintendo Swith and PSN
- TypeScript 91%
- Shell 4.9%
- Makefile 2.2%
- Dockerfile 1.9%
Adiciona anotações de tipo explícitas em app e router para resolver TS2742 (inferred type não portável com pnpm symlinked modules). Copia .npmrc no build stage para garantir node-linker=hoisted. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .githooks | ||
| docs | ||
| src | ||
| tests | ||
| .env.example | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| .mocharc.json | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierrc | ||
| .woodpecker.yml | ||
| app.yaml | ||
| CHANGELOG.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| DOKKU.md | ||
| Makefile | ||
| package.json | ||
| pnpm-lock.yaml | ||
| Procfile | ||
| README.md | ||
| setup.sh | ||
| tsconfig.json | ||
PixieLog Sync Service
Serviço de sincronização de plataformas de jogos (PSN e Nintendo Switch Online) via contas de serviço (bots).
Arquitetura
Este serviço implementa uma arquitetura de "service accounts" para integração com plataformas fechadas:
- PSN (PlayStation Network): Usa NPSSO token para autenticação de conta bot
- Nintendo Switch Online: Usa Friend Code + verificação via nickname
Requisitos
- Node.js >= 20.0.0
- Redis >= 7.0
- npm >= 10.0.0
Instalação
# Usar a versão correta do Node.js (via nvm)
nvm use
# Instalar dependências
npm install
# Configurar variáveis de ambiente
cp .env.example .env
# Editar .env com suas configurações
# Executar em desenvolvimento
npm run dev
# Executar testes
npm test
# Build para produção
npm run build
npm start
Scripts Disponíveis
npm run dev- Executar em modo desenvolvimento com hot-reloadnpm run build- Compilar TypeScriptnpm start- Iniciar em modo produçãonpm test- Executar testesnpm run test:watch- Executar testes em watch modenpm run test:coverage- Executar testes com coveragenpm run lint- Verificar lintingnpm run lint:fix- Corrigir problemas de lintingnpm run format- Formatar códigonpm run format:check- Verificar formataçãonpm run audit- Verificar vulnerabilidadesnpm run typecheck- Verificar tipos TypeScript
CI/CD (Woodpecker)
O pipeline executa automaticamente:
- Instalação de dependências
- Type checking
- Linting
- Formatação
- Security audit
- Testes
- Coverage
- Build
- Docker build (apenas na branch main)
Variáveis de Ambiente
| Variável | Descrição | Obrigatório |
|---|---|---|
NODE_ENV |
Ambiente (development/production) | Sim |
PORT |
Porta do servidor | Não (default: 3000) |
LOG_LEVEL |
Nível de log (debug/info/warn/error) | Não (default: info) |
REDIS_URL |
URL do Redis | Sim |
API_BASE_URL |
URL base da API PixieLog | Sim |
PSN_NPSSO_TOKEN |
Token NPSSO para conta PSN bot | Não (para PSN) |
NINTENDO_SESSION_TOKEN |
Token de sessão Nintendo | Não (para Nintendo) |
IMINK_API_KEY |
Chave API do serviço imink | Não (para Nintendo) |
VERIFICATION_CODE_EXPIRY |
Expiração do código de verificação (min) | Não (default: 30) |
Licença
MIT