ibge-br-mcp 1.9.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -29
- package/README.pt-BR.md +85 -31
- package/dist/config.d.ts +52 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +108 -6
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +3 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +18 -3
- package/dist/errors.js.map +1 -1
- package/dist/index.js +6 -567
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +12 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +64 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +12 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +130 -0
- package/dist/resources.js.map +1 -0
- package/dist/retry.d.ts +10 -0
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +48 -4
- package/dist/retry.js.map +1 -1
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +659 -0
- package/dist/server.js.map +1 -0
- package/dist/structured.d.ts +50 -0
- package/dist/structured.d.ts.map +1 -0
- package/dist/structured.js +85 -0
- package/dist/structured.js.map +1 -0
- package/dist/tools/calendario.d.ts +2 -29
- package/dist/tools/calendario.d.ts.map +1 -1
- package/dist/tools/calendario.js +44 -37
- package/dist/tools/calendario.js.map +1 -1
- package/dist/tools/censo.d.ts +31 -25
- package/dist/tools/censo.d.ts.map +1 -1
- package/dist/tools/censo.js +77 -48
- package/dist/tools/censo.js.map +1 -1
- package/dist/tools/cidades.d.ts +39 -25
- package/dist/tools/cidades.d.ts.map +1 -1
- package/dist/tools/cidades.js +112 -58
- package/dist/tools/cidades.js.map +1 -1
- package/dist/tools/cnae.d.ts +0 -21
- package/dist/tools/cnae.d.ts.map +1 -1
- package/dist/tools/cnae.js +0 -29
- package/dist/tools/cnae.js.map +1 -1
- package/dist/tools/comparar.d.ts +75 -19
- package/dist/tools/comparar.d.ts.map +1 -1
- package/dist/tools/comparar.js +106 -65
- package/dist/tools/comparar.js.map +1 -1
- package/dist/tools/datasaude.d.ts +30 -26
- package/dist/tools/datasaude.d.ts.map +1 -1
- package/dist/tools/datasaude.js +64 -39
- package/dist/tools/datasaude.js.map +1 -1
- package/dist/tools/estados.d.ts +2 -17
- package/dist/tools/estados.d.ts.map +1 -1
- package/dist/tools/estados.js +4 -18
- package/dist/tools/estados.js.map +1 -1
- package/dist/tools/geocodigo.d.ts +2 -20
- package/dist/tools/geocodigo.d.ts.map +1 -1
- package/dist/tools/geocodigo.js +11 -30
- package/dist/tools/geocodigo.js.map +1 -1
- package/dist/tools/index.d.ts +22 -27
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +22 -414
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/indicadores.d.ts +28 -28
- package/dist/tools/indicadores.d.ts.map +1 -1
- package/dist/tools/indicadores.js +67 -58
- package/dist/tools/indicadores.js.map +1 -1
- package/dist/tools/localidade.d.ts +0 -15
- package/dist/tools/localidade.d.ts.map +1 -1
- package/dist/tools/localidade.js +0 -18
- package/dist/tools/localidade.js.map +1 -1
- package/dist/tools/malhas-tema.d.ts +0 -24
- package/dist/tools/malhas-tema.d.ts.map +1 -1
- package/dist/tools/malhas-tema.js +1 -24
- package/dist/tools/malhas-tema.js.map +1 -1
- package/dist/tools/malhas.d.ts +0 -27
- package/dist/tools/malhas.d.ts.map +1 -1
- package/dist/tools/malhas.js +1 -38
- package/dist/tools/malhas.js.map +1 -1
- package/dist/tools/municipios.d.ts +0 -18
- package/dist/tools/municipios.d.ts.map +1 -1
- package/dist/tools/municipios.js +6 -22
- package/dist/tools/municipios.js.map +1 -1
- package/dist/tools/nomes.d.ts +0 -27
- package/dist/tools/nomes.d.ts.map +1 -1
- package/dist/tools/nomes.js +0 -26
- package/dist/tools/nomes.js.map +1 -1
- package/dist/tools/noticias.d.ts +2 -32
- package/dist/tools/noticias.d.ts.map +1 -1
- package/dist/tools/noticias.js +22 -28
- package/dist/tools/noticias.js.map +1 -1
- package/dist/tools/paises.d.ts +0 -24
- package/dist/tools/paises.d.ts.map +1 -1
- package/dist/tools/paises.js +0 -23
- package/dist/tools/paises.js.map +1 -1
- package/dist/tools/pesquisas.d.ts +0 -15
- package/dist/tools/pesquisas.d.ts.map +1 -1
- package/dist/tools/pesquisas.js +4 -28
- package/dist/tools/pesquisas.js.map +1 -1
- package/dist/tools/populacao.d.ts +39 -13
- package/dist/tools/populacao.d.ts.map +1 -1
- package/dist/tools/populacao.js +37 -23
- package/dist/tools/populacao.js.map +1 -1
- package/dist/tools/sidra-metadados.d.ts +0 -18
- package/dist/tools/sidra-metadados.d.ts.map +1 -1
- package/dist/tools/sidra-metadados.js +0 -23
- package/dist/tools/sidra-metadados.js.map +1 -1
- package/dist/tools/sidra-tabelas.d.ts +0 -18
- package/dist/tools/sidra-tabelas.d.ts.map +1 -1
- package/dist/tools/sidra-tabelas.js +1 -28
- package/dist/tools/sidra-tabelas.js.map +1 -1
- package/dist/tools/sidra.d.ts +59 -31
- package/dist/tools/sidra.d.ts.map +1 -1
- package/dist/tools/sidra.js +117 -99
- package/dist/tools/sidra.js.map +1 -1
- package/dist/tools/vizinhos.d.ts +0 -21
- package/dist/tools/vizinhos.d.ts.map +1 -1
- package/dist/tools/vizinhos.js +14 -30
- package/dist/tools/vizinhos.js.map +1 -1
- package/dist/types.d.ts +0 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts +27 -3
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +49 -22
- package/dist/validation.js.map +1 -1
- package/package.json +15 -3
- package/.github/workflows/ci.yml +0 -91
- package/.github/workflows/publish.yml +0 -118
- package/CHANGELOG.md +0 -171
- package/CONTRIBUTING.md +0 -285
- package/dist/tools/bcb.d.ts +0 -50
- package/dist/tools/bcb.d.ts.map +0 -1
- package/dist/tools/bcb.js +0 -298
- package/dist/tools/bcb.js.map +0 -1
- package/server.json +0 -21
- package/smithery.yaml +0 -9
package/README.md
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
|
+
[](https://mseep.ai/app/b39475dc-331c-48ff-a0d9-441f6575598c)
|
|
2
|
+
|
|
1
3
|
# ibge-br-mcp
|
|
2
4
|
|
|
5
|
+
[](https://www.npmjs.com/package/ibge-br-mcp)
|
|
6
|
+
[](https://www.npmjs.com/package/ibge-br-mcp)
|
|
7
|
+
[](https://github.com/SidneyBissoli/ibge-br-mcp)
|
|
8
|
+
[](https://github.com/SidneyBissoli/ibge-br-mcp)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
3
10
|
[](https://smithery.ai/server/sidneybissoli/ibge-br-mcp)
|
|
11
|
+
[](https://glama.ai/mcp/servers/SidneyBissoli/ibge-br-mcp)
|
|
12
|
+
|
|
13
|
+
**Live, exact Brazilian public data for your AI assistant — with provenance, not guesswork.**
|
|
4
14
|
|
|
5
|
-
|
|
15
|
+
Ask an LLM _"what was Belo Horizonte's population in the 2022 Census?"_ and you get a plausible number from its training data: maybe right, maybe outdated, with no source. `ibge-br-mcp` instead has your assistant query the official **IBGE** APIs in real time — returning the exact figure together with the table and period it came from.
|
|
6
16
|
|
|
7
17
|
🇧🇷 [Leia em Português](README.pt-BR.md)
|
|
8
18
|
|
|
9
|
-
This server implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) to
|
|
19
|
+
This server implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) to give AI assistants live, structured access to Brazil's public geographic, demographic, economic, and health data — sourced from the IBGE APIs (including health indicators served through IBGE's SIDRA system).
|
|
10
20
|
|
|
11
21
|
## Features
|
|
12
22
|
|
|
13
|
-
- **
|
|
23
|
+
- **22 specialized tools** covering all major IBGE data domains
|
|
24
|
+
- **Reference resources & analysis prompts** (MCP catalogs + ready-made templates)
|
|
25
|
+
- **460 automated tests** with 97%+ core coverage
|
|
14
26
|
- **Automatic caching** with configurable TTL for optimal performance
|
|
15
27
|
- **Retry mechanism** with exponential backoff for network resilience
|
|
16
28
|
- **Comprehensive validation** for all input parameters
|
|
@@ -70,11 +82,10 @@ This server implements the [Model Context Protocol (MCP)](https://modelcontextpr
|
|
|
70
82
|
| `ibge_malhas` | Geographic meshes (GeoJSON, TopoJSON, SVG) |
|
|
71
83
|
| `ibge_malhas_tema` | Thematic meshes (biomes, Legal Amazon, semi-arid) |
|
|
72
84
|
|
|
73
|
-
###
|
|
85
|
+
### Health
|
|
74
86
|
| Tool | Description |
|
|
75
87
|
|:-----|:------------|
|
|
76
|
-
| `
|
|
77
|
-
| `datasaude` | Health indicators via IBGE/DataSUS |
|
|
88
|
+
| `datasaude` | Health indicators via IBGE's SIDRA |
|
|
78
89
|
|
|
79
90
|
### News & Calendar
|
|
80
91
|
| Tool | Description |
|
|
@@ -82,6 +93,48 @@ This server implements the [Model Context Protocol (MCP)](https://modelcontextpr
|
|
|
82
93
|
| `ibge_noticias` | IBGE news and press releases |
|
|
83
94
|
| `ibge_calendario` | IBGE release and collection calendar |
|
|
84
95
|
|
|
96
|
+
## Which tool should I use?
|
|
97
|
+
|
|
98
|
+
With 22 tools, several can touch the same topic. Quick guide for the common overlaps:
|
|
99
|
+
|
|
100
|
+
### Population & demographics
|
|
101
|
+
|
|
102
|
+
| You want… | Use |
|
|
103
|
+
|:----------|:----|
|
|
104
|
+
| Brazil's population right now (real-time) | `ibge_populacao` |
|
|
105
|
+
| A single municipality/state panel (population, HDI, GDP…) | `ibge_cidades` |
|
|
106
|
+
| Census data or historical series (1970–2022) | `ibge_censo` |
|
|
107
|
+
| Rank/compare 2–10 localities on one indicator | `ibge_comparar` |
|
|
108
|
+
| A macro indicator time series (GDP, IPCA, unemployment…) | `ibge_indicadores` |
|
|
109
|
+
| A specific SIDRA table / fine control | `ibge_sidra` |
|
|
110
|
+
|
|
111
|
+
### Economic indicators
|
|
112
|
+
|
|
113
|
+
| You want… | Use |
|
|
114
|
+
|:----------|:----|
|
|
115
|
+
| IPCA, INPC, GDP, unemployment (IBGE, primary source) | `ibge_indicadores` |
|
|
116
|
+
|
|
117
|
+
### Localities & codes
|
|
118
|
+
|
|
119
|
+
| You want… | Use |
|
|
120
|
+
|:----------|:----|
|
|
121
|
+
| List/search municipalities | `ibge_municipios` |
|
|
122
|
+
| List states | `ibge_estados` |
|
|
123
|
+
| Resolve a name→code at any level, or decode a code's structure | `ibge_geocodigo` |
|
|
124
|
+
| Full record of one locality you already have the code for | `ibge_localidade` |
|
|
125
|
+
| Neighboring municipalities | `ibge_vizinhos` |
|
|
126
|
+
|
|
127
|
+
### SIDRA workflow
|
|
128
|
+
|
|
129
|
+
Discover → inspect → query: `ibge_pesquisas` / `ibge_sidra_tabelas` (find a table) → `ibge_sidra_metadados` (its structure) → `ibge_sidra` (query). For common data, the wrappers above (`ibge_censo`, `ibge_indicadores`, `ibge_comparar`, `ibge_cidades`) are usually easier.
|
|
130
|
+
|
|
131
|
+
### Maps (meshes)
|
|
132
|
+
|
|
133
|
+
| You want… | Use |
|
|
134
|
+
|:----------|:----|
|
|
135
|
+
| Administrative outlines (Brazil/region/state/municipality) | `ibge_malhas` |
|
|
136
|
+
| Thematic areas (biomes, Legal Amazon, semi-arid, metro regions) | `ibge_malhas_tema` |
|
|
137
|
+
|
|
85
138
|
## Installation
|
|
86
139
|
|
|
87
140
|
### Prerequisites
|
|
@@ -343,26 +396,9 @@ ibge_malhas(localidade="BR", formato="svg")
|
|
|
343
396
|
| 2 | States |
|
|
344
397
|
| 5 | Municipalities |
|
|
345
398
|
|
|
346
|
-
### bcb
|
|
347
|
-
|
|
348
|
-
Query Central Bank of Brazil data.
|
|
349
|
-
|
|
350
|
-
```
|
|
351
|
-
# SELIC last 12 months
|
|
352
|
-
bcb(indicador="selic", ultimos=12)
|
|
353
|
-
|
|
354
|
-
# IPCA for 2023
|
|
355
|
-
bcb(indicador="ipca", dataInicio="01/01/2023", dataFim="31/12/2023")
|
|
356
|
-
|
|
357
|
-
# Dollar exchange rate last 30 days
|
|
358
|
-
bcb(indicador="dolar_venda", ultimos=30)
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
**Available indicators:** selic, cdi, tr, ipca, ipca_acum, igpm, inpc, dolar_compra, dolar_venda, euro, desemprego
|
|
362
|
-
|
|
363
399
|
### datasaude
|
|
364
400
|
|
|
365
|
-
Query health indicators
|
|
401
|
+
Query Brazilian health indicators served through IBGE's SIDRA (some originally produced by DataSUS, e.g. mortality and births).
|
|
366
402
|
|
|
367
403
|
```
|
|
368
404
|
# Infant mortality in Brazil
|
|
@@ -393,10 +429,6 @@ datasaude(indicador="listar")
|
|
|
393
429
|
- **Countries**: `servicodados.ibge.gov.br/api/v1/paises`
|
|
394
430
|
- **Research**: `servicodados.ibge.gov.br/api/v1/pesquisas`
|
|
395
431
|
|
|
396
|
-
### External APIs
|
|
397
|
-
|
|
398
|
-
- **Central Bank (BCB)**: `api.bcb.gov.br/dados/serie/bcdata.sgs` - Interest rates, exchange rates, inflation
|
|
399
|
-
|
|
400
432
|
## Development
|
|
401
433
|
|
|
402
434
|
```bash
|
|
@@ -455,7 +487,6 @@ ibge-br-mcp/
|
|
|
455
487
|
│ ├── malhas.ts # ibge_malhas
|
|
456
488
|
│ ├── malhas-tema.ts # ibge_malhas_tema
|
|
457
489
|
│ ├── vizinhos.ts # ibge_vizinhos
|
|
458
|
-
│ ├── bcb.ts # bcb
|
|
459
490
|
│ ├── datasaude.ts # datasaude
|
|
460
491
|
│ ├── pesquisas.ts # ibge_pesquisas
|
|
461
492
|
│ ├── nomes.ts # ibge_nomes
|
|
@@ -485,6 +516,29 @@ The project includes a comprehensive test suite with 227 tests covering:
|
|
|
485
516
|
npm test
|
|
486
517
|
```
|
|
487
518
|
|
|
519
|
+
## Quality Assurance
|
|
520
|
+
|
|
521
|
+
This project maintains high code quality standards:
|
|
522
|
+
|
|
523
|
+
- **227 automated tests** covering validation, caching, retry logic, formatting, and integrations
|
|
524
|
+
- **97%+ test coverage** on core modules (cache, validation, errors, types)
|
|
525
|
+
- **ESLint** for code linting with zero warnings
|
|
526
|
+
- **Prettier** for consistent code formatting
|
|
527
|
+
- **TypeScript strict mode** for type safety
|
|
528
|
+
- **Automated CI/CD** via GitHub Actions
|
|
529
|
+
|
|
530
|
+
Run tests locally:
|
|
531
|
+
```bash
|
|
532
|
+
# Run all tests
|
|
533
|
+
npm test
|
|
534
|
+
|
|
535
|
+
# Run tests with coverage
|
|
536
|
+
npm run test:coverage
|
|
537
|
+
|
|
538
|
+
# Run linter
|
|
539
|
+
npm run lint
|
|
540
|
+
```
|
|
541
|
+
|
|
488
542
|
## License
|
|
489
543
|
|
|
490
544
|
MIT
|
package/README.pt-BR.md
CHANGED
|
@@ -1,17 +1,29 @@
|
|
|
1
|
+
[](https://mseep.ai/app/b39475dc-331c-48ff-a0d9-441f6575598c)
|
|
2
|
+
|
|
1
3
|
# ibge-br-mcp
|
|
2
4
|
|
|
5
|
+
[](https://www.npmjs.com/package/ibge-br-mcp)
|
|
6
|
+
[](https://www.npmjs.com/package/ibge-br-mcp)
|
|
7
|
+
[](https://github.com/SidneyBissoli/ibge-br-mcp)
|
|
8
|
+
[](https://github.com/SidneyBissoli/ibge-br-mcp)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
3
10
|
[](https://smithery.ai/server/sidneybissoli/ibge-br-mcp)
|
|
11
|
+
[](https://glama.ai/mcp/servers/SidneyBissoli/ibge-br-mcp)
|
|
4
12
|
|
|
5
|
-
|
|
13
|
+
**Dados públicos brasileiros ao vivo e exatos para o seu assistente de IA — com procedência, não chute.**
|
|
6
14
|
|
|
7
|
-
|
|
15
|
+
Pergunte a um LLM _"qual era a população de Belo Horizonte no Censo 2022?"_ e você recebe um número plausível, tirado do treino: talvez certo, talvez desatualizado, sem fonte. O `ibge-br-mcp` faz o seu assistente consultar as APIs oficiais do **IBGE** em tempo real — devolvendo o valor exato junto com a tabela e o período de onde ele veio.
|
|
8
16
|
|
|
9
17
|
🇺🇸 [Read in English](README.md)
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
Este servidor implementa o [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) para dar aos assistentes de IA acesso ao vivo e estruturado aos dados públicos geográficos, demográficos, econômicos e de saúde do Brasil — vindos das APIs do IBGE (inclusive os indicadores de saúde, servidos pelo SIDRA do IBGE).
|
|
20
|
+
|
|
21
|
+
## Recursos
|
|
12
22
|
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
23
|
+
- **22 ferramentas especializadas** cobrindo todos os principais domínios de dados do IBGE
|
|
24
|
+
- **Resources de referência & prompts de análise** (catálogos MCP + templates prontos)
|
|
25
|
+
- **460 testes automatizados** com 97%+ de cobertura no core
|
|
26
|
+
- **Cache automático** com TTL configurável para performance otimizada
|
|
15
27
|
- **Mecanismo de retry** com backoff exponencial para resiliência de rede
|
|
16
28
|
- **Validação abrangente** para todos os parâmetros de entrada
|
|
17
29
|
- **Tratamento de erros padronizado** com sugestões úteis
|
|
@@ -70,11 +82,10 @@ Este servidor implementa o [Model Context Protocol (MCP)](https://modelcontextpr
|
|
|
70
82
|
| `ibge_malhas` | Malhas geográficas (GeoJSON, TopoJSON, SVG) |
|
|
71
83
|
| `ibge_malhas_tema` | Malhas temáticas (biomas, Amazônia Legal, semiárido) |
|
|
72
84
|
|
|
73
|
-
###
|
|
85
|
+
### Saúde
|
|
74
86
|
| Ferramenta | Descrição |
|
|
75
87
|
|:-----------|:----------|
|
|
76
|
-
| `
|
|
77
|
-
| `datasaude` | Indicadores de saúde via IBGE/DataSUS |
|
|
88
|
+
| `datasaude` | Indicadores de saúde via SIDRA do IBGE |
|
|
78
89
|
|
|
79
90
|
### Notícias e Calendário
|
|
80
91
|
| Ferramenta | Descrição |
|
|
@@ -82,6 +93,48 @@ Este servidor implementa o [Model Context Protocol (MCP)](https://modelcontextpr
|
|
|
82
93
|
| `ibge_noticias` | Notícias e releases do IBGE |
|
|
83
94
|
| `ibge_calendario` | Calendário de divulgações e coletas do IBGE |
|
|
84
95
|
|
|
96
|
+
## Qual ferramenta usar?
|
|
97
|
+
|
|
98
|
+
Com 22 ferramentas, várias podem tocar no mesmo assunto. Guia rápido para as sobreposições comuns:
|
|
99
|
+
|
|
100
|
+
### População e demografia
|
|
101
|
+
|
|
102
|
+
| Você quer… | Use |
|
|
103
|
+
|:-----------|:----|
|
|
104
|
+
| População do Brasil agora (tempo real) | `ibge_populacao` |
|
|
105
|
+
| Painel de um único município/UF (população, IDH, PIB…) | `ibge_cidades` |
|
|
106
|
+
| Dados censitários ou série histórica (1970–2022) | `ibge_censo` |
|
|
107
|
+
| Ranquear/comparar 2–10 localidades num indicador | `ibge_comparar` |
|
|
108
|
+
| Série temporal de indicador macro (PIB, IPCA, desemprego…) | `ibge_indicadores` |
|
|
109
|
+
| Uma tabela SIDRA específica / controle fino | `ibge_sidra` |
|
|
110
|
+
|
|
111
|
+
### Indicadores econômicos
|
|
112
|
+
|
|
113
|
+
| Você quer… | Use |
|
|
114
|
+
|:-----------|:----|
|
|
115
|
+
| IPCA, INPC, PIB, desemprego (IBGE, fonte primária) | `ibge_indicadores` |
|
|
116
|
+
|
|
117
|
+
### Localidades e códigos
|
|
118
|
+
|
|
119
|
+
| Você quer… | Use |
|
|
120
|
+
|:-----------|:----|
|
|
121
|
+
| Listar/buscar municípios | `ibge_municipios` |
|
|
122
|
+
| Listar estados | `ibge_estados` |
|
|
123
|
+
| Resolver nome→código em qualquer nível, ou decodificar a estrutura de um código | `ibge_geocodigo` |
|
|
124
|
+
| Ficha completa de uma localidade da qual você já tem o código | `ibge_localidade` |
|
|
125
|
+
| Municípios vizinhos | `ibge_vizinhos` |
|
|
126
|
+
|
|
127
|
+
### Fluxo SIDRA
|
|
128
|
+
|
|
129
|
+
Descobrir → inspecionar → consultar: `ibge_pesquisas` / `ibge_sidra_tabelas` (achar a tabela) → `ibge_sidra_metadados` (sua estrutura) → `ibge_sidra` (consultar). Para dados comuns, os atalhos acima (`ibge_censo`, `ibge_indicadores`, `ibge_comparar`, `ibge_cidades`) costumam ser mais fáceis.
|
|
130
|
+
|
|
131
|
+
### Mapas (malhas)
|
|
132
|
+
|
|
133
|
+
| Você quer… | Use |
|
|
134
|
+
|:-----------|:----|
|
|
135
|
+
| Contornos administrativos (Brasil/região/UF/município) | `ibge_malhas` |
|
|
136
|
+
| Áreas temáticas (biomas, Amazônia Legal, semiárido, regiões metropolitanas) | `ibge_malhas_tema` |
|
|
137
|
+
|
|
85
138
|
## Instalação
|
|
86
139
|
|
|
87
140
|
### Pré-requisitos
|
|
@@ -343,26 +396,9 @@ ibge_malhas(localidade="BR", formato="svg")
|
|
|
343
396
|
| 2 | Estados |
|
|
344
397
|
| 5 | Municípios |
|
|
345
398
|
|
|
346
|
-
### bcb
|
|
347
|
-
|
|
348
|
-
Consulta dados do Banco Central do Brasil.
|
|
349
|
-
|
|
350
|
-
```
|
|
351
|
-
# SELIC últimos 12 meses
|
|
352
|
-
bcb(indicador="selic", ultimos=12)
|
|
353
|
-
|
|
354
|
-
# IPCA de 2023
|
|
355
|
-
bcb(indicador="ipca", dataInicio="01/01/2023", dataFim="31/12/2023")
|
|
356
|
-
|
|
357
|
-
# Cotação do dólar últimos 30 dias
|
|
358
|
-
bcb(indicador="dolar_venda", ultimos=30)
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
**Indicadores disponíveis:** selic, cdi, tr, ipca, ipca_acum, igpm, inpc, dolar_compra, dolar_venda, euro, desemprego
|
|
362
|
-
|
|
363
399
|
### datasaude
|
|
364
400
|
|
|
365
|
-
Consulta indicadores de saúde
|
|
401
|
+
Consulta indicadores de saúde servidos pelo SIDRA do IBGE (alguns originalmente do DataSUS, ex.: óbitos e nascidos vivos).
|
|
366
402
|
|
|
367
403
|
```
|
|
368
404
|
# Mortalidade infantil no Brasil
|
|
@@ -393,10 +429,6 @@ datasaude(indicador="listar")
|
|
|
393
429
|
- **Países**: `servicodados.ibge.gov.br/api/v1/paises`
|
|
394
430
|
- **Pesquisas**: `servicodados.ibge.gov.br/api/v1/pesquisas`
|
|
395
431
|
|
|
396
|
-
### APIs Externas
|
|
397
|
-
|
|
398
|
-
- **Banco Central (BCB)**: `api.bcb.gov.br/dados/serie/bcdata.sgs` - Taxas de juros, câmbio, inflação
|
|
399
|
-
|
|
400
432
|
## Desenvolvimento
|
|
401
433
|
|
|
402
434
|
```bash
|
|
@@ -458,7 +490,6 @@ ibge-br-mcp/
|
|
|
458
490
|
│ ├── malhas.ts # ibge_malhas
|
|
459
491
|
│ ├── malhas-tema.ts # ibge_malhas_tema
|
|
460
492
|
│ ├── vizinhos.ts # ibge_vizinhos
|
|
461
|
-
│ ├── bcb.ts # bcb
|
|
462
493
|
│ ├── datasaude.ts # datasaude
|
|
463
494
|
│ ├── pesquisas.ts # ibge_pesquisas
|
|
464
495
|
│ ├── nomes.ts # ibge_nomes
|
|
@@ -488,6 +519,29 @@ O projeto inclui uma suíte de testes abrangente com 227 testes cobrindo:
|
|
|
488
519
|
npm test
|
|
489
520
|
```
|
|
490
521
|
|
|
522
|
+
## Garantia de Qualidade
|
|
523
|
+
|
|
524
|
+
Este projeto mantém altos padrões de qualidade de código:
|
|
525
|
+
|
|
526
|
+
- **227 testes automatizados** cobrindo validação, cache, retry, formatação e integrações
|
|
527
|
+
- **97%+ de cobertura de testes** nos módulos core (cache, validation, errors, types)
|
|
528
|
+
- **ESLint** para linting de código sem warnings
|
|
529
|
+
- **Prettier** para formatação consistente
|
|
530
|
+
- **TypeScript modo strict** para segurança de tipos
|
|
531
|
+
- **CI/CD automatizado** via GitHub Actions
|
|
532
|
+
|
|
533
|
+
Execute os testes localmente:
|
|
534
|
+
```bash
|
|
535
|
+
# Rodar todos os testes
|
|
536
|
+
npm test
|
|
537
|
+
|
|
538
|
+
# Rodar testes com cobertura
|
|
539
|
+
npm run test:coverage
|
|
540
|
+
|
|
541
|
+
# Rodar linter
|
|
542
|
+
npm run lint
|
|
543
|
+
```
|
|
544
|
+
|
|
491
545
|
## Licença
|
|
492
546
|
|
|
493
547
|
MIT
|
package/dist/config.d.ts
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
* Centralized configuration for IBGE MCP Server
|
|
3
3
|
* Contains all constants, mappings, and endpoint definitions
|
|
4
4
|
*/
|
|
5
|
+
/** Default per-request timeout in milliseconds (upstream APIs are usually fast). */
|
|
6
|
+
export declare const DEFAULT_REQUEST_TIMEOUT_MS = 30000;
|
|
7
|
+
/**
|
|
8
|
+
* Effective request timeout, overridable at startup via the
|
|
9
|
+
* `IBGE_MCP_TIMEOUT_MS` environment variable. Invalid or non-positive values
|
|
10
|
+
* fall back to the default. Used as the default `timeoutMs` for every fetch.
|
|
11
|
+
*/
|
|
12
|
+
export declare const REQUEST_TIMEOUT_MS: number;
|
|
5
13
|
export declare const API_ENDPOINTS: {
|
|
6
14
|
readonly IBGE: {
|
|
7
15
|
readonly LOCALIDADES: "https://servicodados.ibge.gov.br/api/v1/localidades";
|
|
@@ -16,11 +24,6 @@ export declare const API_ENDPOINTS: {
|
|
|
16
24
|
readonly PESQUISAS: "https://servicodados.ibge.gov.br/api/v1/pesquisas";
|
|
17
25
|
};
|
|
18
26
|
readonly SIDRA: "https://apisidra.ibge.gov.br/values";
|
|
19
|
-
readonly BCB: {
|
|
20
|
-
readonly SGS: "https://api.bcb.gov.br/dados/serie/bcdata.sgs";
|
|
21
|
-
readonly PTAX: "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata";
|
|
22
|
-
readonly EXPECTATIVAS: "https://olinda.bcb.gov.br/olinda/servico/Expectativas/versao/v1/odata";
|
|
23
|
-
};
|
|
24
27
|
};
|
|
25
28
|
/**
|
|
26
29
|
* Brazilian states (UF) codes
|
|
@@ -75,6 +78,25 @@ export declare const TERRITORIAL_LEVELS: {
|
|
|
75
78
|
* Territorial level names (for display)
|
|
76
79
|
*/
|
|
77
80
|
export declare const TERRITORIAL_LEVEL_NAMES: Record<string, string>;
|
|
81
|
+
/**
|
|
82
|
+
* Short, agent-facing label for each territorial level code. Used to build the
|
|
83
|
+
* standardized `nivel_territorial` descriptions and error suggestions so the
|
|
84
|
+
* naming stays consistent across every tool (Brasil/Região/UF/Município ...).
|
|
85
|
+
*/
|
|
86
|
+
export declare const TERRITORIAL_LEVEL_LABELS: Record<string, string>;
|
|
87
|
+
/** All SIDRA territorial level codes, in canonical order. */
|
|
88
|
+
export declare const ALL_TERRITORIAL_LEVELS: string[];
|
|
89
|
+
/**
|
|
90
|
+
* Builds the standardized `nivel_territorial` field description from the level
|
|
91
|
+
* codes a tool supports, e.g. ["1","2","3","6"] ->
|
|
92
|
+
* "Nível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município".
|
|
93
|
+
*/
|
|
94
|
+
export declare function territorialLevelHint(codes: string[]): string;
|
|
95
|
+
/**
|
|
96
|
+
* Builds a "código (Label)" list for error suggestions, e.g.
|
|
97
|
+
* "1 (Brasil), 2 (Região), 3 (UF), 6 (Município)".
|
|
98
|
+
*/
|
|
99
|
+
export declare function territorialLevelList(codes: string[]): string;
|
|
78
100
|
export declare const BIOME_CODES: Record<string, number>;
|
|
79
101
|
export declare const BIOME_NAMES: Record<number, string>;
|
|
80
102
|
/**
|
|
@@ -137,6 +159,31 @@ export declare function getUfCode(uf: string): number | undefined;
|
|
|
137
159
|
* Get UF abbreviation from code
|
|
138
160
|
*/
|
|
139
161
|
export declare function getUfSigla(code: number): string | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* Normalizes free text for matching: lowercased, trimmed, internal whitespace
|
|
164
|
+
* collapsed, and accents stripped (e.g. "São Paulo " -> "sao paulo").
|
|
165
|
+
*/
|
|
166
|
+
export declare function normalizeText(text: string): string;
|
|
167
|
+
/**
|
|
168
|
+
* Normalized state name -> sigla (e.g. "sao paulo" -> "SP").
|
|
169
|
+
*/
|
|
170
|
+
export declare const UF_NAME_TO_SIGLA: Record<string, string>;
|
|
171
|
+
export interface ResolvedUf {
|
|
172
|
+
code: number;
|
|
173
|
+
sigla: string;
|
|
174
|
+
nome: string;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Resolves a state (UF) from any of its three forms, interchangeably:
|
|
178
|
+
* - sigla: "SP" / "sp"
|
|
179
|
+
* - nome: "São Paulo" / "sao paulo" (accent- and case-insensitive)
|
|
180
|
+
* - código: "35" / 35
|
|
181
|
+
*
|
|
182
|
+
* Single source of truth for UF input resolution — tools should accept all
|
|
183
|
+
* three forms by routing user input through this helper. Returns null if the
|
|
184
|
+
* input matches none of them.
|
|
185
|
+
*/
|
|
186
|
+
export declare function resolveUf(input: string | number): ResolvedUf | null;
|
|
140
187
|
/**
|
|
141
188
|
* Get region code from state abbreviation
|
|
142
189
|
*/
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
* Contains all constants, mappings, and endpoint definitions
|
|
4
4
|
*/
|
|
5
5
|
// ============================================================================
|
|
6
|
+
// Request timeout
|
|
7
|
+
// ============================================================================
|
|
8
|
+
/** Default per-request timeout in milliseconds (upstream APIs are usually fast). */
|
|
9
|
+
export const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
|
|
10
|
+
/**
|
|
11
|
+
* Effective request timeout, overridable at startup via the
|
|
12
|
+
* `IBGE_MCP_TIMEOUT_MS` environment variable. Invalid or non-positive values
|
|
13
|
+
* fall back to the default. Used as the default `timeoutMs` for every fetch.
|
|
14
|
+
*/
|
|
15
|
+
export const REQUEST_TIMEOUT_MS = (() => {
|
|
16
|
+
const raw = process.env.IBGE_MCP_TIMEOUT_MS;
|
|
17
|
+
if (!raw)
|
|
18
|
+
return DEFAULT_REQUEST_TIMEOUT_MS;
|
|
19
|
+
const parsed = Number(raw);
|
|
20
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_REQUEST_TIMEOUT_MS;
|
|
21
|
+
})();
|
|
22
|
+
// ============================================================================
|
|
6
23
|
// API Endpoints
|
|
7
24
|
// ============================================================================
|
|
8
25
|
export const API_ENDPOINTS = {
|
|
@@ -20,12 +37,6 @@ export const API_ENDPOINTS = {
|
|
|
20
37
|
PESQUISAS: "https://servicodados.ibge.gov.br/api/v1/pesquisas",
|
|
21
38
|
},
|
|
22
39
|
SIDRA: "https://apisidra.ibge.gov.br/values",
|
|
23
|
-
// External APIs
|
|
24
|
-
BCB: {
|
|
25
|
-
SGS: "https://api.bcb.gov.br/dados/serie/bcdata.sgs",
|
|
26
|
-
PTAX: "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata",
|
|
27
|
-
EXPECTATIVAS: "https://olinda.bcb.gov.br/olinda/servico/Expectativas/versao/v1/odata",
|
|
28
|
-
},
|
|
29
40
|
};
|
|
30
41
|
// ============================================================================
|
|
31
42
|
// Geographic Codes
|
|
@@ -185,6 +196,50 @@ export const TERRITORIAL_LEVEL_NAMES = {
|
|
|
185
196
|
"127": "Amazônia Legal",
|
|
186
197
|
"128": "Semiárido",
|
|
187
198
|
};
|
|
199
|
+
/**
|
|
200
|
+
* Short, agent-facing label for each territorial level code. Used to build the
|
|
201
|
+
* standardized `nivel_territorial` descriptions and error suggestions so the
|
|
202
|
+
* naming stays consistent across every tool (Brasil/Região/UF/Município ...).
|
|
203
|
+
*/
|
|
204
|
+
export const TERRITORIAL_LEVEL_LABELS = {
|
|
205
|
+
"1": "Brasil",
|
|
206
|
+
"2": "Região",
|
|
207
|
+
"3": "UF",
|
|
208
|
+
"6": "Município",
|
|
209
|
+
"7": "Região Metropolitana",
|
|
210
|
+
"8": "Mesorregião",
|
|
211
|
+
"9": "Microrregião",
|
|
212
|
+
"10": "Distrito",
|
|
213
|
+
"11": "Subdistrito",
|
|
214
|
+
"13": "RM/RIDE",
|
|
215
|
+
"14": "RIDE",
|
|
216
|
+
"15": "Aglomeração Urbana",
|
|
217
|
+
"17": "Região Geográfica Imediata",
|
|
218
|
+
"18": "Região Geográfica Intermediária",
|
|
219
|
+
"105": "Macrorregião de Saúde",
|
|
220
|
+
"106": "Região de Saúde",
|
|
221
|
+
"114": "Aglomerado Subnormal",
|
|
222
|
+
"127": "Amazônia Legal",
|
|
223
|
+
"128": "Semiárido",
|
|
224
|
+
};
|
|
225
|
+
/** All SIDRA territorial level codes, in canonical order. */
|
|
226
|
+
export const ALL_TERRITORIAL_LEVELS = Object.keys(TERRITORIAL_LEVEL_LABELS);
|
|
227
|
+
/**
|
|
228
|
+
* Builds the standardized `nivel_territorial` field description from the level
|
|
229
|
+
* codes a tool supports, e.g. ["1","2","3","6"] ->
|
|
230
|
+
* "Nível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município".
|
|
231
|
+
*/
|
|
232
|
+
export function territorialLevelHint(codes) {
|
|
233
|
+
const list = codes.map((c) => `${c}=${TERRITORIAL_LEVEL_LABELS[c] ?? c}`).join(", ");
|
|
234
|
+
return `Nível territorial (código N): ${list}`;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Builds a "código (Label)" list for error suggestions, e.g.
|
|
238
|
+
* "1 (Brasil), 2 (Região), 3 (UF), 6 (Município)".
|
|
239
|
+
*/
|
|
240
|
+
export function territorialLevelList(codes) {
|
|
241
|
+
return codes.map((c) => `${c} (${TERRITORIAL_LEVEL_LABELS[c] ?? c})`).join(", ");
|
|
242
|
+
}
|
|
188
243
|
// ============================================================================
|
|
189
244
|
// Biome Codes
|
|
190
245
|
// ============================================================================
|
|
@@ -287,6 +342,53 @@ export function getUfCode(uf) {
|
|
|
287
342
|
export function getUfSigla(code) {
|
|
288
343
|
return UF_SIGLAS[code];
|
|
289
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* Normalizes free text for matching: lowercased, trimmed, internal whitespace
|
|
347
|
+
* collapsed, and accents stripped (e.g. "São Paulo " -> "sao paulo").
|
|
348
|
+
*/
|
|
349
|
+
export function normalizeText(text) {
|
|
350
|
+
return text
|
|
351
|
+
.toLowerCase()
|
|
352
|
+
.trim()
|
|
353
|
+
.replace(/\s+/g, " ")
|
|
354
|
+
.normalize("NFD")
|
|
355
|
+
.replace(/[\u0300-\u036f]/g, "");
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Normalized state name -> sigla (e.g. "sao paulo" -> "SP").
|
|
359
|
+
*/
|
|
360
|
+
export const UF_NAME_TO_SIGLA = Object.fromEntries(Object.entries(UF_NAMES).map(([sigla, nome]) => [normalizeText(nome), sigla]));
|
|
361
|
+
/**
|
|
362
|
+
* Resolves a state (UF) from any of its three forms, interchangeably:
|
|
363
|
+
* - sigla: "SP" / "sp"
|
|
364
|
+
* - nome: "São Paulo" / "sao paulo" (accent- and case-insensitive)
|
|
365
|
+
* - código: "35" / 35
|
|
366
|
+
*
|
|
367
|
+
* Single source of truth for UF input resolution — tools should accept all
|
|
368
|
+
* three forms by routing user input through this helper. Returns null if the
|
|
369
|
+
* input matches none of them.
|
|
370
|
+
*/
|
|
371
|
+
export function resolveUf(input) {
|
|
372
|
+
const raw = String(input).trim();
|
|
373
|
+
if (!raw)
|
|
374
|
+
return null;
|
|
375
|
+
let sigla;
|
|
376
|
+
if (/^\d+$/.test(raw)) {
|
|
377
|
+
// Numeric IBGE code (e.g. "35")
|
|
378
|
+
sigla = UF_SIGLAS[parseInt(raw, 10)];
|
|
379
|
+
}
|
|
380
|
+
else if (raw.length === 2 && raw.toUpperCase() in UF_CODES) {
|
|
381
|
+
// Sigla (e.g. "SP")
|
|
382
|
+
sigla = raw.toUpperCase();
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
// State name (e.g. "São Paulo")
|
|
386
|
+
sigla = UF_NAME_TO_SIGLA[normalizeText(raw)];
|
|
387
|
+
}
|
|
388
|
+
if (!sigla)
|
|
389
|
+
return null;
|
|
390
|
+
return { code: UF_CODES[sigla], sigla, nome: UF_NAMES[sigla] };
|
|
391
|
+
}
|
|
290
392
|
/**
|
|
291
393
|
* Get region code from state abbreviation
|
|
292
394
|
*/
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,YAAY;IACZ,IAAI,EAAE;QACJ,WAAW,EAAE,qDAAqD;QAClE,KAAK,EAAE,sDAAsD;QAC7D,SAAS,EAAE,mDAAmD;QAC9D,MAAM,EAAE,gDAAgD;QACxD,QAAQ,EAAE,kDAAkD;QAC5D,SAAS,EAAE,6DAA6D;QACxE,IAAI,EAAE,8CAA8C;QACpD,UAAU,EAAE,oDAAoD;QAChE,MAAM,EAAE,gDAAgD;QACxD,SAAS,EAAE,mDAAmD;KAC/D;IACD,KAAK,EAAE,qCAAqC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -28,13 +28,14 @@ export declare const ValidationErrors: {
|
|
|
28
28
|
invalidCode: (code: string, tool: string, validFormats: string) => string;
|
|
29
29
|
notFound: (item: string, tool: string, searchTool?: string) => string;
|
|
30
30
|
emptyResult: (tool: string, suggestion?: string) => string;
|
|
31
|
+
invalidDate: (value: string, tool: string) => string;
|
|
31
32
|
invalidPeriod: (period: string, tool: string, validPeriods?: string) => string;
|
|
32
|
-
invalidTerritory: (level: string, tool: string) => string;
|
|
33
|
+
invalidTerritory: (level: string, tool: string, validLevels?: string) => string;
|
|
33
34
|
};
|
|
34
35
|
/**
|
|
35
36
|
* Timeout error handler
|
|
36
37
|
*/
|
|
37
|
-
export declare function timeoutError(tool: string, timeoutMs: number): string;
|
|
38
|
+
export declare function timeoutError(tool: string, timeoutMs: number, relatedTools?: string[]): string;
|
|
38
39
|
/**
|
|
39
40
|
* Network error handler
|
|
40
41
|
*/
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAqBpF,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAkCpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,MAAM,CAiBR;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;wBACP,MAAM,QAAQ,MAAM,gBAAgB,MAAM,KAAG,MAAM;qBAOtD,MAAM,QAAQ,MAAM,eAAe,MAAM,KAAG,MAAM;wBAS/C,MAAM,eAAe,MAAM,KAAG,MAAM;yBAOnC,MAAM,QAAQ,MAAM,KAAG,MAAM;4BAQ1B,MAAM,QAAQ,MAAM,iBAAiB,MAAM,KAAG,MAAM;8BASlD,MAAM,QAAQ,MAAM,gBAAgB,MAAM,KAAG,MAAM;CAU9E,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ7F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjD"}
|