@baruk/core 0.3.1 → 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 +10 -0
- package/CHANGELOG.md +127 -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/password-reset.d.ts +30 -1
- package/dist/auth/password-reset.d.ts.map +1 -1
- package/dist/auth/password-reset.js +139 -11
- package/dist/auth/password-reset.js.map +1 -1
- package/dist/auth/service.d.ts +60 -2
- package/dist/auth/service.d.ts.map +1 -1
- package/dist/auth/service.js +121 -11
- package/dist/auth/service.js.map +1 -1
- package/dist/billing/ar-repository.d.ts +374 -0
- package/dist/billing/ar-repository.d.ts.map +1 -0
- package/dist/billing/ar-repository.js +783 -0
- package/dist/billing/ar-repository.js.map +1 -0
- package/dist/billing/auto-generation.d.ts +87 -0
- package/dist/billing/auto-generation.d.ts.map +1 -0
- package/dist/billing/auto-generation.js +181 -0
- package/dist/billing/auto-generation.js.map +1 -0
- package/dist/billing/live-guard.d.ts +64 -0
- package/dist/billing/live-guard.d.ts.map +1 -0
- package/dist/billing/live-guard.js +68 -0
- package/dist/billing/live-guard.js.map +1 -0
- package/dist/billing/payment-means-catalog.d.ts +17 -0
- package/dist/billing/payment-means-catalog.d.ts.map +1 -0
- package/dist/billing/payment-means-catalog.js +21 -0
- package/dist/billing/payment-means-catalog.js.map +1 -0
- package/dist/billing/payment-means.d.ts +38 -0
- package/dist/billing/payment-means.d.ts.map +1 -0
- package/dist/billing/payment-means.js +29 -0
- package/dist/billing/payment-means.js.map +1 -0
- package/dist/billing/payment-rail.d.ts +118 -0
- package/dist/billing/payment-rail.d.ts.map +1 -0
- package/dist/billing/payment-rail.js +295 -0
- package/dist/billing/payment-rail.js.map +1 -0
- package/dist/billing/provider/asaas.d.ts +46 -1
- package/dist/billing/provider/asaas.d.ts.map +1 -1
- package/dist/billing/provider/asaas.js +194 -14
- package/dist/billing/provider/asaas.js.map +1 -1
- package/dist/billing/provider/manual.js +1 -1
- package/dist/billing/provider/manual.js.map +1 -1
- package/dist/billing/provider/types.d.ts +115 -8
- package/dist/billing/provider/types.d.ts.map +1 -1
- package/dist/billing/provider-account.d.ts +127 -0
- package/dist/billing/provider-account.d.ts.map +1 -0
- package/dist/billing/provider-account.js +217 -0
- package/dist/billing/provider-account.js.map +1 -0
- package/dist/billing/provider-onboarding.d.ts +67 -0
- package/dist/billing/provider-onboarding.d.ts.map +1 -0
- package/dist/billing/provider-onboarding.js +234 -0
- package/dist/billing/provider-onboarding.js.map +1 -0
- package/dist/billing/receivable.d.ts +5 -1
- package/dist/billing/receivable.d.ts.map +1 -1
- package/dist/billing/reconcile.d.ts +58 -0
- package/dist/billing/reconcile.d.ts.map +1 -0
- package/dist/billing/reconcile.js +138 -0
- package/dist/billing/reconcile.js.map +1 -0
- package/dist/billing/repository.d.ts +134 -1
- package/dist/billing/repository.d.ts.map +1 -1
- package/dist/billing/repository.js +193 -20
- 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/password-reset.js +141 -11
- package/dist/cjs/auth/password-reset.js.map +1 -1
- package/dist/cjs/auth/service.js +121 -10
- package/dist/cjs/auth/service.js.map +1 -1
- package/dist/cjs/billing/ar-repository.js +804 -0
- package/dist/cjs/billing/ar-repository.js.map +1 -0
- package/dist/cjs/billing/auto-generation.js +186 -0
- package/dist/cjs/billing/auto-generation.js.map +1 -0
- package/dist/cjs/billing/live-guard.js +72 -0
- package/dist/cjs/billing/live-guard.js.map +1 -0
- package/dist/cjs/billing/payment-means-catalog.js +25 -0
- package/dist/cjs/billing/payment-means-catalog.js.map +1 -0
- package/dist/cjs/billing/payment-means.js +33 -0
- package/dist/cjs/billing/payment-means.js.map +1 -0
- package/dist/cjs/billing/payment-rail.js +301 -0
- package/dist/cjs/billing/payment-rail.js.map +1 -0
- package/dist/cjs/billing/provider/asaas.js +194 -14
- package/dist/cjs/billing/provider/asaas.js.map +1 -1
- package/dist/cjs/billing/provider/manual.js +1 -1
- package/dist/cjs/billing/provider/manual.js.map +1 -1
- package/dist/cjs/billing/provider-account.js +229 -0
- package/dist/cjs/billing/provider-account.js.map +1 -0
- package/dist/cjs/billing/provider-onboarding.js +239 -0
- package/dist/cjs/billing/provider-onboarding.js.map +1 -0
- package/dist/cjs/billing/reconcile.js +143 -0
- package/dist/cjs/billing/reconcile.js.map +1 -0
- package/dist/cjs/billing/repository.js +197 -19
- 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 +276 -23
- package/dist/cjs/clients/repository.js.map +1 -1
- package/dist/cjs/collection/branding.js +330 -0
- package/dist/cjs/collection/branding.js.map +1 -0
- package/dist/cjs/collection/channel-accounts.js +137 -0
- package/dist/cjs/collection/channel-accounts.js.map +1 -0
- package/dist/cjs/collection/channel.js +17 -0
- package/dist/cjs/collection/channel.js.map +1 -0
- package/dist/cjs/collection/clearance-store.js +74 -0
- package/dist/cjs/collection/clearance-store.js.map +1 -0
- package/dist/cjs/collection/communication-bridge.js +140 -0
- package/dist/cjs/collection/communication-bridge.js.map +1 -0
- package/dist/cjs/collection/communication-runtime.js +256 -0
- package/dist/cjs/collection/communication-runtime.js.map +1 -0
- package/dist/cjs/collection/consent-repository.js +84 -0
- package/dist/cjs/collection/consent-repository.js.map +1 -0
- package/dist/cjs/collection/copy.js +125 -0
- package/dist/cjs/collection/copy.js.map +1 -0
- package/dist/cjs/collection/delivery-callback.js +151 -0
- package/dist/cjs/collection/delivery-callback.js.map +1 -0
- package/dist/cjs/collection/email-layout.js +252 -0
- package/dist/cjs/collection/email-layout.js.map +1 -0
- package/dist/cjs/collection/engine.js +434 -0
- package/dist/cjs/collection/engine.js.map +1 -0
- package/dist/cjs/collection/format.js +76 -0
- package/dist/cjs/collection/format.js.map +1 -0
- package/dist/cjs/collection/payment-block.js +3 -0
- package/dist/cjs/collection/payment-block.js.map +1 -0
- package/dist/cjs/collection/policy.js +175 -0
- package/dist/cjs/collection/policy.js.map +1 -0
- package/dist/cjs/collection/repository.js +260 -0
- package/dist/cjs/collection/repository.js.map +1 -0
- package/dist/cjs/collection/subject.js +104 -0
- package/dist/cjs/collection/subject.js.map +1 -0
- package/dist/cjs/collection/template-catalog.js +165 -0
- package/dist/cjs/collection/template-catalog.js.map +1 -0
- package/dist/cjs/collection/template.js +78 -0
- package/dist/cjs/collection/template.js.map +1 -0
- package/dist/cjs/communication/adapters/email.js +132 -0
- package/dist/cjs/communication/adapters/email.js.map +1 -0
- package/dist/cjs/communication/adapters/sms.js +127 -0
- package/dist/cjs/communication/adapters/sms.js.map +1 -0
- package/dist/cjs/communication/adapters/whatsapp-language.js +39 -0
- package/dist/cjs/communication/adapters/whatsapp-language.js.map +1 -0
- package/dist/cjs/communication/adapters/whatsapp-templates.js +100 -0
- package/dist/cjs/communication/adapters/whatsapp-templates.js.map +1 -0
- package/dist/cjs/communication/adapters/whatsapp.js +213 -0
- package/dist/cjs/communication/adapters/whatsapp.js.map +1 -0
- package/dist/cjs/communication/audit.js +61 -0
- package/dist/cjs/communication/audit.js.map +1 -0
- package/dist/cjs/communication/capabilities.js +76 -0
- package/dist/cjs/communication/capabilities.js.map +1 -0
- package/dist/cjs/communication/channel.js +53 -0
- package/dist/cjs/communication/channel.js.map +1 -0
- package/dist/cjs/communication/claim.js +228 -0
- package/dist/cjs/communication/claim.js.map +1 -0
- package/dist/cjs/communication/clearance.js +18 -0
- package/dist/cjs/communication/clearance.js.map +1 -0
- package/dist/cjs/communication/consent.js +43 -0
- package/dist/cjs/communication/consent.js.map +1 -0
- package/dist/cjs/communication/context.js +45 -0
- package/dist/cjs/communication/context.js.map +1 -0
- package/dist/cjs/communication/credentials.js +121 -0
- package/dist/cjs/communication/credentials.js.map +1 -0
- package/dist/cjs/communication/dry-run-scenario.js +166 -0
- package/dist/cjs/communication/dry-run-scenario.js.map +1 -0
- package/dist/cjs/communication/dry-run.js +97 -0
- package/dist/cjs/communication/dry-run.js.map +1 -0
- package/dist/cjs/communication/engine.js +495 -0
- package/dist/cjs/communication/engine.js.map +1 -0
- package/dist/cjs/communication/graph.js +50 -0
- package/dist/cjs/communication/graph.js.map +1 -0
- package/dist/cjs/communication/idempotency.js +26 -0
- package/dist/cjs/communication/idempotency.js.map +1 -0
- package/dist/cjs/communication/identity.js +110 -0
- package/dist/cjs/communication/identity.js.map +1 -0
- package/dist/cjs/communication/index.js +135 -0
- package/dist/cjs/communication/index.js.map +1 -0
- package/dist/cjs/communication/onboarding.js +297 -0
- package/dist/cjs/communication/onboarding.js.map +1 -0
- package/dist/cjs/communication/policy.js +16 -0
- package/dist/cjs/communication/policy.js.map +1 -0
- package/dist/cjs/communication/routing.js +77 -0
- package/dist/cjs/communication/routing.js.map +1 -0
- package/dist/cjs/communication/sender-profile.js +128 -0
- package/dist/cjs/communication/sender-profile.js.map +1 -0
- package/dist/cjs/communication/status.js +86 -0
- package/dist/cjs/communication/status.js.map +1 -0
- package/dist/cjs/communication/stores/onboarding.js +135 -0
- package/dist/cjs/communication/stores/onboarding.js.map +1 -0
- package/dist/cjs/communication/stores/postgres.js +458 -0
- package/dist/cjs/communication/stores/postgres.js.map +1 -0
- package/dist/cjs/communication/stores/routing.js +334 -0
- package/dist/cjs/communication/stores/routing.js.map +1 -0
- package/dist/cjs/communication/stores/secrets.js +126 -0
- package/dist/cjs/communication/stores/secrets.js.map +1 -0
- package/dist/cjs/communication/template-provider.js +22 -0
- package/dist/cjs/communication/template-provider.js.map +1 -0
- package/dist/cjs/communication/template.js +63 -0
- package/dist/cjs/communication/template.js.map +1 -0
- package/dist/cjs/communication/webhook-subscription.js +258 -0
- package/dist/cjs/communication/webhook-subscription.js.map +1 -0
- package/dist/cjs/communication/webhook.js +292 -0
- package/dist/cjs/communication/webhook.js.map +1 -0
- 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 +622 -0
- package/dist/cjs/competence/repository.js.map +1 -0
- package/dist/cjs/contacts/phone.js +192 -0
- package/dist/cjs/contacts/phone.js.map +1 -0
- 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/db/seed-catalog.js +48 -0
- package/dist/cjs/db/seed-catalog.js.map +1 -0
- package/dist/cjs/db/seed.js +15 -7
- package/dist/cjs/db/seed.js.map +1 -1
- package/dist/cjs/documents/repository.js +244 -0
- package/dist/cjs/documents/repository.js.map +1 -0
- package/dist/cjs/documents/requests.js +136 -0
- package/dist/cjs/documents/requests.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 +711 -39
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/legal/documents.js +224 -17
- 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 +1 -0
- package/dist/cjs/legal/types.js.map +1 -1
- package/dist/cjs/mail/auth-templates.js +29 -0
- package/dist/cjs/mail/auth-templates.js.map +1 -0
- package/dist/cjs/mail/dedup-store.js +12 -51
- package/dist/cjs/mail/dedup-store.js.map +1 -1
- package/dist/cjs/mail/index.js +16 -4
- package/dist/cjs/mail/index.js.map +1 -1
- package/dist/cjs/mail/provider.js +12 -247
- package/dist/cjs/mail/provider.js.map +1 -1
- package/dist/cjs/mail/resend.js +14 -18
- package/dist/cjs/mail/resend.js.map +1 -1
- package/dist/cjs/mail/sender-resolver.js +12 -11
- package/dist/cjs/mail/sender-resolver.js.map +1 -1
- package/dist/cjs/mail/template-renderer.js +11 -16
- package/dist/cjs/mail/template-renderer.js.map +1 -1
- package/dist/cjs/mail/transactional-outbound.js +117 -0
- package/dist/cjs/mail/transactional-outbound.js.map +1 -0
- package/dist/cjs/mail/types.js +8 -35
- package/dist/cjs/mail/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/portal/provisioning.js +144 -0
- package/dist/cjs/portal/provisioning.js.map +1 -0
- package/dist/cjs/pricing-engine/canonical.js +42 -0
- package/dist/cjs/pricing-engine/canonical.js.map +1 -0
- package/dist/cjs/pricing-engine/errors.js +6 -1
- package/dist/cjs/pricing-engine/errors.js.map +1 -1
- package/dist/cjs/pricing-engine/index.js +12 -1
- package/dist/cjs/pricing-engine/index.js.map +1 -1
- package/dist/cjs/pricing-engine/pipeline.js +200 -26
- package/dist/cjs/pricing-engine/pipeline.js.map +1 -1
- package/dist/cjs/pricing-engine/shadow-adapter.js +79 -0
- package/dist/cjs/pricing-engine/shadow-adapter.js.map +1 -0
- package/dist/cjs/pricing-engine/shadow-diff.js +55 -0
- package/dist/cjs/pricing-engine/shadow-diff.js.map +1 -0
- package/dist/cjs/pricing-engine/shadow-facade.js +85 -0
- package/dist/cjs/pricing-engine/shadow-facade.js.map +1 -0
- package/dist/cjs/pricing-engine/shadow-legacy-types.js +19 -0
- package/dist/cjs/pricing-engine/shadow-legacy-types.js.map +1 -0
- package/dist/cjs/pricing-engine/shadow-metrics.js +34 -0
- package/dist/cjs/pricing-engine/shadow-metrics.js.map +1 -0
- package/dist/cjs/pricing-engine/shadow-normalizer.js +42 -0
- package/dist/cjs/pricing-engine/shadow-normalizer.js.map +1 -0
- package/dist/cjs/rbac/authorize.js +28 -0
- package/dist/cjs/rbac/authorize.js.map +1 -1
- package/dist/cjs/rbac/catalog.js +101 -1
- package/dist/cjs/rbac/catalog.js.map +1 -1
- package/dist/cjs/rbac/workload-provisioning.js +160 -0
- package/dist/cjs/rbac/workload-provisioning.js.map +1 -0
- package/dist/cjs/rbac/workload.js +191 -0
- package/dist/cjs/rbac/workload.js.map +1 -0
- package/dist/cjs/storage/checksum.js +15 -0
- package/dist/cjs/storage/checksum.js.map +1 -0
- package/dist/cjs/storage/key.js +72 -0
- package/dist/cjs/storage/key.js.map +1 -0
- package/dist/cjs/storage/local.js +100 -0
- package/dist/cjs/storage/local.js.map +1 -0
- package/dist/cjs/storage/r2.js +181 -0
- package/dist/cjs/storage/r2.js.map +1 -0
- package/dist/cjs/storage/registry.js +41 -0
- package/dist/cjs/storage/registry.js.map +1 -0
- package/dist/cjs/storage/types.js +50 -0
- package/dist/cjs/storage/types.js.map +1 -0
- package/dist/cjs/subscription-billing/index.js +2 -1
- package/dist/cjs/subscription-billing/index.js.map +1 -1
- package/dist/cjs/subscription-billing/provider/asaas.js +32 -7
- package/dist/cjs/subscription-billing/provider/asaas.js.map +1 -1
- package/dist/cjs/subscription-billing/provider/disabled.js +8 -0
- package/dist/cjs/subscription-billing/provider/disabled.js.map +1 -1
- package/dist/cjs/subscription-billing/provider/registry.js +17 -0
- package/dist/cjs/subscription-billing/provider/registry.js.map +1 -1
- package/dist/cjs/subscription-billing/service.js +208 -83
- package/dist/cjs/subscription-billing/service.js.map +1 -1
- package/dist/cjs/subscription-billing/types.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/provisioning.js +32 -8
- package/dist/cjs/tenancy/provisioning.js.map +1 -1
- package/dist/cjs/tenancy/settings.js +224 -0
- package/dist/cjs/tenancy/settings.js.map +1 -0
- package/dist/cjs/users/repository.js +143 -3
- package/dist/cjs/users/repository.js.map +1 -1
- package/dist/cjs/vault/repository.js +81 -0
- package/dist/cjs/vault/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 +196 -0
- package/dist/clients/repository.d.ts.map +1 -1
- package/dist/clients/repository.js +270 -24
- package/dist/clients/repository.js.map +1 -1
- package/dist/collection/branding.d.ts +137 -0
- package/dist/collection/branding.d.ts.map +1 -0
- package/dist/collection/branding.js +322 -0
- package/dist/collection/branding.js.map +1 -0
- package/dist/collection/channel-accounts.d.ts +57 -0
- package/dist/collection/channel-accounts.d.ts.map +1 -0
- package/dist/collection/channel-accounts.js +133 -0
- package/dist/collection/channel-accounts.js.map +1 -0
- package/dist/collection/channel.d.ts +24 -0
- package/dist/collection/channel.d.ts.map +1 -0
- package/dist/collection/channel.js +16 -0
- package/dist/collection/channel.js.map +1 -0
- 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-bridge.d.ts +66 -0
- package/dist/collection/communication-bridge.d.ts.map +1 -0
- package/dist/collection/communication-bridge.js +134 -0
- package/dist/collection/communication-bridge.js.map +1 -0
- package/dist/collection/communication-runtime.d.ts +132 -0
- package/dist/collection/communication-runtime.d.ts.map +1 -0
- package/dist/collection/communication-runtime.js +249 -0
- package/dist/collection/communication-runtime.js.map +1 -0
- package/dist/collection/consent-repository.d.ts +32 -0
- package/dist/collection/consent-repository.d.ts.map +1 -0
- package/dist/collection/consent-repository.js +79 -0
- package/dist/collection/consent-repository.js.map +1 -0
- package/dist/collection/copy.d.ts +50 -0
- package/dist/collection/copy.d.ts.map +1 -0
- package/dist/collection/copy.js +122 -0
- package/dist/collection/copy.js.map +1 -0
- package/dist/collection/delivery-callback.d.ts +49 -0
- package/dist/collection/delivery-callback.d.ts.map +1 -0
- package/dist/collection/delivery-callback.js +147 -0
- package/dist/collection/delivery-callback.js.map +1 -0
- package/dist/collection/email-layout.d.ts +45 -0
- package/dist/collection/email-layout.d.ts.map +1 -0
- package/dist/collection/email-layout.js +247 -0
- package/dist/collection/email-layout.js.map +1 -0
- package/dist/collection/engine.d.ts +200 -0
- package/dist/collection/engine.d.ts.map +1 -0
- package/dist/collection/engine.js +427 -0
- package/dist/collection/engine.js.map +1 -0
- package/dist/collection/format.d.ts +32 -0
- package/dist/collection/format.d.ts.map +1 -0
- package/dist/collection/format.js +70 -0
- package/dist/collection/format.js.map +1 -0
- package/dist/collection/payment-block.d.ts +24 -0
- package/dist/collection/payment-block.d.ts.map +1 -0
- package/dist/collection/payment-block.js +2 -0
- package/dist/collection/payment-block.js.map +1 -0
- package/dist/collection/policy.d.ts +78 -0
- package/dist/collection/policy.d.ts.map +1 -0
- package/dist/collection/policy.js +168 -0
- package/dist/collection/policy.js.map +1 -0
- package/dist/collection/repository.d.ts +129 -0
- package/dist/collection/repository.d.ts.map +1 -0
- package/dist/collection/repository.js +246 -0
- package/dist/collection/repository.js.map +1 -0
- package/dist/collection/subject.d.ts +66 -0
- package/dist/collection/subject.d.ts.map +1 -0
- package/dist/collection/subject.js +99 -0
- package/dist/collection/subject.js.map +1 -0
- package/dist/collection/template-catalog.d.ts +16 -0
- package/dist/collection/template-catalog.d.ts.map +1 -0
- package/dist/collection/template-catalog.js +162 -0
- package/dist/collection/template-catalog.js.map +1 -0
- package/dist/collection/template.d.ts +37 -0
- package/dist/collection/template.d.ts.map +1 -0
- package/dist/collection/template.js +73 -0
- package/dist/collection/template.js.map +1 -0
- package/dist/communication/adapters/email.d.ts +28 -0
- package/dist/communication/adapters/email.d.ts.map +1 -0
- package/dist/communication/adapters/email.js +129 -0
- package/dist/communication/adapters/email.js.map +1 -0
- package/dist/communication/adapters/sms.d.ts +95 -0
- package/dist/communication/adapters/sms.d.ts.map +1 -0
- package/dist/communication/adapters/sms.js +121 -0
- package/dist/communication/adapters/sms.js.map +1 -0
- package/dist/communication/adapters/whatsapp-language.d.ts +34 -0
- package/dist/communication/adapters/whatsapp-language.d.ts.map +1 -0
- package/dist/communication/adapters/whatsapp-language.js +36 -0
- package/dist/communication/adapters/whatsapp-language.js.map +1 -0
- package/dist/communication/adapters/whatsapp-templates.d.ts +18 -0
- package/dist/communication/adapters/whatsapp-templates.d.ts.map +1 -0
- package/dist/communication/adapters/whatsapp-templates.js +97 -0
- package/dist/communication/adapters/whatsapp-templates.js.map +1 -0
- package/dist/communication/adapters/whatsapp.d.ts +29 -0
- package/dist/communication/adapters/whatsapp.d.ts.map +1 -0
- package/dist/communication/adapters/whatsapp.js +210 -0
- package/dist/communication/adapters/whatsapp.js.map +1 -0
- package/dist/communication/audit.d.ts +105 -0
- package/dist/communication/audit.d.ts.map +1 -0
- package/dist/communication/audit.js +56 -0
- package/dist/communication/audit.js.map +1 -0
- package/dist/communication/capabilities.d.ts +88 -0
- package/dist/communication/capabilities.d.ts.map +1 -0
- package/dist/communication/capabilities.js +72 -0
- package/dist/communication/capabilities.js.map +1 -0
- package/dist/communication/channel.d.ts +125 -0
- package/dist/communication/channel.d.ts.map +1 -0
- package/dist/communication/channel.js +47 -0
- package/dist/communication/channel.js.map +1 -0
- package/dist/communication/claim.d.ts +368 -0
- package/dist/communication/claim.d.ts.map +1 -0
- package/dist/communication/claim.js +224 -0
- package/dist/communication/claim.js.map +1 -0
- 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/consent.d.ts +65 -0
- package/dist/communication/consent.d.ts.map +1 -0
- package/dist/communication/consent.js +40 -0
- package/dist/communication/consent.js.map +1 -0
- package/dist/communication/context.d.ts +48 -0
- package/dist/communication/context.d.ts.map +1 -0
- package/dist/communication/context.js +41 -0
- package/dist/communication/context.js.map +1 -0
- package/dist/communication/credentials.d.ts +74 -0
- package/dist/communication/credentials.d.ts.map +1 -0
- package/dist/communication/credentials.js +115 -0
- package/dist/communication/credentials.js.map +1 -0
- package/dist/communication/dry-run-scenario.d.ts +37 -0
- package/dist/communication/dry-run-scenario.d.ts.map +1 -0
- package/dist/communication/dry-run-scenario.js +163 -0
- package/dist/communication/dry-run-scenario.js.map +1 -0
- package/dist/communication/dry-run.d.ts +40 -0
- package/dist/communication/dry-run.d.ts.map +1 -0
- package/dist/communication/dry-run.js +92 -0
- package/dist/communication/dry-run.js.map +1 -0
- package/dist/communication/engine.d.ts +163 -0
- package/dist/communication/engine.d.ts.map +1 -0
- package/dist/communication/engine.js +492 -0
- package/dist/communication/engine.js.map +1 -0
- package/dist/communication/graph.d.ts +38 -0
- package/dist/communication/graph.d.ts.map +1 -0
- package/dist/communication/graph.js +45 -0
- package/dist/communication/graph.js.map +1 -0
- package/dist/communication/idempotency.d.ts +33 -0
- package/dist/communication/idempotency.d.ts.map +1 -0
- package/dist/communication/idempotency.js +23 -0
- package/dist/communication/idempotency.js.map +1 -0
- package/dist/communication/identity.d.ts +127 -0
- package/dist/communication/identity.d.ts.map +1 -0
- package/dist/communication/identity.js +105 -0
- package/dist/communication/identity.js.map +1 -0
- package/dist/communication/index.d.ts +66 -0
- package/dist/communication/index.d.ts.map +1 -0
- package/dist/communication/index.js +42 -0
- package/dist/communication/index.js.map +1 -0
- package/dist/communication/onboarding.d.ts +223 -0
- package/dist/communication/onboarding.d.ts.map +1 -0
- package/dist/communication/onboarding.js +287 -0
- package/dist/communication/onboarding.js.map +1 -0
- package/dist/communication/policy.d.ts +115 -0
- package/dist/communication/policy.d.ts.map +1 -0
- package/dist/communication/policy.js +13 -0
- package/dist/communication/policy.js.map +1 -0
- package/dist/communication/routing.d.ts +99 -0
- package/dist/communication/routing.d.ts.map +1 -0
- package/dist/communication/routing.js +73 -0
- package/dist/communication/routing.js.map +1 -0
- package/dist/communication/sender-profile.d.ts +100 -0
- package/dist/communication/sender-profile.d.ts.map +1 -0
- package/dist/communication/sender-profile.js +123 -0
- package/dist/communication/sender-profile.js.map +1 -0
- package/dist/communication/status.d.ts +48 -0
- package/dist/communication/status.d.ts.map +1 -0
- package/dist/communication/status.js +79 -0
- package/dist/communication/status.js.map +1 -0
- package/dist/communication/stores/onboarding.d.ts +88 -0
- package/dist/communication/stores/onboarding.d.ts.map +1 -0
- package/dist/communication/stores/onboarding.js +127 -0
- package/dist/communication/stores/onboarding.js.map +1 -0
- package/dist/communication/stores/postgres.d.ts +81 -0
- package/dist/communication/stores/postgres.d.ts.map +1 -0
- package/dist/communication/stores/postgres.js +453 -0
- package/dist/communication/stores/postgres.js.map +1 -0
- package/dist/communication/stores/routing.d.ts +169 -0
- package/dist/communication/stores/routing.d.ts.map +1 -0
- package/dist/communication/stores/routing.js +324 -0
- package/dist/communication/stores/routing.js.map +1 -0
- package/dist/communication/stores/secrets.d.ts +89 -0
- package/dist/communication/stores/secrets.d.ts.map +1 -0
- package/dist/communication/stores/secrets.js +122 -0
- package/dist/communication/stores/secrets.js.map +1 -0
- package/dist/communication/template-provider.d.ts +85 -0
- package/dist/communication/template-provider.d.ts.map +1 -0
- package/dist/communication/template-provider.js +21 -0
- package/dist/communication/template-provider.js.map +1 -0
- package/dist/communication/template.d.ts +87 -0
- package/dist/communication/template.d.ts.map +1 -0
- package/dist/communication/template.js +59 -0
- package/dist/communication/template.js.map +1 -0
- package/dist/communication/webhook-subscription.d.ts +156 -0
- package/dist/communication/webhook-subscription.d.ts.map +1 -0
- package/dist/communication/webhook-subscription.js +252 -0
- package/dist/communication/webhook-subscription.js.map +1 -0
- package/dist/communication/webhook.d.ts +121 -0
- package/dist/communication/webhook.d.ts.map +1 -0
- package/dist/communication/webhook.js +283 -0
- package/dist/communication/webhook.js.map +1 -0
- 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 +285 -0
- package/dist/competence/repository.d.ts.map +1 -0
- package/dist/competence/repository.js +602 -0
- package/dist/competence/repository.js.map +1 -0
- package/dist/contacts/phone.d.ts +70 -0
- package/dist/contacts/phone.d.ts.map +1 -0
- package/dist/contacts/phone.js +186 -0
- package/dist/contacts/phone.js.map +1 -0
- 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 +208 -35
- 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/db/seed-catalog.d.ts +18 -0
- package/dist/db/seed-catalog.d.ts.map +1 -0
- package/dist/db/seed-catalog.js +45 -0
- package/dist/db/seed-catalog.js.map +1 -0
- package/dist/db/seed.js +16 -8
- package/dist/db/seed.js.map +1 -1
- package/dist/documents/repository.d.ts +97 -0
- package/dist/documents/repository.d.ts.map +1 -0
- package/dist/documents/repository.js +236 -0
- package/dist/documents/repository.js.map +1 -0
- package/dist/documents/requests.d.ts +73 -0
- package/dist/documents/requests.d.ts.map +1 -0
- package/dist/documents/requests.js +127 -0
- package/dist/documents/requests.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 +217 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +196 -11
- 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 +222 -16
- package/dist/legal/documents.js.map +1 -1
- package/dist/legal/index.d.ts +2 -2
- 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 +69 -3
- package/dist/legal/types.d.ts.map +1 -1
- package/dist/legal/types.js +1 -0
- package/dist/legal/types.js.map +1 -1
- package/dist/mail/auth-templates.d.ts +15 -0
- package/dist/mail/auth-templates.d.ts.map +1 -0
- package/dist/mail/auth-templates.js +26 -0
- package/dist/mail/auth-templates.js.map +1 -0
- package/dist/mail/dedup-store.d.ts +1 -24
- package/dist/mail/dedup-store.d.ts.map +1 -1
- package/dist/mail/dedup-store.js +9 -48
- package/dist/mail/dedup-store.js.map +1 -1
- package/dist/mail/index.d.ts +2 -1
- package/dist/mail/index.d.ts.map +1 -1
- package/dist/mail/index.js +13 -2
- package/dist/mail/index.js.map +1 -1
- package/dist/mail/provider.d.ts +2 -30
- package/dist/mail/provider.d.ts.map +1 -1
- package/dist/mail/provider.js +10 -246
- package/dist/mail/provider.js.map +1 -1
- package/dist/mail/resend.d.ts +2 -12
- package/dist/mail/resend.d.ts.map +1 -1
- package/dist/mail/resend.js +11 -17
- package/dist/mail/resend.js.map +1 -1
- package/dist/mail/sender-resolver.d.ts +1 -7
- package/dist/mail/sender-resolver.d.ts.map +1 -1
- package/dist/mail/sender-resolver.js +11 -10
- package/dist/mail/sender-resolver.js.map +1 -1
- package/dist/mail/template-renderer.d.ts +1 -9
- package/dist/mail/template-renderer.d.ts.map +1 -1
- package/dist/mail/template-renderer.js +10 -15
- package/dist/mail/template-renderer.js.map +1 -1
- package/dist/mail/transactional-outbound.d.ts +115 -0
- package/dist/mail/transactional-outbound.d.ts.map +1 -0
- package/dist/mail/transactional-outbound.js +113 -0
- package/dist/mail/transactional-outbound.js.map +1 -0
- package/dist/mail/types.d.ts +2 -142
- package/dist/mail/types.d.ts.map +1 -1
- package/dist/mail/types.js +1 -33
- package/dist/mail/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/portal/provisioning.d.ts +58 -0
- package/dist/portal/provisioning.d.ts.map +1 -0
- package/dist/portal/provisioning.js +139 -0
- package/dist/portal/provisioning.js.map +1 -0
- package/dist/pricing-engine/canonical.d.ts +14 -0
- package/dist/pricing-engine/canonical.d.ts.map +1 -0
- package/dist/pricing-engine/canonical.js +39 -0
- package/dist/pricing-engine/canonical.js.map +1 -0
- package/dist/pricing-engine/errors.d.ts.map +1 -1
- package/dist/pricing-engine/errors.js +6 -1
- package/dist/pricing-engine/errors.js.map +1 -1
- package/dist/pricing-engine/index.d.ts +12 -2
- package/dist/pricing-engine/index.d.ts.map +1 -1
- package/dist/pricing-engine/index.js +6 -1
- package/dist/pricing-engine/index.js.map +1 -1
- package/dist/pricing-engine/pipeline.d.ts.map +1 -1
- package/dist/pricing-engine/pipeline.js +202 -28
- package/dist/pricing-engine/pipeline.js.map +1 -1
- package/dist/pricing-engine/shadow-adapter.d.ts +37 -0
- package/dist/pricing-engine/shadow-adapter.d.ts.map +1 -0
- package/dist/pricing-engine/shadow-adapter.js +75 -0
- package/dist/pricing-engine/shadow-adapter.js.map +1 -0
- package/dist/pricing-engine/shadow-diff.d.ts +26 -0
- package/dist/pricing-engine/shadow-diff.d.ts.map +1 -0
- package/dist/pricing-engine/shadow-diff.js +52 -0
- package/dist/pricing-engine/shadow-diff.js.map +1 -0
- package/dist/pricing-engine/shadow-facade.d.ts +42 -0
- package/dist/pricing-engine/shadow-facade.d.ts.map +1 -0
- package/dist/pricing-engine/shadow-facade.js +82 -0
- package/dist/pricing-engine/shadow-facade.js.map +1 -0
- package/dist/pricing-engine/shadow-legacy-types.d.ts +64 -0
- package/dist/pricing-engine/shadow-legacy-types.d.ts.map +1 -0
- package/dist/pricing-engine/shadow-legacy-types.js +18 -0
- package/dist/pricing-engine/shadow-legacy-types.js.map +1 -0
- package/dist/pricing-engine/shadow-metrics.d.ts +33 -0
- package/dist/pricing-engine/shadow-metrics.d.ts.map +1 -0
- package/dist/pricing-engine/shadow-metrics.js +31 -0
- package/dist/pricing-engine/shadow-metrics.js.map +1 -0
- package/dist/pricing-engine/shadow-normalizer.d.ts +17 -0
- package/dist/pricing-engine/shadow-normalizer.d.ts.map +1 -0
- package/dist/pricing-engine/shadow-normalizer.js +39 -0
- package/dist/pricing-engine/shadow-normalizer.js.map +1 -0
- package/dist/pricing-engine/types.d.ts +2 -0
- package/dist/pricing-engine/types.d.ts.map +1 -1
- package/dist/rbac/authorize.d.ts +12 -0
- package/dist/rbac/authorize.d.ts.map +1 -1
- package/dist/rbac/authorize.js +27 -0
- package/dist/rbac/authorize.js.map +1 -1
- package/dist/rbac/catalog.d.ts.map +1 -1
- package/dist/rbac/catalog.js +101 -1
- package/dist/rbac/catalog.js.map +1 -1
- package/dist/rbac/workload-provisioning.d.ts +66 -0
- package/dist/rbac/workload-provisioning.d.ts.map +1 -0
- package/dist/rbac/workload-provisioning.js +153 -0
- package/dist/rbac/workload-provisioning.js.map +1 -0
- package/dist/rbac/workload.d.ts +124 -0
- package/dist/rbac/workload.d.ts.map +1 -0
- package/dist/rbac/workload.js +184 -0
- package/dist/rbac/workload.js.map +1 -0
- package/dist/storage/checksum.d.ts +9 -0
- package/dist/storage/checksum.d.ts.map +1 -0
- package/dist/storage/checksum.js +12 -0
- package/dist/storage/checksum.js.map +1 -0
- package/dist/storage/key.d.ts +37 -0
- package/dist/storage/key.d.ts.map +1 -0
- package/dist/storage/key.js +67 -0
- package/dist/storage/key.js.map +1 -0
- package/dist/storage/local.d.ts +40 -0
- package/dist/storage/local.d.ts.map +1 -0
- package/dist/storage/local.js +96 -0
- package/dist/storage/local.js.map +1 -0
- package/dist/storage/r2.d.ts +43 -0
- package/dist/storage/r2.d.ts.map +1 -0
- package/dist/storage/r2.js +177 -0
- package/dist/storage/r2.js.map +1 -0
- package/dist/storage/registry.d.ts +23 -0
- package/dist/storage/registry.d.ts.map +1 -0
- package/dist/storage/registry.js +37 -0
- package/dist/storage/registry.js.map +1 -0
- package/dist/storage/types.d.ts +67 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +45 -0
- package/dist/storage/types.js.map +1 -0
- 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/provider/asaas.d.ts +14 -0
- package/dist/subscription-billing/provider/asaas.d.ts.map +1 -1
- package/dist/subscription-billing/provider/asaas.js +32 -7
- package/dist/subscription-billing/provider/asaas.js.map +1 -1
- package/dist/subscription-billing/provider/disabled.d.ts +9 -0
- package/dist/subscription-billing/provider/disabled.d.ts.map +1 -1
- package/dist/subscription-billing/provider/disabled.js +8 -0
- package/dist/subscription-billing/provider/disabled.js.map +1 -1
- package/dist/subscription-billing/provider/registry.d.ts +10 -0
- package/dist/subscription-billing/provider/registry.d.ts.map +1 -1
- package/dist/subscription-billing/provider/registry.js +17 -0
- package/dist/subscription-billing/provider/registry.js.map +1 -1
- package/dist/subscription-billing/service.d.ts +38 -1
- package/dist/subscription-billing/service.d.ts.map +1 -1
- package/dist/subscription-billing/service.js +147 -23
- package/dist/subscription-billing/service.js.map +1 -1
- package/dist/subscription-billing/types.d.ts +13 -0
- package/dist/subscription-billing/types.d.ts.map +1 -1
- package/dist/subscription-billing/types.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/provisioning.d.ts.map +1 -1
- package/dist/tenancy/provisioning.js +32 -8
- package/dist/tenancy/provisioning.js.map +1 -1
- 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 +54 -1
- package/dist/users/repository.d.ts.map +1 -1
- package/dist/users/repository.js +142 -4
- package/dist/users/repository.js.map +1 -1
- package/dist/vault/repository.d.ts +67 -0
- package/dist/vault/repository.d.ts.map +1 -1
- package/dist/vault/repository.js +78 -0
- package/dist/vault/repository.js.map +1 -1
- package/package.json +20 -4
- package/src/db/migrations/0023_user_invite_activation.sql +15 -0
- package/src/db/migrations/0024_set_user_password_function.sql +32 -0
- package/src/db/migrations/0025_revoke_user_session_function.sql +28 -0
- package/src/db/migrations/0026_documents_and_competence.sql +353 -0
- package/src/db/migrations/0027_receivable_client_isolation.sql +58 -0
- package/src/db/migrations/0028_collection_engine.sql +94 -0
- package/src/db/migrations/0029_payment_rail.sql +107 -0
- package/src/db/migrations/0030_provider_account_uniqueness.sql +22 -0
- package/src/db/migrations/0031_provider_account_environment_scope.sql +21 -0
- package/src/db/migrations/0032_settlement_reversal.sql +76 -0
- package/src/db/migrations/0033_receivable_idempotency.sql +28 -0
- package/src/db/migrations/0034_payment_customer_reconcile.sql +30 -0
- package/src/db/migrations/0035_payment_account_environments.sql +61 -0
- package/src/db/migrations/0036_primary_backfill_under_force_rls.sql +41 -0
- package/src/db/migrations/0037_receivable_generation_source.sql +29 -0
- package/src/db/migrations/0038_notification_channels.sql +175 -0
- package/src/db/migrations/0039_communication_dispatch_claim.sql +193 -0
- package/src/db/migrations/0040_communication_unknown_outcome.sql +99 -0
- package/src/db/migrations/0041_channel_binding_routing.sql +146 -0
- package/src/db/migrations/0042_channel_route_read_isolation.sql +165 -0
- package/src/db/migrations/0043_workload_identity.sql +105 -0
- package/src/db/migrations/0044_channel_onboarding_session.sql +96 -0
- 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
- package/dist/cjs/mail/resend-client.js +0 -103
- package/dist/cjs/mail/resend-client.js.map +0 -1
- package/dist/mail/resend-client.d.ts +0 -16
- package/dist/mail/resend-client.d.ts.map +0 -1
- package/dist/mail/resend-client.js +0 -100
- package/dist/mail/resend-client.js.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
-- 0045 — fechar a escrita de papel de SISTEMA a partir de contexto de tenant.
|
|
2
|
+
--
|
|
3
|
+
-- ── O defeito ───────────────────────────────────────────────────────────────
|
|
4
|
+
--
|
|
5
|
+
-- `role_visibility` e `role_permission_visibility` nasceram na 0006 assim:
|
|
6
|
+
--
|
|
7
|
+
-- USING (tenant_id IS NULL OR tenant_id = current_tenant)
|
|
8
|
+
-- WITH CHECK (tenant_id IS NULL OR tenant_id = current_tenant)
|
|
9
|
+
--
|
|
10
|
+
-- O ramo `IS NULL` no USING é necessário e correto: todo tenant precisa LER os
|
|
11
|
+
-- papéis de sistema, senão ninguém autentica. No WITH CHECK ele autoriza a
|
|
12
|
+
-- ESCRITA de linhas com `tenant_id NULL` — que é justamente a marca do papel
|
|
13
|
+
-- global, visível a todos os escritórios.
|
|
14
|
+
--
|
|
15
|
+
-- Reproduzido em 2026-09-05, com o papel de runtime e uma GUC de tenant comum:
|
|
16
|
+
--
|
|
17
|
+
-- 1. INSERT de `role` com `tenant_id NULL` → PASSAVA
|
|
18
|
+
-- 2. UPDATE promovendo papel do tenant a global → PASSAVA
|
|
19
|
+
-- 3. INSERT em `role_permission` anexando
|
|
20
|
+
-- `vault.credential.decrypt` ao papel de sistema
|
|
21
|
+
-- `readonly` → PASSAVA
|
|
22
|
+
--
|
|
23
|
+
-- O terceiro é escalada cross-tenant real: `readonly` é semeado em TODO tenant,
|
|
24
|
+
-- e uma permissão anexada a ele alcança todos os escritórios de uma vez.
|
|
25
|
+
--
|
|
26
|
+
-- A 0026 já tinha acertado este padrão em `recurring_item_type` e
|
|
27
|
+
-- `document_category` — `WITH CHECK` sem o ramo `IS NULL`. As duas policies de
|
|
28
|
+
-- 0006 nunca foram alinhadas.
|
|
29
|
+
--
|
|
30
|
+
-- ── A correção, e por que ela vai além de alinhar o WITH CHECK ──────────────
|
|
31
|
+
--
|
|
32
|
+
-- Alinhar o WITH CHECK fecha os vetores 1 e 3, mas deixa a barreira num único
|
|
33
|
+
-- lugar. O levantamento mostrou algo que permite fechar na raiz: **nenhuma rota
|
|
34
|
+
-- da API cria ou altera papel**. O único escritor de `role` em todo o produto é
|
|
35
|
+
-- `ensureRbacCatalog`, e ele roda sempre com a conexão do OWNER — no seed, na
|
|
36
|
+
-- migração e nos testes.
|
|
37
|
+
--
|
|
38
|
+
-- Então o papel de runtime não precisa de escrita nenhuma aqui. Revogá-la torna
|
|
39
|
+
-- "o tenant não forja papel" uma propriedade do PRIVILÉGIO, não só da política —
|
|
40
|
+
-- duas barreiras independentes, e a de fora não depende de nenhuma GUC estar
|
|
41
|
+
-- certa. É o mesmo desenho que a 0043 aplicou a `service_principal`: quem
|
|
42
|
+
-- consome a autorização não consegue escrevê-la.
|
|
43
|
+
--
|
|
44
|
+
-- ── O que isto NÃO faz ──────────────────────────────────────────────────────
|
|
45
|
+
--
|
|
46
|
+
-- Não remove o suporte a papel por escritório: `role.tenant_id` continua lá, e a
|
|
47
|
+
-- policy continua permitindo escrita tenant-scoped para quem tiver privilégio. O
|
|
48
|
+
-- dia em que existir uma rota de papéis customizados, ela entra pelo caminho de
|
|
49
|
+
-- provisionamento (owner) ou por um GRANT explícito e revisado — não pela porta
|
|
50
|
+
-- que estava aberta por acidente.
|
|
51
|
+
|
|
52
|
+
-- ── 1 · WITH CHECK sem o ramo IS NULL ──────────────────────────────────────
|
|
53
|
+
--
|
|
54
|
+
-- USING preservado: ler papel de sistema é requisito de autenticação.
|
|
55
|
+
|
|
56
|
+
DROP POLICY IF EXISTS role_visibility ON role;
|
|
57
|
+
CREATE POLICY role_visibility ON role
|
|
58
|
+
USING (tenant_id IS NULL OR tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid)
|
|
59
|
+
WITH CHECK (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid);
|
|
60
|
+
|
|
61
|
+
DROP POLICY IF EXISTS role_permission_visibility ON role_permission;
|
|
62
|
+
CREATE POLICY role_permission_visibility ON role_permission
|
|
63
|
+
USING (tenant_id IS NULL OR tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid)
|
|
64
|
+
WITH CHECK (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid);
|
|
65
|
+
|
|
66
|
+
-- ── 2 · O provisionamento continua funcionando ─────────────────────────────
|
|
67
|
+
--
|
|
68
|
+
-- `role` e `role_permission` têm FORCE ROW LEVEL SECURITY, e FORCE vale também
|
|
69
|
+
-- para o dono da tabela. Sem uma política que o autorize, `ensureRbacCatalog`
|
|
70
|
+
-- — que roda com o owner e SEM tenant no contexto — passaria a falhar, e o
|
|
71
|
+
-- produto não subiria em banco novo.
|
|
72
|
+
--
|
|
73
|
+
-- A autorização é nominal ao papel dono do schema (o mesmo que roda migrations),
|
|
74
|
+
-- resolvido em tempo de migração para funcionar em qualquer ambiente. Mesmo
|
|
75
|
+
-- padrão da 0042.
|
|
76
|
+
|
|
77
|
+
DO $$
|
|
78
|
+
DECLARE
|
|
79
|
+
owner_role text;
|
|
80
|
+
BEGIN
|
|
81
|
+
SELECT tableowner INTO owner_role
|
|
82
|
+
FROM pg_tables WHERE schemaname = 'public' AND tablename = 'role';
|
|
83
|
+
IF owner_role IS NULL THEN
|
|
84
|
+
RAISE EXCEPTION 'role sem dono identificável — abortando';
|
|
85
|
+
END IF;
|
|
86
|
+
|
|
87
|
+
EXECUTE 'DROP POLICY IF EXISTS role_system_provisioning ON role';
|
|
88
|
+
EXECUTE format(
|
|
89
|
+
'CREATE POLICY role_system_provisioning ON role FOR ALL TO %I USING (true) WITH CHECK (true)',
|
|
90
|
+
owner_role
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
EXECUTE 'DROP POLICY IF EXISTS role_permission_system_provisioning ON role_permission';
|
|
94
|
+
EXECUTE format(
|
|
95
|
+
'CREATE POLICY role_permission_system_provisioning ON role_permission FOR ALL TO %I USING (true) WITH CHECK (true)',
|
|
96
|
+
owner_role
|
|
97
|
+
);
|
|
98
|
+
END $$;
|
|
99
|
+
|
|
100
|
+
-- ── 3 · A segunda barreira: privilégio ─────────────────────────────────────
|
|
101
|
+
--
|
|
102
|
+
-- O runtime lê o catálogo de papéis a cada autenticação e nunca o escreve.
|
|
103
|
+
-- Revogar a escrita fecha os quatro vetores mesmo que uma política futura seja
|
|
104
|
+
-- afrouxada por engano.
|
|
105
|
+
--
|
|
106
|
+
-- Este REVOKE precisa ser repetido em `migrate.ts`, no mesmo bloco que trata
|
|
107
|
+
-- `audit_log` e `service_principal`: o GRANT da allowlist é amplo por
|
|
108
|
+
-- construção e devolveria estes privilégios no deploy seguinte. Foi exatamente
|
|
109
|
+
-- o defeito que a Fase 3 encontrou ao separar GRANT e hardening.
|
|
110
|
+
|
|
111
|
+
DO $$
|
|
112
|
+
BEGIN
|
|
113
|
+
IF EXISTS (SELECT FROM pg_roles WHERE rolname = 'baruk_app') THEN
|
|
114
|
+
EXECUTE 'REVOKE INSERT, UPDATE, DELETE ON role FROM baruk_app';
|
|
115
|
+
EXECUTE 'REVOKE INSERT, UPDATE, DELETE ON role_permission FROM baruk_app';
|
|
116
|
+
END IF;
|
|
117
|
+
END $$;
|
|
118
|
+
|
|
119
|
+
COMMENT ON POLICY role_visibility ON role IS
|
|
120
|
+
'Leitura: papéis de sistema + os do tenant. Escrita: SOMENTE do tenant — o ramo IS NULL no WITH CHECK permitia forjar papel global (P0-A, Fase 4).';
|
|
121
|
+
COMMENT ON POLICY role_system_provisioning ON role IS
|
|
122
|
+
'Provisionamento do catálogo de sistema pelo papel dono do schema. FORCE RLS vale para o dono, e ensureRbacCatalog roda sem tenant no contexto.';
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
-- 0046 — o modelo de dados que falta para ativar um cliente real.
|
|
2
|
+
--
|
|
3
|
+
-- A Fase 5 começou mapeando, contra o schema, exatamente quais dados um
|
|
4
|
+
-- escritório precisa para ativar um cliente. Quatro ausências apareceram, e
|
|
5
|
+
-- todas bloqueiam algo concreto do piloto:
|
|
6
|
+
--
|
|
7
|
+
-- 1. **Não há onde guardar município e UF.** Três obrigações do catálogo são
|
|
8
|
+
-- estaduais ou municipais e têm prazo que varia por localidade. Sem UF e
|
|
9
|
+
-- município no cliente, marcar essas obrigações como "depende da localidade"
|
|
10
|
+
-- é honesto mas inútil: não há o dado com que decidir.
|
|
11
|
+
--
|
|
12
|
+
-- 2. **Não há responsável pelo cliente.** `recurring_instance` e
|
|
13
|
+
-- `service_request` têm `responsible_user_id`; o cliente não tem. Então a
|
|
14
|
+
-- carteira não pode ser dividida entre as pessoas do escritório — só as
|
|
15
|
+
-- tarefas podem, uma a uma, depois de criadas.
|
|
16
|
+
--
|
|
17
|
+
-- 3. **A importação não deixa rastro reversível.** `commitImport` cria
|
|
18
|
+
-- clientes e devolve uma contagem. Não há como responder "quais linhas
|
|
19
|
+
-- entraram naquela importação" nem desfazer uma importação inteira.
|
|
20
|
+
--
|
|
21
|
+
-- 4. **A validação humana do catálogo não tem onde ser gravada.** O catálogo
|
|
22
|
+
-- fiscal foi semeado tecnicamente e não foi conferido contra os serviços que
|
|
23
|
+
-- a SC presta. Marcar "conferido" é por escritório, não global — o mesmo
|
|
24
|
+
-- template de sistema pode ser válido para um escritório e não se aplicar a
|
|
25
|
+
-- outro. Por isso é tabela própria, e não coluna em `recurring_item_type`:
|
|
26
|
+
-- aquela linha é COMPARTILHADA entre todos os tenants, e uma coluna nela
|
|
27
|
+
-- faria um escritório carimbar a validação do outro.
|
|
28
|
+
--
|
|
29
|
+
-- Nada aqui liga cobrança, obrigação ou envio. É só onde o dado passa a caber.
|
|
30
|
+
|
|
31
|
+
-- ── 1 · Localidade e responsável do cliente ────────────────────────────────
|
|
32
|
+
--
|
|
33
|
+
-- Os campos de endereço são deliberadamente poucos: os que o produto usa hoje.
|
|
34
|
+
-- `state_uf` tem CHECK de duas maiúsculas porque é ele que vai selecionar regra
|
|
35
|
+
-- estadual — um "Goias" digitado no lugar de "GO" faria a regra não casar em
|
|
36
|
+
-- silêncio, e silêncio é o modo de falha que esta fase existe para eliminar.
|
|
37
|
+
|
|
38
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS address_line text;
|
|
39
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS municipality text;
|
|
40
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS state_uf text;
|
|
41
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS postal_code text;
|
|
42
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS notes text;
|
|
43
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS responsible_user_id uuid REFERENCES "user"(id);
|
|
44
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS contract_started_on date;
|
|
45
|
+
|
|
46
|
+
DO $$
|
|
47
|
+
BEGIN
|
|
48
|
+
IF NOT EXISTS (
|
|
49
|
+
SELECT FROM pg_constraint WHERE conname = 'client_state_uf_format'
|
|
50
|
+
) THEN
|
|
51
|
+
ALTER TABLE client ADD CONSTRAINT client_state_uf_format
|
|
52
|
+
CHECK (state_uf IS NULL OR state_uf ~ '^[A-Z]{2}$');
|
|
53
|
+
END IF;
|
|
54
|
+
END $$;
|
|
55
|
+
|
|
56
|
+
CREATE INDEX IF NOT EXISTS client_responsible_idx
|
|
57
|
+
ON client (tenant_id, responsible_user_id) WHERE deleted_at IS NULL;
|
|
58
|
+
CREATE INDEX IF NOT EXISTS client_locality_idx
|
|
59
|
+
ON client (tenant_id, state_uf, municipality) WHERE deleted_at IS NULL;
|
|
60
|
+
|
|
61
|
+
COMMENT ON COLUMN client.state_uf IS
|
|
62
|
+
'UF em duas maiúsculas. Seleciona regra estadual de vencimento; formato livre faria a regra não casar em silêncio.';
|
|
63
|
+
COMMENT ON COLUMN client.responsible_user_id IS
|
|
64
|
+
'Responsável pela carteira deste cliente. Toda troca passa por audit_log — ver assignClientResponsible.';
|
|
65
|
+
|
|
66
|
+
-- ── 2 · Lote de importação ─────────────────────────────────────────────────
|
|
67
|
+
--
|
|
68
|
+
-- Existe para duas perguntas que hoje não têm resposta: "o que entrou naquela
|
|
69
|
+
-- importação?" e "como desfaço?". O desfazer é lógico (soft-delete dos clientes
|
|
70
|
+
-- do lote que ninguém tocou desde então), nunca físico: apagar linha real é
|
|
71
|
+
-- proibido, e um cliente que já ganhou honorário ou obrigação não é mais "só uma
|
|
72
|
+
-- linha importada".
|
|
73
|
+
--
|
|
74
|
+
-- `source_digest` é o sha256 do CSV. É ele que amarra plano e commit: o commit
|
|
75
|
+
-- recusa aplicar um conteúdo diferente do que foi previsto, em vez de reparsear
|
|
76
|
+
-- e produzir um resultado que ninguém viu.
|
|
77
|
+
|
|
78
|
+
CREATE TABLE IF NOT EXISTS client_import_batch (
|
|
79
|
+
id uuid PRIMARY KEY,
|
|
80
|
+
tenant_id uuid NOT NULL REFERENCES tenant(id),
|
|
81
|
+
source_digest text NOT NULL,
|
|
82
|
+
source_name text,
|
|
83
|
+
row_total int NOT NULL DEFAULT 0,
|
|
84
|
+
created_count int NOT NULL DEFAULT 0,
|
|
85
|
+
skipped_count int NOT NULL DEFAULT 0,
|
|
86
|
+
error_count int NOT NULL DEFAULT 0,
|
|
87
|
+
status text NOT NULL DEFAULT 'applied'
|
|
88
|
+
CHECK (status IN ('applied', 'rolled_back')),
|
|
89
|
+
created_by uuid REFERENCES "user"(id),
|
|
90
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
91
|
+
rolled_back_at timestamptz,
|
|
92
|
+
rolled_back_by uuid REFERENCES "user"(id),
|
|
93
|
+
CONSTRAINT client_import_batch_tenant_id_uq UNIQUE (tenant_id, id),
|
|
94
|
+
CHECK ((status <> 'rolled_back') OR rolled_back_at IS NOT NULL)
|
|
95
|
+
);
|
|
96
|
+
CREATE INDEX IF NOT EXISTS client_import_batch_tenant_idx
|
|
97
|
+
ON client_import_batch (tenant_id, created_at DESC);
|
|
98
|
+
|
|
99
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS import_batch_id uuid;
|
|
100
|
+
|
|
101
|
+
DO $$
|
|
102
|
+
BEGIN
|
|
103
|
+
IF NOT EXISTS (SELECT FROM pg_constraint WHERE conname = 'client_import_batch_fk') THEN
|
|
104
|
+
ALTER TABLE client ADD CONSTRAINT client_import_batch_fk
|
|
105
|
+
FOREIGN KEY (tenant_id, import_batch_id)
|
|
106
|
+
REFERENCES client_import_batch (tenant_id, id);
|
|
107
|
+
END IF;
|
|
108
|
+
END $$;
|
|
109
|
+
|
|
110
|
+
CREATE INDEX IF NOT EXISTS client_import_batch_idx
|
|
111
|
+
ON client (tenant_id, import_batch_id) WHERE import_batch_id IS NOT NULL;
|
|
112
|
+
|
|
113
|
+
ALTER TABLE client_import_batch ENABLE ROW LEVEL SECURITY;
|
|
114
|
+
ALTER TABLE client_import_batch FORCE ROW LEVEL SECURITY;
|
|
115
|
+
CREATE POLICY client_import_batch_tenant_isolation ON client_import_batch
|
|
116
|
+
USING (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid)
|
|
117
|
+
WITH CHECK (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid);
|
|
118
|
+
|
|
119
|
+
-- ── 3 · Validação humana do catálogo, por escritório ───────────────────────
|
|
120
|
+
--
|
|
121
|
+
-- Um item do catálogo, para um escritório, está em um de quatro estados. O
|
|
122
|
+
-- padrão é `pending_validation` e ele é o ponto inteiro: enquanto ninguém
|
|
123
|
+
-- conferiu, o produto deve DIZER que ninguém conferiu, em vez de deixar o seed
|
|
124
|
+
-- passar por verdade operacional.
|
|
125
|
+
--
|
|
126
|
+
-- `depends_on_locality` marca os itens cujo prazo muda por UF ou município. Não
|
|
127
|
+
-- é um prazo inventado — é a ausência de prazo, declarada.
|
|
128
|
+
|
|
129
|
+
CREATE TABLE IF NOT EXISTS recurring_item_type_validation (
|
|
130
|
+
id uuid PRIMARY KEY,
|
|
131
|
+
tenant_id uuid NOT NULL REFERENCES tenant(id),
|
|
132
|
+
item_type_id uuid NOT NULL REFERENCES recurring_item_type(id),
|
|
133
|
+
status text NOT NULL DEFAULT 'pending_validation'
|
|
134
|
+
CHECK (status IN ('validated', 'pending_validation', 'not_applicable', 'disabled')),
|
|
135
|
+
depends_on_locality boolean NOT NULL DEFAULT false,
|
|
136
|
+
note text,
|
|
137
|
+
validated_by uuid REFERENCES "user"(id),
|
|
138
|
+
validated_at timestamptz,
|
|
139
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
140
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
141
|
+
CONSTRAINT recurring_item_type_validation_tenant_id_uq UNIQUE (tenant_id, id),
|
|
142
|
+
CHECK ((status <> 'validated') OR validated_at IS NOT NULL)
|
|
143
|
+
);
|
|
144
|
+
CREATE UNIQUE INDEX IF NOT EXISTS recurring_item_type_validation_uq
|
|
145
|
+
ON recurring_item_type_validation (tenant_id, item_type_id);
|
|
146
|
+
|
|
147
|
+
ALTER TABLE recurring_item_type_validation ENABLE ROW LEVEL SECURITY;
|
|
148
|
+
ALTER TABLE recurring_item_type_validation FORCE ROW LEVEL SECURITY;
|
|
149
|
+
CREATE POLICY recurring_item_type_validation_tenant_isolation ON recurring_item_type_validation
|
|
150
|
+
USING (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid)
|
|
151
|
+
WITH CHECK (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid);
|
|
152
|
+
|
|
153
|
+
COMMENT ON TABLE recurring_item_type_validation IS
|
|
154
|
+
'Conferência humana do catálogo, POR ESCRITÓRIO. Tabela própria porque recurring_item_type com tenant_id NULL é linha compartilhada: coluna nela faria um escritório carimbar a validação do outro.';
|
|
155
|
+
|
|
156
|
+
-- ── 4 · O serviço contratado ganha responsável e vínculo com obrigação ─────
|
|
157
|
+
--
|
|
158
|
+
-- `fee_agreement` já era a entidade de serviço contratado: tem descrição, valor,
|
|
159
|
+
-- periodicidade, vencimento, início, fim e status, e um cliente pode ter
|
|
160
|
+
-- vários. Não se cria entidade nova para o que já existe. Faltavam duas coisas.
|
|
161
|
+
--
|
|
162
|
+
-- O vínculo é tabela de ligação porque a relação é N-para-N de verdade: um
|
|
163
|
+
-- serviço de folha cobre eSocial, FGTS e a própria folha; e a mesma obrigação
|
|
164
|
+
-- pode estar coberta por mais de um contrato ao longo do tempo.
|
|
165
|
+
|
|
166
|
+
ALTER TABLE fee_agreement ADD COLUMN IF NOT EXISTS responsible_user_id uuid REFERENCES "user"(id);
|
|
167
|
+
|
|
168
|
+
CREATE TABLE IF NOT EXISTS fee_agreement_obligation (
|
|
169
|
+
id uuid PRIMARY KEY,
|
|
170
|
+
tenant_id uuid NOT NULL REFERENCES tenant(id),
|
|
171
|
+
fee_agreement_id uuid NOT NULL,
|
|
172
|
+
item_type_id uuid NOT NULL REFERENCES recurring_item_type(id),
|
|
173
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
174
|
+
CONSTRAINT fee_agreement_obligation_tenant_id_uq UNIQUE (tenant_id, id),
|
|
175
|
+
FOREIGN KEY (tenant_id, fee_agreement_id) REFERENCES fee_agreement (tenant_id, id)
|
|
176
|
+
);
|
|
177
|
+
CREATE UNIQUE INDEX IF NOT EXISTS fee_agreement_obligation_uq
|
|
178
|
+
ON fee_agreement_obligation (tenant_id, fee_agreement_id, item_type_id);
|
|
179
|
+
|
|
180
|
+
ALTER TABLE fee_agreement_obligation ENABLE ROW LEVEL SECURITY;
|
|
181
|
+
ALTER TABLE fee_agreement_obligation FORCE ROW LEVEL SECURITY;
|
|
182
|
+
CREATE POLICY fee_agreement_obligation_tenant_isolation ON fee_agreement_obligation
|
|
183
|
+
USING (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid)
|
|
184
|
+
WITH CHECK (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid);
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
-- 0047 — liberação do destinatário para comunicação externa.
|
|
2
|
+
--
|
|
3
|
+
-- ── O que foi medido em produção ────────────────────────────────────────────
|
|
4
|
+
--
|
|
5
|
+
-- Em 2026-09-05, às 12:00, o cron de cobrança enviou 5 e-mails no tenant `sc`.
|
|
6
|
+
-- Hoje isso é inofensivo: o único cliente com e-mail cadastrado é o do próprio
|
|
7
|
+
-- titular, e os recebíveis são sintéticos.
|
|
8
|
+
--
|
|
9
|
+
-- O problema aparece no dia seguinte à importação da carteira real. A régua
|
|
10
|
+
-- percorre todo cliente com e-mail e recebível vencido, e **nada no caminho
|
|
11
|
+
-- pergunta se alguém conferiu aquele endereço**. Trezentos clientes importados
|
|
12
|
+
-- de manhã recebem cobrança automática à tarde, sobre dados que ninguém
|
|
13
|
+
-- validou. Foi exatamente assim que 81 e-mails saíram sobre a carteira de QA.
|
|
14
|
+
--
|
|
15
|
+
-- ── Por que não é consentimento ─────────────────────────────────────────────
|
|
16
|
+
--
|
|
17
|
+
-- O motor já tem consentimento, e ele está certo do jeito que está: a política
|
|
18
|
+
-- do produto trata `unknown` como permitido no e-mail porque cobrança
|
|
19
|
+
-- transacional se apoia na relação contratual. Mudar isso travaria a cobrança
|
|
20
|
+
-- de toda carteira legada que nunca teve o campo preenchido — o próprio código
|
|
21
|
+
-- do consentimento avisa disso.
|
|
22
|
+
--
|
|
23
|
+
-- São perguntas diferentes:
|
|
24
|
+
--
|
|
25
|
+
-- consentimento → "esta pessoa aceita ser contatada?" (vontade do DESTINATÁRIO)
|
|
26
|
+
-- liberação → "alguém daqui conferiu este endereço?" (conferência do REMETENTE)
|
|
27
|
+
--
|
|
28
|
+
-- Elas se separam exatamente no caso que importa: o cliente recém-importado tem
|
|
29
|
+
-- relação contratual e nenhuma conferência.
|
|
30
|
+
--
|
|
31
|
+
-- ── Por que a ausência bloqueia ─────────────────────────────────────────────
|
|
32
|
+
--
|
|
33
|
+
-- O padrão é NÃO liberado, e não existe configuração que inverta isso. Um
|
|
34
|
+
-- default "libera se ninguém disse nada" transformaria a omissão em
|
|
35
|
+
-- autorização — e omissão é o estado natural de todo cliente que acabou de
|
|
36
|
+
-- entrar. O cliente não some da operação: ele aparece com pulo nomeado
|
|
37
|
+
-- (`recipient_not_confirmed`) na trilha e contado no painel.
|
|
38
|
+
|
|
39
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS communication_cleared_at timestamptz;
|
|
40
|
+
ALTER TABLE client ADD COLUMN IF NOT EXISTS communication_cleared_by uuid REFERENCES "user"(id);
|
|
41
|
+
|
|
42
|
+
DO $$
|
|
43
|
+
BEGIN
|
|
44
|
+
IF NOT EXISTS (SELECT FROM pg_constraint WHERE conname = 'client_clearance_coherent') THEN
|
|
45
|
+
-- Data e autor andam juntos: uma liberação sem autor não responde "quem
|
|
46
|
+
-- conferiu?", que é a única pergunta que ela existe para responder.
|
|
47
|
+
ALTER TABLE client ADD CONSTRAINT client_clearance_coherent
|
|
48
|
+
CHECK ((communication_cleared_at IS NULL) = (communication_cleared_by IS NULL));
|
|
49
|
+
END IF;
|
|
50
|
+
END $$;
|
|
51
|
+
|
|
52
|
+
CREATE INDEX IF NOT EXISTS client_clearance_idx
|
|
53
|
+
ON client (tenant_id, communication_cleared_at) WHERE deleted_at IS NULL;
|
|
54
|
+
|
|
55
|
+
COMMENT ON COLUMN client.communication_cleared_at IS
|
|
56
|
+
'Quando alguém do escritório conferiu o contato e liberou este cliente para comunicação externa. NULL = não liberado, e a régua pula com motivo nomeado.';
|
|
57
|
+
|
|
58
|
+
-- ── Marco de início do piloto real ──────────────────────────────────────────
|
|
59
|
+
--
|
|
60
|
+
-- Os registros hoje no tenant `sc` são de desenvolvimento, QA, homologação e
|
|
61
|
+
-- demonstração — inclusive os do App Review da Meta. Nenhum é carteira real.
|
|
62
|
+
--
|
|
63
|
+
-- Sem um marco explícito, daqui a três meses ninguém distingue "cliente de
|
|
64
|
+
-- teste de agosto" de "cliente real de setembro", e todo indicador do painel
|
|
65
|
+
-- passa a misturar os dois. A tabela existe para que a fronteira seja um FATO
|
|
66
|
+
-- gravado, com autor e data, e não uma lembrança.
|
|
67
|
+
|
|
68
|
+
CREATE TABLE IF NOT EXISTS tenant_pilot_milestone (
|
|
69
|
+
id uuid PRIMARY KEY,
|
|
70
|
+
tenant_id uuid NOT NULL REFERENCES tenant(id),
|
|
71
|
+
milestone text NOT NULL CHECK (milestone IN ('real_pilot_start')),
|
|
72
|
+
occurred_at timestamptz NOT NULL DEFAULT now(),
|
|
73
|
+
declared_by uuid REFERENCES "user"(id),
|
|
74
|
+
note text,
|
|
75
|
+
CONSTRAINT tenant_pilot_milestone_tenant_id_uq UNIQUE (tenant_id, id)
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
-- Um marco por tenant: "quando começou de verdade" não admite duas respostas.
|
|
79
|
+
CREATE UNIQUE INDEX IF NOT EXISTS tenant_pilot_milestone_uq
|
|
80
|
+
ON tenant_pilot_milestone (tenant_id, milestone);
|
|
81
|
+
|
|
82
|
+
ALTER TABLE tenant_pilot_milestone ENABLE ROW LEVEL SECURITY;
|
|
83
|
+
ALTER TABLE tenant_pilot_milestone FORCE ROW LEVEL SECURITY;
|
|
84
|
+
CREATE POLICY tenant_pilot_milestone_tenant_isolation ON tenant_pilot_milestone
|
|
85
|
+
USING (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid)
|
|
86
|
+
WITH CHECK (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid);
|
|
87
|
+
|
|
88
|
+
COMMENT ON TABLE tenant_pilot_milestone IS
|
|
89
|
+
'Fronteira gravada entre dado pré-produtivo (QA, demo, Meta App Review) e carteira real. Sem ela, os indicadores do painel misturam os dois e ninguém consegue separar depois.';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- 0048 — a observação do catálogo passa a chegar a quem confere.
|
|
2
|
+
--
|
|
3
|
+
-- `FiscalCatalogEntry.note` existe na vertical desde a Fase 3, com o comentário
|
|
4
|
+
-- "Aparece na UI para o operador saber o que ajustar". Ela nunca apareceu:
|
|
5
|
+
-- não havia coluna, o seed não a escrevia, e a tela não tinha o que mostrar.
|
|
6
|
+
--
|
|
7
|
+
-- Nove das dezessete entradas têm nota, e são exatamente as que o escritório
|
|
8
|
+
-- precisa ler para decidir — as de esfera estadual e municipal, cujo prazo
|
|
9
|
+
-- muda por localidade, e as que dependem do segmento atendido. A conferência
|
|
10
|
+
-- humana do catálogo é o bloqueio desta fase, e ela estava sendo pedida sem a
|
|
11
|
+
-- informação que a torna possível.
|
|
12
|
+
|
|
13
|
+
ALTER TABLE recurring_item_type ADD COLUMN IF NOT EXISTS note text;
|
|
14
|
+
|
|
15
|
+
COMMENT ON COLUMN recurring_item_type.note IS
|
|
16
|
+
'Observação para quem confere: o que este item exige de decisão local (UF, município, segmento). Não é regra — é o que o operador precisa saber para decidir.';
|