{"_id":"@brasil-fiscal/core","_rev":"7-57dc5edc4a881e51eb5373c9eac1508e","name":"@brasil-fiscal/core","dist-tags":{"latest":"1.6.0"},"versions":{"1.0.0":{"name":"@brasil-fiscal/core","version":"1.0.0","keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"author":{"url":"https://raphaelvserafim.com/","name":"Raphael Serafim"},"license":"MIT","_id":"@brasil-fiscal/core@1.0.0","maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"homepage":"https://github.com/brasil-fiscal/core#readme","bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"dist":{"shasum":"336d9c7435153315473b066844e85279715ccd18","tarball":"https://registry.npmjs.org/@brasil-fiscal/core/-/core-1.0.0.tgz","fileCount":99,"integrity":"sha512-FdfciYix0WatJ68E86QhsW2p0sCQ+csaoPVDDL3fgdA9jJE8N7U7b1vd3HnNRdvlD9MB6EXctju5wgn5PKGlmQ==","signatures":[{"sig":"MEQCIH0ap5ICMPBEBkURbUZSbzm4LVMgSXtvDjCYfwwN27DhAiA6t/eY/Ok9XI24TRafQbKwOrs8ALskMlohp0JKEq/SVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81374},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a4fb659a35dd40510c8341a395956c5a3224bac8","scripts":{"lint":"eslint .","test":"tsx --test tests/**/*.spec.ts","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","format":"prettier --write .","publish:all":"npm run publish:npm && npm run publish:github","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com"},"_npmUser":{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"},"repository":{"url":"git+https://github.com/brasil-fiscal/core.git","type":"git"},"_npmVersion":"11.5.2","description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","directories":{},"_nodeVersion":"24.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.2.1","prettier":"^3.8.3","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.58.2","@typescript-eslint/eslint-plugin":"^8.58.2"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0_1777599193902_0.942989050619863","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@brasil-fiscal/core","version":"1.1.0","keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"author":{"url":"https://raphaelvserafim.com/","name":"Raphael Serafim"},"license":"MIT","_id":"@brasil-fiscal/core@1.1.0","maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"homepage":"https://github.com/brasil-fiscal/core#readme","bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"dist":{"shasum":"41a8a8455dd8c99d37b80964bcb94a44f72b8a44","tarball":"https://registry.npmjs.org/@brasil-fiscal/core/-/core-1.1.0.tgz","fileCount":99,"integrity":"sha512-goUyf6AXzIECuShDA7dJ8h0u+bD8uzgT5Y6AwJKUX0i6ogy+AhlsD6cddcGxcMDdfITEuOvhgqB0u+yd2KROrg==","signatures":[{"sig":"MEQCIEwY2Flq9jiijKQ70wVgtYzDe3B8/1FrnWfTX6rpi7RPAiB0C3nBBZiCCk0uWA1AJE9PYDatic2IPMgmxYG7es4BAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82048},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"41ff8f800e46022823f356529831153fa1cb1b8c","scripts":{"lint":"eslint .","test":"tsx --test tests/**/*.spec.ts","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","format":"prettier --write .","publish:all":"npm run publish:npm && npm run publish:github","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com"},"_npmUser":{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"},"repository":{"url":"git+https://github.com/brasil-fiscal/core.git","type":"git"},"_npmVersion":"11.5.2","description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","directories":{},"_nodeVersion":"24.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.2.1","prettier":"^3.8.3","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.58.2","@typescript-eslint/eslint-plugin":"^8.58.2"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.0_1777665201581_0.9284090276466768","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@brasil-fiscal/core","version":"1.2.0","keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"author":{"url":"https://raphaelvserafim.com/","name":"Raphael Serafim"},"license":"MIT","_id":"@brasil-fiscal/core@1.2.0","maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"homepage":"https://github.com/brasil-fiscal/core#readme","bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"dist":{"shasum":"4c8c63cd6e21f6f777ba2af3f9abfe58e2613da5","tarball":"https://registry.npmjs.org/@brasil-fiscal/core/-/core-1.2.0.tgz","fileCount":99,"integrity":"sha512-1qV52hM7Sek7j4Iy35yvorOo9PIV2pMaYukfcx8wAOnG1OalzpMTe/pJP5GT6erEnmhwKAt5b0oE9e7EpZLaUQ==","signatures":[{"sig":"MEYCIQDVekcBMdebzhx+8yqmbi5RnM+YJqhFsfEjW5RHhWhA1gIhANnTS9tnuINVL+Jdz0VRE23BevwlG1Vo3/HiLkUUcZ6C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81988},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7cf08f3057e44b614d715615d3b4e82307c43ddd","scripts":{"lint":"eslint .","test":"tsx --test tests/**/*.spec.ts","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","format":"prettier --write .","publish:all":"npm run publish:npm && npm run publish:github","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com"},"_npmUser":{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"},"repository":{"url":"git+https://github.com/brasil-fiscal/core.git","type":"git"},"_npmVersion":"11.5.2","description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","directories":{},"_nodeVersion":"24.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.2.1","prettier":"^3.8.3","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.58.2","@typescript-eslint/eslint-plugin":"^8.58.2"},"_npmOperationalInternal":{"tmp":"tmp/core_1.2.0_1777665814899_0.46355514364022654","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@brasil-fiscal/core","version":"1.3.0","keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"author":{"url":"https://raphaelvserafim.com/","name":"Raphael Serafim"},"license":"MIT","_id":"@brasil-fiscal/core@1.3.0","maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"homepage":"https://github.com/brasil-fiscal/core#readme","bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"dist":{"shasum":"3b31e82aa6bc89424518af297a58fdfc05315862","tarball":"https://registry.npmjs.org/@brasil-fiscal/core/-/core-1.3.0.tgz","fileCount":99,"integrity":"sha512-8UF+mZWlbndq9f4vV2MOkhqFRBFcOrcnMy8B5aZzyUF6wqQIsLIABmFyowyJQg2TbBDmvn05t0G2EOV9l6Jl4w==","signatures":[{"sig":"MEQCICInTcsqU+PkD/qnzDb/gYbRjfbeT4LCFH1EPB1+BI3FAiBC/76RFUQ34vgl1Vnga/N/GWt+ERKTGt1fvEBQ/Il0RA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82243},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d5622465f8233641361818acdc3923a2cedffc9e","scripts":{"lint":"eslint .","test":"tsx --test tests/**/*.spec.ts","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","format":"prettier --write .","publish:all":"npm run publish:npm && npm run publish:github","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com"},"_npmUser":{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"},"repository":{"url":"git+https://github.com/brasil-fiscal/core.git","type":"git"},"_npmVersion":"11.5.2","description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","directories":{},"_nodeVersion":"24.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.2.1","prettier":"^3.8.3","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.58.2","@typescript-eslint/eslint-plugin":"^8.58.2"},"_npmOperationalInternal":{"tmp":"tmp/core_1.3.0_1777667685727_0.0018390108326777899","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@brasil-fiscal/core","version":"1.4.0","keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"author":{"url":"https://raphaelvserafim.com/","name":"Raphael Serafim"},"license":"MIT","_id":"@brasil-fiscal/core@1.4.0","maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"homepage":"https://github.com/brasil-fiscal/core#readme","bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"dist":{"shasum":"f908a8dac66c4dd901981f4538532ecf7f029aef","tarball":"https://registry.npmjs.org/@brasil-fiscal/core/-/core-1.4.0.tgz","fileCount":99,"integrity":"sha512-cMypDYEcLDmhLN/Mt9HW8UaHuY7BQqARLomFASe5NPzvhq3J5aFQdPwH/Unwr7pr57IkS0DbJgI/3p0ehJawBg==","signatures":[{"sig":"MEYCIQCtcjdBuqJiwNMJO3RX6OiGV/ySJ3Zy/4Tz3Itj1gSf5wIhAPirdcFhgslaxoWrnMCEhzDZ9wcEDUJbCHKf2vfW2IN2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82243},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a5063a5376fcfe12c80dbed72f2cb5a1f40789c1","scripts":{"lint":"eslint .","test":"tsx --test tests/**/*.spec.ts","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","format":"prettier --write .","publish:all":"npm run publish:npm && npm run publish:github","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com"},"_npmUser":{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"},"repository":{"url":"git+https://github.com/brasil-fiscal/core.git","type":"git"},"_npmVersion":"11.5.2","description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","directories":{},"_nodeVersion":"24.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.2.1","prettier":"^3.8.3","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.58.2","@typescript-eslint/eslint-plugin":"^8.58.2"},"_npmOperationalInternal":{"tmp":"tmp/core_1.4.0_1777696116599_0.8842242414785277","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@brasil-fiscal/core","version":"1.5.0","keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"author":{"url":"https://raphaelvserafim.com/","name":"Raphael Serafim"},"license":"MIT","_id":"@brasil-fiscal/core@1.5.0","maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"homepage":"https://github.com/brasil-fiscal/core#readme","bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"dist":{"shasum":"ed295e9ad231831ae69b62332d529f8bed96a6e4","tarball":"https://registry.npmjs.org/@brasil-fiscal/core/-/core-1.5.0.tgz","fileCount":99,"integrity":"sha512-GbqNKxkk+OkwpRhKMmM8zlQNF8gETu4BB8FqeEu0Wooe08PCrWZPvXsLx/R3ZKDPzPyQ1+/EA/gh7ifER6APyg==","signatures":[{"sig":"MEQCICLY2needtTyA5XjNm0dKssdzYcAQubcEP+gpEOTM9EtAiBqfoY8OvJ9b29oB6eREeOzYQx8x9AQalipHMPociLYNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83606},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d8f6c37b082ebbcf970eb790754bbef2d460d32f","scripts":{"lint":"eslint .","test":"tsx --test tests/**/*.spec.ts","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","format":"prettier --write .","publish:all":"npm run publish:npm && npm run publish:github","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com"},"_npmUser":{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"},"repository":{"url":"git+https://github.com/brasil-fiscal/core.git","type":"git"},"_npmVersion":"11.5.2","description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","directories":{},"_nodeVersion":"24.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.2.1","prettier":"^3.8.3","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.58.2","@typescript-eslint/eslint-plugin":"^8.58.2"},"_npmOperationalInternal":{"tmp":"tmp/core_1.5.0_1777696615883_0.10618136635167152","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@brasil-fiscal/core","version":"1.6.0","description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","lint":"eslint .","format":"prettier --write .","test":"tsx --test tests/**/*.spec.ts","prepublishOnly":"npm run build","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","publish:github":"npm publish --registry=https://npm.pkg.github.com","publish:all":"npm run publish:npm && npm run publish:github"},"keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"author":{"name":"Raphael Serafim","url":"https://raphaelvserafim.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/brasil-fiscal/core.git"},"bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"homepage":"https://github.com/brasil-fiscal/core#readme","engines":{"node":">=18.0.0"},"type":"commonjs","devDependencies":{"@types/node":"^25.6.0","@typescript-eslint/eslint-plugin":"^8.58.2","@typescript-eslint/parser":"^8.58.2","eslint":"^10.2.1","eslint-config-prettier":"^10.1.8","prettier":"^3.8.3","tsc-alias":"^1.8.16","tsx":"^4.21.0","typescript":"^6.0.3"},"dependencies":{},"_id":"@brasil-fiscal/core@1.6.0","gitHead":"400283d0fe28ad8d38e69e6e5a653b1affd2f137","_nodeVersion":"24.5.0","_npmVersion":"11.5.2","dist":{"integrity":"sha512-LG337i0pgtZegqdRlXjW70kczvoBmV8RN/Xj3M9ObGrRkPBULvP8+tJH9ucwY1ywY7iciBrIExve3ykpCS1cnw==","shasum":"5a333d91f952923775b9f3241787e653c7d81f94","tarball":"https://registry.npmjs.org/@brasil-fiscal/core/-/core-1.6.0.tgz","fileCount":99,"unpackedSize":84674,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBisqDM218GVcN3ylm/eLRWIP/2KBpahxnU95pO9+eMqAiALZgh/dhc1bs4gE58D+ONJDnwKAKVxvdthxkv0QuVZjA=="}]},"_npmUser":{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"},"directories":{},"maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.6.0_1777699403477_0.4256512349109358"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-01T01:33:13.817Z","modified":"2026-05-02T05:23:23.802Z","1.0.0":"2026-05-01T01:33:14.050Z","1.1.0":"2026-05-01T19:53:21.726Z","1.2.0":"2026-05-01T20:03:35.036Z","1.3.0":"2026-05-01T20:34:45.886Z","1.4.0":"2026-05-02T04:28:36.756Z","1.5.0":"2026-05-02T04:36:56.037Z","1.6.0":"2026-05-02T05:23:23.659Z"},"bugs":{"url":"https://github.com/brasil-fiscal/core/issues"},"author":{"name":"Raphael Serafim","url":"https://raphaelvserafim.com/"},"license":"MIT","homepage":"https://github.com/brasil-fiscal/core#readme","keywords":["fiscal","brasil","nfe","cte","mdfe","sefaz","certificado-digital","xml","typescript"],"repository":{"type":"git","url":"git+https://github.com/brasil-fiscal/core.git"},"description":"Infraestrutura compartilhada para documentos fiscais eletronicos brasileiros (NFe, CTe, MDFe). Certificado digital, assinatura XML, transporte mTLS, helpers.","maintainers":[{"name":"raphaelvserafim","email":"raphaelvserafim@gmail.com"}],"readme":"# @brasil-fiscal/core\n\nInfraestrutura compartilhada para documentos fiscais eletronicos brasileiros. Certificado digital, assinatura XML, transporte mTLS, helpers e constantes — tudo que NFe, CTe e MDFe tem em comum.\n\n## Para que serve?\n\nEste pacote eh a base dos projetos `@brasil-fiscal/*`. Ele contem a logica que eh **identica** entre NFe, CTe e MDFe:\n\n- Carregar certificado digital A1 (.pfx/.p12)\n- Assinar XML com XMLDSig (RSA-SHA1)\n- Comunicar com a SEFAZ via HTTPS com mTLS\n- Canonicalizacao C14N de XML\n- Gerar chave de acesso (44 digitos)\n- Validar CNPJ e CPF\n- Codigos IBGE das UFs\n- Classes de erro base\n\n**Voce provavelmente nao precisa instalar este pacote diretamente.** Ele eh uma dependencia dos pacotes de documento fiscal:\n\n| Pacote | Documento |\n|--------|-----------|\n| [`@brasil-fiscal/nfe`](https://github.com/brasil-fiscal/nfe) | NFe / NFC-e (Nota Fiscal Eletronica) |\n| [`@brasil-fiscal/cte`](https://github.com/brasil-fiscal/cte) | CTe (Conhecimento de Transporte) |\n| [`@brasil-fiscal/mdfe`](https://github.com/brasil-fiscal/mdfe) | MDFe (Manifesto de Documentos Fiscais) |\n\n## Instalacao\n\nSe voce esta construindo um pacote que depende do core:\n\n```bash\nnpm install @brasil-fiscal/core\n```\n\n## API\n\n### Certificado Digital\n\n```typescript\nimport { A1CertificateProvider } from '@brasil-fiscal/core';\n\nconst provider = new A1CertificateProvider(pfxBuffer, 'senha');\nconst cert = await provider.load();\n// cert.privateKey, cert.certPem, cert.pfx, cert.password, cert.notAfter\n```\n\n### Assinatura XML\n\n```typescript\nimport { DefaultXmlSigner } from '@brasil-fiscal/core';\n\nconst signer = new DefaultXmlSigner();\nconst xmlAssinado = signer.sign(xml, certificateData);\n```\n\nO signer detecta automaticamente o tipo de documento (`infNFe`, `infCte`, `infMDFe`, `infEvento`, `infInut`) e assina corretamente.\n\n### Transporte mTLS\n\n```typescript\nimport { NodeHttpSefazTransport } from '@brasil-fiscal/core';\n\nconst transport = new NodeHttpSefazTransport({ timeout: 30000 });\nconst response = await transport.send({\n  url: 'https://nfe.sefaz.mt.gov.br/...',\n  soapAction: '...',\n  xml: envelopeXml,\n  pfx: cert.pfx,\n  password: cert.password\n});\n```\n\n### Helpers XML\n\n```typescript\nimport { tag, tagGroup, formatDate, escapeXml, padLeft } from '@brasil-fiscal/core';\n\ntag('CNPJ', '12345678000195');           // <CNPJ>12345678000195</CNPJ>\ntag('xNome', undefined);                  // '' (omite tags vazias)\ntagGroup('emit', tag('CNPJ', '123'));     // <emit><CNPJ>123</CNPJ></emit>\nformatDate(new Date(), '-03:00');         // '2024-04-28T10:00:00-03:00'\n```\n\n### SOAP\n\n```typescript\nimport { extractSoapBody, extractTag } from '@brasil-fiscal/core';\n\nconst body = extractSoapBody(soapResponseXml);  // conteudo dentro de <soap:Body>\nconst cStat = extractTag(body, 'cStat');         // conteudo de <cStat>\n```\n\n### Chave de Acesso\n\n```typescript\nimport { generateAccessKey, generateNumericCode } from '@brasil-fiscal/core';\n\nconst chave = generateAccessKey({\n  uf: '51',\n  dataEmissao: new Date(),\n  cnpj: '12345678000195',\n  modelo: '55',     // 55=NFe, 57=CTe, 58=MDFe, 65=NFCe\n  serie: 1,\n  numero: 1,\n  tipoEmissao: 1,\n  codigoNumerico: generateNumericCode()\n});\n// 44 digitos com digito verificador\n```\n\n### Validacao de Documentos\n\n```typescript\nimport { isValidCnpj, isValidCpf, formatCnpj, formatCpf } from '@brasil-fiscal/core';\n\nisValidCnpj('11222333000181');  // true\nisValidCpf('52998224725');      // true\nformatCnpj('11222333000181');   // '11.222.333/0001-81'\nformatCpf('52998224725');       // '529.982.247-25'\n```\n\n### Constantes\n\n```typescript\nimport { UF_CODES } from '@brasil-fiscal/core';\n\nUF_CODES['MT'];  // '51'\nUF_CODES['SP'];  // '35'\n```\n\n### Erros\n\n```typescript\nimport { DFeError, CertificateError, SefazRejectError } from '@brasil-fiscal/core';\n\n// DFeError — erro base de todos os documentos fiscais\n// CertificateError — falha no certificado digital\n// SefazRejectError — SEFAZ rejeitou o documento (cStat + xMotivo)\n// SchemaValidationError — XML invalido contra XSD\n```\n\n## Contratos (Interfaces)\n\nO core define contratos que podem ser implementados por qualquer pacote:\n\n| Contrato | Responsabilidade | Implementacao padrao |\n|----------|-----------------|---------------------|\n| `CertificateProvider` | Carregar certificados digitais | `A1CertificateProvider` |\n| `SefazTransport` | Comunicacao HTTP com a SEFAZ | `NodeHttpSefazTransport` |\n| `XmlSigner` | Assinar XML com certificado | `DefaultXmlSigner` |\n| `SchemaValidator` | Validar XML contra XSD | (implementado em cada pacote) |\n\n### Criando um provider customizado\n\n```typescript\nimport type { CertificateProvider, CertificateData } from '@brasil-fiscal/core';\n\nexport class MyCertificateProvider implements CertificateProvider {\n  async load(): Promise<CertificateData> {\n    // Sua logica (vault, HSM, banco de dados, etc.)\n    return { pfx, password, notAfter, privateKey, certPem };\n  }\n}\n```\n\n## Arquitetura\n\n```\nsrc/\n  contracts/        Interfaces (CertificateProvider, SefazTransport, XmlSigner, SchemaValidator)\n  infra/\n    certificate/    A1CertificateProvider (carrega .pfx/.p12 via openssl)\n    xml/            DefaultXmlSigner, canonicalize (C14N), xml-helper (tag, escapeXml)\n    transport/      NodeHttpSefazTransport (mTLS), soap-helper (extractSoapBody)\n  shared/\n    errors/         DFeError, CertificateError, SefazRejectError, SchemaValidationError\n    helpers/        CNPJ, CPF, mod11, access-key\n    constants/      UF_CODES (codigos IBGE)\n```\n\n### Principios\n\n- **Zero dependencias em runtime** — apenas `node:crypto`, `node:https`, `node:child_process`\n- **Contratos primeiro** — toda integracao externa eh uma interface\n- **Falhar rapido** — erros claros com classes tipadas\n- **DI manual** — sem containers, providers injetados via construtores\n\n## Requisitos\n\n- Node.js >= 18\n- OpenSSL instalado (para carregar certificados A1)\n\n## Desenvolvimento\n\n```bash\ngit clone https://github.com/brasil-fiscal/core.git\ncd core\nnpm install\nnpm run build\nnpm test\n```\n\n## Contribuindo\n\nContribuicoes sao bem-vindas! Veja [CONTRIBUTING.md](CONTRIBUTING.md).\n\n### Code Style\n\n- TypeScript strict mode, return types explicitos\n- Single quotes, semicolons, sem trailing commas, 100 chars por linha\n- Path alias: `@core/*` mapeia para `src/*`\n- Interfaces sem prefixo `I` (`CertificateProvider`, nao `ICertificateProvider`)\n\n## Ecossistema @brasil-fiscal\n\n| Pacote | Status | Descricao |\n|--------|--------|-----------|\n| **@brasil-fiscal/core** | Estavel | Infraestrutura compartilhada (este pacote) |\n| [@brasil-fiscal/nfe](https://github.com/brasil-fiscal/nfe) | Estavel | NFe e NFC-e |\n| [@brasil-fiscal/cte](https://github.com/brasil-fiscal/cte) | Em desenvolvimento | CTe |\n| [@brasil-fiscal/mdfe](https://github.com/brasil-fiscal/mdfe) | Em desenvolvimento | MDFe |\n| [@brasil-fiscal/sped-fiscal](https://github.com/brasil-fiscal/sped-fiscal) | Em desenvolvimento | EFD ICMS/IPI (SPED Fiscal) |\n| [@brasil-fiscal/sped-contribuicoes](https://github.com/brasil-fiscal/sped-contribuicoes) | Em desenvolvimento | EFD Contribuicoes (PIS/COFINS) |\n| [@brasil-fiscal/sintegra](https://github.com/brasil-fiscal/sintegra) | Em desenvolvimento | SINTEGRA |\n\n## Licenca\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}