logos-bancos-br 0.4.0 → 0.4.2

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.en.md CHANGED
@@ -34,18 +34,19 @@
34
34
  ([`data/bancos.json`](data/bancos.json)) carries the **470 institutions with a COMPE code**
35
35
  from the Central Bank STR participants list. The **643 Pix-only institutions** (fintechs,
36
36
  payment institutions, cooperative affiliates — no COMPE) live in a separate dataset
37
- ([`data/instituicoes-pix.json`](data/instituicoes-pix.json)) — the main list stays clean,
38
- and the full Pix universe is one import away.
37
+ ([`data/instituicoes-pix.json`](data/instituicoes-pix.json)), keeping the main list lean.
38
+ Both carry official names, ISPB, CNPJ (Pix-only) and Pix participation attributes.
39
39
  2. **Official logos, deduplicated.** **473 institutions with a logo** backed by **160 distinct
40
40
  files** (~1.7 MB): affiliates of single-brand cooperative systems (Sicoob, Sicredi, Cresol,
41
41
  Unicred) **share one file per system**, marked `logo.source.type: "brand"`. Own logos come
42
42
  from the public **Open Finance Brasil** directory (`openfinance`) or the **institution's own
43
43
  official website** (`direct-uri`, visually curated). Every file carries provenance: source
44
44
  URI, SHA-256 and date.
45
- 3. **Automatic updates, no manual curation.** Every Monday a GitHub Action
46
- ([`update-logos.yml`](.github/workflows/update-logos.yml)) rebuilds **both the list AND the
47
- logos** from the sources and opens a PR with the visual diff. A bank created, renamed or
48
- closed by the Central Bank? An institution rebranded? It lands in that week's update.
45
+ 3. **Automatic updates, from the Central Bank to npm.** Every Monday a GitHub Action
46
+ ([`update-logos.yml`](.github/workflows/update-logos.yml)) rebuilds the list and the logos
47
+ from the sources. **Data-only changes** (additions, renames and removals made by the Central
48
+ Bank) are validated by tests, merged and **published to npm automatically**; any **logo
49
+ change** opens a PR with the visual diff for human review before publishing.
49
50
  4. **Works in any stack.** JavaScript/TypeScript API, a ready-made React Native map, a CLI that
50
51
  copies the assets into Flutter/Kotlin/Swift/.NET/PHP projects, CDN URLs with no install — or
51
52
  just the JSON.
@@ -73,6 +74,19 @@ logos) or logos **collected from assorted websites** with no traceability. The a
73
74
  majority of accounts in Brazil). The rest are small SCDs/brokers/payment institutions — your
74
75
  app picks the fallback, and coverage grows every release.
75
76
 
