@baruk/core 0.3.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.baruk-provenance.json +10 -0
- package/CHANGELOG.md +97 -0
- package/README.md +9 -2
- 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 +39 -2
- package/dist/auth/service.d.ts.map +1 -1
- package/dist/auth/service.js +75 -10
- package/dist/auth/service.js.map +1 -1
- package/dist/billing/ar-repository.d.ts +334 -0
- package/dist/billing/ar-repository.d.ts.map +1 -0
- package/dist/billing/ar-repository.js +707 -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 +89 -0
- package/dist/billing/provider-account.d.ts.map +1 -0
- package/dist/billing/provider-account.js +161 -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 +90 -1
- package/dist/billing/repository.d.ts.map +1 -1
- package/dist/billing/repository.js +148 -19
- package/dist/billing/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 +75 -9
- package/dist/cjs/auth/service.js.map +1 -1
- package/dist/cjs/billing/ar-repository.js +728 -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 +170 -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 +150 -18
- package/dist/cjs/billing/repository.js.map +1 -1
- package/dist/cjs/clients/repository.js +96 -20
- package/dist/cjs/clients/repository.js.map +1 -1
- package/dist/cjs/collection/branding.js +140 -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/communication-bridge.js +140 -0
- package/dist/cjs/collection/communication-bridge.js.map +1 -0
- package/dist/cjs/collection/communication-runtime.js +193 -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 +414 -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 +147 -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/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 +161 -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 +483 -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/repository.js +309 -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/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/index.js +427 -48
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/legal/company.js +36 -0
- package/dist/cjs/legal/company.js.map +1 -0
- package/dist/cjs/legal/documents.js +671 -0
- package/dist/cjs/legal/documents.js.map +1 -0
- package/dist/cjs/legal/index.js +15 -0
- package/dist/cjs/legal/index.js.map +1 -0
- package/dist/cjs/legal/types.js +34 -0
- package/dist/cjs/legal/types.js.map +1 -0
- 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/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 +67 -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/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 +57 -8
- package/dist/cjs/subscription-billing/service.js.map +1 -1
- package/dist/cjs/subscription-billing/types.js.map +1 -1
- package/dist/cjs/tenancy/provisioning.js +32 -8
- package/dist/cjs/tenancy/provisioning.js.map +1 -1
- package/dist/cjs/users/repository.js +119 -2
- 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/repository.d.ts +42 -0
- package/dist/clients/repository.d.ts.map +1 -1
- package/dist/clients/repository.js +94 -21
- package/dist/clients/repository.js.map +1 -1
- package/dist/collection/branding.d.ts +72 -0
- package/dist/collection/branding.d.ts.map +1 -0
- package/dist/collection/branding.js +136 -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/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 +95 -0
- package/dist/collection/communication-runtime.d.ts.map +1 -0
- package/dist/collection/communication-runtime.js +187 -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 +177 -0
- package/dist/collection/engine.d.ts.map +1 -0
- package/dist/collection/engine.js +407 -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 +53 -0
- package/dist/collection/policy.d.ts.map +1 -0
- package/dist/collection/policy.js +141 -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/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 +158 -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 +153 -0
- package/dist/communication/engine.d.ts.map +1 -0
- package/dist/communication/engine.js +480 -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 +99 -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/repository.d.ts +147 -0
- package/dist/competence/repository.d.ts.map +1 -0
- package/dist/competence/repository.js +294 -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/db/migrate.js +17 -11
- package/dist/db/migrate.js.map +1 -1
- 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/index.d.ts +113 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +104 -8
- package/dist/index.js.map +1 -1
- package/dist/legal/company.d.ts +32 -0
- package/dist/legal/company.d.ts.map +1 -0
- package/dist/legal/company.js +33 -0
- package/dist/legal/company.js.map +1 -0
- package/dist/legal/documents.d.ts +30 -0
- package/dist/legal/documents.d.ts.map +1 -0
- package/dist/legal/documents.js +666 -0
- package/dist/legal/documents.js.map +1 -0
- package/dist/legal/index.d.ts +5 -0
- package/dist/legal/index.d.ts.map +1 -0
- package/dist/legal/index.js +4 -0
- package/dist/legal/index.js.map +1 -0
- package/dist/legal/types.d.ts +145 -0
- package/dist/legal/types.d.ts.map +1 -0
- package/dist/legal/types.js +31 -0
- package/dist/legal/types.js.map +1 -0
- 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/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 +67 -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/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 +17 -1
- package/dist/subscription-billing/service.d.ts.map +1 -1
- package/dist/subscription-billing/service.js +57 -8
- 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/provisioning.d.ts.map +1 -1
- package/dist/tenancy/provisioning.js +32 -8
- package/dist/tenancy/provisioning.js.map +1 -1
- package/dist/users/repository.d.ts +38 -0
- package/dist/users/repository.d.ts.map +1 -1
- package/dist/users/repository.js +118 -3
- 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 +19 -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/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,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telefone brasileiro em formato canônico.
|
|
3
|
+
*
|
|
4
|
+
* Existe UMA vez, e não uma por canal, porque WhatsApp e SMS discordariam no
|
|
5
|
+
* primeiro caso de borda — e discordar aqui significa uma mensagem chegar e a
|
|
6
|
+
* outra não, para o mesmo cliente, sem que nada no sistema explique por quê.
|
|
7
|
+
*
|
|
8
|
+
* O que este módulo NÃO faz: dizer se o número existe, se está ativo, ou se tem
|
|
9
|
+
* WhatsApp. Nada disso é derivável do formato. Ele responde uma pergunta só —
|
|
10
|
+
* "isto tem a FORMA de um número brasileiro discável?" — e a resposta negativa
|
|
11
|
+
* é confiável, enquanto a positiva é apenas necessária, nunca suficiente.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* DDDs válidos no Plano Nacional de Numeração.
|
|
15
|
+
*
|
|
16
|
+
* Lista explícita, e não `[1-9][1-9]`, porque a faixa admite combinações que não
|
|
17
|
+
* existem (20, 23, 25, 26, 29, 30, 36, 39, 40, 50, 52, 56, 57, 58, 59, 60, 70,
|
|
18
|
+
* 72, 76, 78, 80, 90). Aceitar um DDD inexistente produz um E.164 bem formado
|
|
19
|
+
* que o provider aceita, cobra e nunca entrega — a pior combinação possível,
|
|
20
|
+
* porque falha silenciosa custa dinheiro e parece sucesso.
|
|
21
|
+
*/
|
|
22
|
+
const VALID_AREA_CODES = new Set([
|
|
23
|
+
'11',
|
|
24
|
+
'12',
|
|
25
|
+
'13',
|
|
26
|
+
'14',
|
|
27
|
+
'15',
|
|
28
|
+
'16',
|
|
29
|
+
'17',
|
|
30
|
+
'18',
|
|
31
|
+
'19',
|
|
32
|
+
'21',
|
|
33
|
+
'22',
|
|
34
|
+
'24',
|
|
35
|
+
'27',
|
|
36
|
+
'28',
|
|
37
|
+
'31',
|
|
38
|
+
'32',
|
|
39
|
+
'33',
|
|
40
|
+
'34',
|
|
41
|
+
'35',
|
|
42
|
+
'37',
|
|
43
|
+
'38',
|
|
44
|
+
'41',
|
|
45
|
+
'42',
|
|
46
|
+
'43',
|
|
47
|
+
'44',
|
|
48
|
+
'45',
|
|
49
|
+
'46',
|
|
50
|
+
'47',
|
|
51
|
+
'48',
|
|
52
|
+
'49',
|
|
53
|
+
'51',
|
|
54
|
+
'53',
|
|
55
|
+
'54',
|
|
56
|
+
'55',
|
|
57
|
+
'61',
|
|
58
|
+
'62',
|
|
59
|
+
'63',
|
|
60
|
+
'64',
|
|
61
|
+
'65',
|
|
62
|
+
'66',
|
|
63
|
+
'67',
|
|
64
|
+
'68',
|
|
65
|
+
'69',
|
|
66
|
+
'71',
|
|
67
|
+
'73',
|
|
68
|
+
'74',
|
|
69
|
+
'75',
|
|
70
|
+
'77',
|
|
71
|
+
'79',
|
|
72
|
+
'81',
|
|
73
|
+
'82',
|
|
74
|
+
'83',
|
|
75
|
+
'84',
|
|
76
|
+
'85',
|
|
77
|
+
'86',
|
|
78
|
+
'87',
|
|
79
|
+
'88',
|
|
80
|
+
'89',
|
|
81
|
+
'91',
|
|
82
|
+
'92',
|
|
83
|
+
'93',
|
|
84
|
+
'94',
|
|
85
|
+
'95',
|
|
86
|
+
'96',
|
|
87
|
+
'97',
|
|
88
|
+
'98',
|
|
89
|
+
'99',
|
|
90
|
+
]);
|
|
91
|
+
/**
|
|
92
|
+
* Normaliza um telefone digitado por gente.
|
|
93
|
+
*
|
|
94
|
+
* Aceita o que o operador realmente digita: `(62) 99999-8888`, `62999998888`,
|
|
95
|
+
* `+55 62 99999 8888`, `55 62 9999-8888`, com espaço, ponto, barra ou traço.
|
|
96
|
+
*
|
|
97
|
+
* A ambiguidade real é o `55`: ele é DDI (Brasil) e também DDD (Rio Grande do
|
|
98
|
+
* Sul). `5551999998888` tem 13 dígitos e é `+55 51 99999-8888`; `5599998888`
|
|
99
|
+
* tem 10 e é `(55) 9999-8888`, um fixo gaúcho. O tamanho resolve — e é por isso
|
|
100
|
+
* que a decisão é tomada pelo COMPRIMENTO antes de olhar o prefixo, nunca ao
|
|
101
|
+
* contrário.
|
|
102
|
+
*/
|
|
103
|
+
export function parseBrazilPhone(raw) {
|
|
104
|
+
if (!raw)
|
|
105
|
+
return { ok: false, reason: 'empty' };
|
|
106
|
+
// Um `+` em qualquer posição só importa no começo; o resto é ruído de
|
|
107
|
+
// digitação. Guardamos a intenção de DDI antes de descartar tudo que não é
|
|
108
|
+
// dígito, porque depois disso `+55…` e `55…` seriam indistinguíveis.
|
|
109
|
+
const trimmed = raw.trim();
|
|
110
|
+
const hadPlus = trimmed.startsWith('+');
|
|
111
|
+
const digits = trimmed.replace(/\D/g, '');
|
|
112
|
+
if (!digits)
|
|
113
|
+
return { ok: false, reason: 'empty' };
|
|
114
|
+
// Com `+` explícito, o DDI é o que veio. `+1` não é problema nosso: recusar é
|
|
115
|
+
// honesto, adivinhar seria inventar um número.
|
|
116
|
+
if (hadPlus && !digits.startsWith('55'))
|
|
117
|
+
return { ok: false, reason: 'foreign' };
|
|
118
|
+
let national;
|
|
119
|
+
if (digits.length === 12 || digits.length === 13) {
|
|
120
|
+
// DDI + DDD + 8 ou 9 dígitos.
|
|
121
|
+
if (!digits.startsWith('55'))
|
|
122
|
+
return { ok: false, reason: 'foreign' };
|
|
123
|
+
national = digits.slice(2);
|
|
124
|
+
}
|
|
125
|
+
else if (digits.length === 10 || digits.length === 11) {
|
|
126
|
+
// DDD + 8 ou 9 dígitos, sem DDI.
|
|
127
|
+
national = digits;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
return { ok: false, reason: 'length' };
|
|
131
|
+
}
|
|
132
|
+
const areaCode = national.slice(0, 2);
|
|
133
|
+
if (!VALID_AREA_CODES.has(areaCode))
|
|
134
|
+
return { ok: false, reason: 'ddd' };
|
|
135
|
+
const subscriber = national.slice(2);
|
|
136
|
+
if (subscriber.length === 9) {
|
|
137
|
+
// Celular: nono dígito é sempre 9, e o dígito seguinte nunca é 0 nem 1.
|
|
138
|
+
if (subscriber[0] !== '9')
|
|
139
|
+
return { ok: false, reason: 'not_dialable' };
|
|
140
|
+
if (subscriber[1] === '0' || subscriber[1] === '1') {
|
|
141
|
+
return { ok: false, reason: 'not_dialable' };
|
|
142
|
+
}
|
|
143
|
+
return { ok: true, e164: `+55${national}`, kind: 'mobile', areaCode, national };
|
|
144
|
+
}
|
|
145
|
+
// Oito dígitos: fixo. Celular de 8 dígitos não existe mais desde a
|
|
146
|
+
// implantação do nono dígito, e RECUSAR é melhor do que completar com um `9`
|
|
147
|
+
// — completar significa mandar mensagem para um número que o escritório nunca
|
|
148
|
+
// digitou, e que pode pertencer a outra pessoa.
|
|
149
|
+
const first = subscriber[0];
|
|
150
|
+
if (first === '0' || first === '1')
|
|
151
|
+
return { ok: false, reason: 'not_dialable' };
|
|
152
|
+
return { ok: true, e164: `+55${national}`, kind: 'landline', areaCode, national };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* O número serve para WhatsApp/SMS?
|
|
156
|
+
*
|
|
157
|
+
* Só celular. Fixo é discável e válido — e é exatamente por isso que precisa de
|
|
158
|
+
* uma checagem própria: ele passa em `parseBrazilPhone`, o provider aceita a
|
|
159
|
+
* requisição, e a mensagem nunca chega. Um "erro" que não aparece em lugar
|
|
160
|
+
* nenhum, mês após mês.
|
|
161
|
+
*/
|
|
162
|
+
export function isMessagingCapable(parsed) {
|
|
163
|
+
return parsed.ok && parsed.kind === 'mobile';
|
|
164
|
+
}
|
|
165
|
+
/** Conveniência para gravar em `client.phone_e164`. `null` quando não dá. */
|
|
166
|
+
export function toE164OrNull(raw) {
|
|
167
|
+
const parsed = parseBrazilPhone(raw);
|
|
168
|
+
return parsed.ok ? parsed.e164 : null;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Versão para log e tela: `+55 (62) 9****-**88`.
|
|
172
|
+
*
|
|
173
|
+
* A trilha precisa provar PARA ONDE foi, e um telefone inteiro em log é PII que
|
|
174
|
+
* vaza em screenshot, exportação e print de suporte. Os quatro caracteres
|
|
175
|
+
* visíveis bastam para o operador reconhecer o número que ele mesmo cadastrou,
|
|
176
|
+
* e não bastam para discar.
|
|
177
|
+
*/
|
|
178
|
+
export function maskPhone(e164) {
|
|
179
|
+
const digits = e164.replace(/\D/g, '');
|
|
180
|
+
if (digits.length < 6)
|
|
181
|
+
return '***';
|
|
182
|
+
const tail = digits.slice(-2);
|
|
183
|
+
const areaCode = digits.startsWith('55') ? digits.slice(2, 4) : digits.slice(0, 2);
|
|
184
|
+
return `+55 (${areaCode}) *****-**${tail}`;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=phone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../src/contacts/phone.ts"],"names":[],"mappings":"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"}
|
package/dist/db/migrate.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Aplica arquivos `.sql` numerados em ordem (core + verticais), registrando cada
|
|
5
5
|
* um em `_migration` com checksum. Roda com o papel OWNER (DATABASE_URL). Antes
|
|
6
|
-
* das migrations,
|
|
7
|
-
* NOBYPASSRLS)
|
|
6
|
+
* das migrations, cria o papel de aplicação `baruk_app` quando ausente
|
|
7
|
+
* (NOSUPERUSER, NOBYPASSRLS), sem reconfigurar uma credencial de runtime já
|
|
8
|
+
* existente; ao final, concede os privilégios de DML a ele.
|
|
8
9
|
*
|
|
9
10
|
* Uso: `pnpm db:migrate` (ou `tsx src/db/migrate.ts`)
|
|
10
11
|
*/
|
|
@@ -64,7 +65,6 @@ async function main() {
|
|
|
64
65
|
const ownerUrl = process.env.DATABASE_URL;
|
|
65
66
|
if (!ownerUrl)
|
|
66
67
|
throw new Error('DATABASE_URL (papel owner) não definida.');
|
|
67
|
-
const appPassword = safePassword(process.env.APP_DB_PASSWORD ?? '');
|
|
68
68
|
const sql = createDb(ownerUrl, { role: 'owner', max: 1 });
|
|
69
69
|
try {
|
|
70
70
|
// 1) Papel de aplicação. Roles novas já nascem NOSUPERUSER, NOBYPASSRLS,
|
|
@@ -72,14 +72,13 @@ async function main() {
|
|
|
72
72
|
// esses atributos EXPLICITAMENTE exige superuser (indisponível em Postgres
|
|
73
73
|
// gerenciado como Render/Neon), então só criamos com defaults e setamos
|
|
74
74
|
// LOGIN + PASSWORD. A ausência de BYPASSRLS + FORCE RLS garante o isolamento.
|
|
75
|
-
await sql
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
await sql.unsafe(`ALTER ROLE baruk_app WITH LOGIN PASSWORD '${appPassword}';`);
|
|
75
|
+
const [appRole] = await sql `
|
|
76
|
+
SELECT EXISTS (SELECT FROM pg_roles WHERE rolname = 'baruk_app') AS exists
|
|
77
|
+
`;
|
|
78
|
+
if (!appRole?.exists) {
|
|
79
|
+
const appPassword = safePassword(process.env.APP_DB_PASSWORD ?? '');
|
|
80
|
+
await sql.unsafe(`CREATE ROLE baruk_app LOGIN PASSWORD '${appPassword}';`);
|
|
81
|
+
}
|
|
83
82
|
// 2) Tabela de controle.
|
|
84
83
|
await sql.unsafe(`
|
|
85
84
|
CREATE TABLE IF NOT EXISTS _migration (
|
|
@@ -126,6 +125,13 @@ async function main() {
|
|
|
126
125
|
-- Catálogo comercial: app só lê (seed/owner escreve) — evita reprecificação
|
|
127
126
|
-- por qualquer falha no papel de aplicação.
|
|
128
127
|
REVOKE INSERT, UPDATE, DELETE ON saas_plan FROM baruk_app;
|
|
128
|
+
-- Autorização de workload não-humano: o app só LÊ. Quem concede é o
|
|
129
|
+
-- owner (provisionamento com a credencial de migração), FORA do processo
|
|
130
|
+
-- que consome. Autoridade escrita pelo controlado não é autoridade — e
|
|
131
|
+
-- este REVOKE é o que torna "o chamador não autoemite o próprio grant"
|
|
132
|
+
-- uma propriedade do banco, não uma promessa do TypeScript.
|
|
133
|
+
REVOKE INSERT, UPDATE, DELETE ON service_principal FROM baruk_app;
|
|
134
|
+
REVOKE INSERT, UPDATE, DELETE ON service_principal_grant FROM baruk_app;
|
|
129
135
|
-- Controle de migrations é privado do owner.
|
|
130
136
|
REVOKE ALL ON _migration FROM baruk_app;
|
|
131
137
|
`);
|
package/dist/db/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catálogos globais — RBAC, produtos do ecossistema e planos do SaaS.
|
|
3
|
+
*
|
|
4
|
+
* Isto NÃO é seed de dados de exemplo. São tabelas de configuração sem as quais
|
|
5
|
+
* o produto não opera: sem o catálogo de planos, `GET /v1/plans` responde uma
|
|
6
|
+
* lista vazia e ninguém consegue assinar. É schema lógico, não fixture.
|
|
7
|
+
*
|
|
8
|
+
* Por isso vive separado de `seed.ts`, que materializa o tenant fundador e um
|
|
9
|
+
* usuário administrador de desenvolvimento. Aquele seed usa
|
|
10
|
+
* `upsertUserWithPassword`, que faz `ON CONFLICT DO UPDATE SET password_hash` —
|
|
11
|
+
* rodá-lo contra um banco em uso redefine a senha de quem já existe. Este aqui
|
|
12
|
+
* não toca em `user`, `user_credential`, `tenant` nem `membership`.
|
|
13
|
+
*
|
|
14
|
+
* Idempotente e seguro para rodar a cada boot. Uso: `pnpm db:seed:catalog`.
|
|
15
|
+
*/
|
|
16
|
+
import { ensureRbacCatalog } from '../index.js';
|
|
17
|
+
export declare function seedCatalogs(db: Parameters<typeof ensureRbacCatalog>[0]): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=seed-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-catalog.d.ts","sourceRoot":"","sources":["../../src/db/seed-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAwB,iBAAiB,EAAiB,MAAM,aAAa,CAAC;AAIrF,wBAAsB,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7F"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catálogos globais — RBAC, produtos do ecossistema e planos do SaaS.
|
|
3
|
+
*
|
|
4
|
+
* Isto NÃO é seed de dados de exemplo. São tabelas de configuração sem as quais
|
|
5
|
+
* o produto não opera: sem o catálogo de planos, `GET /v1/plans` responde uma
|
|
6
|
+
* lista vazia e ninguém consegue assinar. É schema lógico, não fixture.
|
|
7
|
+
*
|
|
8
|
+
* Por isso vive separado de `seed.ts`, que materializa o tenant fundador e um
|
|
9
|
+
* usuário administrador de desenvolvimento. Aquele seed usa
|
|
10
|
+
* `upsertUserWithPassword`, que faz `ON CONFLICT DO UPDATE SET password_hash` —
|
|
11
|
+
* rodá-lo contra um banco em uso redefine a senha de quem já existe. Este aqui
|
|
12
|
+
* não toca em `user`, `user_credential`, `tenant` nem `membership`.
|
|
13
|
+
*
|
|
14
|
+
* Idempotente e seguro para rodar a cada boot. Uso: `pnpm db:seed:catalog`.
|
|
15
|
+
*/
|
|
16
|
+
import { ensureProductCatalog, ensureRbacCatalog, seedSaasPlans } from '../index.js';
|
|
17
|
+
import { createDb } from './client.js';
|
|
18
|
+
import { loadEnv } from './load-env.js';
|
|
19
|
+
export async function seedCatalogs(db) {
|
|
20
|
+
await ensureRbacCatalog(db);
|
|
21
|
+
await ensureProductCatalog(db);
|
|
22
|
+
await seedSaasPlans(db);
|
|
23
|
+
}
|
|
24
|
+
async function main() {
|
|
25
|
+
loadEnv();
|
|
26
|
+
const ownerUrl = process.env.DATABASE_URL;
|
|
27
|
+
if (!ownerUrl)
|
|
28
|
+
throw new Error('DATABASE_URL (papel owner) não definida.');
|
|
29
|
+
const db = createDb(ownerUrl, { role: 'owner', max: 1 });
|
|
30
|
+
try {
|
|
31
|
+
await seedCatalogs(db);
|
|
32
|
+
console.log('✓ Catálogos garantidos: RBAC, produtos do ecossistema e planos SaaS.');
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
await db.end({ timeout: 5 });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Só executa quando chamado direto — permite importar `seedCatalogs` de outro seed.
|
|
39
|
+
if (process.argv[1]?.endsWith('seed-catalog.ts') || process.argv[1]?.endsWith('seed-catalog.js')) {
|
|
40
|
+
main().catch((error) => {
|
|
41
|
+
console.error('✗ Falha ao garantir os catálogos:', error instanceof Error ? error.message : error);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=seed-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-catalog.js","sourceRoot":"","sources":["../../src/db/seed-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAA2C;IAC5E,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,OAAO,EAAE,CAAC;IACV,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC1C,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAE3E,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACtF,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACjG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CACX,mCAAmC,EACnC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/db/seed.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Idempotente. Uso: `pnpm db:seed`.
|
|
12
12
|
*/
|
|
13
|
-
import {
|
|
13
|
+
import { seedCatalogs } from './seed-catalog.js';
|
|
14
|
+
import { assignSystemRole, createDb, ensureMembership, ensureOrganization, ensureTenant, ensureTenantProduct, loadEnv, upsertUserWithPassword, } from '../index.js';
|
|
14
15
|
async function main() {
|
|
15
16
|
loadEnv();
|
|
16
17
|
const ownerUrl = process.env.DATABASE_URL;
|
|
@@ -22,9 +23,9 @@ async function main() {
|
|
|
22
23
|
const db = createDb(ownerUrl, { role: 'owner', max: 1 });
|
|
23
24
|
try {
|
|
24
25
|
// 1) Catálogos globais: RBAC + produtos do ecossistema.
|
|
25
|
-
|
|
26
|
-
await
|
|
27
|
-
console.log('✓ Catálogos garantidos (RBAC
|
|
26
|
+
// Delegado a seed-catalog.ts — mesma fonte usada no boot da API.
|
|
27
|
+
await seedCatalogs(db);
|
|
28
|
+
console.log('✓ Catálogos garantidos (RBAC, produtos e planos SaaS).');
|
|
28
29
|
// 2) Tenant fundador SC — dados legais não confirmados ficam NULOS.
|
|
29
30
|
const tenantId = await ensureTenant(db, {
|
|
30
31
|
code: 'sc',
|
|
@@ -39,21 +40,28 @@ async function main() {
|
|
|
39
40
|
await ensureTenantProduct(db, tenantId, 'contabil');
|
|
40
41
|
console.log('✓ Entitlement do produto Baruk Contábil concedido à SC.');
|
|
41
42
|
// 4) Usuário administrador de DESENVOLVIMENTO (não é dado real de sócio).
|
|
43
|
+
//
|
|
44
|
+
// A senha só é gravada se a conta ainda não tiver credencial. Rodar este
|
|
45
|
+
// seed contra um ambiente já inicializado NÃO troca a senha de quem
|
|
46
|
+
// administra — ver a nota em `upsertUserWithPassword`. Para redefinir de
|
|
47
|
+
// propósito, use `SEED_OVERWRITE_ADMIN_PASSWORD=1`, que obriga quem executa
|
|
48
|
+
// a declarar a intenção no comando.
|
|
42
49
|
const adminEmail = 'admin@sc.baruk.dev';
|
|
50
|
+
const overwritePassword = process.env.SEED_OVERWRITE_ADMIN_PASSWORD === '1';
|
|
43
51
|
const admin = await upsertUserWithPassword(db, {
|
|
44
52
|
email: adminEmail,
|
|
45
53
|
fullName: 'Administrador SC (dev)',
|
|
46
54
|
password: adminPassword,
|
|
47
55
|
userType: 'staff',
|
|
56
|
+
overwritePassword,
|
|
48
57
|
});
|
|
49
|
-
console.log(
|
|
58
|
+
console.log(admin.passwordWasSet
|
|
59
|
+
? `✓ Usuário admin (dev) garantido: ${admin.email} (senha ${overwritePassword ? 'REDEFINIDA' : 'definida'})`
|
|
60
|
+
: `✓ Usuário admin (dev) já existia: ${admin.email} (senha PRESERVADA — use SEED_OVERWRITE_ADMIN_PASSWORD=1 para redefinir)`);
|
|
50
61
|
// 5) Vínculo + papel Owner.
|
|
51
62
|
await ensureMembership(db, tenantId, admin.id);
|
|
52
63
|
await assignSystemRole(db, tenantId, admin.id, 'owner');
|
|
53
64
|
console.log('✓ Membership + papel Owner atribuídos ao admin no tenant SC.');
|
|
54
|
-
// 6) Catálogo de planos do SaaS (BILL-01) — idempotente.
|
|
55
|
-
await seedSaasPlans(db);
|
|
56
|
-
console.log('✓ Catálogo de planos SaaS garantido (starter/pro/enterprise/pro-anual).');
|
|
57
65
|
console.log('\n✓ Seed concluído. Login dev: admin@sc.baruk.dev / (SEED_ADMIN_PASSWORD)');
|
|
58
66
|
}
|
|
59
67
|
finally {
|
package/dist/db/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/db/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/db/seed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { Tx } from '../db/client.js';
|
|
2
|
+
import { type StorageProvider } from '../storage/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Documentos (ADR 0007).
|
|
5
|
+
*
|
|
6
|
+
* A separação documento / versão / blob é a invariante central e não deve ser
|
|
7
|
+
* colapsada: `document` é o registro de negócio (estável, é o que se referencia
|
|
8
|
+
* de fora), `document_version` é imutável, `blob` são os bytes deduplicados por
|
|
9
|
+
* tenant.
|
|
10
|
+
*
|
|
11
|
+
* Tenant-scoped por RLS, como todo o core.
|
|
12
|
+
*/
|
|
13
|
+
export interface DocumentRecord {
|
|
14
|
+
id: string;
|
|
15
|
+
clientId: string;
|
|
16
|
+
competenceId: string | null;
|
|
17
|
+
title: string;
|
|
18
|
+
status: string;
|
|
19
|
+
currentVersionId: string | null;
|
|
20
|
+
currentVersionNo: number | null;
|
|
21
|
+
createdAt: string;
|
|
22
|
+
}
|
|
23
|
+
export interface DocumentVersionRecord {
|
|
24
|
+
id: string;
|
|
25
|
+
documentId: string;
|
|
26
|
+
blobId: string;
|
|
27
|
+
versionNo: number;
|
|
28
|
+
originalFilename: string;
|
|
29
|
+
checksumSha256: string;
|
|
30
|
+
sizeBytes: number;
|
|
31
|
+
mimeType: string;
|
|
32
|
+
uploadedBy: string | null;
|
|
33
|
+
uploadedVia: string;
|
|
34
|
+
uploadedAt: string;
|
|
35
|
+
}
|
|
36
|
+
export interface UploadDocumentInput {
|
|
37
|
+
clientId: string;
|
|
38
|
+
competenceId?: string | null;
|
|
39
|
+
categoryId?: string | null;
|
|
40
|
+
title: string;
|
|
41
|
+
filename: string;
|
|
42
|
+
mimeType: string;
|
|
43
|
+
body: Uint8Array;
|
|
44
|
+
uploadedBy: string;
|
|
45
|
+
uploadedVia?: 'console' | 'portal' | 'import' | 'system';
|
|
46
|
+
/** Quando informado, cria nova versão deste documento em vez de um novo. */
|
|
47
|
+
documentId?: string | null;
|
|
48
|
+
competenceLabel?: string | null;
|
|
49
|
+
categoryKey?: string | null;
|
|
50
|
+
}
|
|
51
|
+
export interface UploadResult {
|
|
52
|
+
document: DocumentRecord;
|
|
53
|
+
version: DocumentVersionRecord;
|
|
54
|
+
/** true quando os bytes já existiam no tenant e o blob foi reaproveitado. */
|
|
55
|
+
deduplicated: boolean;
|
|
56
|
+
/** true quando o mesmo conteúdo já era a versão corrente — nada mudou. */
|
|
57
|
+
unchanged: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Recebe um arquivo e produz documento + versão.
|
|
61
|
+
*
|
|
62
|
+
* Três desfechos possíveis, e a distinção importa para o usuário:
|
|
63
|
+
*
|
|
64
|
+
* - **novo documento** — primeiro envio.
|
|
65
|
+
* - **nova versão** — conteúdo diferente para o mesmo documento. A versão
|
|
66
|
+
* anterior permanece intacta e recuperável.
|
|
67
|
+
* - **inalterado** — o checksum bate com a versão corrente. Não se cria versão
|
|
68
|
+
* nova: reenviar o mesmo arquivo por engano não deve poluir o histórico nem
|
|
69
|
+
* sugerir que houve substituição.
|
|
70
|
+
*
|
|
71
|
+
* O blob é deduplicado por tenant: dois documentos com bytes idênticos
|
|
72
|
+
* compartilham objeto. Nunca entre tenants — ver `0026`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function uploadDocument(tx: Tx, storage: StorageProvider, input: UploadDocumentInput): Promise<UploadResult>;
|
|
75
|
+
export declare function getDocument(tx: Tx, id: string): Promise<DocumentRecord>;
|
|
76
|
+
export declare function getVersion(tx: Tx, versionId: string): Promise<DocumentVersionRecord>;
|
|
77
|
+
/** Histórico completo, do mais recente para o mais antigo. Nada é omitido. */
|
|
78
|
+
export declare function listVersions(tx: Tx, documentId: string): Promise<DocumentVersionRecord[]>;
|
|
79
|
+
export declare function listDocuments(tx: Tx, filter?: {
|
|
80
|
+
clientId?: string;
|
|
81
|
+
competenceId?: string;
|
|
82
|
+
limit?: number;
|
|
83
|
+
offset?: number;
|
|
84
|
+
}): Promise<{
|
|
85
|
+
items: DocumentRecord[];
|
|
86
|
+
total: number;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Link temporário de leitura. Nunca devolve URL pública permanente.
|
|
90
|
+
* Resolve o blob a partir da versão para que a chave de storage jamais precise
|
|
91
|
+
* transitar pela borda HTTP.
|
|
92
|
+
*/
|
|
93
|
+
export declare function getDownloadUrl(tx: Tx, storage: StorageProvider, versionId: string): Promise<{
|
|
94
|
+
url: string;
|
|
95
|
+
filename: string;
|
|
96
|
+
}>;
|
|
97
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/documents/repository.ts"],"names":[],"mappings":"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"}
|