---
type: rule
name: typescript-module-resolution
description: Padrão obrigatório de moduleResolution para todos os pacotes do monorepo Azteca
scope: global
trigger: file_match
globs:
  - "**/tsconfig.json"
priority: alta
updatedAt: "2026-07-01"
---

# Regra: moduleResolution Padrão do Monorepo

## Contexto

O TypeScript 6.0 deprecia `moduleResolution: "node"` (alias de `"node10"`), que deixará de funcionar no TS 7.0 (erro TS5107). Todos os pacotes do ecossistema Azteca compilam via **tsup** ou **vite**, portanto devem usar o modo `bundler`.

## Regra

Todo `tsconfig.json` no monorepo **DEVE** usar:

```json
{
  "compilerOptions": {
    "moduleResolution": "bundler",
    "module": "ESNext"
  }
}
```

### Alternativa `node16` — REJEITADA

A opção `node16` foi testada e rejeitada por ser excessivamente estrita com dependências externas que não declaram corretamente as fronteiras ESM/CJS (erro TS1479).

## Exemplos

```json
// ✅ Correto — modo bundler
{
  "compilerOptions": {
    "moduleResolution": "bundler",
    "module": "ESNext"
  }
}

// ❌ Incorreto — modo depreciado
{
  "compilerOptions": {
    "moduleResolution": "node"
  }
}

// ❌ Incorreto — estrito demais para o ecossistema
{
  "compilerOptions": {
    "moduleResolution": "node16",
    "module": "Node16"
  }
}
```

## Procedimento ao corrigir

Ao corrigir `moduleResolution` em um pacote, **varrer todos os `tsconfig.json` do monorepo** para garantir consistência. Não corrigir isoladamente.

## Impacto

Sem este padrão, o build falhará no TypeScript 7.0 com erro fatal TS5107. Já no TS 6.0 gera warnings de depreciação que poluem o output.

## Referências

- Memória Azteca: códigos 51, 52, 54
- Rule: `global/rules/tsconfig-ignore-deprecations`