77
+ ### The sources, for verification
78
+
79
+ The same public endpoints the pipeline consumes — anyone can check them:
80
+
81
+ | Source | Publisher | Provides | Link |
82
+ |---|---|---|---|
83
+ | STR participants list | Central Bank of Brazil | ISPB, COMPE code and official names (main list) | [page](https://www.bcb.gov.br/estabilidadefinanceira/participantesstr) · [CSV](https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv) |
84
+ | Active Pix participants list | Central Bank of Brazil | Pix institutions (incl. COMPE-less), CNPJ and participation attributes | [page](https://www.bcb.gov.br/estabilidadefinanceira/participantespix) (the daily CSV is linked there) |
85
+ | Participants directory | Open Finance Brasil | The logo each institution publishes, keyed by CNPJ | [public JSON](https://data.directory.openbankingbrasil.org.br/participants) |
86
+
87
+ Each logo's `logo.source.uri` in [`data/bancos.json`](data/bancos.json) points at the exact
88
+ file downloaded, with SHA-256 and date.
89
+
76
90
  ## Install & use
77
91
 
78
92
  ```bash
@@ -186,8 +200,9 @@ discovery tools (`npm run discover` / `discover:ai`) find the icon published on
186
200
  official website — nothing ships without visual curation (brand + domain reviewed); approvals
187
201
  become `forcedUris` (`source.type: "direct-uri"`). The weekly workflow regenerates
188
202
  `data/bancos.json`, `logos/`, `PREVIEW.md` and `react-native.js` and opens a PR with the report
189
- and the visual PNG diff. After review and merge, the maintainer publishes a new version to npm
190
- (GitHub Release). Nothing is edited by hand. Maintenance details:
203
+ and the visual PNG diff. Data-only diffs are tested, merged and **released to npm
204
+ automatically**; diffs touching logos wait for human visual review — and the post-merge release
205
+ is automatic either way. Nothing is edited by hand. Maintenance details:
191
206
  [CONTRIBUTING.md](CONTRIBUTING.md).
192
207
 
193
208
  ## Trademarks
package/README.md CHANGED
@@ -34,20 +34,20 @@
34
34
  principal** ([`data/bancos.json`](data/bancos.json)) traz as **470 instituições com código
35
35
  COMPE** da lista de participantes do STR do Banco Central. As **643 instituições só-Pix**
36
36
  (fintechs, IPs e cooperativas afiliadas, sem COMPE) ficam num conjunto separado
37
- ([`data/instituicoes-pix.json`](data/instituicoes-pix.json)) — a lista principal permanece
38
- limpa e quem precisa do universo completo do Pix tem tudo. Ambos com nomes oficiais, ISPB,
39
- CNPJ (só-Pix) e atributos de participação no Pix. Você nunca mais mantém uma lista de
40
- instituições no seu projeto.
37
+ ([`data/instituicoes-pix.json`](data/instituicoes-pix.json)), mantendo a lista principal
38
+ enxuta. Ambos trazem nomes oficiais, ISPB, CNPJ (só-Pix) e os atributos de participação no
39
+ Pix.
41
40
  2. **Logos oficiais, sem duplicação.** **473 instituições com logo** usando **160 arquivos
42
41
  distintos** (~1,7 MB): afiliadas de sistemas cooperativos de marca única (Sicoob, Sicredi,
43
42
  Cresol, Unicred) **compartilham um único arquivo por sistema** e são marcadas com
44
43
  `logo.source.type: "brand"`. Logos próprios vêm do diretório público do **Open Finance
45
44
  Brasil** (`openfinance`) ou do **site oficial da instituição** (`direct-uri`, com curadoria
46
45
  visual). Cada arquivo carrega proveniência: URI, SHA-256 e data.
47
- 3. **Atualização automática, sem curadoria manual.** Toda segunda-feira um GitHub Action
48
- ([`update-logos.yml`](.github/workflows/update-logos.yml)) reconstrói **a lista E os logos**
49
- a partir das fontes e abre um PR com o diff visual. Banco criado, renomeado ou extinto pelo
50
- BCB? Instituição trocou o logo? Entra na atualização da semana.
46
+ 3. **Atualização automática, do BCB ao npm.** Toda segunda-feira um GitHub Action
47
+ ([`update-logos.yml`](.github/workflows/update-logos.yml)) reconstrói a lista e os logos a
48
+ partir das fontes. Mudanças **só de dados** (inclusões, renomeações e exclusões feitas pelo
49
+ BCB) são validadas por testes, mergeadas e **publicadas no npm automaticamente**; qualquer
50
+ **troca de logo** abre um PR com o diff visual para revisão humana antes de publicar.
51
51
  4. **Uso em qualquer stack.** API JavaScript/TypeScript, mapa pronto para React Native, CLI que
52
52
  copia os assets para projetos Flutter/Kotlin/Swift/.NET/PHP, URLs de CDN sem instalar nada —
53
53
  ou só o JSON.
@@ -76,6 +76,19 @@ logos), ou logos **coletados de sites variados**, sem rastreabilidade. A abordag
76
76
  esmagadora maioria das contas do país). As demais são SCDs/corretoras/IPs pequenas; para elas
77
77
  seu app usa o fallback que preferir — e a cobertura cresce a cada release.
78
78
 
79
+ ### As fontes, para conferência
80
+
81
+ Os mesmos endereços públicos que o pipeline consome — qualquer pessoa pode verificar:
82
+
83
+ | Fonte | Publicador | O que fornece | Consulta |
84
+ |---|---|---|---|
85
+ | Lista de participantes do STR | Banco Central do Brasil | ISPB, código COMPE e nomes oficiais (lista principal) | [página](https://www.bcb.gov.br/estabilidadefinanceira/participantesstr) · [CSV](https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv) |
86
+ | Lista de participantes ativos do Pix | Banco Central do Brasil | Instituições do Pix (inclusive sem COMPE), CNPJ e atributos de participação | [página](https://www.bcb.gov.br/estabilidadefinanceira/participantespix) (o CSV diário é linkado nela) |
87
+ | Diretório de participantes | Open Finance Brasil | Logo publicado pela própria instituição, identificado por CNPJ | [JSON público](https://data.directory.openbankingbrasil.org.br/participants) |
88
+
89
+ O campo `logo.source.uri` de cada logo em [`data/bancos.json`](data/bancos.json) aponta o
90
+ arquivo exato baixado, com SHA-256 e data.
91
+
79
92
  ## Instalação e uso
80
93
 
81
94
  ```bash
@@ -253,9 +266,10 @@ Um registro de `data/bancos.json`:
253
266
  (o revisor confere marca e domínio) — aprovados viram `forcedUris`.
254
267
  6. **Normalização**: cada arte vira PNG 256×256; o SVG original é mantido quando seguro.
255
268
  7. **Cadência**: o workflow roda **toda segunda-feira** (e sob demanda), regenera
256
- `data/bancos.json`, `logos/`, `PREVIEW.md` e `react-native.js`, e **abre um PR** com o
257
- relatório e o diff visual dos PNGs. Depois da revisão e merge, o mantenedor publica uma
258
- nova versão no npm (Release no GitHub). Nada é editado à mão.
269
+ `data/bancos.json`, `logos/`, `PREVIEW.md` e `react-native.js`, e abre um PR com o
270
+ relatório e o diff visual dos PNGs. Diffs só de dados passam por testes e são **mergeados e
271
+ publicados no npm automaticamente**; diffs que alteram logos aguardam revisão visual humana
272
+ — e o release após o merge é automático. Nada é editado à mão.
259
273
 
260
274
  Detalhes de manutenção (rodar o pipeline localmente, promover sugestões, overrides, denylist):
261
275
  **[CONTRIBUTING.md](CONTRIBUTING.md)**.
package/data/bancos.json CHANGED
@@ -6305,6 +6305,21 @@
6305
6305
  "pix": null,
6306
6306
  "logo": null
6307
6307
  },
6308
+ {
6309
+ "ispb": "33630661",
6310
+ "compe": "677",
6311
+ "compe4": "0677",
6312
+ "name": "GOWD INSTITUIÇÃO DE PAGAMENTO LTDA.",
6313
+ "shortName": "GOWD IP LTDA.",
6314
+ "pix": {
6315
+ "spiParticipationType": "Direta",
6316
+ "pixParticipationType": "Facultativa",
6317
+ "modality": "Provedor de Conta Transacional",
6318
+ "institutionType": "Instituição de Pagamento",
6319
+ "authorizedByBcb": true
6320
+ },
6321
+ "logo": null
6322
+ },
6308
6323
  {
6309
6324
  "ispb": "45716916",
6310
6325
  "compe": "678",
@@ -6978,7 +6993,13 @@
6978
6993
  "compe4": "0763",
6979
6994
  "name": "VUE INSTITUIÇÃO DE PAGAMENTO S.A.",
6980
6995
  "shortName": "VUE IP S.A.",
6981
- "pix": null,
6996
+ "pix": {
6997
+ "spiParticipationType": "Direta",
6998
+ "pixParticipationType": "Facultativa",
6999
+ "modality": "Provedor de Conta Transacional",
7000
+ "institutionType": "Instituição de Pagamento",
7001
+ "authorizedByBcb": true
7002
+ },
6982
7003
  "logo": null
6983
7004
  },
6984
7005
  {
@@ -4679,8 +4679,8 @@
4679
4679
  "compe": null,
4680
4680
  "compe4": null,
4681
4681
  "cnpj": "05545390000107",
4682
- "name": "COOP SICREDI LENÇÓIS",
4683
- "shortName": "COOP SICREDI LENÇÓIS",
4682
+ "name": "COOP SICREDI LENÇÓIS MA",
4683
+ "shortName": "COOP SICREDI LENÇÓIS MA",
4684
4684
  "pix": {
4685
4685
  "spiParticipationType": "Indireta",
4686
4686
  "pixParticipationType": "Facultativa",
@@ -9044,22 +9044,6 @@
9044
9044
  },
9045
9045
  "logo": null
9046
9046
  },
9047
- {
9048
- "ispb": "33630661",
9049
- "compe": null,
9050
- "compe4": null,
9051
- "cnpj": "33630661000150",
9052
- "name": "GOWD IP LTDA.",
9053
- "shortName": "GOWD IP LTDA.",
9054
- "pix": {
9055
- "spiParticipationType": "Indireta",
9056
- "pixParticipationType": "Facultativa",
9057
- "modality": "Provedor de Conta Transacional",
9058
- "institutionType": "Instituição de Pagamento",
9059
- "authorizedByBcb": true
9060
- },
9061
- "logo": null
9062
- },
9063
9047
  {
9064
9048
  "ispb": "33641877",
9065
9049
  "compe": null,
@@ -9320,22 +9304,6 @@
9320
9304
  },
9321
9305
  "logo": null
9322
9306
  },
9323
- {
9324
- "ispb": "36741675",
9325
- "compe": null,
9326
- "compe4": null,
9327
- "cnpj": "36741675000139",
9328
- "name": "CORPAG IP",
9329
- "shortName": "CORPAG IP",
9330
- "pix": {
9331
- "spiParticipationType": "Indireta",
9332
- "pixParticipationType": "Facultativa",
9333
- "modality": "Provedor de Conta Transacional",
9334
- "institutionType": "Instituição de Pagamento",
9335
- "authorizedByBcb": false
9336
- },
9337
- "logo": null
9338
- },
9339
9307
  {
9340
9308
  "ispb": "36900256",
9341
9309
  "compe": null,
@@ -4,21 +4,21 @@
4
4
 
5
5
 
6
6
 
7
- var _chunk5XY3KHJ7cjs = require('./chunk-5XY3KHJ7.cjs');
7
+ var _chunkZKBCVFYZcjs = require('./chunk-ZKBCVFYZ.cjs');
8
8
 
9
9
  // src/node.ts
10
10
  var _fs = require('fs');
11
11
  var _path = require('path');
12
12
  var _url = require('url');
13
13
  function packagePath(relative) {
14
- return _url.fileURLToPath.call(void 0, new URL(`../${relative}`, _chunk5XY3KHJ7cjs.importMetaUrl));
14
+ return _url.fileURLToPath.call(void 0, new URL(`../${relative}`, _chunkZKBCVFYZcjs.importMetaUrl));
15
15
  }
16
16
  function logoPngPath(code) {
17
- const bank = _chunk5XY3KHJ7cjs.findBank.call(void 0, code);
17
+ const bank = _chunkZKBCVFYZcjs.findBank.call(void 0, code);
18
18
  return _optionalChain([bank, 'optionalAccess', _ => _.logo]) ? packagePath(bank.logo.png) : null;
19
19
  }
20
20
  function logoSvgPath(code) {
21
- const bank = _chunk5XY3KHJ7cjs.findBank.call(void 0, code);
21
+ const bank = _chunkZKBCVFYZcjs.findBank.call(void 0, code);
22
22
  return _optionalChain([bank, 'optionalAccess', _2 => _2.logo, 'optionalAccess', _3 => _3.svg]) ? packagePath(bank.logo.svg) : null;
23
23
  }
24
24
  function copyLogos({
@@ -30,14 +30,14 @@ function copyLogos({
30
30
  const filter = only ? new Set(
31
31
  only.map((code) => {
32
32
  const digits = String(code).replace(/\D/g, "");
33
- return digits.length > 4 ? _chunk5XY3KHJ7cjs.normalizeIspb.call(void 0, digits) : _chunk5XY3KHJ7cjs.normalizeCompe.call(void 0, digits);
33
+ return digits.length > 4 ? _chunkZKBCVFYZcjs.normalizeIspb.call(void 0, digits) : _chunkZKBCVFYZcjs.normalizeCompe.call(void 0, digits);
34
34
  })
35
35
  ) : null;
36
36
  _fs.mkdirSync.call(void 0, dest, { recursive: true });
37
37
  const copied = [];
38
38
  const skippedNoSvg = [];
39
39
  const skippedNoCompe = [];
40
- for (const bank of _chunk5XY3KHJ7cjs.allInstitutions.call(void 0, )) {
40
+ for (const bank of _chunkZKBCVFYZcjs.allInstitutions.call(void 0, )) {
41
41
  if (!bank.logo) continue;
42
42
  if (filter && !(bank.compe4 !== null && filter.has(bank.compe4)) && !filter.has(bank.ispb)) {
43
43
  continue;
@@ -6306,6 +6306,21 @@ var bancos_default = {
6306
6306
  pix: null,
6307
6307
  logo: null
6308
6308
  },
6309
+ {
6310
+ ispb: "33630661",
6311
+ compe: "677",
6312
+ compe4: "0677",
6313
+ name: "GOWD INSTITUI\xC7\xC3O DE PAGAMENTO LTDA.",
6314
+ shortName: "GOWD IP LTDA.",
6315
+ pix: {
6316
+ spiParticipationType: "Direta",
6317
+ pixParticipationType: "Facultativa",
6318
+ modality: "Provedor de Conta Transacional",
6319
+ institutionType: "Institui\xE7\xE3o de Pagamento",
6320
+ authorizedByBcb: true
6321
+ },
6322
+ logo: null
6323
+ },
6309
6324
  {
6310
6325
  ispb: "45716916",
6311
6326
  compe: "678",
@@ -6979,7 +6994,13 @@ var bancos_default = {
6979
6994
  compe4: "0763",
6980
6995
  name: "VUE INSTITUI\xC7\xC3O DE PAGAMENTO S.A.",
6981
6996
  shortName: "VUE IP S.A.",
6982
- pix: null,
6997
+ pix: {
6998
+ spiParticipationType: "Direta",
6999
+ pixParticipationType: "Facultativa",
7000
+ modality: "Provedor de Conta Transacional",
7001
+ institutionType: "Institui\xE7\xE3o de Pagamento",
7002
+ authorizedByBcb: true
7003
+ },
6983
7004
  logo: null
6984
7005
  },
6985
7006
  {
@@ -12040,8 +12061,8 @@ var instituicoes_pix_default = {
12040
12061
  compe: null,
12041
12062
  compe4: null,
12042
12063
  cnpj: "05545390000107",
12043
- name: "COOP SICREDI LEN\xC7\xD3IS",
12044
- shortName: "COOP SICREDI LEN\xC7\xD3IS",
12064
+ name: "COOP SICREDI LEN\xC7\xD3IS MA",
12065
+ shortName: "COOP SICREDI LEN\xC7\xD3IS MA",
12045
12066
  pix: {
12046
12067
  spiParticipationType: "Indireta",
12047
12068
  pixParticipationType: "Facultativa",
@@ -16405,22 +16426,6 @@ var instituicoes_pix_default = {
16405
16426
  },
16406
16427
  logo: null
16407
16428
  },
16408
- {
16409
- ispb: "33630661",
16410
- compe: null,
16411
- compe4: null,
16412
- cnpj: "33630661000150",
16413
- name: "GOWD IP LTDA.",
16414
- shortName: "GOWD IP LTDA.",
16415
- pix: {
16416
- spiParticipationType: "Indireta",
16417
- pixParticipationType: "Facultativa",
16418
- modality: "Provedor de Conta Transacional",
16419
- institutionType: "Institui\xE7\xE3o de Pagamento",
16420
- authorizedByBcb: true
16421
- },
16422
- logo: null
16423
- },
16424
16429
  {
16425
16430
  ispb: "33641877",
16426
16431
  compe: null,
@@ -16681,22 +16686,6 @@ var instituicoes_pix_default = {
16681
16686
  },
16682
16687
  logo: null
16683
16688
  },
16684
- {
16685
- ispb: "36741675",
16686
- compe: null,
16687
- compe4: null,
16688
- cnpj: "36741675000139",
16689
- name: "CORPAG IP",
16690
- shortName: "CORPAG IP",
16691
- pix: {
16692
- spiParticipationType: "Indireta",
16693
- pixParticipationType: "Facultativa",
16694
- modality: "Provedor de Conta Transacional",
16695
- institutionType: "Institui\xE7\xE3o de Pagamento",
16696
- authorizedByBcb: false
16697
- },
16698
- logo: null
16699
- },
16700
16689
  {
16701
16690
  ispb: "36900256",
16702
16691
  compe: null,
@@ -21489,7 +21478,7 @@ var instituicoes_pix_default = {
21489
21478
  // src/index.ts
21490
21479
  var data = bancos_default;
21491
21480
  var pixData = instituicoes_pix_default;
21492
- var version = "0.4.0";
21481
+ var version = "0.4.2";
21493
21482
  function normalizeCompe(code) {
21494
21483
  return String(code).replace(/\D/g, "").padStart(4, "0");
21495
21484
  }
@@ -3,7 +3,7 @@ import {
3
3
  findBank,
4
4
  normalizeCompe,
5
5
  normalizeIspb
6
- } from "./chunk-657XZKD5.js";
6
+ } from "./chunk-OTEOHFD7.js";
7
7
 
8
8
  // src/node.ts
9
9
  import { copyFileSync, existsSync, mkdirSync } from "fs";
@@ -6310,6 +6310,21 @@ var bancos_default = {
6310
6310
  pix: null,
6311
6311
  logo: null
6312
6312
  },
6313
+ {
6314
+ ispb: "33630661",
6315
+ compe: "677",
6316
+ compe4: "0677",
6317
+ name: "GOWD INSTITUI\xC7\xC3O DE PAGAMENTO LTDA.",
6318
+ shortName: "GOWD IP LTDA.",
6319
+ pix: {
6320
+ spiParticipationType: "Direta",
6321
+ pixParticipationType: "Facultativa",
6322
+ modality: "Provedor de Conta Transacional",
6323
+ institutionType: "Institui\xE7\xE3o de Pagamento",
6324
+ authorizedByBcb: true
6325
+ },
6326
+ logo: null
6327
+ },
6313
6328
  {
6314
6329
  ispb: "45716916",
6315
6330
  compe: "678",
@@ -6983,7 +6998,13 @@ var bancos_default = {
6983
6998
  compe4: "0763",
6984
6999
  name: "VUE INSTITUI\xC7\xC3O DE PAGAMENTO S.A.",
6985
7000
  shortName: "VUE IP S.A.",
6986
- pix: null,
7001
+ pix: {
7002
+ spiParticipationType: "Direta",
7003
+ pixParticipationType: "Facultativa",
7004
+ modality: "Provedor de Conta Transacional",
7005
+ institutionType: "Institui\xE7\xE3o de Pagamento",
7006
+ authorizedByBcb: true
7007
+ },
6987
7008
  logo: null
6988
7009
  },
6989
7010
  {
@@ -12044,8 +12065,8 @@ var instituicoes_pix_default = {
12044
12065
  compe: null,
12045
12066
  compe4: null,
12046
12067
  cnpj: "05545390000107",
12047
- name: "COOP SICREDI LEN\xC7\xD3IS",
12048
- shortName: "COOP SICREDI LEN\xC7\xD3IS",
12068
+ name: "COOP SICREDI LEN\xC7\xD3IS MA",
12069
+ shortName: "COOP SICREDI LEN\xC7\xD3IS MA",
12049
12070
  pix: {
12050
12071
  spiParticipationType: "Indireta",
12051
12072
  pixParticipationType: "Facultativa",
@@ -16409,22 +16430,6 @@ var instituicoes_pix_default = {
16409
16430
  },
16410
16431
  logo: null
16411
16432
  },
16412
- {
16413
- ispb: "33630661",
16414
- compe: null,
16415
- compe4: null,
16416
- cnpj: "33630661000150",
16417
- name: "GOWD IP LTDA.",
16418
- shortName: "GOWD IP LTDA.",
16419
- pix: {
16420
- spiParticipationType: "Indireta",
16421
- pixParticipationType: "Facultativa",
16422
- modality: "Provedor de Conta Transacional",
16423
- institutionType: "Institui\xE7\xE3o de Pagamento",
16424
- authorizedByBcb: true
16425
- },
16426
- logo: null
16427
- },
16428
16433
  {
16429
16434
  ispb: "33641877",
16430
16435
  compe: null,
@@ -16685,22 +16690,6 @@ var instituicoes_pix_default = {
16685
16690
  },
16686
16691
  logo: null
16687
16692
  },
16688
- {
16689
- ispb: "36741675",
16690
- compe: null,
16691
- compe4: null,
16692
- cnpj: "36741675000139",
16693
- name: "CORPAG IP",
16694
- shortName: "CORPAG IP",
16695
- pix: {
16696
- spiParticipationType: "Indireta",
16697
- pixParticipationType: "Facultativa",
16698
- modality: "Provedor de Conta Transacional",
16699
- institutionType: "Institui\xE7\xE3o de Pagamento",
16700
- authorizedByBcb: false
16701
- },
16702
- logo: null
16703
- },
16704
16693
  {
16705
16694
  ispb: "36900256",
16706
16695
  compe: null,
@@ -21493,7 +21482,7 @@ var instituicoes_pix_default = {
21493
21482
  // src/index.ts
21494
21483
  var data = bancos_default;
21495
21484
  var pixData = instituicoes_pix_default;
21496
- var version = "0.4.0";
21485
+ var version = "0.4.2";
21497
21486
  function normalizeCompe(code) {
21498
21487
  return String(code).replace(/\D/g, "").padStart(4, "0");
21499
21488
  }
package/dist/cli.cjs CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict"; function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3
3
 
4
- var _chunkM5BUFK4Xcjs = require('./chunk-M5BUFK4X.cjs');
4
+ var _chunkI2Q3NUSNcjs = require('./chunk-I2Q3NUSN.cjs');
5
5
 
6
6
 
7
7
 
8
8
 
9
- var _chunk5XY3KHJ7cjs = require('./chunk-5XY3KHJ7.cjs');
9
+ var _chunkZKBCVFYZcjs = require('./chunk-ZKBCVFYZ.cjs');
10
10
 
11
11
  // src/cli.ts
12
12
  var _util = require('util');
13
- var HELP = `logos-bancos-br v${_chunk5XY3KHJ7cjs.version} \u2014 logos e dados de bancos brasileiros (fontes oficiais)
13
+ var HELP = `logos-bancos-br v${_chunkZKBCVFYZcjs.version} \u2014 logos e dados de bancos brasileiros (fontes oficiais)
14
14
 
15
15
  Uso:
16
16
  logos-bancos-br copy --dest <dir> [--format png|svg|both] [--by compe|ispb] [--only 341,001]
@@ -49,7 +49,7 @@ switch (command) {
49
49
  }
50
50
  if (!["compe", "ispb"].includes(_nullishCoalesce(values.by, () => ( "")))) fail(`--by inv\xE1lido: ${values.by}`);
51
51
  const only = values.only ? values.only.split(",").map((token) => token.trim()).filter(Boolean) : void 0;
52
- const result = _chunkM5BUFK4Xcjs.copyLogos.call(void 0, {
52
+ const result = _chunkI2Q3NUSNcjs.copyLogos.call(void 0, {
53
53
  dest: values.dest,
54
54
  format: values.format,
55
55
  by: values.by,
@@ -74,20 +74,20 @@ switch (command) {
74
74
  options: { json: { type: "boolean" }, all: { type: "boolean" } }
75
75
  });
76
76
  if (values.json) {
77
- const payload = values.all ? { banks: _chunk5XY3KHJ7cjs.banks.call(void 0, ), pixInstitutions: _chunk5XY3KHJ7cjs.pixInstitutions.call(void 0, ) } : { banks: _chunk5XY3KHJ7cjs.banks.call(void 0, ) };
77
+ const payload = values.all ? { banks: _chunkZKBCVFYZcjs.banks.call(void 0, ), pixInstitutions: _chunkZKBCVFYZcjs.pixInstitutions.call(void 0, ) } : { banks: _chunkZKBCVFYZcjs.banks.call(void 0, ) };
78
78
  console.log(JSON.stringify(payload, null, 2));
79
79
  break;
80
80
  }
81
- for (const bank of _chunk5XY3KHJ7cjs.banks.call(void 0, )) {
81
+ for (const bank of _chunkZKBCVFYZcjs.banks.call(void 0, )) {
82
82
  const marker = bank.logo ? "\u25CF" : "\xB7";
83
83
  console.log(`${marker} ${bank.compe4} ${bank.ispb} ${bank.shortName || bank.name}`);
84
84
  }
85
- const mainWithLogo = _chunk5XY3KHJ7cjs.banks.call(void 0, ).filter((bank) => bank.logo).length;
85
+ const mainWithLogo = _chunkZKBCVFYZcjs.banks.call(void 0, ).filter((bank) => bank.logo).length;
86
86
  console.log(
87
87
  `
88
- ${_chunk5XY3KHJ7cjs.banks.call(void 0, ).length} institui\xE7\xF5es na lista principal \xB7 ${mainWithLogo} com logo (\u25CF)`
88
+ ${_chunkZKBCVFYZcjs.banks.call(void 0, ).length} institui\xE7\xF5es na lista principal \xB7 ${mainWithLogo} com logo (\u25CF)`
89
89
  );
90
- const pix = _chunk5XY3KHJ7cjs.pixInstitutions.call(void 0, );
90
+ const pix = _chunkZKBCVFYZcjs.pixInstitutions.call(void 0, );
91
91
  if (values.all) {
92
92
  console.log("\n\u2500\u2500 Institui\xE7\xF5es s\xF3-Pix (sem COMPE) \u2500\u2500");
93
93
  for (const institution of pix) {
package/dist/cli.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  copyLogos
4
- } from "./chunk-2FWFDAAY.js";
4
+ } from "./chunk-WKW5PFPH.js";
5
5
  import {
6
6
  banks,
7
7
  pixInstitutions,
8
8
  version
9
- } from "./chunk-657XZKD5.js";
9
+ } from "./chunk-OTEOHFD7.js";
10
10
 
11
11
  // src/cli.ts
12
12
  import { parseArgs } from "util";
package/dist/index.cjs CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
 
11
11
 
12
- var _chunk5XY3KHJ7cjs = require('./chunk-5XY3KHJ7.cjs');
12
+ var _chunkZKBCVFYZcjs = require('./chunk-ZKBCVFYZ.cjs');
13
13
 
14
14
 
15
15
 
@@ -21,4 +21,4 @@ var _chunk5XY3KHJ7cjs = require('./chunk-5XY3KHJ7.cjs');
21
21
 
22
22
 
23
23
 
24
- exports.allInstitutions = _chunk5XY3KHJ7cjs.allInstitutions; exports.banks = _chunk5XY3KHJ7cjs.banks; exports.byCompe = _chunk5XY3KHJ7cjs.byCompe; exports.byIspb = _chunk5XY3KHJ7cjs.byIspb; exports.findBank = _chunk5XY3KHJ7cjs.findBank; exports.logoCdnUrl = _chunk5XY3KHJ7cjs.logoCdnUrl; exports.normalizeCompe = _chunk5XY3KHJ7cjs.normalizeCompe; exports.normalizeIspb = _chunk5XY3KHJ7cjs.normalizeIspb; exports.pixInstitutions = _chunk5XY3KHJ7cjs.pixInstitutions; exports.version = _chunk5XY3KHJ7cjs.version;
24
+ exports.allInstitutions = _chunkZKBCVFYZcjs.allInstitutions; exports.banks = _chunkZKBCVFYZcjs.banks; exports.byCompe = _chunkZKBCVFYZcjs.byCompe; exports.byIspb = _chunkZKBCVFYZcjs.byIspb; exports.findBank = _chunkZKBCVFYZcjs.findBank; exports.logoCdnUrl = _chunkZKBCVFYZcjs.logoCdnUrl; exports.normalizeCompe = _chunkZKBCVFYZcjs.normalizeCompe; exports.normalizeIspb = _chunkZKBCVFYZcjs.normalizeIspb; exports.pixInstitutions = _chunkZKBCVFYZcjs.pixInstitutions; exports.version = _chunkZKBCVFYZcjs.version;
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  normalizeIspb,
10
10
  pixInstitutions,
11
11
  version
12
- } from "./chunk-657XZKD5.js";
12
+ } from "./chunk-OTEOHFD7.js";
13
13
  export {
14
14
  allInstitutions,
15
15
  banks,
package/dist/node.cjs CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkM5BUFK4Xcjs = require('./chunk-M5BUFK4X.cjs');
6
- require('./chunk-5XY3KHJ7.cjs');
5
+ var _chunkI2Q3NUSNcjs = require('./chunk-I2Q3NUSN.cjs');
6
+ require('./chunk-ZKBCVFYZ.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.copyLogos = _chunkM5BUFK4Xcjs.copyLogos; exports.logoPngPath = _chunkM5BUFK4Xcjs.logoPngPath; exports.logoSvgPath = _chunkM5BUFK4Xcjs.logoSvgPath;
11
+ exports.copyLogos = _chunkI2Q3NUSNcjs.copyLogos; exports.logoPngPath = _chunkI2Q3NUSNcjs.logoPngPath; exports.logoSvgPath = _chunkI2Q3NUSNcjs.logoSvgPath;
package/dist/node.js CHANGED
@@ -2,8 +2,8 @@ import {
2
2
  copyLogos,
3
3
  logoPngPath,
4
4
  logoSvgPath
5
- } from "./chunk-2FWFDAAY.js";
6
- import "./chunk-657XZKD5.js";
5
+ } from "./chunk-WKW5PFPH.js";
6
+ import "./chunk-OTEOHFD7.js";
7
7
  export {
8
8
  copyLogos,
9
9
  logoPngPath,
package/llms.txt CHANGED
@@ -55,5 +55,6 @@ Key facts:
55
55
 
56
56
  ## Official sources
57
57
 
58
- - [BCB STR participants CSV](https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv)
58
+ - [BCB STR participants CSV](https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv) ([page](https://www.bcb.gov.br/estabilidadefinanceira/participantesstr))
59
+ - [BCB active Pix participants page](https://www.bcb.gov.br/estabilidadefinanceira/participantespix) (daily dated CSV linked there)
59
60
  - [Open Finance Brasil participants directory](https://data.directory.openbankingbrasil.org.br/participants)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "logos-bancos-br",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Dataset + logos de instituições financeiras e de pagamento do Brasil (bancos, fintechs, IPs, cooperativas), gerados de fontes 100% oficiais: listas de participantes do STR e do Pix do Banco Central do Brasil (BCB) e o diretório de participantes do Open Finance Brasil. Atualização automática semanal e proveniência por logo. Brazilian financial institutions dataset & official logos from BCB (STR/Pix participants) + Open Finance Brasil, auto-updated weekly.",
5
5
  "keywords": [
6
6
  "bancos",
@@ -85,7 +85,7 @@
85
85
  "prepublishOnly": "npm run build"
86
86
  },
87
87
  "devDependencies": {
88
- "@anthropic-ai/sdk": "^0.112.1",
88
+ "@anthropic-ai/sdk": "^0.112.3",
89
89
  "@biomejs/biome": "^2.5.4",
90
90
  "@types/node": "^26.1.1",
91
91
  "sharp": "^0.35.3",