@baruk/core 0.4.2 → 0.5.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/.baruk-provenance.json +4 -4
- package/CHANGELOG.md +42 -0
- package/dist/audit/repository.d.ts +33 -1
- package/dist/audit/repository.d.ts.map +1 -1
- package/dist/audit/repository.js +41 -7
- package/dist/audit/repository.js.map +1 -1
- package/dist/auth/service.d.ts +21 -0
- package/dist/auth/service.d.ts.map +1 -1
- package/dist/auth/service.js +46 -1
- package/dist/auth/service.js.map +1 -1
- package/dist/billing/ar-repository.d.ts +41 -1
- package/dist/billing/ar-repository.d.ts.map +1 -1
- package/dist/billing/ar-repository.js +82 -6
- package/dist/billing/ar-repository.js.map +1 -1
- package/dist/billing/provider-account.d.ts +38 -0
- package/dist/billing/provider-account.d.ts.map +1 -1
- package/dist/billing/provider-account.js +58 -2
- package/dist/billing/provider-account.js.map +1 -1
- package/dist/billing/repository.d.ts +44 -0
- package/dist/billing/repository.d.ts.map +1 -1
- package/dist/billing/repository.js +49 -5
- package/dist/billing/repository.js.map +1 -1
- package/dist/cjs/audit/repository.js +41 -7
- package/dist/cjs/audit/repository.js.map +1 -1
- package/dist/cjs/auth/service.js +46 -1
- package/dist/cjs/auth/service.js.map +1 -1
- package/dist/cjs/billing/ar-repository.js +82 -6
- package/dist/cjs/billing/ar-repository.js.map +1 -1
- package/dist/cjs/billing/provider-account.js +60 -1
- package/dist/cjs/billing/provider-account.js.map +1 -1
- package/dist/cjs/billing/repository.js +51 -5
- package/dist/cjs/billing/repository.js.map +1 -1
- package/dist/cjs/clients/ibge.js +103 -0
- package/dist/cjs/clients/ibge.js.map +1 -0
- package/dist/cjs/clients/repository.js +186 -9
- package/dist/cjs/clients/repository.js.map +1 -1
- package/dist/cjs/collection/branding.js +190 -0
- package/dist/cjs/collection/branding.js.map +1 -1
- package/dist/cjs/collection/clearance-store.js +74 -0
- package/dist/cjs/collection/clearance-store.js.map +1 -0
- package/dist/cjs/collection/communication-runtime.js +65 -2
- package/dist/cjs/collection/communication-runtime.js.map +1 -1
- package/dist/cjs/collection/engine.js +20 -0
- package/dist/cjs/collection/engine.js.map +1 -1
- package/dist/cjs/collection/policy.js +29 -1
- package/dist/cjs/collection/policy.js.map +1 -1
- package/dist/cjs/communication/clearance.js +18 -0
- package/dist/cjs/communication/clearance.js.map +1 -0
- package/dist/cjs/communication/dry-run-scenario.js +5 -0
- package/dist/cjs/communication/dry-run-scenario.js.map +1 -1
- package/dist/cjs/communication/engine.js +12 -0
- package/dist/cjs/communication/engine.js.map +1 -1
- package/dist/cjs/communication/policy.js.map +1 -1
- package/dist/cjs/competence/business-days.js +155 -0
- package/dist/cjs/competence/business-days.js.map +1 -0
- package/dist/cjs/competence/catalog-validation.js +174 -0
- package/dist/cjs/competence/catalog-validation.js.map +1 -0
- package/dist/cjs/competence/obligation-preview.js +190 -0
- package/dist/cjs/competence/obligation-preview.js.map +1 -0
- package/dist/cjs/competence/repository.js +330 -17
- package/dist/cjs/competence/repository.js.map +1 -1
- package/dist/cjs/dashboard/pilot-panel.js +90 -0
- package/dist/cjs/dashboard/pilot-panel.js.map +1 -0
- package/dist/cjs/dashboard/repository.js +11 -1
- package/dist/cjs/dashboard/repository.js.map +1 -1
- package/dist/cjs/db/client.js +17 -11
- package/dist/cjs/db/client.js.map +1 -1
- package/dist/cjs/db/provision-e2e-identity.js +111 -0
- package/dist/cjs/db/provision-e2e-identity.js.map +1 -0
- package/dist/cjs/fiscal/applicability.js +164 -0
- package/dist/cjs/fiscal/applicability.js.map +1 -0
- package/dist/cjs/fiscal/conditions.js +198 -0
- package/dist/cjs/fiscal/conditions.js.map +1 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-contract.js +390 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-contract.js.map +1 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-endpoint.js +108 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-endpoint.js.map +1 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-envelope.js +220 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-envelope.js.map +1 -0
- package/dist/cjs/fiscal/coverage/model.js +127 -0
- package/dist/cjs/fiscal/coverage/model.js.map +1 -0
- package/dist/cjs/fiscal/coverage/requests.js +99 -0
- package/dist/cjs/fiscal/coverage/requests.js.map +1 -0
- package/dist/cjs/fiscal/credentials/material.js +168 -0
- package/dist/cjs/fiscal/credentials/material.js.map +1 -0
- package/dist/cjs/fiscal/credentials/readiness.js +163 -0
- package/dist/cjs/fiscal/credentials/readiness.js.map +1 -0
- package/dist/cjs/fiscal/eligibility.js +199 -0
- package/dist/cjs/fiscal/eligibility.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/__fixtures__/nfse.js +128 -0
- package/dist/cjs/fiscal/ingestion/__fixtures__/nfse.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/adn-transport.js +229 -0
- package/dist/cjs/fiscal/ingestion/adn-transport.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/direction.js +36 -0
- package/dist/cjs/fiscal/ingestion/direction.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/nfse-adn.js +228 -0
- package/dist/cjs/fiscal/ingestion/nfse-adn.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/pipeline.js +704 -0
- package/dist/cjs/fiscal/ingestion/pipeline.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/provider.js +51 -0
- package/dist/cjs/fiscal/ingestion/provider.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/repository.js +132 -0
- package/dist/cjs/fiscal/ingestion/repository.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/synthetic-provider.js +103 -0
- package/dist/cjs/fiscal/ingestion/synthetic-provider.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport-types.js +13 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport-types.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport.js +61 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/xml-reader.js +121 -0
- package/dist/cjs/fiscal/ingestion/xml-reader.js.map +1 -0
- package/dist/cjs/fiscal/repository.js +470 -0
- package/dist/cjs/fiscal/repository.js.map +1 -0
- package/dist/cjs/fiscal/sync/circuit.js +124 -0
- package/dist/cjs/fiscal/sync/circuit.js.map +1 -0
- package/dist/cjs/fiscal/sync/intervention.js +140 -0
- package/dist/cjs/fiscal/sync/intervention.js.map +1 -0
- package/dist/cjs/fiscal/sync/lease.js +146 -0
- package/dist/cjs/fiscal/sync/lease.js.map +1 -0
- package/dist/cjs/fiscal/sync/observability.js +244 -0
- package/dist/cjs/fiscal/sync/observability.js.map +1 -0
- package/dist/cjs/fiscal/sync/orchestrator.js +490 -0
- package/dist/cjs/fiscal/sync/orchestrator.js.map +1 -0
- package/dist/cjs/fiscal/sync/policy.js +143 -0
- package/dist/cjs/fiscal/sync/policy.js.map +1 -0
- package/dist/cjs/fiscal/sync/reprocess.js +241 -0
- package/dist/cjs/fiscal/sync/reprocess.js.map +1 -0
- package/dist/cjs/fiscal/sync/retry.js +183 -0
- package/dist/cjs/fiscal/sync/retry.js.map +1 -0
- package/dist/cjs/fiscal/sync/secret-boundary.js +123 -0
- package/dist/cjs/fiscal/sync/secret-boundary.js.map +1 -0
- package/dist/cjs/fiscal/transport/https.js +309 -0
- package/dist/cjs/fiscal/transport/https.js.map +1 -0
- package/dist/cjs/fiscal/transport/synthetic-tls.js +328 -0
- package/dist/cjs/fiscal/transport/synthetic-tls.js.map +1 -0
- package/dist/cjs/fiscal/transport/types.js +93 -0
- package/dist/cjs/fiscal/transport/types.js.map +1 -0
- package/dist/cjs/import/br-documents.js +85 -0
- package/dist/cjs/import/br-documents.js.map +1 -0
- package/dist/cjs/import/clients-import.js +347 -40
- package/dist/cjs/import/clients-import.js.map +1 -1
- package/dist/cjs/index.js +316 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/legal/documents.js +100 -15
- package/dist/cjs/legal/documents.js.map +1 -1
- package/dist/cjs/legal/index.js +3 -1
- package/dist/cjs/legal/index.js.map +1 -1
- package/dist/cjs/legal/types.js.map +1 -1
- package/dist/cjs/onboarding/persistence.js +4 -4
- package/dist/cjs/onboarding/persistence.js.map +1 -1
- package/dist/cjs/pilot/go-live-checklist.js +212 -0
- package/dist/cjs/pilot/go-live-checklist.js.map +1 -0
- package/dist/cjs/pilot/milestone.js +79 -0
- package/dist/cjs/pilot/milestone.js.map +1 -0
- package/dist/cjs/platform/capabilities.js +144 -0
- package/dist/cjs/platform/capabilities.js.map +1 -0
- package/dist/cjs/platform/job-contract.js +411 -0
- package/dist/cjs/platform/job-contract.js.map +1 -0
- package/dist/cjs/rbac/catalog.js +34 -0
- package/dist/cjs/rbac/catalog.js.map +1 -1
- package/dist/cjs/subscription-billing/index.js +2 -1
- package/dist/cjs/subscription-billing/index.js.map +1 -1
- package/dist/cjs/subscription-billing/service.js +153 -77
- package/dist/cjs/subscription-billing/service.js.map +1 -1
- package/dist/cjs/tenancy/features.js +131 -0
- package/dist/cjs/tenancy/features.js.map +1 -0
- package/dist/cjs/tenancy/settings.js +224 -0
- package/dist/cjs/tenancy/settings.js.map +1 -0
- package/dist/cjs/users/repository.js +24 -1
- package/dist/cjs/users/repository.js.map +1 -1
- package/dist/clients/ibge.d.ts +17 -0
- package/dist/clients/ibge.d.ts.map +1 -0
- package/dist/clients/ibge.js +98 -0
- package/dist/clients/ibge.js.map +1 -0
- package/dist/clients/repository.d.ts +154 -0
- package/dist/clients/repository.d.ts.map +1 -1
- package/dist/clients/repository.js +182 -9
- package/dist/clients/repository.js.map +1 -1
- package/dist/collection/branding.d.ts +65 -0
- package/dist/collection/branding.d.ts.map +1 -1
- package/dist/collection/branding.js +186 -0
- package/dist/collection/branding.js.map +1 -1
- package/dist/collection/clearance-store.d.ts +39 -0
- package/dist/collection/clearance-store.d.ts.map +1 -0
- package/dist/collection/clearance-store.js +69 -0
- package/dist/collection/clearance-store.js.map +1 -0
- package/dist/collection/communication-runtime.d.ts +37 -0
- package/dist/collection/communication-runtime.d.ts.map +1 -1
- package/dist/collection/communication-runtime.js +63 -1
- package/dist/collection/communication-runtime.js.map +1 -1
- package/dist/collection/engine.d.ts +23 -0
- package/dist/collection/engine.d.ts.map +1 -1
- package/dist/collection/engine.js +20 -0
- package/dist/collection/engine.js.map +1 -1
- package/dist/collection/policy.d.ts +25 -0
- package/dist/collection/policy.d.ts.map +1 -1
- package/dist/collection/policy.js +27 -0
- package/dist/collection/policy.js.map +1 -1
- package/dist/communication/clearance.d.ts +53 -0
- package/dist/communication/clearance.d.ts.map +1 -0
- package/dist/communication/clearance.js +15 -0
- package/dist/communication/clearance.js.map +1 -0
- package/dist/communication/dry-run-scenario.d.ts.map +1 -1
- package/dist/communication/dry-run-scenario.js +5 -0
- package/dist/communication/dry-run-scenario.js.map +1 -1
- package/dist/communication/engine.d.ts +10 -0
- package/dist/communication/engine.d.ts.map +1 -1
- package/dist/communication/engine.js +12 -0
- package/dist/communication/engine.js.map +1 -1
- package/dist/communication/policy.d.ts +16 -0
- package/dist/communication/policy.d.ts.map +1 -1
- package/dist/communication/policy.js.map +1 -1
- package/dist/competence/business-days.d.ts +51 -0
- package/dist/competence/business-days.d.ts.map +1 -0
- package/dist/competence/business-days.js +145 -0
- package/dist/competence/business-days.js.map +1 -0
- package/dist/competence/catalog-validation.d.ts +86 -0
- package/dist/competence/catalog-validation.d.ts.map +1 -0
- package/dist/competence/catalog-validation.js +168 -0
- package/dist/competence/catalog-validation.js.map +1 -0
- package/dist/competence/obligation-preview.d.ts +103 -0
- package/dist/competence/obligation-preview.d.ts.map +1 -0
- package/dist/competence/obligation-preview.js +184 -0
- package/dist/competence/obligation-preview.js.map +1 -0
- package/dist/competence/repository.d.ts +139 -1
- package/dist/competence/repository.d.ts.map +1 -1
- package/dist/competence/repository.js +325 -17
- package/dist/competence/repository.js.map +1 -1
- package/dist/dashboard/pilot-panel.d.ts +100 -0
- package/dist/dashboard/pilot-panel.d.ts.map +1 -0
- package/dist/dashboard/pilot-panel.js +87 -0
- package/dist/dashboard/pilot-panel.js.map +1 -0
- package/dist/dashboard/repository.d.ts.map +1 -1
- package/dist/dashboard/repository.js +11 -1
- package/dist/dashboard/repository.js.map +1 -1
- package/dist/db/client.d.ts +45 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +16 -11
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrate.d.ts +36 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +199 -32
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/provision-e2e-identity.d.ts +2 -0
- package/dist/db/provision-e2e-identity.d.ts.map +1 -0
- package/dist/db/provision-e2e-identity.js +109 -0
- package/dist/db/provision-e2e-identity.js.map +1 -0
- package/dist/fiscal/applicability.d.ts +73 -0
- package/dist/fiscal/applicability.d.ts.map +1 -0
- package/dist/fiscal/applicability.js +160 -0
- package/dist/fiscal/applicability.js.map +1 -0
- package/dist/fiscal/conditions.d.ts +99 -0
- package/dist/fiscal/conditions.d.ts.map +1 -0
- package/dist/fiscal/conditions.js +190 -0
- package/dist/fiscal/conditions.js.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-contract.d.ts +315 -0
- package/dist/fiscal/contracts/nfse-adn-contract.d.ts.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-contract.js +386 -0
- package/dist/fiscal/contracts/nfse-adn-contract.js.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.d.ts +13 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.d.ts.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.js +103 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.js.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.d.ts +77 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.d.ts.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.js +215 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.js.map +1 -0
- package/dist/fiscal/coverage/model.d.ts +86 -0
- package/dist/fiscal/coverage/model.d.ts.map +1 -0
- package/dist/fiscal/coverage/model.js +120 -0
- package/dist/fiscal/coverage/model.js.map +1 -0
- package/dist/fiscal/coverage/requests.d.ts +70 -0
- package/dist/fiscal/coverage/requests.d.ts.map +1 -0
- package/dist/fiscal/coverage/requests.js +95 -0
- package/dist/fiscal/coverage/requests.js.map +1 -0
- package/dist/fiscal/credentials/material.d.ts +81 -0
- package/dist/fiscal/credentials/material.d.ts.map +1 -0
- package/dist/fiscal/credentials/material.js +164 -0
- package/dist/fiscal/credentials/material.js.map +1 -0
- package/dist/fiscal/credentials/readiness.d.ts +92 -0
- package/dist/fiscal/credentials/readiness.d.ts.map +1 -0
- package/dist/fiscal/credentials/readiness.js +159 -0
- package/dist/fiscal/credentials/readiness.js.map +1 -0
- package/dist/fiscal/eligibility.d.ts +106 -0
- package/dist/fiscal/eligibility.d.ts.map +1 -0
- package/dist/fiscal/eligibility.js +194 -0
- package/dist/fiscal/eligibility.js.map +1 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.d.ts +57 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.d.ts.map +1 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.js +121 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.js.map +1 -0
- package/dist/fiscal/ingestion/adn-transport.d.ts +123 -0
- package/dist/fiscal/ingestion/adn-transport.d.ts.map +1 -0
- package/dist/fiscal/ingestion/adn-transport.js +220 -0
- package/dist/fiscal/ingestion/adn-transport.js.map +1 -0
- package/dist/fiscal/ingestion/direction.d.ts +60 -0
- package/dist/fiscal/ingestion/direction.d.ts.map +1 -0
- package/dist/fiscal/ingestion/direction.js +32 -0
- package/dist/fiscal/ingestion/direction.js.map +1 -0
- package/dist/fiscal/ingestion/nfse-adn.d.ts +91 -0
- package/dist/fiscal/ingestion/nfse-adn.d.ts.map +1 -0
- package/dist/fiscal/ingestion/nfse-adn.js +222 -0
- package/dist/fiscal/ingestion/nfse-adn.js.map +1 -0
- package/dist/fiscal/ingestion/pipeline.d.ts +168 -0
- package/dist/fiscal/ingestion/pipeline.d.ts.map +1 -0
- package/dist/fiscal/ingestion/pipeline.js +699 -0
- package/dist/fiscal/ingestion/pipeline.js.map +1 -0
- package/dist/fiscal/ingestion/provider.d.ts +206 -0
- package/dist/fiscal/ingestion/provider.d.ts.map +1 -0
- package/dist/fiscal/ingestion/provider.js +47 -0
- package/dist/fiscal/ingestion/provider.js.map +1 -0
- package/dist/fiscal/ingestion/repository.d.ts +82 -0
- package/dist/fiscal/ingestion/repository.d.ts.map +1 -0
- package/dist/fiscal/ingestion/repository.js +127 -0
- package/dist/fiscal/ingestion/repository.js.map +1 -0
- package/dist/fiscal/ingestion/synthetic-provider.d.ts +92 -0
- package/dist/fiscal/ingestion/synthetic-provider.d.ts.map +1 -0
- package/dist/fiscal/ingestion/synthetic-provider.js +99 -0
- package/dist/fiscal/ingestion/synthetic-provider.js.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.d.ts +19 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.d.ts.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.js +9 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.js.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport.d.ts +55 -0
- package/dist/fiscal/ingestion/synthetic-transport.d.ts.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport.js +57 -0
- package/dist/fiscal/ingestion/synthetic-transport.js.map +1 -0
- package/dist/fiscal/ingestion/xml-reader.d.ts +55 -0
- package/dist/fiscal/ingestion/xml-reader.d.ts.map +1 -0
- package/dist/fiscal/ingestion/xml-reader.js +112 -0
- package/dist/fiscal/ingestion/xml-reader.js.map +1 -0
- package/dist/fiscal/repository.d.ts +220 -0
- package/dist/fiscal/repository.d.ts.map +1 -0
- package/dist/fiscal/repository.js +449 -0
- package/dist/fiscal/repository.js.map +1 -0
- package/dist/fiscal/sync/circuit.d.ts +86 -0
- package/dist/fiscal/sync/circuit.d.ts.map +1 -0
- package/dist/fiscal/sync/circuit.js +118 -0
- package/dist/fiscal/sync/circuit.js.map +1 -0
- package/dist/fiscal/sync/intervention.d.ts +81 -0
- package/dist/fiscal/sync/intervention.d.ts.map +1 -0
- package/dist/fiscal/sync/intervention.js +135 -0
- package/dist/fiscal/sync/intervention.js.map +1 -0
- package/dist/fiscal/sync/lease.d.ts +118 -0
- package/dist/fiscal/sync/lease.d.ts.map +1 -0
- package/dist/fiscal/sync/lease.js +139 -0
- package/dist/fiscal/sync/lease.js.map +1 -0
- package/dist/fiscal/sync/observability.d.ts +148 -0
- package/dist/fiscal/sync/observability.d.ts.map +1 -0
- package/dist/fiscal/sync/observability.js +239 -0
- package/dist/fiscal/sync/observability.js.map +1 -0
- package/dist/fiscal/sync/orchestrator.d.ts +132 -0
- package/dist/fiscal/sync/orchestrator.d.ts.map +1 -0
- package/dist/fiscal/sync/orchestrator.js +487 -0
- package/dist/fiscal/sync/orchestrator.js.map +1 -0
- package/dist/fiscal/sync/policy.d.ts +87 -0
- package/dist/fiscal/sync/policy.d.ts.map +1 -0
- package/dist/fiscal/sync/policy.js +136 -0
- package/dist/fiscal/sync/policy.js.map +1 -0
- package/dist/fiscal/sync/reprocess.d.ts +76 -0
- package/dist/fiscal/sync/reprocess.d.ts.map +1 -0
- package/dist/fiscal/sync/reprocess.js +237 -0
- package/dist/fiscal/sync/reprocess.js.map +1 -0
- package/dist/fiscal/sync/retry.d.ts +82 -0
- package/dist/fiscal/sync/retry.d.ts.map +1 -0
- package/dist/fiscal/sync/retry.js +176 -0
- package/dist/fiscal/sync/retry.js.map +1 -0
- package/dist/fiscal/sync/secret-boundary.d.ts +169 -0
- package/dist/fiscal/sync/secret-boundary.d.ts.map +1 -0
- package/dist/fiscal/sync/secret-boundary.js +116 -0
- package/dist/fiscal/sync/secret-boundary.js.map +1 -0
- package/dist/fiscal/transport/https.d.ts +86 -0
- package/dist/fiscal/transport/https.d.ts.map +1 -0
- package/dist/fiscal/transport/https.js +303 -0
- package/dist/fiscal/transport/https.js.map +1 -0
- package/dist/fiscal/transport/synthetic-tls.d.ts +80 -0
- package/dist/fiscal/transport/synthetic-tls.d.ts.map +1 -0
- package/dist/fiscal/transport/synthetic-tls.js +323 -0
- package/dist/fiscal/transport/synthetic-tls.js.map +1 -0
- package/dist/fiscal/transport/types.d.ts +134 -0
- package/dist/fiscal/transport/types.d.ts.map +1 -0
- package/dist/fiscal/transport/types.js +88 -0
- package/dist/fiscal/transport/types.js.map +1 -0
- package/dist/import/br-documents.d.ts +26 -0
- package/dist/import/br-documents.d.ts.map +1 -0
- package/dist/import/br-documents.js +78 -0
- package/dist/import/br-documents.js.map +1 -0
- package/dist/import/clients-import.d.ts +122 -4
- package/dist/import/clients-import.d.ts.map +1 -1
- package/dist/import/clients-import.js +341 -41
- package/dist/import/clients-import.js.map +1 -1
- package/dist/index.d.ts +115 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -7
- package/dist/index.js.map +1 -1
- package/dist/legal/documents.d.ts +12 -1
- package/dist/legal/documents.d.ts.map +1 -1
- package/dist/legal/documents.js +98 -14
- package/dist/legal/documents.js.map +1 -1
- package/dist/legal/index.d.ts +1 -1
- package/dist/legal/index.d.ts.map +1 -1
- package/dist/legal/index.js +1 -1
- package/dist/legal/index.js.map +1 -1
- package/dist/legal/types.d.ts +37 -2
- package/dist/legal/types.d.ts.map +1 -1
- package/dist/legal/types.js.map +1 -1
- package/dist/onboarding/persistence.d.ts +10 -1
- package/dist/onboarding/persistence.d.ts.map +1 -1
- package/dist/onboarding/persistence.js +4 -4
- package/dist/onboarding/persistence.js.map +1 -1
- package/dist/pilot/go-live-checklist.d.ts +41 -0
- package/dist/pilot/go-live-checklist.d.ts.map +1 -0
- package/dist/pilot/go-live-checklist.js +209 -0
- package/dist/pilot/go-live-checklist.js.map +1 -0
- package/dist/pilot/milestone.d.ts +56 -0
- package/dist/pilot/milestone.d.ts.map +1 -0
- package/dist/pilot/milestone.js +74 -0
- package/dist/pilot/milestone.js.map +1 -0
- package/dist/platform/capabilities.d.ts +88 -0
- package/dist/platform/capabilities.d.ts.map +1 -0
- package/dist/platform/capabilities.js +140 -0
- package/dist/platform/capabilities.js.map +1 -0
- package/dist/platform/job-contract.d.ts +232 -0
- package/dist/platform/job-contract.d.ts.map +1 -0
- package/dist/platform/job-contract.js +403 -0
- package/dist/platform/job-contract.js.map +1 -0
- package/dist/rbac/catalog.d.ts.map +1 -1
- package/dist/rbac/catalog.js +34 -0
- package/dist/rbac/catalog.js.map +1 -1
- package/dist/subscription-billing/index.d.ts +6 -5
- package/dist/subscription-billing/index.d.ts.map +1 -1
- package/dist/subscription-billing/index.js +3 -3
- package/dist/subscription-billing/index.js.map +1 -1
- package/dist/subscription-billing/service.d.ts +21 -0
- package/dist/subscription-billing/service.d.ts.map +1 -1
- package/dist/subscription-billing/service.js +90 -15
- package/dist/subscription-billing/service.js.map +1 -1
- package/dist/tenancy/features.d.ts +69 -0
- package/dist/tenancy/features.d.ts.map +1 -0
- package/dist/tenancy/features.js +123 -0
- package/dist/tenancy/features.js.map +1 -0
- package/dist/tenancy/settings.d.ts +63 -0
- package/dist/tenancy/settings.d.ts.map +1 -0
- package/dist/tenancy/settings.js +218 -0
- package/dist/tenancy/settings.js.map +1 -0
- package/dist/users/repository.d.ts +16 -1
- package/dist/users/repository.d.ts.map +1 -1
- package/dist/users/repository.js +24 -1
- package/dist/users/repository.js.map +1 -1
- package/package.json +9 -2
- package/src/db/migrations/0045_role_write_scope.sql +122 -0
- package/src/db/migrations/0046_pilot_activation_model.sql +184 -0
- package/src/db/migrations/0047_recipient_clearance.sql +89 -0
- package/src/db/migrations/0048_item_type_note.sql +16 -0
- package/src/db/migrations/0049_national_fiscal_engine.sql +279 -0
- package/src/db/migrations/0050_fiscal_vocabulary_readonly.sql +29 -0
- package/src/db/migrations/0051_seed_rules_from_catalog.sql +72 -0
- package/src/db/migrations/0052_fiscal_rule_delete_scope.sql +57 -0
- package/src/db/migrations/0053_rule_validity_lower_bound.sql +44 -0
- package/src/db/migrations/0054_tenant_profile_and_rule_source.sql +89 -0
- package/src/db/migrations/0055_job_capability_contract.sql +300 -0
- package/src/db/migrations/0056_fiscal_document_ingestion.sql +337 -0
- package/src/db/migrations/0057_fiscal_pending_event_inbox.sql +228 -0
- package/src/db/migrations/0058_fiscal_operational_engine.sql +516 -0
- package/src/db/migrations/0059_fiscal_contract_version.sql +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/fiscal/ingestion/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A porta entre o motor de ingestão e as fontes oficiais de documento fiscal.
|
|
3
|
+
*
|
|
4
|
+
* ## A forma foi medida, não inventada
|
|
5
|
+
*
|
|
6
|
+
* Os três documentos que importam ao Brasil compartilham a MESMA mecânica de
|
|
7
|
+
* distribuição, e isso é evidência de documentação oficial, não conveniência:
|
|
8
|
+
*
|
|
9
|
+
* NF-e NT 2014.002 v1.02c (ago/2020), WS `NFeDistribuicaoDFe`, método
|
|
10
|
+
* `nfeDistDFeInteresse`. Consultas `distNSU` (lote a partir do
|
|
11
|
+
* `ultNSU`), `consNSU` (um NSU faltante) e `consChNFe` (por chave).
|
|
12
|
+
* Lote de até **50** documentos, ordem crescente de NSU, resposta com
|
|
13
|
+
* `ultNSU` e `maxNSU`, conteúdo em `docZip` (gZip + base64).
|
|
14
|
+
* CT-e NT 2015.002, WS `CTeDistribuicaoDFe`. `distNSU`/`consNSU`,
|
|
15
|
+
* `ultNSU`/`maxNSU`, `docZip`. Mesma forma.
|
|
16
|
+
* NFS-e Manual dos Contribuintes do ADN v1.0 (12/02/2026),
|
|
17
|
+
* `GET /DFe/{NSU}` e `GET /NFSe/{ChaveAcesso}/Eventos`. REST em vez de
|
|
18
|
+
* SOAP — e o mesmo cursor NSU.
|
|
19
|
+
*
|
|
20
|
+
* Por isso a porta é modelada sobre **cursor NSU + lote + posição declarada
|
|
21
|
+
* pelo servidor**, e não sobre "página" ou "data inicial". Uma interface
|
|
22
|
+
* paginada por data obrigaria cada adapter a fingir uma semântica que nenhuma
|
|
23
|
+
* das três APIs tem.
|
|
24
|
+
*
|
|
25
|
+
* ## O que a porta deliberadamente NÃO abstrai
|
|
26
|
+
*
|
|
27
|
+
* Transporte, autenticação e parsing. SOAP com TLS mútuo e REST com TLS mútuo
|
|
28
|
+
* não se beneficiam de uma camada comum, e forçá-la produziria o pior tipo de
|
|
29
|
+
* abstração: uma que precisa de `if` por provedor lá dentro.
|
|
30
|
+
*/
|
|
31
|
+
/** Ambientes. Sem fallback entre eles, em nenhuma direção (Gate B0). */
|
|
32
|
+
export type FiscalEnvironmentTag = 'synthetic' | 'homologation' | 'production';
|
|
33
|
+
export type FiscalDocumentType = 'nfse' | 'nfe' | 'cte' | 'nfce';
|
|
34
|
+
/**
|
|
35
|
+
* Direção do documento em relação ao ator consultado.
|
|
36
|
+
*
|
|
37
|
+
* `unknown` não é um estado de erro: é a resposta honesta quando o leiaute não
|
|
38
|
+
* traz o participante que decidiria. Ver `direction.ts` — e nunca substituí-lo
|
|
39
|
+
* por `issued`, que foi o defeito da primeira escrita desta onda.
|
|
40
|
+
*/
|
|
41
|
+
export type FiscalDirection = 'issued' | 'received' | 'intermediary' | 'unknown';
|
|
42
|
+
export type FiscalContentKind = 'summary' | 'full';
|
|
43
|
+
/**
|
|
44
|
+
* Um documento como o provedor o entregou, antes de qualquer interpretação.
|
|
45
|
+
*
|
|
46
|
+
* `raw` são os BYTES originais — já descompactados do `docZip`, mas não
|
|
47
|
+
* reescritos. É este conteúdo que vai para o storage e cujo sha256 é gravado.
|
|
48
|
+
*/
|
|
49
|
+
export interface RawFiscalDocument {
|
|
50
|
+
/** Posição no cursor do provedor que entregou este item. */
|
|
51
|
+
nsu: string;
|
|
52
|
+
/** Identificação do leiaute, quando o provedor a declara (`schema` do docZip). */
|
|
53
|
+
schema?: string | null;
|
|
54
|
+
raw: Uint8Array;
|
|
55
|
+
/** `application/xml` na prática; declarado porque o blob exige. */
|
|
56
|
+
mimeType: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* O resultado de um lote.
|
|
60
|
+
*
|
|
61
|
+
* `maxNsu` é o que arma a espera obrigatória: quando `lastNsu === maxNsu` não há
|
|
62
|
+
* mais nada, e a NT 2014.002 §3.5 exige **uma hora** antes da próxima
|
|
63
|
+
* solicitação. Consultar antes é `cStat 656 — Consumo Indevido`, e o CNPJ que
|
|
64
|
+
* fica bloqueado é o do CLIENTE.
|
|
65
|
+
*/
|
|
66
|
+
export interface FiscalFetchResult {
|
|
67
|
+
documents: readonly RawFiscalDocument[];
|
|
68
|
+
/** Último NSU pesquisado, como o servidor o declarou. */
|
|
69
|
+
lastNsu: string | null;
|
|
70
|
+
/** Maior NSU existente para o ator consultado, como o servidor o declarou. */
|
|
71
|
+
maxNsu: string | null;
|
|
72
|
+
/** `true` quando o provedor disse que não há mais nada agora (cStat 137). */
|
|
73
|
+
exhausted: boolean;
|
|
74
|
+
/** Código de status bruto do provedor, para a trilha. Nunca a mensagem. */
|
|
75
|
+
providerStatus?: string | null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Classes de erro do provedor.
|
|
79
|
+
*
|
|
80
|
+
* A separação existe porque os tratamentos são opostos, e confundi-los é como
|
|
81
|
+
* um laço bem-intencionado bloqueia o CNPJ de um terceiro:
|
|
82
|
+
*
|
|
83
|
+
* `transient` rede, 5xx, serviço paralisado (cStat 108/109). Retenta.
|
|
84
|
+
* `throttled` consumo indevido (cStat 656) ou espera obrigatória ainda
|
|
85
|
+
* correndo. **Não retenta agora** — recuar é a correção.
|
|
86
|
+
* `auth` certificado inválido, vencido, revogado, fora da ICP-Brasil
|
|
87
|
+
* (cStat 280-286), ou CNPJ-base divergente (593). Pessoa
|
|
88
|
+
* resolve; retentar não.
|
|
89
|
+
* `not_allowed` o ator não tem direito àquele documento (640, 641, 653).
|
|
90
|
+
* `invalid` leiaute, schema, chave malformada (215, 236, 614-619).
|
|
91
|
+
* `unknown` não classificado. Trata como `transient` com teto.
|
|
92
|
+
*/
|
|
93
|
+
export type FiscalProviderErrorClass = 'transient' | 'throttled' | 'auth' | 'not_allowed' | 'invalid' | 'unknown';
|
|
94
|
+
export declare class FiscalProviderError extends Error {
|
|
95
|
+
readonly errorClass: FiscalProviderErrorClass;
|
|
96
|
+
/** Código do provedor (`cStat`, HTTP). Código, jamais a resposta bruta. */
|
|
97
|
+
readonly providerCode?: string | null | undefined;
|
|
98
|
+
/** Quando o provedor ou a norma impõem espera, até quando. */
|
|
99
|
+
readonly retryAfter?: (Date | null) | undefined;
|
|
100
|
+
constructor(errorClass: FiscalProviderErrorClass, message: string,
|
|
101
|
+
/** Código do provedor (`cStat`, HTTP). Código, jamais a resposta bruta. */
|
|
102
|
+
providerCode?: string | null | undefined,
|
|
103
|
+
/** Quando o provedor ou a norma impõem espera, até quando. */
|
|
104
|
+
retryAfter?: (Date | null) | undefined);
|
|
105
|
+
}
|
|
106
|
+
/** O que o adapter precisa saber para buscar em nome de um cliente. */
|
|
107
|
+
export interface FiscalFetchRequest {
|
|
108
|
+
/** CNPJ/CPF do ator consultado. Sem máscara. */
|
|
109
|
+
actorDocument: string;
|
|
110
|
+
/** Posição de onde continuar. `null` = do começo disponível. */
|
|
111
|
+
fromNsu: string | null;
|
|
112
|
+
environment: FiscalEnvironmentTag;
|
|
113
|
+
/** Teto de documentos deste lote. A NT 2014.002 fixa 50 na NF-e. */
|
|
114
|
+
batchLimit: number;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Um documento já interpretado, mas ainda não gravado.
|
|
118
|
+
*
|
|
119
|
+
* `dedupeKey` é responsabilidade do ADAPTER, não do motor: só ele sabe o que
|
|
120
|
+
* identifica um documento naquele leiaute. E não pode ser o NSU — o mesmo
|
|
121
|
+
* documento reaparece sob outro NSU num replay, que é exatamente o caso que a
|
|
122
|
+
* deduplicação existe para absorver.
|
|
123
|
+
*
|
|
124
|
+
* ## Não há campo `direction` aqui, e é deliberado
|
|
125
|
+
*
|
|
126
|
+
* A primeira escrita desta onda tinha um, e todo parser o preenchia com
|
|
127
|
+
* `'issued'` fixo — inclusive para notas em que o cliente é o tomador. A
|
|
128
|
+
* remoção do campo não é estilo: é o que torna IMPOSSÍVEL a um adapter declarar
|
|
129
|
+
* direção sem confrontar participantes, porque ele não conhece o ator
|
|
130
|
+
* consultado. O adapter informa QUEM são emitente, tomador e intermediário; o
|
|
131
|
+
* motor confronta com o ator e decide (`classifyFiscalDirection`).
|
|
132
|
+
*/
|
|
133
|
+
export interface NormalizedFiscalDocument {
|
|
134
|
+
dedupeKey: string;
|
|
135
|
+
documentType: FiscalDocumentType;
|
|
136
|
+
contentKind: FiscalContentKind;
|
|
137
|
+
accessKey?: string | null;
|
|
138
|
+
documentNumber?: string | null;
|
|
139
|
+
series?: string | null;
|
|
140
|
+
issuerDocument?: string | null;
|
|
141
|
+
issuerName?: string | null;
|
|
142
|
+
recipientDocument?: string | null;
|
|
143
|
+
recipientName?: string | null;
|
|
144
|
+
/** Intermediário do serviço, quando o leiaute o declara (`interm` da NFS-e). */
|
|
145
|
+
intermediaryDocument?: string | null;
|
|
146
|
+
intermediaryName?: string | null;
|
|
147
|
+
issuedAt?: Date | null;
|
|
148
|
+
/** `YYYY-MM`. Pode divergir de `issuedAt` — e frequentemente diverge. */
|
|
149
|
+
competenceLabel?: string | null;
|
|
150
|
+
grossAmount?: string | null;
|
|
151
|
+
/** Campos do leiaute que não viraram coluna. Sobrevive à reforma tributária. */
|
|
152
|
+
normalized: Record<string, unknown>;
|
|
153
|
+
/** Quando o item é um EVENTO de um documento, e não um documento. */
|
|
154
|
+
event?: {
|
|
155
|
+
type: 'cancellation' | 'replacement' | 'correction' | 'manifestation' | 'other';
|
|
156
|
+
code?: string | null;
|
|
157
|
+
occurredAt?: Date | null;
|
|
158
|
+
/**
|
|
159
|
+
* Sequência do evento no leiaute (`nSeqEvento`). Entra no desempate da
|
|
160
|
+
* ordem de aplicação quando dois eventos guardados na caixa de entrada têm
|
|
161
|
+
* o mesmo instante — ou quando o instante não veio.
|
|
162
|
+
*/
|
|
163
|
+
sequence?: string | null;
|
|
164
|
+
/** Chave do documento que este evento altera. */
|
|
165
|
+
targetAccessKey: string;
|
|
166
|
+
} | null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* O adapter de uma fonte fiscal.
|
|
170
|
+
*
|
|
171
|
+
* `parse` é separado de `fetch` de propósito: é o que permite exercitar o
|
|
172
|
+
* leiaute inteiro com fixture, sem rede e sem credencial — e é sob essa
|
|
173
|
+
* separação que esta fase prova o motor sem tocar em documento real.
|
|
174
|
+
*/
|
|
175
|
+
export interface FiscalDocumentAdapter {
|
|
176
|
+
/** Slug estável. Vai para `fiscal_document.source` e para o cursor. */
|
|
177
|
+
readonly source: string;
|
|
178
|
+
/**
|
|
179
|
+
* Versão do CONTRATO que este adapter implementa (`nfse-adn:v1`).
|
|
180
|
+
*
|
|
181
|
+
* Vai gravada em `fiscal_sync_run.contract_version`, e a razão é operacional:
|
|
182
|
+
* o leiaute da NFS-e nacional mudou duas vezes entre dez/2025 e fev/2026. No
|
|
183
|
+
* dia em que mudar de novo, "qual parser processou este lote?" precisa ter
|
|
184
|
+
* resposta no DADO — não na arqueologia do `git log` cruzada com a data da
|
|
185
|
+
* linha, que é o que sobra quando a versão não é gravada.
|
|
186
|
+
*
|
|
187
|
+
* Opcional porque adapters sintéticos e de teste não implementam contrato
|
|
188
|
+
* externo nenhum, e obrigá-los a inventar um rótulo poluiria a trilha com
|
|
189
|
+
* versões que não existem lá fora.
|
|
190
|
+
*/
|
|
191
|
+
readonly contractVersion?: string | null;
|
|
192
|
+
readonly documentTypes: readonly FiscalDocumentType[];
|
|
193
|
+
/** Ambientes que ESTE adapter sabe operar. */
|
|
194
|
+
readonly environments: readonly FiscalEnvironmentTag[];
|
|
195
|
+
/** Teto de lote imposto pela norma ou pelo provedor. */
|
|
196
|
+
readonly batchLimit: number;
|
|
197
|
+
/**
|
|
198
|
+
* Espera obrigatória depois de o provedor dizer "não há mais nada".
|
|
199
|
+
* Na NF-e são 3600s por norma; um adapter sintético pode declarar 0.
|
|
200
|
+
*/
|
|
201
|
+
readonly exhaustedBackoffSeconds: number;
|
|
202
|
+
fetchBatch(request: FiscalFetchRequest): Promise<FiscalFetchResult>;
|
|
203
|
+
/** Interpreta um item bruto. Lança `FiscalProviderError('invalid')` se não puder. */
|
|
204
|
+
parse(doc: RawFiscalDocument): NormalizedFiscalDocument;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/fiscal/ingestion/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A porta entre o motor de ingestão e as fontes oficiais de documento fiscal.
|
|
3
|
+
*
|
|
4
|
+
* ## A forma foi medida, não inventada
|
|
5
|
+
*
|
|
6
|
+
* Os três documentos que importam ao Brasil compartilham a MESMA mecânica de
|
|
7
|
+
* distribuição, e isso é evidência de documentação oficial, não conveniência:
|
|
8
|
+
*
|
|
9
|
+
* NF-e NT 2014.002 v1.02c (ago/2020), WS `NFeDistribuicaoDFe`, método
|
|
10
|
+
* `nfeDistDFeInteresse`. Consultas `distNSU` (lote a partir do
|
|
11
|
+
* `ultNSU`), `consNSU` (um NSU faltante) e `consChNFe` (por chave).
|
|
12
|
+
* Lote de até **50** documentos, ordem crescente de NSU, resposta com
|
|
13
|
+
* `ultNSU` e `maxNSU`, conteúdo em `docZip` (gZip + base64).
|
|
14
|
+
* CT-e NT 2015.002, WS `CTeDistribuicaoDFe`. `distNSU`/`consNSU`,
|
|
15
|
+
* `ultNSU`/`maxNSU`, `docZip`. Mesma forma.
|
|
16
|
+
* NFS-e Manual dos Contribuintes do ADN v1.0 (12/02/2026),
|
|
17
|
+
* `GET /DFe/{NSU}` e `GET /NFSe/{ChaveAcesso}/Eventos`. REST em vez de
|
|
18
|
+
* SOAP — e o mesmo cursor NSU.
|
|
19
|
+
*
|
|
20
|
+
* Por isso a porta é modelada sobre **cursor NSU + lote + posição declarada
|
|
21
|
+
* pelo servidor**, e não sobre "página" ou "data inicial". Uma interface
|
|
22
|
+
* paginada por data obrigaria cada adapter a fingir uma semântica que nenhuma
|
|
23
|
+
* das três APIs tem.
|
|
24
|
+
*
|
|
25
|
+
* ## O que a porta deliberadamente NÃO abstrai
|
|
26
|
+
*
|
|
27
|
+
* Transporte, autenticação e parsing. SOAP com TLS mútuo e REST com TLS mútuo
|
|
28
|
+
* não se beneficiam de uma camada comum, e forçá-la produziria o pior tipo de
|
|
29
|
+
* abstração: uma que precisa de `if` por provedor lá dentro.
|
|
30
|
+
*/
|
|
31
|
+
export class FiscalProviderError extends Error {
|
|
32
|
+
errorClass;
|
|
33
|
+
providerCode;
|
|
34
|
+
retryAfter;
|
|
35
|
+
constructor(errorClass, message,
|
|
36
|
+
/** Código do provedor (`cStat`, HTTP). Código, jamais a resposta bruta. */
|
|
37
|
+
providerCode,
|
|
38
|
+
/** Quando o provedor ou a norma impõem espera, até quando. */
|
|
39
|
+
retryAfter) {
|
|
40
|
+
super(message);
|
|
41
|
+
this.errorClass = errorClass;
|
|
42
|
+
this.providerCode = providerCode;
|
|
43
|
+
this.retryAfter = retryAfter;
|
|
44
|
+
this.name = 'FiscalProviderError';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/fiscal/ingestion/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAuEH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IAGA;IAEA;IANX,YACW,UAAoC,EAC7C,OAAe;IACf,2EAA2E;IAClE,YAA4B;IACrC,8DAA8D;IACrD,UAAwB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAPN,eAAU,GAAV,UAAU,CAA0B;QAGpC,iBAAY,GAAZ,YAAY,CAAgB;QAE5B,eAAU,GAAV,UAAU,CAAc;QAGjC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Tx } from '../../db/client.js';
|
|
2
|
+
import { type FiscalEnvironment } from '../eligibility.js';
|
|
3
|
+
/**
|
|
4
|
+
* Leitura dos documentos fiscais capturados.
|
|
5
|
+
*
|
|
6
|
+
* Tudo aqui roda sob RLS FORCE com política de DUAS fronteiras: tenant sempre,
|
|
7
|
+
* e cliente quando `app.current_client` está definido (portal). O filtro por
|
|
8
|
+
* cliente nos parâmetros é conveniência de tela — a fronteira é do banco.
|
|
9
|
+
*/
|
|
10
|
+
export interface FiscalDocumentRow {
|
|
11
|
+
id: string;
|
|
12
|
+
clientId: string;
|
|
13
|
+
clientName: string | null;
|
|
14
|
+
documentType: string;
|
|
15
|
+
direction: string;
|
|
16
|
+
accessKey: string | null;
|
|
17
|
+
documentNumber: string | null;
|
|
18
|
+
issuerName: string | null;
|
|
19
|
+
recipientName: string | null;
|
|
20
|
+
issuedAt: string | null;
|
|
21
|
+
competenceLabel: string | null;
|
|
22
|
+
grossAmount: string | null;
|
|
23
|
+
status: string;
|
|
24
|
+
contentKind: string;
|
|
25
|
+
source: string;
|
|
26
|
+
sourceEnvironment: string;
|
|
27
|
+
hasRaw: boolean;
|
|
28
|
+
ingestedAt: string;
|
|
29
|
+
}
|
|
30
|
+
export interface FiscalDocumentFilter {
|
|
31
|
+
clientId?: string | null;
|
|
32
|
+
documentType?: string | null;
|
|
33
|
+
competenceLabel?: string | null;
|
|
34
|
+
status?: string | null;
|
|
35
|
+
direction?: string | null;
|
|
36
|
+
limit?: number;
|
|
37
|
+
}
|
|
38
|
+
export declare function listFiscalDocuments(tx: Tx, filter?: FiscalDocumentFilter): Promise<FiscalDocumentRow[]>;
|
|
39
|
+
export declare function getFiscalDocument(tx: Tx, id: string): Promise<(FiscalDocumentRow & {
|
|
40
|
+
normalized: unknown;
|
|
41
|
+
events: unknown[];
|
|
42
|
+
}) | null>;
|
|
43
|
+
/**
|
|
44
|
+
* O estado factual da sincronização — para a tela dizer a verdade.
|
|
45
|
+
*
|
|
46
|
+
* Não existe "tudo certo". Cada estado é derivado de um fato: existe linha de
|
|
47
|
+
* automação? existe cursor? quando foi o último sucesso? qual foi o último erro?
|
|
48
|
+
* Uma tela que diz "pronto" sem ter o que a sustente é a mesma classe de defeito
|
|
49
|
+
* do painel que mostrava zero por RLS.
|
|
50
|
+
*/
|
|
51
|
+
export type FiscalSyncStatus = 'not_configured' | 'ready' | 'synced' | 'waiting_provider_window' | 'blocked_credential' | 'blocked_eligibility' | 'error';
|
|
52
|
+
export interface FiscalSyncState {
|
|
53
|
+
status: FiscalSyncStatus;
|
|
54
|
+
environment: FiscalEnvironment | null;
|
|
55
|
+
lastSuccessAt: string | null;
|
|
56
|
+
nextAttemptAfter: string | null;
|
|
57
|
+
lastErrorClass: string | null;
|
|
58
|
+
consecutiveFailures: number;
|
|
59
|
+
documentsTotal: number;
|
|
60
|
+
/** Quantos vieram sozinhos — a métrica que mede o valor devolvido. */
|
|
61
|
+
documentsAutomaticallyCollected: number;
|
|
62
|
+
eligibleClients: number;
|
|
63
|
+
/**
|
|
64
|
+
* A caixa de entrada, exposta.
|
|
65
|
+
*
|
|
66
|
+
* Evento pendente não é erro: é informação fiscal preservada esperando o
|
|
67
|
+
* documento-alvo. Mas ele PRECISA ser visível — uma caixa que só cresce
|
|
68
|
+
* significa que os documentos correspondentes nunca chegaram, e essa é uma
|
|
69
|
+
* pergunta operacional real (o cliente mudou de emissor? a inscrição está
|
|
70
|
+
* apontando para o CNPJ errado?). Sem o contador, a espera vira acúmulo
|
|
71
|
+
* silencioso, que é o vizinho do descarte silencioso que esta onda corrigiu.
|
|
72
|
+
*/
|
|
73
|
+
pendingEvents: number;
|
|
74
|
+
/** Há quanto tempo o mais antigo espera. `null` quando a caixa está vazia. */
|
|
75
|
+
oldestPendingEventAt: string | null;
|
|
76
|
+
/** Quantos já saíram da espera e viraram evento do documento. */
|
|
77
|
+
reconciledEvents: number;
|
|
78
|
+
/** Itens preservados que não puderam ser interpretados. Recuperáveis por NSU. */
|
|
79
|
+
invalidItems: number;
|
|
80
|
+
}
|
|
81
|
+
export declare function fiscalSyncState(tx: Tx): Promise<FiscalSyncState>;
|
|
82
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/fiscal/ingestion/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtF;;;;;;GAMG;AAEH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,EAAE,EACN,MAAM,GAAE,oBAAyB,GAChC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0D9B;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,CAAC,iBAAiB,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GAAG,IAAI,CAAC,CAuBlF;AAeD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,OAAO,GACP,QAAQ,GACR,yBAAyB,GACzB,oBAAoB,GACpB,qBAAqB,GACrB,OAAO,CAAC;AAEZ,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,+BAA+B,EAAE,MAAM,CAAC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;;;OASG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CA2DtE"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { getTenantFiscalAutomation } from '../eligibility.js';
|
|
2
|
+
export async function listFiscalDocuments(tx, filter = {}) {
|
|
3
|
+
const limit = Math.min(Math.max(filter.limit ?? 100, 1), 500);
|
|
4
|
+
const rows = await tx `
|
|
5
|
+
SELECT d.id, d.client_id, c.display_name AS client_name, d.document_type, d.direction,
|
|
6
|
+
d.access_key, d.document_number, d.issuer_name, d.recipient_name, d.issued_at,
|
|
7
|
+
d.competence_label, d.gross_amount, d.status, d.content_kind, d.source,
|
|
8
|
+
d.source_environment, (d.raw_blob_id IS NOT NULL) AS has_raw, d.ingested_at
|
|
9
|
+
FROM fiscal_document d
|
|
10
|
+
LEFT JOIN client c ON c.id = d.client_id
|
|
11
|
+
WHERE (${filter.clientId ?? null}::uuid IS NULL OR d.client_id = ${filter.clientId ?? null}::uuid)
|
|
12
|
+
AND (${filter.documentType ?? null}::text IS NULL OR d.document_type = ${filter.documentType ?? null})
|
|
13
|
+
AND (${filter.competenceLabel ?? null}::text IS NULL OR d.competence_label = ${filter.competenceLabel ?? null})
|
|
14
|
+
AND (${filter.status ?? null}::text IS NULL OR d.status = ${filter.status ?? null})
|
|
15
|
+
AND (${filter.direction ?? null}::text IS NULL OR d.direction = ${filter.direction ?? null})
|
|
16
|
+
ORDER BY d.issued_at DESC NULLS LAST, d.ingested_at DESC
|
|
17
|
+
LIMIT ${limit}
|
|
18
|
+
`;
|
|
19
|
+
return rows.map((r) => ({
|
|
20
|
+
id: r.id,
|
|
21
|
+
clientId: r.client_id,
|
|
22
|
+
clientName: r.client_name,
|
|
23
|
+
documentType: r.document_type,
|
|
24
|
+
direction: r.direction,
|
|
25
|
+
accessKey: r.access_key,
|
|
26
|
+
documentNumber: r.document_number,
|
|
27
|
+
issuerName: r.issuer_name,
|
|
28
|
+
recipientName: r.recipient_name,
|
|
29
|
+
issuedAt: r.issued_at?.toISOString() ?? null,
|
|
30
|
+
competenceLabel: r.competence_label,
|
|
31
|
+
grossAmount: r.gross_amount,
|
|
32
|
+
status: r.status,
|
|
33
|
+
contentKind: r.content_kind,
|
|
34
|
+
source: r.source,
|
|
35
|
+
sourceEnvironment: r.source_environment,
|
|
36
|
+
hasRaw: r.has_raw,
|
|
37
|
+
ingestedAt: r.ingested_at.toISOString(),
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
export async function getFiscalDocument(tx, id) {
|
|
41
|
+
const [row] = await listFiscalDocumentsById(tx, id);
|
|
42
|
+
if (!row)
|
|
43
|
+
return null;
|
|
44
|
+
const events = await tx `
|
|
45
|
+
SELECT event_type, event_code, occurred_at
|
|
46
|
+
FROM fiscal_document_event WHERE fiscal_document_id = ${id}
|
|
47
|
+
ORDER BY occurred_at NULLS LAST, ingested_at
|
|
48
|
+
`;
|
|
49
|
+
return {
|
|
50
|
+
...row.doc,
|
|
51
|
+
normalized: row.normalized,
|
|
52
|
+
events: events.map((e) => ({
|
|
53
|
+
type: e.event_type,
|
|
54
|
+
code: e.event_code,
|
|
55
|
+
occurredAt: e.occurred_at?.toISOString() ?? null,
|
|
56
|
+
// O evento HERDA a direção do documento que altera — ele não tem uma
|
|
57
|
+
// própria. Um cancelamento sobre uma nota recebida é evento de nota
|
|
58
|
+
// recebida; classificá-lo como emitida inverteria o sinal do fato.
|
|
59
|
+
direction: row.doc.direction,
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async function listFiscalDocumentsById(tx, id) {
|
|
64
|
+
const docs = await listFiscalDocuments(tx, {});
|
|
65
|
+
const found = docs.find((d) => d.id === id);
|
|
66
|
+
if (!found)
|
|
67
|
+
return [];
|
|
68
|
+
const [n] = await tx `
|
|
69
|
+
SELECT normalized FROM fiscal_document WHERE id = ${id}
|
|
70
|
+
`;
|
|
71
|
+
return [{ doc: found, normalized: n?.normalized ?? {} }];
|
|
72
|
+
}
|
|
73
|
+
export async function fiscalSyncState(tx) {
|
|
74
|
+
const automation = await getTenantFiscalAutomation(tx);
|
|
75
|
+
const [totals] = await tx `
|
|
76
|
+
SELECT count(*)::int AS total,
|
|
77
|
+
count(*) FILTER (WHERE source <> 'manual')::int AS automatic
|
|
78
|
+
FROM fiscal_document
|
|
79
|
+
`;
|
|
80
|
+
const [enroll] = await tx `
|
|
81
|
+
SELECT count(DISTINCT client_id)::int AS n
|
|
82
|
+
FROM client_fiscal_enrollment WHERE revoked_at IS NULL
|
|
83
|
+
`;
|
|
84
|
+
const [inbox] = await tx `
|
|
85
|
+
SELECT count(*) FILTER (WHERE state = 'pending_target')::int AS pending,
|
|
86
|
+
count(*) FILTER (WHERE state = 'applied')::int AS reconciled,
|
|
87
|
+
count(*) FILTER (WHERE state = 'invalid')::int AS invalid,
|
|
88
|
+
min(received_at) FILTER (WHERE state = 'pending_target') AS oldest
|
|
89
|
+
FROM fiscal_ingestion_inbox
|
|
90
|
+
`;
|
|
91
|
+
const [cursor] = await tx `
|
|
92
|
+
SELECT last_success_at, next_attempt_after, last_error_class, consecutive_failures
|
|
93
|
+
FROM fiscal_sync_cursor ORDER BY updated_at DESC LIMIT 1
|
|
94
|
+
`;
|
|
95
|
+
const base = {
|
|
96
|
+
environment: automation.mode === 'disabled' ? null : automation.mode,
|
|
97
|
+
lastSuccessAt: cursor?.last_success_at?.toISOString() ?? null,
|
|
98
|
+
nextAttemptAfter: cursor?.next_attempt_after?.toISOString() ?? null,
|
|
99
|
+
lastErrorClass: cursor?.last_error_class ?? null,
|
|
100
|
+
consecutiveFailures: cursor?.consecutive_failures ?? 0,
|
|
101
|
+
documentsTotal: totals?.total ?? 0,
|
|
102
|
+
documentsAutomaticallyCollected: totals?.automatic ?? 0,
|
|
103
|
+
eligibleClients: enroll?.n ?? 0,
|
|
104
|
+
pendingEvents: inbox?.pending ?? 0,
|
|
105
|
+
oldestPendingEventAt: inbox?.oldest?.toISOString() ?? null,
|
|
106
|
+
reconciledEvents: inbox?.reconciled ?? 0,
|
|
107
|
+
invalidItems: inbox?.invalid ?? 0,
|
|
108
|
+
};
|
|
109
|
+
// A ordem é do mais específico para o mais genérico: dizer "erro" quando na
|
|
110
|
+
// verdade ninguém configurou nada seria culpar o sistema pela ausência de
|
|
111
|
+
// decisão de uma pessoa.
|
|
112
|
+
if (automation.mode === 'disabled')
|
|
113
|
+
return { ...base, status: 'not_configured' };
|
|
114
|
+
if (base.eligibleClients === 0)
|
|
115
|
+
return { ...base, status: 'blocked_eligibility' };
|
|
116
|
+
if (cursor?.last_error_class === 'auth')
|
|
117
|
+
return { ...base, status: 'blocked_credential' };
|
|
118
|
+
if (cursor?.last_error_class)
|
|
119
|
+
return { ...base, status: 'error' };
|
|
120
|
+
if (base.nextAttemptAfter && new Date(base.nextAttemptAfter) > new Date()) {
|
|
121
|
+
return { ...base, status: 'waiting_provider_window' };
|
|
122
|
+
}
|
|
123
|
+
if (base.lastSuccessAt)
|
|
124
|
+
return { ...base, status: 'synced' };
|
|
125
|
+
return { ...base, status: 'ready' };
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/fiscal/ingestion/repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAA0B,MAAM,mBAAmB,CAAC;AAwCtF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAM,EACN,SAA+B,EAAE;IAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,MAAM,EAAE,CAqBpB;;;;;;;cAOW,MAAM,CAAC,QAAQ,IAAI,IAAI,mCAAmC,MAAM,CAAC,QAAQ,IAAI,IAAI;cACjF,MAAM,CAAC,YAAY,IAAI,IAAI,uCAAuC,MAAM,CAAC,YAAY,IAAI,IAAI;cAC7F,MAAM,CAAC,eAAe,IAAI,IAAI,0CAA0C,MAAM,CAAC,eAAe,IAAI,IAAI;cACtG,MAAM,CAAC,MAAM,IAAI,IAAI,gCAAgC,MAAM,CAAC,MAAM,IAAI,IAAI;cAC1E,MAAM,CAAC,SAAS,IAAI,IAAI,mCAAmC,MAAM,CAAC,SAAS,IAAI,IAAI;;aAEpF,KAAK;GACf,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,cAAc,EAAE,CAAC,CAAC,eAAe;QACjC,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI;QAC5C,eAAe,EAAE,CAAC,CAAC,gBAAgB;QACnC,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;QACvC,MAAM,EAAE,CAAC,CAAC,OAAO;QACjB,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE;KACxC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAM,EACN,EAAU;IAEV,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,EAAE,CAEtB;;8DAE2D,EAAE;;GAE7D,CAAC;IACF,OAAO;QACL,GAAG,GAAG,CAAC,GAAG;QACV,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI;YAChD,qEAAqE;YACrE,oEAAoE;YACpE,mEAAmE;YACnE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS;SAC7B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,EAAM,EACN,EAAU;IAEV,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAA2B;wDACO,EAAE;GACvD,CAAC;IACF,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC;AAiDD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAM;IAC1C,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAwC;;;;GAIhE,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAiB;;;GAGzC,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAEvB;;;;;;GAMA,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAOxB;;;GAGA,CAAC;IAEF,MAAM,IAAI,GAAoC;QAC5C,WAAW,EAAE,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI;QACpE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI;QAC7D,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,IAAI;QACnE,cAAc,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI;QAChD,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,IAAI,CAAC;QACtD,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;QAClC,+BAA+B,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC;QACvD,eAAe,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC;QAC/B,aAAa,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC;QAClC,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,IAAI;QAC1D,gBAAgB,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC;QACxC,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC;KAClC,CAAC;IAEF,4EAA4E;IAC5E,0EAA0E;IAC1E,yBAAyB;IACzB,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACjF,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAClF,IAAI,MAAM,EAAE,gBAAgB,KAAK,MAAM;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC1F,IAAI,MAAM,EAAE,gBAAgB;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;QAC1E,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC7D,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { type FiscalEnvironmentTag, type FiscalFetchResult } from './provider.js';
|
|
2
|
+
/**
|
|
3
|
+
* O provedor sintético OPERACIONAL — um servidor com as regras do oficial,
|
|
4
|
+
* incluindo as maneiras pelas quais ele falha.
|
|
5
|
+
*
|
|
6
|
+
* ## Por que o transporte sintético da Fase 1 não bastava
|
|
7
|
+
*
|
|
8
|
+
* `SyntheticAdnTransport` reproduz a mecânica FELIZ: lote, NSU crescente,
|
|
9
|
+
* `ultNSU`/`maxNSU`, esgotamento. Ele provou a ingestão, e continua válido.
|
|
10
|
+
*
|
|
11
|
+
* A Fase 2 precisa provar outra coisa: que o motor sobrevive ao provedor real,
|
|
12
|
+
* que é um serviço público sob carga. Um serviço assim devolve 429 no meio da
|
|
13
|
+
* carteira, 503 durante uma janela de manutenção, 401 quando a procuração
|
|
14
|
+
* venceu e, de vez em quando, um XML que o parser não lê.
|
|
15
|
+
*
|
|
16
|
+
* Cada uma dessas exige um tratamento DIFERENTE — e testar só o caminho feliz
|
|
17
|
+
* deixa exatamente as diferenças sem prova. Este provedor é roteirizável: a
|
|
18
|
+
* falha da terceira chamada é declarada, e o teste mede a decisão que ela
|
|
19
|
+
* produz.
|
|
20
|
+
*
|
|
21
|
+
* ## Ele não fabrica resposta de servidor oficial
|
|
22
|
+
*
|
|
23
|
+
* Ele fabrica um servidor com as REGRAS do oficial, e isso é dito em voz alta.
|
|
24
|
+
* O XML é fixture conforme o XSD publicado; nenhum documento de empresa real
|
|
25
|
+
* passa por aqui.
|
|
26
|
+
*/
|
|
27
|
+
export type SyntheticFault =
|
|
28
|
+
/** 429 com `Retry-After`. O motor deve OBEDECER, não estimar. */
|
|
29
|
+
{
|
|
30
|
+
kind: 'rate_limit';
|
|
31
|
+
retryAfterSeconds?: number;
|
|
32
|
+
}
|
|
33
|
+
/** 401: credencial recusada. Não retenta; abre tarefa humana. */
|
|
34
|
+
| {
|
|
35
|
+
kind: 'unauthorized';
|
|
36
|
+
}
|
|
37
|
+
/** 403: o contribuinte não tem direito àquele documento. */
|
|
38
|
+
| {
|
|
39
|
+
kind: 'forbidden';
|
|
40
|
+
}
|
|
41
|
+
/** 5xx: indisponível. Retenta com recuo e conta para o disjuntor. */
|
|
42
|
+
| {
|
|
43
|
+
kind: 'server_error';
|
|
44
|
+
status?: number;
|
|
45
|
+
}
|
|
46
|
+
/** O socket não respondeu dentro do prazo. Pode ter sido processado. */
|
|
47
|
+
| {
|
|
48
|
+
kind: 'timeout';
|
|
49
|
+
}
|
|
50
|
+
/** Resposta entregue, conteúdo ilegível. Vai para a quarentena, não some. */
|
|
51
|
+
| {
|
|
52
|
+
kind: 'malformed';
|
|
53
|
+
}
|
|
54
|
+
/** O MESMO lote da chamada anterior. A deduplicação tem de absorver. */
|
|
55
|
+
| {
|
|
56
|
+
kind: 'replay';
|
|
57
|
+
}
|
|
58
|
+
/** Nada de errado. Serve para posicionar falhas em chamadas específicas. */
|
|
59
|
+
| {
|
|
60
|
+
kind: 'ok';
|
|
61
|
+
};
|
|
62
|
+
export interface SyntheticProviderDocument {
|
|
63
|
+
nsu: string;
|
|
64
|
+
xml: string;
|
|
65
|
+
}
|
|
66
|
+
export interface SyntheticProviderOptions {
|
|
67
|
+
documents: readonly SyntheticProviderDocument[];
|
|
68
|
+
/** Falhas por CHAMADA, em ordem. Esgotado o roteiro, tudo dá certo. */
|
|
69
|
+
script?: readonly SyntheticFault[];
|
|
70
|
+
batchLimit?: number;
|
|
71
|
+
environments?: readonly FiscalEnvironmentTag[];
|
|
72
|
+
/** Relógio injetável, para que a espera medida não dependa da sorte. */
|
|
73
|
+
now?: () => Date;
|
|
74
|
+
}
|
|
75
|
+
export declare class SyntheticFiscalProvider {
|
|
76
|
+
private readonly options;
|
|
77
|
+
/** Chamadas atendidas. O teste de replay e o de retentativa a inspecionam. */
|
|
78
|
+
calls: number;
|
|
79
|
+
/** NSUs entregues em cada chamada, para conferir que não houve lacuna. */
|
|
80
|
+
readonly delivered: string[][];
|
|
81
|
+
private lastBatch;
|
|
82
|
+
private lastResult;
|
|
83
|
+
constructor(options: SyntheticProviderOptions);
|
|
84
|
+
private get docs();
|
|
85
|
+
fetchDfe(input: {
|
|
86
|
+
actorDocument: string;
|
|
87
|
+
fromNsu: string | null;
|
|
88
|
+
batchLimit: number;
|
|
89
|
+
environment: FiscalEnvironmentTag;
|
|
90
|
+
}): Promise<FiscalFetchResult>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=synthetic-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthetic-provider.d.ts","sourceRoot":"","sources":["../../../src/fiscal/ingestion/synthetic-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AAGvB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,cAAc;AACxB,iEAAiE;AAC/D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE;AACpD,iEAAiE;GAC/D;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE;AAC1B,4DAA4D;GAC1D;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE;AACvB,qEAAqE;GACnE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAC3C,wEAAwE;GACtE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,6EAA6E;GAC3E;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE;AACvB,wEAAwE;GACtE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB,4EAA4E;GAC1E;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnB,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAChD,uEAAuE;IACvE,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC/C,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,qBAAa,uBAAuB;IAQtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,8EAA8E;IAC9E,KAAK,SAAK;IACV,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAM;IACpC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,UAAU,CAAkC;gBAEvB,OAAO,EAAE,wBAAwB;IAE9D,OAAO,KAAK,IAAI,GAKf;IAEK,QAAQ,CAAC,KAAK,EAAE;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,oBAAoB,CAAC;KACnC,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAgG/B"}
|