@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mail/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mail/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACH,yEAGqC;AAFnC,sIAAA,yBAAyB,OAAA;AACzB,gJAAA,mCAAmC,OAAA;AAQrC,2GAA2G;AAC3G,6CAAiE;AAAxD,+HAAA,gCAAgC,OAAA;AAGzC,mDAAqE;AAA5D,oHAAA,kBAAkB,OAAA;AAAE,+GAAA,aAAa,OAAA;AAC1C,2DAA4D;AAAnD,0HAAA,oBAAoB,OAAA;AAC7B,+DAAqE;AAA5D,mIAAA,2BAA2B,OAAA;AAkBpC,uCAOoB;AANlB,kIAAA,sCAAsC,OAAA;AACtC,uIAAA,2CAA2C,OAAA;AAC3C,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,gIAAA,oCAAoC,OAAA;AACpC,4GAAA,gBAAgB,OAAA"}
|
|
@@ -1,251 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createTransactionalEmailProvider =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return EMAIL_PATTERN.test(address);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Valida os endereços que o Provider efetivamente usará na chamada ao provider externo
|
|
17
|
-
* (Correção 3 — Auditoria Codex). Roda depois de `from` resolvido, para pegar também
|
|
18
|
-
* remetentes vindos do `SenderResolver`/`defaultFrom`, não só o `input.from` explícito.
|
|
3
|
+
exports.createTransactionalEmailProvider = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* RE-EXPORT — a implementação vive em `@baruk/communication`.
|
|
6
|
+
*
|
|
7
|
+
* Este arquivo era uma cópia da capability `cap.communication.transactional-email`. A
|
|
8
|
+
* mesma implementação existia aqui e no engine canônico, e duas cópias de um provider de
|
|
9
|
+
* comunicação divergem: uma ganha a correção, a outra não, e ninguém percebe até um
|
|
10
|
+
* consumidor receber o comportamento antigo.
|
|
11
|
+
*
|
|
12
|
+
* O caminho de import é preservado de propósito: nenhum consumidor muda uma linha.
|
|
19
13
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (!isValidEmailAddress(fields.to))
|
|
23
|
-
invalidFields.push('to');
|
|
24
|
-
if (!isValidEmailAddress(fields.from))
|
|
25
|
-
invalidFields.push('from');
|
|
26
|
-
if (fields.replyTo !== undefined && !isValidEmailAddress(fields.replyTo))
|
|
27
|
-
invalidFields.push('replyTo');
|
|
28
|
-
if (invalidFields.length === 0)
|
|
29
|
-
return undefined;
|
|
30
|
-
return {
|
|
31
|
-
code: 'invalid-recipient',
|
|
32
|
-
message: `Endereço(s) de e-mail inválido(s): ${invalidFields.join(', ')}.`,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Provider canônico de `cap.communication.transactional-email` (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 v0.2).
|
|
37
|
-
* Extensões (`templateRenderer`/`senderResolver`/`hooks`/`dedupStore`) são injetadas na construção,
|
|
38
|
-
* nunca descobertas por convenção (RFC §4.7).
|
|
39
|
-
*/
|
|
40
|
-
function createTransactionalEmailProvider(config) {
|
|
41
|
-
const templateRenderer = config.templateRenderer ?? new template_renderer_js_1.PassthroughTemplateRenderer();
|
|
42
|
-
const senderResolver = config.senderResolver ?? new sender_resolver_js_1.StaticSenderResolver(config.defaultFrom);
|
|
43
|
-
const hooks = config.hooks ?? [];
|
|
44
|
-
const dedupStore = config.dedupStore ?? new dedup_store_js_1.InMemoryDedupStore();
|
|
45
|
-
const timeoutMs = config.timeoutMs ?? types_js_1.DEFAULT_TIMEOUT_MS;
|
|
46
|
-
const remoteReservationPollIntervalMs = config.remoteReservationPollIntervalMs ?? types_js_1.DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS;
|
|
47
|
-
const remoteReservationMaxWaitMs = config.remoteReservationMaxWaitMs ?? types_js_1.DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS;
|
|
48
|
-
const apiKey = config.apiKey;
|
|
49
|
-
/**
|
|
50
|
-
* Nenhuma chamada ao `DedupStore` (`reserve`/`get`/`set`) pode escapar sem tratamento
|
|
51
|
-
* (Bloqueador 1 — Certification Round 2: sanitização não pode se limitar ao `DeliveryResult`;
|
|
52
|
-
* uma implementação de store real — Redis/Postgres — pode lançar erros de rede/conexão cuja
|
|
53
|
-
* mensagem contém credenciais, ex.: uma connection string). Toda chamada passa por aqui:
|
|
54
|
-
* nunca propaga a exceção, sempre loga sanitizado, sempre devolve um fallback seguro.
|
|
55
|
-
*/
|
|
56
|
-
async function safeDedupCall(operation, fn, fallback) {
|
|
57
|
-
try {
|
|
58
|
-
return await fn();
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
(0, sanitize_js_1.logSanitized)(`[transactional-email] DedupStore.${operation} falhou (ignorado):`, errorMessage(err), [apiKey]);
|
|
62
|
-
return fallback;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function sleep(ms) {
|
|
66
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Aguarda, de forma limitada, o resultado de uma reserva mantida por outra instância/réplica
|
|
70
|
-
* (`DedupStore` `mode: 'shared'`) — é o mecanismo real de coalescência distribuída (Bloqueador 2).
|
|
71
|
-
* Nunca espera indefinidamente: `maxWaitMs` limita o tempo total, sempre com um valor determinístico
|
|
72
|
-
* ao final (achou o resultado, ou desistiu — nunca fica pendurado).
|
|
73
|
-
*/
|
|
74
|
-
async function waitForRemoteResult(dedupKey, pollIntervalMs, maxWaitMs) {
|
|
75
|
-
const deadline = Date.now() + maxWaitMs;
|
|
76
|
-
while (Date.now() < deadline) {
|
|
77
|
-
await sleep(pollIntervalMs);
|
|
78
|
-
const entry = await safeDedupCall('get', () => dedupStore.get(dedupKey), null);
|
|
79
|
-
if (entry)
|
|
80
|
-
return entry;
|
|
81
|
-
}
|
|
82
|
-
return null;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Coalescência local de envios em andamento por `dedupKey` (Bloqueador 2 — Auditoria Codex).
|
|
86
|
-
* A checagem (`get`) e a reserva (criar e guardar a Promise) acontecem no mesmo trecho
|
|
87
|
-
* síncrono — sem `await` entre elas — então duas chamadas concorrentes (`Promise.all`)
|
|
88
|
-
* nunca observam um estado intermediário: a segunda sempre encontra a Promise da primeira
|
|
89
|
-
* já registrada e aguarda o mesmo resultado, em vez de disparar um segundo envio.
|
|
90
|
-
* Garantia real: só dentro deste processo Node (mesma instância do Provider). Atomicidade
|
|
91
|
-
* entre processos/réplicas depende do `dedupStore.reserve` fornecido (RFC §4.2).
|
|
92
|
-
*/
|
|
93
|
-
const localSendsInFlight = new Map();
|
|
94
|
-
/** Resolve `from` e renderiza o template com segurança (Correção 4) — nunca deixa exceção escapar do contrato. */
|
|
95
|
-
function prepareSend(input) {
|
|
96
|
-
let from;
|
|
97
|
-
try {
|
|
98
|
-
from = input.from ?? senderResolver.resolveFrom(input.brand);
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
(0, sanitize_js_1.logSanitized)('[transactional-email] SenderResolver falhou:', errorMessage(err), [apiKey]);
|
|
102
|
-
return {
|
|
103
|
-
status: 'failed',
|
|
104
|
-
error: { code: 'unknown', message: 'Falha ao resolver o remetente do e-mail.' },
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
const addressError = validateAddresses({ to: input.to, from, replyTo: input.replyTo });
|
|
108
|
-
if (addressError) {
|
|
109
|
-
return { status: 'failed', error: addressError };
|
|
110
|
-
}
|
|
111
|
-
let rendered;
|
|
112
|
-
try {
|
|
113
|
-
rendered = templateRenderer.render(input.template, input.data);
|
|
114
|
-
}
|
|
115
|
-
catch (err) {
|
|
116
|
-
(0, sanitize_js_1.logSanitized)('[transactional-email] TemplateRenderer falhou:', errorMessage(err), [apiKey]);
|
|
117
|
-
return {
|
|
118
|
-
status: 'failed',
|
|
119
|
-
error: { code: 'unknown', message: 'Falha ao renderizar o template do e-mail.' },
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
return { from, rendered };
|
|
123
|
-
}
|
|
124
|
-
async function performSend(input) {
|
|
125
|
-
const prepared = prepareSend(input);
|
|
126
|
-
if ('status' in prepared) {
|
|
127
|
-
return prepared;
|
|
128
|
-
}
|
|
129
|
-
return (0, resend_client_js_1.sendViaResend)({
|
|
130
|
-
apiKey: apiKey,
|
|
131
|
-
from: prepared.from,
|
|
132
|
-
to: input.to,
|
|
133
|
-
replyTo: input.replyTo,
|
|
134
|
-
tag: input.tag,
|
|
135
|
-
rendered: prepared.rendered,
|
|
136
|
-
timeoutMs,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
async function sendDeduplicated(input, dedupKey) {
|
|
140
|
-
const existingInFlight = localSendsInFlight.get(dedupKey);
|
|
141
|
-
if (existingInFlight) {
|
|
142
|
-
return existingInFlight;
|
|
143
|
-
}
|
|
144
|
-
const sendPromise = (async () => {
|
|
145
|
-
try {
|
|
146
|
-
let reservation = await safeDedupCall('reserve', () => dedupStore.reserve(dedupKey, types_js_1.MIN_DEDUP_WINDOW_MS), { acquired: true });
|
|
147
|
-
if (!reservation.acquired && reservation.entry) {
|
|
148
|
-
return reservation.entry.result;
|
|
149
|
-
}
|
|
150
|
-
if (!reservation.acquired) {
|
|
151
|
-
// Reserva de outra instância/réplica em andamento, sem resultado ainda disponível
|
|
152
|
-
// (só ocorre com um DedupStore `mode: 'shared'` real — `InMemoryDedupStore` nunca
|
|
153
|
-
// devolve esse caso, ver seu jsdoc). Bloqueador 2 (Certification Round 2): a versão
|
|
154
|
-
// anterior caía direto em `performSend` aqui, reenviando às cegas. Agora espera de
|
|
155
|
-
// forma limitada pelo resultado real da outra instância antes de decidir qualquer coisa.
|
|
156
|
-
const remoteEntry = await waitForRemoteResult(dedupKey, remoteReservationPollIntervalMs, remoteReservationMaxWaitMs);
|
|
157
|
-
if (remoteEntry) {
|
|
158
|
-
return remoteEntry.result;
|
|
159
|
-
}
|
|
160
|
-
// Esgotado o tempo de espera: a reserva remota pode estar órfã (a instância que a
|
|
161
|
-
// detinha morreu sem liberar) — tenta assumir. Se o TTL da reserva remota já expirou
|
|
162
|
-
// no store, esta chamada adquire; caso contrário, ainda pertence a outra instância viva.
|
|
163
|
-
reservation = await safeDedupCall('reserve', () => dedupStore.reserve(dedupKey, types_js_1.MIN_DEDUP_WINDOW_MS), { acquired: true });
|
|
164
|
-
if (!reservation.acquired) {
|
|
165
|
-
if (reservation.entry) {
|
|
166
|
-
return reservation.entry.result;
|
|
167
|
-
}
|
|
168
|
-
// Ainda sem dono claro após a espera + nova tentativa: nunca reenviar às cegas
|
|
169
|
-
// (romperia o invariante de dedup). Falha determinística e retryable — o consumidor
|
|
170
|
-
// decide se tenta de novo (RFC §5, taxonomia por retryability).
|
|
171
|
-
return {
|
|
172
|
-
status: 'failed',
|
|
173
|
-
error: {
|
|
174
|
-
code: 'provider-unavailable',
|
|
175
|
-
message: 'Coordenação de deduplicação não respondeu a tempo; tente novamente.',
|
|
176
|
-
},
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
// `reservation.acquired === true`: este chamador é o dono do envio.
|
|
181
|
-
const result = await performSend(input);
|
|
182
|
-
await safeDedupCall('set', () => dedupStore.set(dedupKey, { result, expiresAt: Date.now() + types_js_1.MIN_DEDUP_WINDOW_MS }), undefined);
|
|
183
|
-
return result;
|
|
184
|
-
}
|
|
185
|
-
finally {
|
|
186
|
-
localSendsInFlight.delete(dedupKey);
|
|
187
|
-
}
|
|
188
|
-
})();
|
|
189
|
-
localSendsInFlight.set(dedupKey, sendPromise);
|
|
190
|
-
return sendPromise;
|
|
191
|
-
}
|
|
192
|
-
async function sendTransactionalEmail(rawInput) {
|
|
193
|
-
let input = rawInput;
|
|
194
|
-
for (const hook of hooks) {
|
|
195
|
-
if (hook.beforeSend) {
|
|
196
|
-
input = runSafely(() => hook.beforeSend(input), apiKey) ?? input;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
const startedAt = Date.now();
|
|
200
|
-
if (!apiKey) {
|
|
201
|
-
const result = { status: 'skipped' };
|
|
202
|
-
logOutcome(input, result, startedAt, apiKey);
|
|
203
|
-
notifyAfterSend(hooks, input, result, apiKey);
|
|
204
|
-
return result;
|
|
205
|
-
}
|
|
206
|
-
const dedupKey = input.idempotencyKey
|
|
207
|
-
? (0, dedup_store_js_1.buildDedupKey)(input.to, input.template, input.idempotencyKey)
|
|
208
|
-
: null;
|
|
209
|
-
const result = dedupKey ? await sendDeduplicated(input, dedupKey) : await performSend(input);
|
|
210
|
-
logOutcome(input, result, startedAt, apiKey);
|
|
211
|
-
notifyAfterSend(hooks, input, result, apiKey);
|
|
212
|
-
return result;
|
|
213
|
-
}
|
|
214
|
-
return { sendTransactionalEmail };
|
|
215
|
-
}
|
|
216
|
-
function errorMessage(err) {
|
|
217
|
-
return err instanceof Error ? err.message : String(err);
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Log estruturado mínimo de observabilidade (validação operacional pré-certificação).
|
|
221
|
-
* Sempre sanitizado — nunca inclui a apiKey nem o corpo bruto do provider (Bloqueador 1).
|
|
222
|
-
* Não inclui identificador de correlação porque o contrato atual (`SendTransactionalEmailInput`)
|
|
223
|
-
* não define um — não é inventado aqui (RFC não estende o contrato nesta correção).
|
|
224
|
-
*/
|
|
225
|
-
function logOutcome(input, result, startedAt, apiKey) {
|
|
226
|
-
(0, sanitize_js_1.logSanitizedInfo)('[transactional-email] outcome', {
|
|
227
|
-
status: result.status,
|
|
228
|
-
errorCode: result.error?.code,
|
|
229
|
-
durationMs: Date.now() - startedAt,
|
|
230
|
-
template: input.template,
|
|
231
|
-
deduplicated: Boolean(input.idempotencyKey),
|
|
232
|
-
}, [apiKey]);
|
|
233
|
-
}
|
|
234
|
-
/** Hooks nunca podem quebrar o envio principal — falha de um hook é ignorada (logada), não propagada. */
|
|
235
|
-
function runSafely(fn, apiKey) {
|
|
236
|
-
try {
|
|
237
|
-
return fn();
|
|
238
|
-
}
|
|
239
|
-
catch (err) {
|
|
240
|
-
(0, sanitize_js_1.logSanitized)('[transactional-email] hook falhou (ignorado):', errorMessage(err), [apiKey]);
|
|
241
|
-
return undefined;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
function notifyAfterSend(hooks, input, result, apiKey) {
|
|
245
|
-
for (const hook of hooks) {
|
|
246
|
-
if (hook.afterSend) {
|
|
247
|
-
runSafely(() => hook.afterSend(input, result), apiKey);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
14
|
+
var communication_1 = require("@baruk/communication");
|
|
15
|
+
Object.defineProperty(exports, "createTransactionalEmailProvider", { enumerable: true, get: function () { return communication_1.createTransactionalEmailProvider; } });
|
|
251
16
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/mail/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/mail/provider.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,sDAAwE;AAA/D,iIAAA,gCAAgC,OAAA"}
|
package/dist/cjs/mail/resend.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendEmail =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
catch {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
3
|
+
exports.sendEmailWithResult = exports.sendEmail = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* RE-EXPORT — a implementação vive em `@baruk/communication`.
|
|
6
|
+
*
|
|
7
|
+
* Este arquivo era uma cópia da capability `cap.communication.transactional-email`. A
|
|
8
|
+
* mesma implementação existia aqui e no engine canônico, e duas cópias de um provider de
|
|
9
|
+
* comunicação divergem: uma ganha a correção, a outra não, e ninguém percebe até um
|
|
10
|
+
* consumidor receber o comportamento antigo.
|
|
11
|
+
*
|
|
12
|
+
* O caminho de import é preservado de propósito: nenhum consumidor muda uma linha.
|
|
13
|
+
*/
|
|
14
|
+
var communication_1 = require("@baruk/communication");
|
|
15
|
+
Object.defineProperty(exports, "sendEmail", { enumerable: true, get: function () { return communication_1.sendEmail; } });
|
|
16
|
+
Object.defineProperty(exports, "sendEmailWithResult", { enumerable: true, get: function () { return communication_1.sendEmailWithResult; } });
|
|
21
17
|
//# sourceMappingURL=resend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resend.js","sourceRoot":"","sources":["../../../src/mail/resend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resend.js","sourceRoot":"","sources":["../../../src/mail/resend.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,sDAAsE;AAA7D,0GAAA,SAAS,OAAA;AAAE,oHAAA,mBAAmB,OAAA"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StaticSenderResolver = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
/*
|
|
5
|
+
* RE-EXPORT — a implementação vive em `@baruk/communication`.
|
|
6
|
+
*
|
|
7
|
+
* Este arquivo era uma cópia da capability `cap.communication.transactional-email`. A
|
|
8
|
+
* mesma implementação existia aqui e no engine canônico, e duas cópias de um provider de
|
|
9
|
+
* comunicação divergem: uma ganha a correção, a outra não, e ninguém percebe até um
|
|
10
|
+
* consumidor receber o comportamento antigo.
|
|
11
|
+
*
|
|
12
|
+
* O caminho de import é preservado de propósito: nenhum consumidor muda uma linha.
|
|
13
|
+
*/
|
|
14
|
+
var communication_1 = require("@baruk/communication");
|
|
15
|
+
Object.defineProperty(exports, "StaticSenderResolver", { enumerable: true, get: function () { return communication_1.StaticSenderResolver; } });
|
|
15
16
|
//# sourceMappingURL=sender-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sender-resolver.js","sourceRoot":"","sources":["../../../src/mail/sender-resolver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sender-resolver.js","sourceRoot":"","sources":["../../../src/mail/sender-resolver.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,sDAA4D;AAAnD,qHAAA,oBAAoB,OAAA"}
|
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PassthroughTemplateRenderer = void 0;
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
/*
|
|
5
|
+
* RE-EXPORT — a implementação vive em `@baruk/communication`.
|
|
6
|
+
*
|
|
7
|
+
* Este arquivo era uma cópia da capability `cap.communication.transactional-email`. A
|
|
8
|
+
* mesma implementação existia aqui e no engine canônico, e duas cópias de um provider de
|
|
9
|
+
* comunicação divergem: uma ganha a correção, a outra não, e ninguém percebe até um
|
|
10
|
+
* consumidor receber o comportamento antigo.
|
|
11
|
+
*
|
|
12
|
+
* O caminho de import é preservado de propósito: nenhum consumidor muda uma linha.
|
|
8
13
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const subject = data['subject'];
|
|
12
|
-
const html = data['html'];
|
|
13
|
-
const text = data['text'];
|
|
14
|
-
if (typeof subject !== 'string' || typeof html !== 'string') {
|
|
15
|
-
throw new Error(`PassthroughTemplateRenderer: template "${template}" exige data.subject e data.html como string`);
|
|
16
|
-
}
|
|
17
|
-
return { subject, html, text: typeof text === 'string' ? text : undefined };
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.PassthroughTemplateRenderer = PassthroughTemplateRenderer;
|
|
14
|
+
var communication_1 = require("@baruk/communication");
|
|
15
|
+
Object.defineProperty(exports, "PassthroughTemplateRenderer", { enumerable: true, get: function () { return communication_1.PassthroughTemplateRenderer; } });
|
|
21
16
|
//# sourceMappingURL=template-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../../../src/mail/template-renderer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../../../src/mail/template-renderer.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,sDAAmE;AAA1D,4HAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* A porta ÚNICA de e-mail para os fluxos que não passam pelo motor multicanal.
|
|
4
|
+
*
|
|
5
|
+
* ## O bloqueador que este arquivo fecha
|
|
6
|
+
*
|
|
7
|
+
* `SINGLE_DISPATCH_AUTHORITY=FAIL`. O guard da rodada anterior varria só
|
|
8
|
+
* `packages/core/src` e não enxergava o que estava do lado de fora:
|
|
9
|
+
*
|
|
10
|
+
* apps/api/src/routes/admin.ts → sendEmail(process.env.RESEND_API_KEY, …)
|
|
11
|
+
* apps/api/src/routes/documents.ts → sendEmail(process.env.RESEND_API_KEY, …)
|
|
12
|
+
* apps/api/src/routes/auth.ts → sendEmail(process.env.RESEND_API_KEY, …)
|
|
13
|
+
* packages/core/src/subscription-billing/service.ts → sendEmail(cfg.resendApiKey, …)
|
|
14
|
+
*
|
|
15
|
+
* Quatro caminhos de APLICAÇÃO chamando o transporte direto, cada um lendo a
|
|
16
|
+
* credencial e o remetente por conta própria. Não é um cliente provider paralelo
|
|
17
|
+
* — é o mesmo transporte —, mas é código de domínio alcançando a borda de envio
|
|
18
|
+
* sem passar por autoridade nenhuma, que é o que o adendo §12 proíbe.
|
|
19
|
+
*
|
|
20
|
+
* ## O que ela NÃO é
|
|
21
|
+
*
|
|
22
|
+
* **Não é o motor multicanal, e não finge ser.** Convite, reconvite, acesso ao
|
|
23
|
+
* Portal e recuperação de senha são comunicação de IDENTIDADE: acontecem antes de
|
|
24
|
+
* existir cliente, antes de existir consentimento de contribuinte, e — no caso do
|
|
25
|
+
* `forgot-password` — antes de existir sessão de onde tirar um tenant. Passá-los
|
|
26
|
+
* pelo `dispatch` exigiria inventar `recipientRef`, `subjectRef`, template
|
|
27
|
+
* aprovado e conta de canal para cada um; a fase que fizer isso é própria, e
|
|
28
|
+
* `AUTH_EMAIL_NOT_ON_SHARED_ENGINE` fica registrada como dívida.
|
|
29
|
+
*
|
|
30
|
+
* O que ela é: um **adapter de entrada** (§13). Fluxo legado sem cliente provider
|
|
31
|
+
* próprio, com uma porta só, nominal e vigiada.
|
|
32
|
+
*
|
|
33
|
+
* ## O que ela acrescenta de verdade
|
|
34
|
+
*
|
|
35
|
+
* Uma barreira que só renomeia o caminho não é correção. Estes fluxos ganham,
|
|
36
|
+
* aqui, três coisas que nenhum deles tinha:
|
|
37
|
+
*
|
|
38
|
+
* 1. **Idempotência de provider.** Nenhum dos quatro mandava `Idempotency-Key`.
|
|
39
|
+
* Duplo-clique em "convidar" ou retry de cron produzia duas mensagens
|
|
40
|
+
* idênticas na caixa de quem recebe. A chave é derivada do CONTEÚDO (ver
|
|
41
|
+
* `identityFor`), então retry idêntico dedupe e reconvite legítimo — que
|
|
42
|
+
* carrega um token novo — passa.
|
|
43
|
+
* 2. **Um lugar só para a credencial.** `process.env.RESEND_API_KEY` deixa de
|
|
44
|
+
* ser lido em quatro arquivos. Quatro leituras é onde uma delas fica para
|
|
45
|
+
* trás no dia da rotação.
|
|
46
|
+
* 3. **Um alvo só para o guard.** O guard de fronteira global proíbe `sendEmail*`
|
|
47
|
+
* em todo o repositório exceto no transporte, nos adapters do motor e aqui.
|
|
48
|
+
*/
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.sendTransactionalOutboundWithResult = sendTransactionalOutboundWithResult;
|
|
51
|
+
exports.sendTransactionalOutbound = sendTransactionalOutbound;
|
|
52
|
+
const node_crypto_1 = require("node:crypto");
|
|
53
|
+
const resend_js_1 = require("./resend.js");
|
|
54
|
+
/**
|
|
55
|
+
* A chave que o provider vai deduplicar.
|
|
56
|
+
*
|
|
57
|
+
* Derivada do CONTEÚDO — destinatário, assunto, remetente e corpo — e não de um
|
|
58
|
+
* identificador de negócio. A escolha decide o comportamento em produção:
|
|
59
|
+
*
|
|
60
|
+
* • retry idêntico (duplo-clique, reexecução de cron) produz a MESMA chave, e o
|
|
61
|
+
* Resend devolve a resposta original sem mandar a segunda mensagem;
|
|
62
|
+
* • reconvite legítimo carrega um token novo no corpo, logo uma chave nova, e
|
|
63
|
+
* sai normalmente.
|
|
64
|
+
*
|
|
65
|
+
* Derivar de `kind + destinatário` faria o oposto e seria pior que não ter chave:
|
|
66
|
+
* o reconvite legítimo seria silenciosamente descartado pelo provider dentro da
|
|
67
|
+
* janela de 24 h, e ninguém veria — a resposta de um replay é `200`.
|
|
68
|
+
*
|
|
69
|
+
* `sha256` hexadecimal, 64 caracteres, dentro do limite de 1 a 256 do provider.
|
|
70
|
+
*/
|
|
71
|
+
function identityFor(req) {
|
|
72
|
+
/*
|
|
73
|
+
* Serializado como ARRAY, e não concatenado com um separador.
|
|
74
|
+
*
|
|
75
|
+
* Concatenar campos com um caractere qualquer é ambíguo: `to='a b'` com
|
|
76
|
+
* `from='c'` produz a mesma cadeia que `to='a'` com `from='b c'`, e duas
|
|
77
|
+
* mensagens diferentes ganhariam a mesma chave — o provider descartaria a
|
|
78
|
+
* segunda como replay. `JSON.stringify` de um array escapa os campos e o
|
|
79
|
+
* comprimento fica implícito na estrutura, então nenhum conteúdo consegue
|
|
80
|
+
* imitar a fronteira entre dois campos.
|
|
81
|
+
*/
|
|
82
|
+
const material = JSON.stringify([
|
|
83
|
+
req.kind,
|
|
84
|
+
req.message.to,
|
|
85
|
+
req.message.from,
|
|
86
|
+
req.message.subject,
|
|
87
|
+
req.message.html,
|
|
88
|
+
req.message.text ?? null,
|
|
89
|
+
]);
|
|
90
|
+
return (0, node_crypto_1.createHash)('sha256').update(material, 'utf8').digest('hex');
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Envia, com o desfecho detalhado.
|
|
94
|
+
*
|
|
95
|
+
* Best-effort como sempre foi: devolve o resultado, nunca lança. Quem chama
|
|
96
|
+
* decide o que fazer — e continua podendo distinguir "o provider recusou" de "a
|
|
97
|
+
* mensagem saiu", que é a distinção que fez o Portal ficar meses sem acesso
|
|
98
|
+
* ativo quando ela não existia.
|
|
99
|
+
*/
|
|
100
|
+
async function sendTransactionalOutboundWithResult(req) {
|
|
101
|
+
return (0, resend_js_1.sendEmailWithResult)(req.apiKey ?? process.env.RESEND_API_KEY, req.message, {
|
|
102
|
+
idempotencyKey: identityFor(req),
|
|
103
|
+
fetchImpl: req.fetchImpl,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Envia e devolve só se saiu.
|
|
108
|
+
*
|
|
109
|
+
* A forma que os quatro chamadores legados já usavam (`boolean`), preservada para
|
|
110
|
+
* que a consolidação não mude a resposta de nenhuma rota — nem o `201` do
|
|
111
|
+
* convite, nem o campo `invitationEmailSent` que a tela lê.
|
|
112
|
+
*/
|
|
113
|
+
async function sendTransactionalOutbound(req) {
|
|
114
|
+
const result = await sendTransactionalOutboundWithResult(req);
|
|
115
|
+
return result.ok;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=transactional-outbound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactional-outbound.js","sourceRoot":"","sources":["../../../src/mail/transactional-outbound.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;;AAuGH,kFAOC;AASD,8DAGC;AAxHD,6CAAyC;AACzC,2CAA2F;AAqD3F;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,WAAW,CAAC,GAA8B;IACjD;;;;;;;;;OASG;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,OAAO,CAAC,EAAE;QACd,GAAG,CAAC,OAAO,CAAC,IAAI;QAChB,GAAG,CAAC,OAAO,CAAC,OAAO;QACnB,GAAG,CAAC,OAAO,CAAC,IAAI;QAChB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI;KACzB,CAAC,CAAC;IACH,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,mCAAmC,CACvD,GAA8B;IAE9B,OAAO,IAAA,+BAAmB,EAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE;QAChF,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,yBAAyB,CAAC,GAA8B;IAC5E,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,GAAG,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC"}
|
package/dist/cjs/mail/types.js
CHANGED
|
@@ -1,38 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// cap.communication.transactional-email — contrato canônico (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 v0.2).
|
|
3
|
-
// Ver docs/governance/RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001.md no repo baruk-ecosystem.
|
|
4
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS = exports.DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS = exports.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* estruturado, alta entropia) e coalescência distribuída real (espera limitada por reserva remota em
|
|
14
|
-
* andamento, nunca reenvio às cegas). Nenhuma das duas mudou assinatura pública (patch, não minor/major).
|
|
15
|
-
*/
|
|
16
|
-
exports.TRANSACTIONAL_EMAIL_CONTRACT_VERSION = '0.2.2';
|
|
17
|
-
/** Janela mínima de deduplicação exigida pela RFC §4.2 (24h) — implementações podem manter por mais tempo, nunca menos. */
|
|
18
|
-
exports.MIN_DEDUP_WINDOW_MS = 24 * 60 * 60 * 1000;
|
|
19
|
-
/** Timeout padrão do Provider (RFC §5 — herdado empiricamente da implementação mais madura do inventário). */
|
|
20
|
-
exports.DEFAULT_TIMEOUT_MS = 12_000;
|
|
21
|
-
/**
|
|
22
|
-
* Default de poll ao aguardar uma reserva remota em andamento num `DedupStore` `mode: 'shared'`
|
|
23
|
-
* (Bloqueador 2 — Certification Round 2). Baixo o suficiente para não atrasar percebivelmente
|
|
24
|
-
* o caso comum (reserva local, sem espera nenhuma).
|
|
25
|
-
*/
|
|
26
|
-
exports.DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS = 200;
|
|
27
|
-
/**
|
|
28
|
-
* Default de tempo máximo de espera por uma reserva remota antes de tentar assumi-la e,
|
|
29
|
-
* falhando isso, devolver falha determinística retryable (Bloqueador 2 — Certification Round 2).
|
|
30
|
-
* Maior que `DEFAULT_TIMEOUT_MS` — dá à instância dona tempo de terminar o próprio envio
|
|
31
|
-
* (que pode levar até `DEFAULT_TIMEOUT_MS`) antes desta instância desistir de esperar.
|
|
32
|
-
*/
|
|
33
|
-
exports.DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS = 15_000;
|
|
34
|
-
/** Utilitário de conveniência para o consumidor decidir retry — não usado internamente pelo core (RFC §5). */
|
|
35
|
-
function isRetryableError(code) {
|
|
36
|
-
return code === 'timeout' || code === 'provider-unavailable';
|
|
37
|
-
}
|
|
3
|
+
exports.isRetryableError = exports.DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS = exports.DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS = exports.TRANSACTIONAL_EMAIL_CONTRACT_VERSION = exports.MIN_DEDUP_WINDOW_MS = exports.DEFAULT_TIMEOUT_MS = void 0;
|
|
4
|
+
var communication_1 = require("@baruk/communication");
|
|
5
|
+
Object.defineProperty(exports, "DEFAULT_TIMEOUT_MS", { enumerable: true, get: function () { return communication_1.DEFAULT_TIMEOUT_MS; } });
|
|
6
|
+
Object.defineProperty(exports, "MIN_DEDUP_WINDOW_MS", { enumerable: true, get: function () { return communication_1.MIN_DEDUP_WINDOW_MS; } });
|
|
7
|
+
Object.defineProperty(exports, "TRANSACTIONAL_EMAIL_CONTRACT_VERSION", { enumerable: true, get: function () { return communication_1.TRANSACTIONAL_EMAIL_CONTRACT_VERSION; } });
|
|
8
|
+
Object.defineProperty(exports, "DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS", { enumerable: true, get: function () { return communication_1.DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS; } });
|
|
9
|
+
Object.defineProperty(exports, "DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS", { enumerable: true, get: function () { return communication_1.DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS; } });
|
|
10
|
+
Object.defineProperty(exports, "isRetryableError", { enumerable: true, get: function () { return communication_1.isRetryableError; } });
|
|
38
11
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mail/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mail/types.ts"],"names":[],"mappings":";;;AA0BA,sDAO8B;AAN5B,mHAAA,kBAAkB,OAAA;AAClB,oHAAA,mBAAmB,OAAA;AACnB,qIAAA,oCAAoC,OAAA;AACpC,4IAAA,2CAA2C,OAAA;AAC3C,uIAAA,sCAAsC,OAAA;AACtC,iHAAA,gBAAgB,OAAA"}
|
|
@@ -308,7 +308,7 @@ async function commitChange(tx, onboarding, events, action, actorId, expectedVer
|
|
|
308
308
|
}
|
|
309
309
|
function createOnboardingApplication(db, policy = exports.onboardingDisabledByDefault, idFactory = { next: shared_1.uuidv7 }) {
|
|
310
310
|
async function run(tenantId, context, operation, clientId) {
|
|
311
|
-
if (!policy.isEnabled(tenantId))
|
|
311
|
+
if (!(await policy.isEnabled(tenantId)))
|
|
312
312
|
throw new OnboardingFeatureDisabledError();
|
|
313
313
|
return (0, context_js_1.withContext)(db, { tenantId, userId: context.actorId, clientId }, operation);
|
|
314
314
|
}
|
|
@@ -340,17 +340,17 @@ function createOnboardingApplication(db, policy = exports.onboardingDisabledByDe
|
|
|
340
340
|
});
|
|
341
341
|
},
|
|
342
342
|
async get(tenantId, id, clientId) {
|
|
343
|
-
if (!policy.isEnabled(tenantId))
|
|
343
|
+
if (!(await policy.isEnabled(tenantId)))
|
|
344
344
|
throw new OnboardingFeatureDisabledError();
|
|
345
345
|
return (0, context_js_1.withContext)(db, { tenantId, clientId }, (tx) => getOnboarding(tx, id));
|
|
346
346
|
},
|
|
347
347
|
async list(tenantId, filter) {
|
|
348
|
-
if (!policy.isEnabled(tenantId))
|
|
348
|
+
if (!(await policy.isEnabled(tenantId)))
|
|
349
349
|
throw new OnboardingFeatureDisabledError();
|
|
350
350
|
return (0, context_js_1.withContext)(db, { tenantId, clientId: filter?.clientId }, (tx) => listOnboardings(tx, filter));
|
|
351
351
|
},
|
|
352
352
|
async timeline(tenantId, id, limit, offset, clientId) {
|
|
353
|
-
if (!policy.isEnabled(tenantId))
|
|
353
|
+
if (!(await policy.isEnabled(tenantId)))
|
|
354
354
|
throw new OnboardingFeatureDisabledError();
|
|
355
355
|
return (0, context_js_1.withContext)(db, { tenantId, clientId }, async (tx) => {
|
|
356
356
|
if (!(await getOnboarding(tx, id)))
|