# Internal Decorators

⚠️ **USO INTERNO DO MONOREPO APENAS**

Este é um **secondary entry point** interno do pacote `common` que contém decorators utilitários usados internamente pelos componentes do monorepo `@seniorsistemas/angular-components`.

**NÃO** deve ser usado por projetos externos que consomem a biblioteca.

## Conteúdo

### `deprecated-selector.decorator.ts`

Decorator para detectar e alertar sobre uso de seletores deprecated em componentes.

**Uso:**

```typescript
import { DeprecatedSelector } from '@seniorsistemas/angular-components/common/deprecated-selector';
import { Injector, OnInit } from '@angular/core';

@DeprecatedSelector({
    oldSelector: 's-old-name',
    newSelector: 's-new-name',
    removalVersion: '20.0.0'
})
@Component({ ... })
export class MyComponent implements OnInit {
    constructor(private injector: Injector) {}

    ngOnInit(): void {
        // Seu código aqui (opcional)
    }
}
```

**Requisitos:**

- ✅ O componente **DEVE** implementar `OnInit` e ter o método `ngOnInit()`
- ✅ O componente **DEVE** injetar `Injector` no constructor
- ⚠️ Se os requisitos não forem atendidos, warnings serão mostrados no console

**Importante:**
- ✅ Disponível para uso dentro do monorepo via `@seniorsistemas/angular-components/common/deprecated-selector`
- ❌ NÃO exportado via `@seniorsistemas/angular-components/common` (entry point principal)
- ❌ NÃO deve ser usado por projetos externos
- ⚠️ Este é um entry point interno, não documentado publicamente

## Por que não exportar publicamente?

Estes decorators são ferramentas de desenvolvimento interno para:

1. Gerenciar depreciações de API dentro da própria biblioteca
2. Manter backward compatibility durante transições
3. Alertar desenvolvedores da biblioteca sobre uso de APIs antigas

Consumidores externos da biblioteca não precisam (e não devem) ter acesso a estas ferramentas internas.

## Estrutura

```
projects/angular-components/common/
├── src/                    # Entry point principal (público)
│   └── public-api.ts       # Exports públicos
└── decorators/             # Secondary entry point (interno)
    ├── ng-package.json
    ├── package.json
    ├── README.md (este arquivo)
    └── src/
        ├── public-api.ts   # Re-exports internos
        └── deprecated-selector.decorator.ts
```

**Exemplo real:** Ver `ia-insight.component.ts` como referência de uso.

