radar-cnpj-mcp 0.1.0 → 0.2.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 +54 -8
- package/dist/cli.js +61 -1
- package/dist/cli.js.map +1 -1
- package/dist/data/downloader.js +173 -0
- package/dist/data/downloader.js.map +1 -0
- package/dist/data/importer.js +3 -3
- package/dist/data/importer.js.map +1 -1
- package/dist/data/release.js +116 -0
- package/dist/data/release.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ direto do seu agente de IA ou do terminal.**
|
|
|
10
10
|
[](https://nodejs.org)
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
|
|
13
|
-

|
|
14
14
|
|
|
15
15
|
</div>
|
|
16
16
|
|
|
@@ -46,17 +46,14 @@ Outras ideias:
|
|
|
46
46
|
|
|
47
47
|
Requer [Node.js](https://nodejs.org) 20 ou superior.
|
|
48
48
|
|
|
49
|
-
**1. Baixe
|
|
50
|
-
[
|
|
51
|
-
**Dados › Cadastros › CNPJ** e baixe a pasta do mês mais recente (cerca de 7 GB).
|
|
52
|
-
|
|
53
|
-
**2. Importe as UFs que interessam.**
|
|
49
|
+
**1. Baixe a base das UFs que interessam.** Só as UFs pedidas, em segundos, a partir da base
|
|
50
|
+
pronta do [radar-cnpj-dados](https://github.com/wendersoon/radar-cnpj-dados):
|
|
54
51
|
|
|
55
52
|
```sh
|
|
56
|
-
npx -y radar-cnpj-mcp
|
|
53
|
+
npx -y radar-cnpj-mcp baixar --ufs SP,MG
|
|
57
54
|
```
|
|
58
55
|
|
|
59
|
-
**
|
|
56
|
+
**2. Conecte ao seu agente de IA.**
|
|
60
57
|
|
|
61
58
|
<details open>
|
|
62
59
|
<summary><b>Claude Code</b></summary>
|
|
@@ -83,6 +80,48 @@ claude mcp add radar-cnpj -- npx -y radar-cnpj-mcp
|
|
|
83
80
|
|
|
84
81
|
</details>
|
|
85
82
|
|
|
83
|
+
Pronto: peça ao agente o que procura. Para atualizar a base todo mês, rode o `baixar` de novo.
|
|
84
|
+
|
|
85
|
+
### Instalação via npm
|
|
86
|
+
|
|
87
|
+
Se preferir instalar em vez de usar o `npx`:
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
npm install -g radar-cnpj-mcp
|
|
91
|
+
radar-cnpj-mcp baixar --ufs SP,MG
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
E configure o agente com o comando instalado:
|
|
95
|
+
|
|
96
|
+
```sh
|
|
97
|
+
claude mcp add radar-cnpj -- radar-cnpj-mcp
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"mcpServers": {
|
|
103
|
+
"radar-cnpj": { "command": "radar-cnpj-mcp" }
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Para atualizar a ferramenta: `npm update -g radar-cnpj-mcp`.
|
|
109
|
+
|
|
110
|
+
<details>
|
|
111
|
+
<summary><b>Importar direto da Receita Federal</b></summary>
|
|
112
|
+
|
|
113
|
+
Para usar um mês que ainda não está no radar-cnpj-dados, baixe a pasta do mês em
|
|
114
|
+
[arquivos.receitafederal.gov.br](https://arquivos.receitafederal.gov.br/) (**Dados › Cadastros ›
|
|
115
|
+
CNPJ**, cerca de 7 GB) e importe:
|
|
116
|
+
|
|
117
|
+
```sh
|
|
118
|
+
npx -y radar-cnpj-mcp importar ~/Downloads/2026-10 --ufs SP,MG
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
A importação lê todos os arquivos da Receita, então leva alguns minutos mesmo para uma só UF.
|
|
122
|
+
|
|
123
|
+
</details>
|
|
124
|
+
|
|
86
125
|
## O que o agente ganha
|
|
87
126
|
|
|
88
127
|
| Ferramenta | O que faz |
|
|
@@ -107,11 +146,14 @@ Code, viram comandos como `/radar-cnpj:prospectar`.
|
|
|
107
146
|
|
|
108
147
|
## No terminal
|
|
109
148
|
|
|
149
|
+

|
|
150
|
+
|
|
110
151
|
```sh
|
|
111
152
|
npx radar-cnpj-mcp contar --cnae 4520-0/01 --uf SP --agrupar municipio
|
|
112
153
|
npx radar-cnpj-mcp buscar --cnae 4520-0/01 --municipio Campinas --sem-mei --limite 20
|
|
113
154
|
npx radar-cnpj-mcp buscar --cnae 4520 --municipio Campinas --csv oficinas.csv
|
|
114
155
|
npx radar-cnpj-mcp status
|
|
156
|
+
npx radar-cnpj-mcp --help
|
|
115
157
|
```
|
|
116
158
|
|
|
117
159
|
## Privacidade
|
|
@@ -131,6 +173,10 @@ npm run typecheck
|
|
|
131
173
|
npm run build
|
|
132
174
|
```
|
|
133
175
|
|
|
176
|
+
## Contribuindo
|
|
177
|
+
|
|
178
|
+
Contribuições são bem-vindas! Veja o [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
179
|
+
|
|
134
180
|
## Licença
|
|
135
181
|
|
|
136
182
|
[MIT](LICENSE). Dados: [Receita Federal do Brasil – Dados Abertos do
|
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { rm } from 'node:fs/promises';
|
|
3
4
|
import { resolve } from 'node:path';
|
|
4
5
|
import { parseArgs } from 'node:util';
|
|
5
6
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
6
7
|
import { ZodError } from 'zod';
|
|
7
8
|
import { defaultDatabasePath, defaultExportDir } from './config.js';
|
|
8
|
-
import {
|
|
9
|
+
import { Database, sqlLiteral } from './data/database.js';
|
|
10
|
+
import { downloadDataset } from './data/downloader.js';
|
|
11
|
+
import { defaultMemoryLimit, importDataset } from './data/importer.js';
|
|
9
12
|
import { LazyRepositoryProvider } from './data/provider.js';
|
|
13
|
+
import { exportRelease } from './data/release.js';
|
|
10
14
|
import { countSchema, searchSchema } from './domain/filters.js';
|
|
11
15
|
import { createServer } from './mcp/server.js';
|
|
12
16
|
import { countLines } from './output.js';
|
|
@@ -16,6 +20,8 @@ Encontre empresas por CNAE e região na base pública de CNPJ da Receita Federal
|
|
|
16
20
|
|
|
17
21
|
Uso:
|
|
18
22
|
radar-cnpj-mcp inicia o servidor MCP (stdio)
|
|
23
|
+
radar-cnpj-mcp baixar --ufs SP,MG baixa a base pronta das UFs (recomendado)
|
|
24
|
+
--mes 2026-10 mês de referência (padrão: o mais recente)
|
|
19
25
|
radar-cnpj-mcp importar <pasta> importa os ZIPs do mês baixados da Receita
|
|
20
26
|
--ufs SP,MG importa só estas UFs (recomendado)
|
|
21
27
|
--mes 2026-10 mês de referência (padrão: nome da pasta)
|
|
@@ -29,6 +35,7 @@ Uso:
|
|
|
29
35
|
--agrupar municipio uf, municipio, bairro, cnae, porte, mei, ano_abertura
|
|
30
36
|
--grupos 10 quantos grupos mostrar
|
|
31
37
|
radar-cnpj-mcp status mostra o mês e as UFs importadas
|
|
38
|
+
radar-cnpj-mcp exportar-dados <pasta> gera os arquivos do release mensal (manutenção)
|
|
32
39
|
|
|
33
40
|
Variáveis de ambiente:
|
|
34
41
|
RADAR_CNPJ_DB caminho do banco (padrão: ${defaultDatabasePath()})
|
|
@@ -47,8 +54,12 @@ async function main(argv) {
|
|
|
47
54
|
return serveMcp(databasePath);
|
|
48
55
|
case 'mcp':
|
|
49
56
|
return serveMcp(databasePath);
|
|
57
|
+
case 'baixar':
|
|
58
|
+
return runDownload(args, databasePath);
|
|
50
59
|
case 'importar':
|
|
51
60
|
return runImport(args, databasePath);
|
|
61
|
+
case 'exportar-dados':
|
|
62
|
+
return runExportRelease(args, databasePath);
|
|
52
63
|
case 'buscar':
|
|
53
64
|
return runSearch(args, databasePath);
|
|
54
65
|
case 'contar':
|
|
@@ -82,6 +93,55 @@ async function serveMcp(databasePath) {
|
|
|
82
93
|
// stdout carries the protocol; diagnostics go to stderr only.
|
|
83
94
|
console.error(`radar-cnpj-mcp ${VERSION} pronto (base: ${databasePath})`);
|
|
84
95
|
}
|
|
96
|
+
async function runDownload(args, databasePath) {
|
|
97
|
+
const { values } = parseArgs({
|
|
98
|
+
args,
|
|
99
|
+
options: { ufs: { type: 'string' }, mes: { type: 'string' }, memoria: { type: 'string' } },
|
|
100
|
+
});
|
|
101
|
+
if (!values.ufs) {
|
|
102
|
+
throw new UsageError('Informe as UFs: radar-cnpj-mcp baixar --ufs SP,MG');
|
|
103
|
+
}
|
|
104
|
+
if (values.mes && !/^\d{4}-\d{2}$/.test(values.mes)) {
|
|
105
|
+
throw new UsageError('Use --mes no formato AAAA-MM');
|
|
106
|
+
}
|
|
107
|
+
const started = Date.now();
|
|
108
|
+
const summary = await downloadDataset({
|
|
109
|
+
databasePath,
|
|
110
|
+
states: values.ufs.split(',').filter(Boolean),
|
|
111
|
+
...(values.mes ? { month: values.mes } : {}),
|
|
112
|
+
...(values.memoria ? { memoryLimit: values.memoria } : {}),
|
|
113
|
+
log: (message) => console.error(message),
|
|
114
|
+
});
|
|
115
|
+
const seconds = ((Date.now() - started) / 1000).toFixed(0);
|
|
116
|
+
const megabytes = (summary.downloadedBytes / 1024 / 1024).toFixed(0);
|
|
117
|
+
console.log(`${summary.establishments.toLocaleString('pt-BR')} estabelecimentos prontos ` +
|
|
118
|
+
`(UFs: ${summary.states.join(', ')}; mês: ${summary.referenceMonth ?? 'não informado'}; ` +
|
|
119
|
+
`${megabytes} MB baixados) em ${seconds}s.\nBase: ${summary.databasePath}`);
|
|
120
|
+
}
|
|
121
|
+
async function runExportRelease(args, databasePath) {
|
|
122
|
+
const { values, positionals } = parseArgs({
|
|
123
|
+
args,
|
|
124
|
+
allowPositionals: true,
|
|
125
|
+
options: { memoria: { type: 'string' } },
|
|
126
|
+
});
|
|
127
|
+
const [outDir] = positionals;
|
|
128
|
+
if (!outDir) {
|
|
129
|
+
throw new UsageError('Informe a pasta de saída: radar-cnpj-mcp exportar-dados <pasta>');
|
|
130
|
+
}
|
|
131
|
+
const db = await Database.open(databasePath, { readOnly: true });
|
|
132
|
+
// Spill files live next to the release folder so they never end up in it.
|
|
133
|
+
const spill = `${resolve(outDir)}.spill`;
|
|
134
|
+
try {
|
|
135
|
+
await db.run(`SET memory_limit = ${sqlLiteral(values.memoria ?? defaultMemoryLimit())}`);
|
|
136
|
+
await db.run(`SET temp_directory = ${sqlLiteral(spill)}`);
|
|
137
|
+
const { files, bytes } = await exportRelease(db, resolve(outDir), (message) => console.error(message));
|
|
138
|
+
console.log(`${files} arquivos, ${(bytes / 1024 ** 3).toFixed(2)} GB em ${resolve(outDir)}`);
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
db.close();
|
|
142
|
+
await rm(spill, { recursive: true, force: true });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
85
145
|
async function runImport(args, databasePath) {
|
|
86
146
|
const { values, positionals } = parseArgs({
|
|
87
147
|
args,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { once } from 'node:events';
|
|
3
|
+
import { createWriteStream } from 'node:fs';
|
|
4
|
+
import { mkdir, mkdtemp, readFile, rename, rm } from 'node:fs/promises';
|
|
5
|
+
import { dirname, join } from 'node:path';
|
|
6
|
+
import { Database, sqlLiteral } from './database.js';
|
|
7
|
+
import { defaultMemoryLimit, normalizeStates, removeDatabase, writeMetadata } from './importer.js';
|
|
8
|
+
import { CHECKSUMS_FILE, CNAES_FILE, DEFAULT_DATA_REPO, establishmentsFile, METADATA_FILE, MUNICIPALITIES_FILE, parseChecksums, releaseTag, } from './release.js';
|
|
9
|
+
const USER_AGENT = 'radar-cnpj-mcp';
|
|
10
|
+
const WORK_DIR_PREFIX = '.radar-download-';
|
|
11
|
+
export class DownloadError extends Error {
|
|
12
|
+
name = 'DownloadError';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Builds the local database from the ready-made Parquet files of the
|
|
16
|
+
* radar-cnpj-dados releases, downloading only the requested states. Every file
|
|
17
|
+
* is checked against SHA256SUMS, and the database is swapped in only at the end.
|
|
18
|
+
*/
|
|
19
|
+
export async function downloadDataset(options) {
|
|
20
|
+
const log = options.log ?? (() => { });
|
|
21
|
+
const states = normalizeStates(options.states);
|
|
22
|
+
if (states.length === 0) {
|
|
23
|
+
throw new DownloadError('Informe ao menos uma UF, ex.: --ufs SP');
|
|
24
|
+
}
|
|
25
|
+
const release = await fetchRelease(options);
|
|
26
|
+
const assets = new Map(release.assets.map((asset) => [asset.name, asset]));
|
|
27
|
+
const missing = states.filter((uf) => !assets.has(establishmentsFile(uf)));
|
|
28
|
+
if (missing.length > 0) {
|
|
29
|
+
const available = release.assets
|
|
30
|
+
.map((asset) => /^estabelecimentos-(.+)\.parquet$/.exec(asset.name)?.[1])
|
|
31
|
+
.filter(Boolean)
|
|
32
|
+
.join(', ');
|
|
33
|
+
throw new DownloadError(`UF ${missing.join(', ')} não existe no release ${release.tag_name}. Disponíveis: ${available}.`);
|
|
34
|
+
}
|
|
35
|
+
for (const name of [CHECKSUMS_FILE, METADATA_FILE, CNAES_FILE, MUNICIPALITIES_FILE]) {
|
|
36
|
+
if (!assets.has(name)) {
|
|
37
|
+
throw new DownloadError(`O release ${release.tag_name} não tem o arquivo ${name}.`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const tempDir = options.tempDir ?? dirname(options.databasePath);
|
|
41
|
+
await mkdir(tempDir, { recursive: true });
|
|
42
|
+
const workDir = await mkdtemp(join(tempDir, WORK_DIR_PREFIX));
|
|
43
|
+
const tempPath = `${options.databasePath}.importing`;
|
|
44
|
+
await removeDatabase(tempPath);
|
|
45
|
+
try {
|
|
46
|
+
log(`Release ${release.tag_name}`);
|
|
47
|
+
// Filled by the first download; SHA256SUMS itself is not listed in it.
|
|
48
|
+
let checksums;
|
|
49
|
+
const fetchAsset = async (name) => {
|
|
50
|
+
const asset = assets.get(name);
|
|
51
|
+
log(`Baixando ${name} (${formatBytes(asset.size)})...`);
|
|
52
|
+
const path = join(workDir, name);
|
|
53
|
+
const hash = await downloadFile(asset.browser_download_url, path);
|
|
54
|
+
if (checksums && checksums.get(name) !== hash) {
|
|
55
|
+
throw new DownloadError(`O arquivo ${name} veio corrompido (SHA-256 não confere).`);
|
|
56
|
+
}
|
|
57
|
+
return path;
|
|
58
|
+
};
|
|
59
|
+
checksums = parseChecksums(await readFile(await fetchAsset(CHECKSUMS_FILE), 'utf8'));
|
|
60
|
+
const metadata = JSON.parse(await readFile(await fetchAsset(METADATA_FILE), 'utf8'));
|
|
61
|
+
const cnaes = await fetchAsset(CNAES_FILE);
|
|
62
|
+
const municipalities = await fetchAsset(MUNICIPALITIES_FILE);
|
|
63
|
+
const establishments = [];
|
|
64
|
+
for (const uf of states) {
|
|
65
|
+
establishments.push(await fetchAsset(establishmentsFile(uf)));
|
|
66
|
+
}
|
|
67
|
+
log('Montando a base...');
|
|
68
|
+
const db = await Database.open(tempPath);
|
|
69
|
+
let total;
|
|
70
|
+
try {
|
|
71
|
+
await db.run(`SET temp_directory = ${sqlLiteral(join(workDir, 'spill'))}`);
|
|
72
|
+
await db.run(`SET memory_limit = ${sqlLiteral(options.memoryLimit ?? defaultMemoryLimit())}`);
|
|
73
|
+
total = await buildDatabase(db, { establishments, cnaes, municipalities, states });
|
|
74
|
+
await writeMetadata(db, { states, referenceMonth: metadata.mes_referencia });
|
|
75
|
+
await db.run('CHECKPOINT');
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
db.close();
|
|
79
|
+
}
|
|
80
|
+
await removeDatabase(options.databasePath);
|
|
81
|
+
await rename(tempPath, options.databasePath);
|
|
82
|
+
const downloadedBytes = [CHECKSUMS_FILE, METADATA_FILE, CNAES_FILE, MUNICIPALITIES_FILE]
|
|
83
|
+
.concat(states.map(establishmentsFile))
|
|
84
|
+
.reduce((sum, name) => sum + (assets.get(name)?.size ?? 0), 0);
|
|
85
|
+
return {
|
|
86
|
+
databasePath: options.databasePath,
|
|
87
|
+
establishments: total,
|
|
88
|
+
states,
|
|
89
|
+
referenceMonth: metadata.mes_referencia,
|
|
90
|
+
downloadedBytes,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
await removeDatabase(tempPath);
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
finally {
|
|
98
|
+
await rm(workDir, { recursive: true, force: true });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async function fetchRelease(options) {
|
|
102
|
+
const api = options.apiBaseUrl ?? 'https://api.github.com';
|
|
103
|
+
const repo = options.repo ?? DEFAULT_DATA_REPO;
|
|
104
|
+
const path = options.month ? `tags/${releaseTag(options.month)}` : 'latest';
|
|
105
|
+
const response = await fetch(`${api}/repos/${repo}/releases/${path}`, {
|
|
106
|
+
headers: { Accept: 'application/vnd.github+json', 'User-Agent': USER_AGENT },
|
|
107
|
+
});
|
|
108
|
+
if (response.status === 404) {
|
|
109
|
+
throw new DownloadError(options.month
|
|
110
|
+
? `Não há dados do mês ${options.month} em ${repo}.`
|
|
111
|
+
: `Nenhum release de dados encontrado em ${repo}.`);
|
|
112
|
+
}
|
|
113
|
+
if (!response.ok) {
|
|
114
|
+
throw new DownloadError(`Falha ao consultar ${repo}: HTTP ${response.status}.`);
|
|
115
|
+
}
|
|
116
|
+
return (await response.json());
|
|
117
|
+
}
|
|
118
|
+
/** Streams a URL to disk and returns its SHA-256. */
|
|
119
|
+
async function downloadFile(url, path) {
|
|
120
|
+
const response = await fetch(url, { headers: { 'User-Agent': USER_AGENT } });
|
|
121
|
+
if (!response.ok || !response.body) {
|
|
122
|
+
throw new DownloadError(`Falha ao baixar ${url}: HTTP ${response.status}.`);
|
|
123
|
+
}
|
|
124
|
+
const hash = createHash('sha256');
|
|
125
|
+
const out = createWriteStream(path);
|
|
126
|
+
try {
|
|
127
|
+
for await (const chunk of response.body) {
|
|
128
|
+
hash.update(chunk);
|
|
129
|
+
if (!out.write(chunk)) {
|
|
130
|
+
await once(out, 'drain');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
out.end();
|
|
136
|
+
await once(out, 'finish');
|
|
137
|
+
}
|
|
138
|
+
return hash.digest('hex');
|
|
139
|
+
}
|
|
140
|
+
async function buildDatabase(db, files) {
|
|
141
|
+
// Each state's file is already sorted by city and activity; loading them in
|
|
142
|
+
// order keeps the table clustered for fast filtering.
|
|
143
|
+
const first = files.establishments[0];
|
|
144
|
+
await db.run(`CREATE TABLE estabelecimentos AS SELECT * FROM (${normalizedSelect(first)}) LIMIT 0`);
|
|
145
|
+
for (const file of files.establishments) {
|
|
146
|
+
await db.run(`INSERT INTO estabelecimentos ${normalizedSelect(file)}`);
|
|
147
|
+
}
|
|
148
|
+
await db.run(`CREATE TABLE cnaes AS
|
|
149
|
+
SELECT codigo, descricao, strip_accents(upper(descricao)) AS descricao_norm
|
|
150
|
+
FROM read_parquet(${sqlLiteral(files.cnaes)})`);
|
|
151
|
+
await db.run(`CREATE TABLE municipios AS
|
|
152
|
+
SELECT codigo, nome, strip_accents(upper(coalesce(trim(nome), ''))) AS nome_norm, uf
|
|
153
|
+
FROM read_parquet(${sqlLiteral(files.municipalities)})
|
|
154
|
+
WHERE uf IN (${files.states.map(sqlLiteral).join(', ')})`);
|
|
155
|
+
const [row] = await db.all('SELECT count(*)::INTEGER AS total FROM estabelecimentos');
|
|
156
|
+
return row?.total ?? 0;
|
|
157
|
+
}
|
|
158
|
+
function normalizedSelect(file) {
|
|
159
|
+
return `SELECT *,
|
|
160
|
+
strip_accents(upper(coalesce(trim(bairro), ''))) AS bairro_norm,
|
|
161
|
+
strip_accents(upper(coalesce(trim(municipio), ''))) AS municipio_norm
|
|
162
|
+
FROM read_parquet(${sqlLiteral(file)})`;
|
|
163
|
+
}
|
|
164
|
+
function formatBytes(bytes) {
|
|
165
|
+
if (bytes >= 1024 ** 3) {
|
|
166
|
+
return `${(bytes / 1024 ** 3).toFixed(1).replace('.', ',')} GB`;
|
|
167
|
+
}
|
|
168
|
+
if (bytes >= 1024 ** 2) {
|
|
169
|
+
return `${(bytes / 1024 ** 2).toFixed(0)} MB`;
|
|
170
|
+
}
|
|
171
|
+
return `${Math.max(1, Math.round(bytes / 1024))} KB`;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=downloader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../src/data/downloader.ts"],"names":[],"mappings":"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"}
|
package/dist/data/importer.js
CHANGED
|
@@ -114,7 +114,7 @@ export async function discoverFiles(sourceDir) {
|
|
|
114
114
|
}
|
|
115
115
|
return files;
|
|
116
116
|
}
|
|
117
|
-
function normalizeStates(states) {
|
|
117
|
+
export function normalizeStates(states) {
|
|
118
118
|
const normalized = [...new Set(states.map((state) => state.trim().toUpperCase()))];
|
|
119
119
|
const invalid = normalized.filter((state) => !UFS.includes(state));
|
|
120
120
|
if (invalid.length > 0) {
|
|
@@ -212,7 +212,7 @@ async function buildSearchTables(db, log) {
|
|
|
212
212
|
WHERE municipio IS NOT NULL
|
|
213
213
|
`);
|
|
214
214
|
}
|
|
215
|
-
async function writeMetadata(db, metadata) {
|
|
215
|
+
export async function writeMetadata(db, metadata) {
|
|
216
216
|
await db.run('CREATE TABLE metadados (chave VARCHAR PRIMARY KEY, valor VARCHAR)');
|
|
217
217
|
const entries = [
|
|
218
218
|
['versao_esquema', SCHEMA_VERSION],
|
|
@@ -233,7 +233,7 @@ async function removeStaleWorkDirs(tempDir, log) {
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
|
-
async function removeDatabase(path) {
|
|
236
|
+
export async function removeDatabase(path) {
|
|
237
237
|
await rm(path, { force: true });
|
|
238
238
|
await rm(`${path}.wal`, { force: true });
|
|
239
239
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../src/data/importer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../src/data/importer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { createReadStream } from 'node:fs';
|
|
3
|
+
import { mkdir, readdir, rm, stat, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { sqlLiteral } from './database.js';
|
|
6
|
+
/**
|
|
7
|
+
* Format of the monthly dataset published as GitHub Release assets: one
|
|
8
|
+
* Parquet file per state plus lookup tables, metadata and checksums. The
|
|
9
|
+
* `exportar-dados` command produces it and `baixar` consumes it, so both
|
|
10
|
+
* sides share this module.
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_DATA_REPO = 'wendersoon/radar-cnpj-dados';
|
|
13
|
+
export const CHECKSUMS_FILE = 'SHA256SUMS';
|
|
14
|
+
export const METADATA_FILE = 'metadados.json';
|
|
15
|
+
export const CNAES_FILE = 'cnaes.parquet';
|
|
16
|
+
export const MUNICIPALITIES_FILE = 'municipios.parquet';
|
|
17
|
+
/** GitHub limits each release asset to 2 GiB; keep a safety margin. */
|
|
18
|
+
const MAX_ASSET_BYTES = 1.9 * 1024 ** 3;
|
|
19
|
+
export function establishmentsFile(uf) {
|
|
20
|
+
return `estabelecimentos-${uf}.parquet`;
|
|
21
|
+
}
|
|
22
|
+
/** Release tag of a reference month (AAAA-MM). */
|
|
23
|
+
export function releaseTag(month) {
|
|
24
|
+
return `dados-${month}`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Published columns. MEI contacts are always left out, and the CPF that
|
|
28
|
+
* Receita appends to sole proprietor names is removed again here as a second
|
|
29
|
+
* line of defense, in case the database came from an older import.
|
|
30
|
+
*/
|
|
31
|
+
const COLUMNS = String.raw `
|
|
32
|
+
cnpj, cnpj_basico, matriz,
|
|
33
|
+
NULLIF(regexp_replace(nome_fantasia, '\s*\d{11}$', ''), '') AS nome_fantasia,
|
|
34
|
+
situacao, data_situacao, data_abertura,
|
|
35
|
+
cnae_principal, cnae_descricao, cnaes_secundarios,
|
|
36
|
+
endereco, bairro, cep, uf, municipio_codigo, municipio,
|
|
37
|
+
CASE WHEN mei THEN NULL ELSE ddd_1 END AS ddd_1,
|
|
38
|
+
CASE WHEN mei THEN NULL ELSE telefone_1 END AS telefone_1,
|
|
39
|
+
CASE WHEN mei THEN NULL ELSE ddd_2 END AS ddd_2,
|
|
40
|
+
CASE WHEN mei THEN NULL ELSE telefone_2 END AS telefone_2,
|
|
41
|
+
CASE WHEN mei THEN NULL ELSE email END AS email,
|
|
42
|
+
NULLIF(regexp_replace(razao_social, '\s*\d{11}$', ''), '') AS razao_social,
|
|
43
|
+
natureza_juridica, capital_social, porte, simples, mei`;
|
|
44
|
+
/**
|
|
45
|
+
* Writes the release files for every state in the database into outDir.
|
|
46
|
+
* One state at a time: the table is clustered by state, so each export reads
|
|
47
|
+
* only that slice and keeps a single file open.
|
|
48
|
+
*/
|
|
49
|
+
export async function exportRelease(db, outDir, log = () => { }) {
|
|
50
|
+
await rm(outDir, { recursive: true, force: true });
|
|
51
|
+
await mkdir(outDir, { recursive: true });
|
|
52
|
+
const metadata = new Map((await db.all('SELECT chave, valor FROM metadados')).map((row) => [row.chave, row.valor]));
|
|
53
|
+
if (metadata.get('ufs')) {
|
|
54
|
+
throw new Error(`A base contém só as UFs ${metadata.get('ufs')}; o release precisa da base completa.`);
|
|
55
|
+
}
|
|
56
|
+
const states = await db.all('SELECT DISTINCT uf FROM estabelecimentos ORDER BY uf NULLS LAST');
|
|
57
|
+
for (const { uf } of states) {
|
|
58
|
+
const name = establishmentsFile(uf ?? 'SEM-UF');
|
|
59
|
+
log(`Exportando ${name}...`);
|
|
60
|
+
await db.run(`COPY (SELECT ${COLUMNS} FROM estabelecimentos WHERE uf IS NOT DISTINCT FROM $1)
|
|
61
|
+
TO ${sqlLiteral(join(outDir, name))} (FORMAT parquet, COMPRESSION zstd)`, [uf]);
|
|
62
|
+
}
|
|
63
|
+
log('Exportando CNAEs e municípios...');
|
|
64
|
+
await db.run(`COPY (SELECT codigo, descricao FROM cnaes ORDER BY codigo)
|
|
65
|
+
TO ${sqlLiteral(join(outDir, CNAES_FILE))} (FORMAT parquet, COMPRESSION zstd)`);
|
|
66
|
+
await db.run(`COPY (SELECT codigo, nome, uf FROM municipios ORDER BY uf, nome)
|
|
67
|
+
TO ${sqlLiteral(join(outDir, MUNICIPALITIES_FILE))} (FORMAT parquet, COMPRESSION zstd)`);
|
|
68
|
+
const perState = await db.all(`SELECT uf, count(*)::INTEGER AS estabelecimentos, count_if(situacao = '02')::INTEGER AS ativos
|
|
69
|
+
FROM estabelecimentos GROUP BY uf ORDER BY uf`);
|
|
70
|
+
const releaseMetadata = {
|
|
71
|
+
mes_referencia: metadata.get('mes_referencia') ?? null,
|
|
72
|
+
gerado_em: new Date().toISOString(),
|
|
73
|
+
fonte: 'Receita Federal do Brasil - Dados Abertos do CNPJ',
|
|
74
|
+
versao_esquema: metadata.get('versao_esquema') ?? null,
|
|
75
|
+
tratamento_lgpd: [
|
|
76
|
+
'CPF removido do nome de empresários individuais',
|
|
77
|
+
'telefone e e-mail de MEIs omitidos',
|
|
78
|
+
],
|
|
79
|
+
ufs: perState,
|
|
80
|
+
};
|
|
81
|
+
await writeFile(join(outDir, METADATA_FILE), `${JSON.stringify(releaseMetadata, null, 2)}\n`);
|
|
82
|
+
log('Calculando hashes...');
|
|
83
|
+
const lines = [];
|
|
84
|
+
let bytes = 0;
|
|
85
|
+
for (const name of (await readdir(outDir)).sort()) {
|
|
86
|
+
const { size } = await stat(join(outDir, name));
|
|
87
|
+
if (size > MAX_ASSET_BYTES) {
|
|
88
|
+
throw new Error(`${name} tem ${(size / 1024 ** 3).toFixed(2)} GB, acima do limite do GitHub.`);
|
|
89
|
+
}
|
|
90
|
+
bytes += size;
|
|
91
|
+
lines.push(`${await sha256File(join(outDir, name))} ${name}`);
|
|
92
|
+
}
|
|
93
|
+
await writeFile(join(outDir, CHECKSUMS_FILE), `${lines.join('\n')}\n`);
|
|
94
|
+
return { files: lines.length + 1, bytes };
|
|
95
|
+
}
|
|
96
|
+
/** Parses a `sha256sum`-style file into a map of file name to hash. */
|
|
97
|
+
export function parseChecksums(text) {
|
|
98
|
+
const sums = new Map();
|
|
99
|
+
for (const line of text.split('\n')) {
|
|
100
|
+
const match = /^([0-9a-f]{64})\s+\*?(.+)$/.exec(line.trim());
|
|
101
|
+
if (match?.[1] && match[2]) {
|
|
102
|
+
sums.set(match[2], match[1]);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return sums;
|
|
106
|
+
}
|
|
107
|
+
export function sha256File(path) {
|
|
108
|
+
return new Promise((resolve, reject) => {
|
|
109
|
+
const hash = createHash('sha256');
|
|
110
|
+
createReadStream(path)
|
|
111
|
+
.on('data', (chunk) => hash.update(chunk))
|
|
112
|
+
.on('end', () => resolve(hash.digest('hex')))
|
|
113
|
+
.on('error', reject);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/data/release.ts"],"names":[],"mappings":"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"}
|