@baruk/core 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.baruk-provenance.json +4 -4
- package/CHANGELOG.md +42 -0
- package/dist/audit/repository.d.ts +33 -1
- package/dist/audit/repository.d.ts.map +1 -1
- package/dist/audit/repository.js +41 -7
- package/dist/audit/repository.js.map +1 -1
- package/dist/auth/service.d.ts +21 -0
- package/dist/auth/service.d.ts.map +1 -1
- package/dist/auth/service.js +46 -1
- package/dist/auth/service.js.map +1 -1
- package/dist/billing/ar-repository.d.ts +41 -1
- package/dist/billing/ar-repository.d.ts.map +1 -1
- package/dist/billing/ar-repository.js +82 -6
- package/dist/billing/ar-repository.js.map +1 -1
- package/dist/billing/provider-account.d.ts +38 -0
- package/dist/billing/provider-account.d.ts.map +1 -1
- package/dist/billing/provider-account.js +58 -2
- package/dist/billing/provider-account.js.map +1 -1
- package/dist/billing/repository.d.ts +44 -0
- package/dist/billing/repository.d.ts.map +1 -1
- package/dist/billing/repository.js +49 -5
- package/dist/billing/repository.js.map +1 -1
- package/dist/cjs/audit/repository.js +41 -7
- package/dist/cjs/audit/repository.js.map +1 -1
- package/dist/cjs/auth/service.js +46 -1
- package/dist/cjs/auth/service.js.map +1 -1
- package/dist/cjs/billing/ar-repository.js +82 -6
- package/dist/cjs/billing/ar-repository.js.map +1 -1
- package/dist/cjs/billing/provider-account.js +60 -1
- package/dist/cjs/billing/provider-account.js.map +1 -1
- package/dist/cjs/billing/repository.js +51 -5
- package/dist/cjs/billing/repository.js.map +1 -1
- package/dist/cjs/clients/ibge.js +103 -0
- package/dist/cjs/clients/ibge.js.map +1 -0
- package/dist/cjs/clients/repository.js +186 -9
- package/dist/cjs/clients/repository.js.map +1 -1
- package/dist/cjs/collection/branding.js +190 -0
- package/dist/cjs/collection/branding.js.map +1 -1
- package/dist/cjs/collection/clearance-store.js +74 -0
- package/dist/cjs/collection/clearance-store.js.map +1 -0
- package/dist/cjs/collection/communication-runtime.js +65 -2
- package/dist/cjs/collection/communication-runtime.js.map +1 -1
- package/dist/cjs/collection/engine.js +20 -0
- package/dist/cjs/collection/engine.js.map +1 -1
- package/dist/cjs/collection/policy.js +29 -1
- package/dist/cjs/collection/policy.js.map +1 -1
- package/dist/cjs/communication/clearance.js +18 -0
- package/dist/cjs/communication/clearance.js.map +1 -0
- package/dist/cjs/communication/dry-run-scenario.js +5 -0
- package/dist/cjs/communication/dry-run-scenario.js.map +1 -1
- package/dist/cjs/communication/engine.js +12 -0
- package/dist/cjs/communication/engine.js.map +1 -1
- package/dist/cjs/communication/policy.js.map +1 -1
- package/dist/cjs/competence/business-days.js +155 -0
- package/dist/cjs/competence/business-days.js.map +1 -0
- package/dist/cjs/competence/catalog-validation.js +174 -0
- package/dist/cjs/competence/catalog-validation.js.map +1 -0
- package/dist/cjs/competence/obligation-preview.js +190 -0
- package/dist/cjs/competence/obligation-preview.js.map +1 -0
- package/dist/cjs/competence/repository.js +330 -17
- package/dist/cjs/competence/repository.js.map +1 -1
- package/dist/cjs/dashboard/pilot-panel.js +90 -0
- package/dist/cjs/dashboard/pilot-panel.js.map +1 -0
- package/dist/cjs/dashboard/repository.js +11 -1
- package/dist/cjs/dashboard/repository.js.map +1 -1
- package/dist/cjs/db/client.js +17 -11
- package/dist/cjs/db/client.js.map +1 -1
- package/dist/cjs/db/provision-e2e-identity.js +111 -0
- package/dist/cjs/db/provision-e2e-identity.js.map +1 -0
- package/dist/cjs/fiscal/applicability.js +164 -0
- package/dist/cjs/fiscal/applicability.js.map +1 -0
- package/dist/cjs/fiscal/conditions.js +198 -0
- package/dist/cjs/fiscal/conditions.js.map +1 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-contract.js +390 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-contract.js.map +1 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-endpoint.js +108 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-endpoint.js.map +1 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-envelope.js +220 -0
- package/dist/cjs/fiscal/contracts/nfse-adn-envelope.js.map +1 -0
- package/dist/cjs/fiscal/coverage/model.js +127 -0
- package/dist/cjs/fiscal/coverage/model.js.map +1 -0
- package/dist/cjs/fiscal/coverage/requests.js +99 -0
- package/dist/cjs/fiscal/coverage/requests.js.map +1 -0
- package/dist/cjs/fiscal/credentials/material.js +168 -0
- package/dist/cjs/fiscal/credentials/material.js.map +1 -0
- package/dist/cjs/fiscal/credentials/readiness.js +163 -0
- package/dist/cjs/fiscal/credentials/readiness.js.map +1 -0
- package/dist/cjs/fiscal/eligibility.js +199 -0
- package/dist/cjs/fiscal/eligibility.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/__fixtures__/nfse.js +128 -0
- package/dist/cjs/fiscal/ingestion/__fixtures__/nfse.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/adn-transport.js +229 -0
- package/dist/cjs/fiscal/ingestion/adn-transport.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/direction.js +36 -0
- package/dist/cjs/fiscal/ingestion/direction.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/nfse-adn.js +228 -0
- package/dist/cjs/fiscal/ingestion/nfse-adn.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/pipeline.js +704 -0
- package/dist/cjs/fiscal/ingestion/pipeline.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/provider.js +51 -0
- package/dist/cjs/fiscal/ingestion/provider.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/repository.js +132 -0
- package/dist/cjs/fiscal/ingestion/repository.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/synthetic-provider.js +103 -0
- package/dist/cjs/fiscal/ingestion/synthetic-provider.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport-types.js +13 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport-types.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport.js +61 -0
- package/dist/cjs/fiscal/ingestion/synthetic-transport.js.map +1 -0
- package/dist/cjs/fiscal/ingestion/xml-reader.js +121 -0
- package/dist/cjs/fiscal/ingestion/xml-reader.js.map +1 -0
- package/dist/cjs/fiscal/repository.js +470 -0
- package/dist/cjs/fiscal/repository.js.map +1 -0
- package/dist/cjs/fiscal/sync/circuit.js +124 -0
- package/dist/cjs/fiscal/sync/circuit.js.map +1 -0
- package/dist/cjs/fiscal/sync/intervention.js +140 -0
- package/dist/cjs/fiscal/sync/intervention.js.map +1 -0
- package/dist/cjs/fiscal/sync/lease.js +146 -0
- package/dist/cjs/fiscal/sync/lease.js.map +1 -0
- package/dist/cjs/fiscal/sync/observability.js +244 -0
- package/dist/cjs/fiscal/sync/observability.js.map +1 -0
- package/dist/cjs/fiscal/sync/orchestrator.js +490 -0
- package/dist/cjs/fiscal/sync/orchestrator.js.map +1 -0
- package/dist/cjs/fiscal/sync/policy.js +143 -0
- package/dist/cjs/fiscal/sync/policy.js.map +1 -0
- package/dist/cjs/fiscal/sync/reprocess.js +241 -0
- package/dist/cjs/fiscal/sync/reprocess.js.map +1 -0
- package/dist/cjs/fiscal/sync/retry.js +183 -0
- package/dist/cjs/fiscal/sync/retry.js.map +1 -0
- package/dist/cjs/fiscal/sync/secret-boundary.js +123 -0
- package/dist/cjs/fiscal/sync/secret-boundary.js.map +1 -0
- package/dist/cjs/fiscal/transport/https.js +309 -0
- package/dist/cjs/fiscal/transport/https.js.map +1 -0
- package/dist/cjs/fiscal/transport/synthetic-tls.js +328 -0
- package/dist/cjs/fiscal/transport/synthetic-tls.js.map +1 -0
- package/dist/cjs/fiscal/transport/types.js +93 -0
- package/dist/cjs/fiscal/transport/types.js.map +1 -0
- package/dist/cjs/import/br-documents.js +85 -0
- package/dist/cjs/import/br-documents.js.map +1 -0
- package/dist/cjs/import/clients-import.js +347 -40
- package/dist/cjs/import/clients-import.js.map +1 -1
- package/dist/cjs/index.js +316 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/legal/documents.js +100 -15
- package/dist/cjs/legal/documents.js.map +1 -1
- package/dist/cjs/legal/index.js +3 -1
- package/dist/cjs/legal/index.js.map +1 -1
- package/dist/cjs/legal/types.js.map +1 -1
- package/dist/cjs/onboarding/persistence.js +4 -4
- package/dist/cjs/onboarding/persistence.js.map +1 -1
- package/dist/cjs/pilot/go-live-checklist.js +212 -0
- package/dist/cjs/pilot/go-live-checklist.js.map +1 -0
- package/dist/cjs/pilot/milestone.js +79 -0
- package/dist/cjs/pilot/milestone.js.map +1 -0
- package/dist/cjs/platform/capabilities.js +144 -0
- package/dist/cjs/platform/capabilities.js.map +1 -0
- package/dist/cjs/platform/job-contract.js +411 -0
- package/dist/cjs/platform/job-contract.js.map +1 -0
- package/dist/cjs/rbac/catalog.js +34 -0
- package/dist/cjs/rbac/catalog.js.map +1 -1
- package/dist/cjs/subscription-billing/index.js +2 -1
- package/dist/cjs/subscription-billing/index.js.map +1 -1
- package/dist/cjs/subscription-billing/service.js +153 -77
- package/dist/cjs/subscription-billing/service.js.map +1 -1
- package/dist/cjs/tenancy/features.js +131 -0
- package/dist/cjs/tenancy/features.js.map +1 -0
- package/dist/cjs/tenancy/settings.js +224 -0
- package/dist/cjs/tenancy/settings.js.map +1 -0
- package/dist/cjs/users/repository.js +24 -1
- package/dist/cjs/users/repository.js.map +1 -1
- package/dist/clients/ibge.d.ts +17 -0
- package/dist/clients/ibge.d.ts.map +1 -0
- package/dist/clients/ibge.js +98 -0
- package/dist/clients/ibge.js.map +1 -0
- package/dist/clients/repository.d.ts +154 -0
- package/dist/clients/repository.d.ts.map +1 -1
- package/dist/clients/repository.js +182 -9
- package/dist/clients/repository.js.map +1 -1
- package/dist/collection/branding.d.ts +65 -0
- package/dist/collection/branding.d.ts.map +1 -1
- package/dist/collection/branding.js +186 -0
- package/dist/collection/branding.js.map +1 -1
- package/dist/collection/clearance-store.d.ts +39 -0
- package/dist/collection/clearance-store.d.ts.map +1 -0
- package/dist/collection/clearance-store.js +69 -0
- package/dist/collection/clearance-store.js.map +1 -0
- package/dist/collection/communication-runtime.d.ts +37 -0
- package/dist/collection/communication-runtime.d.ts.map +1 -1
- package/dist/collection/communication-runtime.js +63 -1
- package/dist/collection/communication-runtime.js.map +1 -1
- package/dist/collection/engine.d.ts +23 -0
- package/dist/collection/engine.d.ts.map +1 -1
- package/dist/collection/engine.js +20 -0
- package/dist/collection/engine.js.map +1 -1
- package/dist/collection/policy.d.ts +25 -0
- package/dist/collection/policy.d.ts.map +1 -1
- package/dist/collection/policy.js +27 -0
- package/dist/collection/policy.js.map +1 -1
- package/dist/communication/clearance.d.ts +53 -0
- package/dist/communication/clearance.d.ts.map +1 -0
- package/dist/communication/clearance.js +15 -0
- package/dist/communication/clearance.js.map +1 -0
- package/dist/communication/dry-run-scenario.d.ts.map +1 -1
- package/dist/communication/dry-run-scenario.js +5 -0
- package/dist/communication/dry-run-scenario.js.map +1 -1
- package/dist/communication/engine.d.ts +10 -0
- package/dist/communication/engine.d.ts.map +1 -1
- package/dist/communication/engine.js +12 -0
- package/dist/communication/engine.js.map +1 -1
- package/dist/communication/policy.d.ts +16 -0
- package/dist/communication/policy.d.ts.map +1 -1
- package/dist/communication/policy.js.map +1 -1
- package/dist/competence/business-days.d.ts +51 -0
- package/dist/competence/business-days.d.ts.map +1 -0
- package/dist/competence/business-days.js +145 -0
- package/dist/competence/business-days.js.map +1 -0
- package/dist/competence/catalog-validation.d.ts +86 -0
- package/dist/competence/catalog-validation.d.ts.map +1 -0
- package/dist/competence/catalog-validation.js +168 -0
- package/dist/competence/catalog-validation.js.map +1 -0
- package/dist/competence/obligation-preview.d.ts +103 -0
- package/dist/competence/obligation-preview.d.ts.map +1 -0
- package/dist/competence/obligation-preview.js +184 -0
- package/dist/competence/obligation-preview.js.map +1 -0
- package/dist/competence/repository.d.ts +139 -1
- package/dist/competence/repository.d.ts.map +1 -1
- package/dist/competence/repository.js +325 -17
- package/dist/competence/repository.js.map +1 -1
- package/dist/dashboard/pilot-panel.d.ts +100 -0
- package/dist/dashboard/pilot-panel.d.ts.map +1 -0
- package/dist/dashboard/pilot-panel.js +87 -0
- package/dist/dashboard/pilot-panel.js.map +1 -0
- package/dist/dashboard/repository.d.ts.map +1 -1
- package/dist/dashboard/repository.js +11 -1
- package/dist/dashboard/repository.js.map +1 -1
- package/dist/db/client.d.ts +45 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +16 -11
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrate.d.ts +36 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +199 -32
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/provision-e2e-identity.d.ts +2 -0
- package/dist/db/provision-e2e-identity.d.ts.map +1 -0
- package/dist/db/provision-e2e-identity.js +109 -0
- package/dist/db/provision-e2e-identity.js.map +1 -0
- package/dist/fiscal/applicability.d.ts +73 -0
- package/dist/fiscal/applicability.d.ts.map +1 -0
- package/dist/fiscal/applicability.js +160 -0
- package/dist/fiscal/applicability.js.map +1 -0
- package/dist/fiscal/conditions.d.ts +99 -0
- package/dist/fiscal/conditions.d.ts.map +1 -0
- package/dist/fiscal/conditions.js +190 -0
- package/dist/fiscal/conditions.js.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-contract.d.ts +315 -0
- package/dist/fiscal/contracts/nfse-adn-contract.d.ts.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-contract.js +386 -0
- package/dist/fiscal/contracts/nfse-adn-contract.js.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.d.ts +13 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.d.ts.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.js +103 -0
- package/dist/fiscal/contracts/nfse-adn-endpoint.js.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.d.ts +77 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.d.ts.map +1 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.js +215 -0
- package/dist/fiscal/contracts/nfse-adn-envelope.js.map +1 -0
- package/dist/fiscal/coverage/model.d.ts +86 -0
- package/dist/fiscal/coverage/model.d.ts.map +1 -0
- package/dist/fiscal/coverage/model.js +120 -0
- package/dist/fiscal/coverage/model.js.map +1 -0
- package/dist/fiscal/coverage/requests.d.ts +70 -0
- package/dist/fiscal/coverage/requests.d.ts.map +1 -0
- package/dist/fiscal/coverage/requests.js +95 -0
- package/dist/fiscal/coverage/requests.js.map +1 -0
- package/dist/fiscal/credentials/material.d.ts +81 -0
- package/dist/fiscal/credentials/material.d.ts.map +1 -0
- package/dist/fiscal/credentials/material.js +164 -0
- package/dist/fiscal/credentials/material.js.map +1 -0
- package/dist/fiscal/credentials/readiness.d.ts +92 -0
- package/dist/fiscal/credentials/readiness.d.ts.map +1 -0
- package/dist/fiscal/credentials/readiness.js +159 -0
- package/dist/fiscal/credentials/readiness.js.map +1 -0
- package/dist/fiscal/eligibility.d.ts +106 -0
- package/dist/fiscal/eligibility.d.ts.map +1 -0
- package/dist/fiscal/eligibility.js +194 -0
- package/dist/fiscal/eligibility.js.map +1 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.d.ts +57 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.d.ts.map +1 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.js +121 -0
- package/dist/fiscal/ingestion/__fixtures__/nfse.js.map +1 -0
- package/dist/fiscal/ingestion/adn-transport.d.ts +123 -0
- package/dist/fiscal/ingestion/adn-transport.d.ts.map +1 -0
- package/dist/fiscal/ingestion/adn-transport.js +220 -0
- package/dist/fiscal/ingestion/adn-transport.js.map +1 -0
- package/dist/fiscal/ingestion/direction.d.ts +60 -0
- package/dist/fiscal/ingestion/direction.d.ts.map +1 -0
- package/dist/fiscal/ingestion/direction.js +32 -0
- package/dist/fiscal/ingestion/direction.js.map +1 -0
- package/dist/fiscal/ingestion/nfse-adn.d.ts +91 -0
- package/dist/fiscal/ingestion/nfse-adn.d.ts.map +1 -0
- package/dist/fiscal/ingestion/nfse-adn.js +222 -0
- package/dist/fiscal/ingestion/nfse-adn.js.map +1 -0
- package/dist/fiscal/ingestion/pipeline.d.ts +168 -0
- package/dist/fiscal/ingestion/pipeline.d.ts.map +1 -0
- package/dist/fiscal/ingestion/pipeline.js +699 -0
- package/dist/fiscal/ingestion/pipeline.js.map +1 -0
- package/dist/fiscal/ingestion/provider.d.ts +206 -0
- package/dist/fiscal/ingestion/provider.d.ts.map +1 -0
- package/dist/fiscal/ingestion/provider.js +47 -0
- package/dist/fiscal/ingestion/provider.js.map +1 -0
- package/dist/fiscal/ingestion/repository.d.ts +82 -0
- package/dist/fiscal/ingestion/repository.d.ts.map +1 -0
- package/dist/fiscal/ingestion/repository.js +127 -0
- package/dist/fiscal/ingestion/repository.js.map +1 -0
- package/dist/fiscal/ingestion/synthetic-provider.d.ts +92 -0
- package/dist/fiscal/ingestion/synthetic-provider.d.ts.map +1 -0
- package/dist/fiscal/ingestion/synthetic-provider.js +99 -0
- package/dist/fiscal/ingestion/synthetic-provider.js.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.d.ts +19 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.d.ts.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.js +9 -0
- package/dist/fiscal/ingestion/synthetic-transport-types.js.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport.d.ts +55 -0
- package/dist/fiscal/ingestion/synthetic-transport.d.ts.map +1 -0
- package/dist/fiscal/ingestion/synthetic-transport.js +57 -0
- package/dist/fiscal/ingestion/synthetic-transport.js.map +1 -0
- package/dist/fiscal/ingestion/xml-reader.d.ts +55 -0
- package/dist/fiscal/ingestion/xml-reader.d.ts.map +1 -0
- package/dist/fiscal/ingestion/xml-reader.js +112 -0
- package/dist/fiscal/ingestion/xml-reader.js.map +1 -0
- package/dist/fiscal/repository.d.ts +220 -0
- package/dist/fiscal/repository.d.ts.map +1 -0
- package/dist/fiscal/repository.js +449 -0
- package/dist/fiscal/repository.js.map +1 -0
- package/dist/fiscal/sync/circuit.d.ts +86 -0
- package/dist/fiscal/sync/circuit.d.ts.map +1 -0
- package/dist/fiscal/sync/circuit.js +118 -0
- package/dist/fiscal/sync/circuit.js.map +1 -0
- package/dist/fiscal/sync/intervention.d.ts +81 -0
- package/dist/fiscal/sync/intervention.d.ts.map +1 -0
- package/dist/fiscal/sync/intervention.js +135 -0
- package/dist/fiscal/sync/intervention.js.map +1 -0
- package/dist/fiscal/sync/lease.d.ts +118 -0
- package/dist/fiscal/sync/lease.d.ts.map +1 -0
- package/dist/fiscal/sync/lease.js +139 -0
- package/dist/fiscal/sync/lease.js.map +1 -0
- package/dist/fiscal/sync/observability.d.ts +148 -0
- package/dist/fiscal/sync/observability.d.ts.map +1 -0
- package/dist/fiscal/sync/observability.js +239 -0
- package/dist/fiscal/sync/observability.js.map +1 -0
- package/dist/fiscal/sync/orchestrator.d.ts +132 -0
- package/dist/fiscal/sync/orchestrator.d.ts.map +1 -0
- package/dist/fiscal/sync/orchestrator.js +487 -0
- package/dist/fiscal/sync/orchestrator.js.map +1 -0
- package/dist/fiscal/sync/policy.d.ts +87 -0
- package/dist/fiscal/sync/policy.d.ts.map +1 -0
- package/dist/fiscal/sync/policy.js +136 -0
- package/dist/fiscal/sync/policy.js.map +1 -0
- package/dist/fiscal/sync/reprocess.d.ts +76 -0
- package/dist/fiscal/sync/reprocess.d.ts.map +1 -0
- package/dist/fiscal/sync/reprocess.js +237 -0
- package/dist/fiscal/sync/reprocess.js.map +1 -0
- package/dist/fiscal/sync/retry.d.ts +82 -0
- package/dist/fiscal/sync/retry.d.ts.map +1 -0
- package/dist/fiscal/sync/retry.js +176 -0
- package/dist/fiscal/sync/retry.js.map +1 -0
- package/dist/fiscal/sync/secret-boundary.d.ts +169 -0
- package/dist/fiscal/sync/secret-boundary.d.ts.map +1 -0
- package/dist/fiscal/sync/secret-boundary.js +116 -0
- package/dist/fiscal/sync/secret-boundary.js.map +1 -0
- package/dist/fiscal/transport/https.d.ts +86 -0
- package/dist/fiscal/transport/https.d.ts.map +1 -0
- package/dist/fiscal/transport/https.js +303 -0
- package/dist/fiscal/transport/https.js.map +1 -0
- package/dist/fiscal/transport/synthetic-tls.d.ts +80 -0
- package/dist/fiscal/transport/synthetic-tls.d.ts.map +1 -0
- package/dist/fiscal/transport/synthetic-tls.js +323 -0
- package/dist/fiscal/transport/synthetic-tls.js.map +1 -0
- package/dist/fiscal/transport/types.d.ts +134 -0
- package/dist/fiscal/transport/types.d.ts.map +1 -0
- package/dist/fiscal/transport/types.js +88 -0
- package/dist/fiscal/transport/types.js.map +1 -0
- package/dist/import/br-documents.d.ts +26 -0
- package/dist/import/br-documents.d.ts.map +1 -0
- package/dist/import/br-documents.js +78 -0
- package/dist/import/br-documents.js.map +1 -0
- package/dist/import/clients-import.d.ts +122 -4
- package/dist/import/clients-import.d.ts.map +1 -1
- package/dist/import/clients-import.js +341 -41
- package/dist/import/clients-import.js.map +1 -1
- package/dist/index.d.ts +115 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -7
- package/dist/index.js.map +1 -1
- package/dist/legal/documents.d.ts +12 -1
- package/dist/legal/documents.d.ts.map +1 -1
- package/dist/legal/documents.js +98 -14
- package/dist/legal/documents.js.map +1 -1
- package/dist/legal/index.d.ts +1 -1
- package/dist/legal/index.d.ts.map +1 -1
- package/dist/legal/index.js +1 -1
- package/dist/legal/index.js.map +1 -1
- package/dist/legal/types.d.ts +37 -2
- package/dist/legal/types.d.ts.map +1 -1
- package/dist/legal/types.js.map +1 -1
- package/dist/onboarding/persistence.d.ts +10 -1
- package/dist/onboarding/persistence.d.ts.map +1 -1
- package/dist/onboarding/persistence.js +4 -4
- package/dist/onboarding/persistence.js.map +1 -1
- package/dist/pilot/go-live-checklist.d.ts +41 -0
- package/dist/pilot/go-live-checklist.d.ts.map +1 -0
- package/dist/pilot/go-live-checklist.js +209 -0
- package/dist/pilot/go-live-checklist.js.map +1 -0
- package/dist/pilot/milestone.d.ts +56 -0
- package/dist/pilot/milestone.d.ts.map +1 -0
- package/dist/pilot/milestone.js +74 -0
- package/dist/pilot/milestone.js.map +1 -0
- package/dist/platform/capabilities.d.ts +88 -0
- package/dist/platform/capabilities.d.ts.map +1 -0
- package/dist/platform/capabilities.js +140 -0
- package/dist/platform/capabilities.js.map +1 -0
- package/dist/platform/job-contract.d.ts +232 -0
- package/dist/platform/job-contract.d.ts.map +1 -0
- package/dist/platform/job-contract.js +403 -0
- package/dist/platform/job-contract.js.map +1 -0
- package/dist/rbac/catalog.d.ts.map +1 -1
- package/dist/rbac/catalog.js +34 -0
- package/dist/rbac/catalog.js.map +1 -1
- package/dist/subscription-billing/index.d.ts +6 -5
- package/dist/subscription-billing/index.d.ts.map +1 -1
- package/dist/subscription-billing/index.js +3 -3
- package/dist/subscription-billing/index.js.map +1 -1
- package/dist/subscription-billing/service.d.ts +21 -0
- package/dist/subscription-billing/service.d.ts.map +1 -1
- package/dist/subscription-billing/service.js +90 -15
- package/dist/subscription-billing/service.js.map +1 -1
- package/dist/tenancy/features.d.ts +69 -0
- package/dist/tenancy/features.d.ts.map +1 -0
- package/dist/tenancy/features.js +123 -0
- package/dist/tenancy/features.js.map +1 -0
- package/dist/tenancy/settings.d.ts +63 -0
- package/dist/tenancy/settings.d.ts.map +1 -0
- package/dist/tenancy/settings.js +218 -0
- package/dist/tenancy/settings.js.map +1 -0
- package/dist/users/repository.d.ts +16 -1
- package/dist/users/repository.d.ts.map +1 -1
- package/dist/users/repository.js +24 -1
- package/dist/users/repository.js.map +1 -1
- package/package.json +9 -2
- package/src/db/migrations/0045_role_write_scope.sql +122 -0
- package/src/db/migrations/0046_pilot_activation_model.sql +184 -0
- package/src/db/migrations/0047_recipient_clearance.sql +89 -0
- package/src/db/migrations/0048_item_type_note.sql +16 -0
- package/src/db/migrations/0049_national_fiscal_engine.sql +279 -0
- package/src/db/migrations/0050_fiscal_vocabulary_readonly.sql +29 -0
- package/src/db/migrations/0051_seed_rules_from_catalog.sql +72 -0
- package/src/db/migrations/0052_fiscal_rule_delete_scope.sql +57 -0
- package/src/db/migrations/0053_rule_validity_lower_bound.sql +44 -0
- package/src/db/migrations/0054_tenant_profile_and_rule_source.sql +89 -0
- package/src/db/migrations/0055_job_capability_contract.sql +300 -0
- package/src/db/migrations/0056_fiscal_document_ingestion.sql +337 -0
- package/src/db/migrations/0057_fiscal_pending_event_inbox.sql +228 -0
- package/src/db/migrations/0058_fiscal_operational_engine.sql +516 -0
- package/src/db/migrations/0059_fiscal_contract_version.sql +59 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ConflictError, NotFoundError, ValidationError, uuidv7 } from '@baruk/shared';
|
|
2
|
+
import { adjustToBusinessDay, lastBusinessDayOfMonth, nthBusinessDayOfMonth, shiftMonth, } from './business-days.js';
|
|
2
3
|
/**
|
|
3
4
|
* Competência e itens recorrentes (ADR 0008).
|
|
4
5
|
*
|
|
@@ -151,6 +152,8 @@ function mapItemType(row) {
|
|
|
151
152
|
appliesToRegime: Array.isArray(row.applies_to_regime) ? row.applies_to_regime : [],
|
|
152
153
|
requiresDocument: row.requires_document,
|
|
153
154
|
active: row.active,
|
|
155
|
+
note: row.note ?? null,
|
|
156
|
+
category: row.category ?? null,
|
|
154
157
|
};
|
|
155
158
|
}
|
|
156
159
|
/**
|
|
@@ -162,7 +165,7 @@ export async function listRecurringItemTypes(tx, filter = {}) {
|
|
|
162
165
|
const rows = await tx `
|
|
163
166
|
SELECT DISTINCT ON (key)
|
|
164
167
|
id, tenant_id, key, label, nature, sphere, periodicity,
|
|
165
|
-
due_rule, applies_to_regime, requires_document, active
|
|
168
|
+
due_rule, applies_to_regime, requires_document, active, note, category
|
|
166
169
|
FROM recurring_item_type
|
|
167
170
|
WHERE deleted_at IS NULL
|
|
168
171
|
AND (${filter.nature ?? null}::text IS NULL OR nature = ${filter.nature ?? null})
|
|
@@ -185,7 +188,52 @@ export async function createRecurringItemType(tx, input) {
|
|
|
185
188
|
RETURNING id, tenant_id, key, label, nature, sphere, periodicity,
|
|
186
189
|
due_rule, applies_to_regime, requires_document, active
|
|
187
190
|
`;
|
|
188
|
-
|
|
191
|
+
const tipo = mapItemType(rows[0]);
|
|
192
|
+
// Todo tipo de item nasce com uma REGRA, e a invariante é deliberada.
|
|
193
|
+
//
|
|
194
|
+
// Desde o motor nacional, gerar exige regra vigente: sem ela o motor devolve
|
|
195
|
+
// `RULE_NOT_CONFIGURED` e não gera — que é o comportamento seguro para quem
|
|
196
|
+
// não sabe o prazo daquela jurisdição. Um tipo criado sem regra, porém, não
|
|
197
|
+
// seria "seguro": seria invisível. O escritório cadastraria a obrigação,
|
|
198
|
+
// conferiria o catálogo, e ela nunca apareceria na prévia, sem explicação
|
|
199
|
+
// proporcional ao esforço.
|
|
200
|
+
//
|
|
201
|
+
// A regra companheira é federal, `pending_validation`, e carrega o mesmo
|
|
202
|
+
// vencimento que o operador acabou de declarar. Ela não afirma nada que ele
|
|
203
|
+
// já não tenha afirmado — só o coloca onde o motor enxerga.
|
|
204
|
+
await tx `
|
|
205
|
+
INSERT INTO fiscal_rule (
|
|
206
|
+
id, tenant_id, item_type_id, jurisdiction_scope, version, valid_from,
|
|
207
|
+
status, conditions, due_rule, note
|
|
208
|
+
) VALUES (
|
|
209
|
+
${uuidv7()}, current_setting('app.current_tenant')::uuid, ${tipo.id},
|
|
210
|
+
-- Limite inferior, e não hoje: o escritório processa a competência do mês
|
|
211
|
+
-- passado neste mês, e uma regra que só vale a partir de hoje deixaria
|
|
212
|
+
-- essa competência sem obrigação nenhuma. Ver 0053.
|
|
213
|
+
'federal', 1, DATE '2000-01-01', 'pending_validation', '{"op":"always"}'::jsonb,
|
|
214
|
+
${input.dueRule ? tx.json(input.dueRule) : null},
|
|
215
|
+
'Regra criada junto com o tipo de item. Ajuste jurisdição e condições antes de conferir.'
|
|
216
|
+
)
|
|
217
|
+
`;
|
|
218
|
+
return tipo;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Vencimento como data pura `YYYY-MM-DD`.
|
|
222
|
+
*
|
|
223
|
+
* `due_date` é `date` no Postgres — sem hora e sem fuso. O driver o materializa
|
|
224
|
+
* como `Date` à meia-noite UTC, e devolvê-lo assim faz a API responder
|
|
225
|
+
* `2026-08-20T00:00:00.000Z`. Um cliente em UTC-3 renderiza isso como **19/08**:
|
|
226
|
+
* o vencimento aparece um dia antes do que é, e o alerta dispara no dia errado.
|
|
227
|
+
*
|
|
228
|
+
* `completed_at` (timestamptz) continua indo como instante ISO — ali a hora tem
|
|
229
|
+
* significado. Aqui não tem.
|
|
230
|
+
*/
|
|
231
|
+
function toDateOnly(value) {
|
|
232
|
+
if (value == null)
|
|
233
|
+
return null;
|
|
234
|
+
if (typeof value === 'string')
|
|
235
|
+
return value.slice(0, 10);
|
|
236
|
+
return value.toISOString().slice(0, 10);
|
|
189
237
|
}
|
|
190
238
|
function mapInstance(row) {
|
|
191
239
|
return {
|
|
@@ -195,7 +243,7 @@ function mapInstance(row) {
|
|
|
195
243
|
itemTypeId: row.item_type_id,
|
|
196
244
|
label: row.label,
|
|
197
245
|
nature: row.nature,
|
|
198
|
-
dueDate: row.due_date,
|
|
246
|
+
dueDate: toDateOnly(row.due_date),
|
|
199
247
|
status: row.status,
|
|
200
248
|
responsibleUserId: row.responsible_user_id,
|
|
201
249
|
completedAt: row.completed_at ? row.completed_at.toISOString() : null,
|
|
@@ -240,30 +288,100 @@ export async function generateInstancesForCompetence(tx, input) {
|
|
|
240
288
|
/**
|
|
241
289
|
* Aplica a regra de vencimento sobre a competência.
|
|
242
290
|
*
|
|
243
|
-
* Hoje entende `{kind:'day_of_next_month', day:N}` e `{kind:'day_of_month', day:N}`.
|
|
244
291
|
* Regra desconhecida devolve `null` em vez de chutar uma data — um vencimento
|
|
245
292
|
* inventado é pior que vencimento ausente, porque o alerta dispararia no dia
|
|
246
293
|
* errado e o usuário confiaria nele.
|
|
294
|
+
*
|
|
295
|
+
* ## Formas aceitas
|
|
296
|
+
*
|
|
297
|
+
* | `kind` | Campos | Significado |
|
|
298
|
+
* |---------------------------|-------------------|------------------------------------------------------|
|
|
299
|
+
* | `day_of_month` | `day` 1–28 | Dia N da própria competência |
|
|
300
|
+
* | `day_of_next_month` | `day` 1–28 | Dia N do mês seguinte |
|
|
301
|
+
* | `day_after_months` | `day` 1–28, `months` | Dia N, M meses depois (generaliza os dois acima) |
|
|
302
|
+
* | `last_business_day_after` | `months` | Último dia útil do mês M meses depois |
|
|
303
|
+
* | `nth_business_day_after` | `nth`, `months` | N-ésimo dia útil do mês M meses depois |
|
|
304
|
+
* | `fixed_annual` | `month`, `day` | Data fixa do ano SEGUINTE ao da competência |
|
|
305
|
+
* | `last_business_day_annual`| `month` | Último dia útil de um mês do ano seguinte |
|
|
306
|
+
*
|
|
307
|
+
* `adjust` move o resultado para um dia útil: `'previous'` (antecipa — é o padrão
|
|
308
|
+
* do recolhimento fiscal brasileiro), `'next'`, ou `'none'`.
|
|
309
|
+
*
|
|
310
|
+
* **`adjust` ausente significa `'none'`, deliberadamente.** As duas formas
|
|
311
|
+
* originais (`day_of_month`, `day_of_next_month`) foram criadas sem noção de dia
|
|
312
|
+
* útil e há regras gravadas em produção que dependem do resultado exato. Ligar o
|
|
313
|
+
* ajuste por padrão mudaria silenciosamente o vencimento de instâncias que já
|
|
314
|
+
* existem. Quem quer o comportamento fiscal pede por ele — e o catálogo de
|
|
315
|
+
* `@baruk/contabil` pede.
|
|
247
316
|
*/
|
|
248
317
|
export function computeDueDate(competenceLabel, rule) {
|
|
249
318
|
const kind = typeof rule['kind'] === 'string' ? rule['kind'] : null;
|
|
250
|
-
|
|
251
|
-
if (!kind || day == null || day < 1 || day > 28)
|
|
319
|
+
if (!kind)
|
|
252
320
|
return null;
|
|
321
|
+
const num = (k) => typeof rule[k] === 'number' ? rule[k] : null;
|
|
322
|
+
const rawAdjust = rule['adjust'];
|
|
323
|
+
const adjust = rawAdjust === 'previous' || rawAdjust === 'next' ? rawAdjust : 'none';
|
|
253
324
|
const [yearStr, monthStr] = competenceLabel.split('-');
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
if (
|
|
257
|
-
month += 1;
|
|
258
|
-
if (month > 12) {
|
|
259
|
-
month = 1;
|
|
260
|
-
year += 1;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
else if (kind !== 'day_of_month') {
|
|
325
|
+
const year = Number(yearStr);
|
|
326
|
+
const month = Number(monthStr);
|
|
327
|
+
if (!Number.isInteger(year) || !Number.isInteger(month) || month < 1 || month > 12)
|
|
264
328
|
return null;
|
|
329
|
+
const dayOf = (y, m, d) => `${y}-${String(m).padStart(2, '0')}-${String(d).padStart(2, '0')}`;
|
|
330
|
+
let iso = null;
|
|
331
|
+
switch (kind) {
|
|
332
|
+
case 'day_of_month':
|
|
333
|
+
case 'day_of_next_month':
|
|
334
|
+
case 'day_after_months': {
|
|
335
|
+
const day = num('day');
|
|
336
|
+
// O teto de 28 evita a data que não existe (30 de fevereiro) sem precisar
|
|
337
|
+
// de calendário. Quem precisa do fim do mês usa `last_business_day_*`.
|
|
338
|
+
if (day == null || day < 1 || day > 28)
|
|
339
|
+
return null;
|
|
340
|
+
const months = kind === 'day_of_next_month' ? 1 : kind === 'day_of_month' ? 0 : (num('months') ?? 0);
|
|
341
|
+
if (!Number.isInteger(months) || months < 0 || months > 24)
|
|
342
|
+
return null;
|
|
343
|
+
const [y, m] = shiftMonth(year, month, months);
|
|
344
|
+
iso = dayOf(y, m, day);
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
case 'last_business_day_after': {
|
|
348
|
+
const months = num('months');
|
|
349
|
+
if (months == null || !Number.isInteger(months) || months < 0 || months > 24)
|
|
350
|
+
return null;
|
|
351
|
+
const [y, m] = shiftMonth(year, month, months);
|
|
352
|
+
// Já cai em dia útil por construção; `adjust` fica inócuo aqui.
|
|
353
|
+
return lastBusinessDayOfMonth(y, m);
|
|
354
|
+
}
|
|
355
|
+
case 'nth_business_day_after': {
|
|
356
|
+
const nth = num('nth');
|
|
357
|
+
const months = num('months');
|
|
358
|
+
if (nth == null || nth < 1 || nth > 23)
|
|
359
|
+
return null;
|
|
360
|
+
if (months == null || !Number.isInteger(months) || months < 0 || months > 24)
|
|
361
|
+
return null;
|
|
362
|
+
const [y, m] = shiftMonth(year, month, months);
|
|
363
|
+
return nthBusinessDayOfMonth(y, m, nth);
|
|
364
|
+
}
|
|
365
|
+
case 'fixed_annual': {
|
|
366
|
+
const m = num('month');
|
|
367
|
+
const day = num('day');
|
|
368
|
+
if (m == null || m < 1 || m > 12)
|
|
369
|
+
return null;
|
|
370
|
+
if (day == null || day < 1 || day > 28)
|
|
371
|
+
return null;
|
|
372
|
+
iso = dayOf(year + 1, m, day);
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
case 'last_business_day_annual': {
|
|
376
|
+
const m = num('month');
|
|
377
|
+
if (m == null || m < 1 || m > 12)
|
|
378
|
+
return null;
|
|
379
|
+
return lastBusinessDayOfMonth(year + 1, m);
|
|
380
|
+
}
|
|
381
|
+
default:
|
|
382
|
+
return null;
|
|
265
383
|
}
|
|
266
|
-
return
|
|
384
|
+
return adjustToBusinessDay(iso, adjust);
|
|
267
385
|
}
|
|
268
386
|
export async function listInstances(tx, filter = {}) {
|
|
269
387
|
const rows = await tx `
|
|
@@ -278,6 +396,196 @@ export async function listInstances(tx, filter = {}) {
|
|
|
278
396
|
`;
|
|
279
397
|
return rows.map(mapInstance);
|
|
280
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Abre a competência do mês para a carteira inteira e gera os itens.
|
|
401
|
+
*
|
|
402
|
+
* É a ação que abre o mês de um escritório. Sem ela, "abrir competência" é uma
|
|
403
|
+
* operação por cliente — o que funciona na demonstração com três clientes e é
|
|
404
|
+
* impraticável com trezentos: ninguém vai clicar trezentas vezes todo dia 1º.
|
|
405
|
+
*
|
|
406
|
+
* Idempotente nas duas camadas: `openCompetence` faz `ON CONFLICT DO NOTHING`, e
|
|
407
|
+
* a geração é protegida pelo índice único `(tenant, client, competence, tipo)`.
|
|
408
|
+
* Rodar duas vezes no mesmo mês não duplica nada.
|
|
409
|
+
*
|
|
410
|
+
* O regime de cada cliente é resolvido por `resolveRegime` — injetado, porque
|
|
411
|
+
* quem sabe ler regime tributário é a vertical, e o Core não a conhece.
|
|
412
|
+
*
|
|
413
|
+
* Falha de um cliente não aborta o lote. Abortar deixaria o escritório com o mês
|
|
414
|
+
* meio aberto e sem saber onde parou; aqui ele vê o que passou e o que não.
|
|
415
|
+
*/
|
|
416
|
+
export async function bulkOpenCompetence(tx, input) {
|
|
417
|
+
assertCompetenceLabel(input.label);
|
|
418
|
+
const targets = input.clientIds && input.clientIds.length > 0
|
|
419
|
+
? input.clientIds
|
|
420
|
+
: (await tx `
|
|
421
|
+
SELECT id FROM client
|
|
422
|
+
WHERE deleted_at IS NULL AND status = 'active'
|
|
423
|
+
ORDER BY display_name
|
|
424
|
+
`).map((r) => r.id);
|
|
425
|
+
const result = {
|
|
426
|
+
clientsProcessed: 0,
|
|
427
|
+
competencesOpened: 0,
|
|
428
|
+
competencesExisting: 0,
|
|
429
|
+
itemsCreated: 0,
|
|
430
|
+
itemsSkipped: 0,
|
|
431
|
+
failures: [],
|
|
432
|
+
};
|
|
433
|
+
for (const clientId of targets) {
|
|
434
|
+
try {
|
|
435
|
+
const opened = await openCompetence(tx, { clientId, label: input.label });
|
|
436
|
+
if (opened.created)
|
|
437
|
+
result.competencesOpened += 1;
|
|
438
|
+
else
|
|
439
|
+
result.competencesExisting += 1;
|
|
440
|
+
const regime = input.resolveRegime ? await input.resolveRegime(clientId) : null;
|
|
441
|
+
const generated = await generateInstancesForCompetence(tx, {
|
|
442
|
+
competenceId: opened.competence.id,
|
|
443
|
+
regime,
|
|
444
|
+
});
|
|
445
|
+
result.itemsCreated += generated.created.length;
|
|
446
|
+
result.itemsSkipped += generated.skipped;
|
|
447
|
+
result.clientsProcessed += 1;
|
|
448
|
+
}
|
|
449
|
+
catch (err) {
|
|
450
|
+
result.failures.push({
|
|
451
|
+
clientId,
|
|
452
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
return result;
|
|
457
|
+
}
|
|
458
|
+
export async function listOfficeObligations(tx, filter = {}) {
|
|
459
|
+
const limit = Math.min(Math.max(filter.limit ?? 100, 1), 500);
|
|
460
|
+
const offset = Math.max(filter.offset ?? 0, 0);
|
|
461
|
+
const where = tx `
|
|
462
|
+
WHERE i.deleted_at IS NULL
|
|
463
|
+
AND c.deleted_at IS NULL
|
|
464
|
+
AND (${filter.dueFrom ?? null}::date IS NULL OR i.due_date >= ${filter.dueFrom ?? null})
|
|
465
|
+
AND (${filter.dueTo ?? null}::date IS NULL OR i.due_date <= ${filter.dueTo ?? null})
|
|
466
|
+
AND (${filter.status ?? null}::text IS NULL OR i.status = ${filter.status ?? null})
|
|
467
|
+
AND (${filter.nature ?? null}::text IS NULL OR i.nature = ${filter.nature ?? null})
|
|
468
|
+
AND (${filter.clientId ?? null}::uuid IS NULL OR i.client_id = ${filter.clientId ?? null})
|
|
469
|
+
AND (${filter.responsibleUserId ?? null}::uuid IS NULL
|
|
470
|
+
OR i.responsible_user_id = ${filter.responsibleUserId ?? null})
|
|
471
|
+
AND (${filter.openOnly ?? false}::boolean = false OR i.status <> 'done')
|
|
472
|
+
`;
|
|
473
|
+
const rows = await tx `
|
|
474
|
+
SELECT i.id, i.client_id, i.competence_id, i.item_type_id, i.label, i.nature,
|
|
475
|
+
i.due_date, i.status, i.responsible_user_id, i.completed_at,
|
|
476
|
+
c.display_name AS client_name,
|
|
477
|
+
comp.label AS competence_label,
|
|
478
|
+
t.sphere, t.category, t.requires_document,
|
|
479
|
+
u.full_name AS responsible_name
|
|
480
|
+
FROM recurring_instance i
|
|
481
|
+
JOIN client c ON c.id = i.client_id
|
|
482
|
+
JOIN competence comp ON comp.id = i.competence_id
|
|
483
|
+
LEFT JOIN recurring_item_type t ON t.id = i.item_type_id
|
|
484
|
+
LEFT JOIN "user" u ON u.id = i.responsible_user_id
|
|
485
|
+
${where}
|
|
486
|
+
ORDER BY i.due_date NULLS LAST, c.display_name, i.label
|
|
487
|
+
LIMIT ${limit} OFFSET ${offset}
|
|
488
|
+
`;
|
|
489
|
+
const [count] = await tx `
|
|
490
|
+
SELECT count(*)::int AS n
|
|
491
|
+
FROM recurring_instance i
|
|
492
|
+
JOIN client c ON c.id = i.client_id
|
|
493
|
+
${where}
|
|
494
|
+
`;
|
|
495
|
+
return {
|
|
496
|
+
items: rows.map((r) => ({
|
|
497
|
+
...mapInstance(r),
|
|
498
|
+
clientName: r.client_name,
|
|
499
|
+
competenceLabel: r.competence_label,
|
|
500
|
+
sphere: r.sphere,
|
|
501
|
+
category: r.category,
|
|
502
|
+
requiresDocument: r.requires_document ?? false,
|
|
503
|
+
responsibleName: r.responsible_name,
|
|
504
|
+
})),
|
|
505
|
+
total: count?.n ?? 0,
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Define o responsável por um item.
|
|
510
|
+
*
|
|
511
|
+
* Existe porque não existia: a rota de compliance legada gravava
|
|
512
|
+
* `responsibleUserId = auth.userId` sem aceitar o campo, então a obrigação era
|
|
513
|
+
* sempre de quem a criou. Um escritório distribui trabalho; sem isto, "de quem é
|
|
514
|
+
* esta DAS?" não tem resposta no produto.
|
|
515
|
+
*
|
|
516
|
+
* `null` desatribui — deixar sem dono é um estado legítimo, e sem essa
|
|
517
|
+
* distinção um campo esvaziado na tela seria indistinguível de "não mexi nele".
|
|
518
|
+
*/
|
|
519
|
+
export async function assignInstance(tx, input) {
|
|
520
|
+
const rows = await tx `
|
|
521
|
+
UPDATE recurring_instance
|
|
522
|
+
SET responsible_user_id = ${input.responsibleUserId},
|
|
523
|
+
version = version + 1, updated_at = now()
|
|
524
|
+
WHERE id = ${input.id} AND deleted_at IS NULL
|
|
525
|
+
RETURNING id, client_id, competence_id, item_type_id, label, nature,
|
|
526
|
+
due_date, status, responsible_user_id, completed_at
|
|
527
|
+
`;
|
|
528
|
+
if (!rows[0])
|
|
529
|
+
throw new NotFoundError('Item não encontrado');
|
|
530
|
+
return mapInstance(rows[0]);
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Reabre um item concluído.
|
|
534
|
+
*
|
|
535
|
+
* Marcar como entregue é a ação mais fácil de errar na tela — uma linha ao lado
|
|
536
|
+
* da outra, um clique. Sem reabrir, o erro vira permanente e o operador aprende
|
|
537
|
+
* a não confiar no botão.
|
|
538
|
+
*/
|
|
539
|
+
export async function reopenInstance(tx, id) {
|
|
540
|
+
const rows = await tx `
|
|
541
|
+
UPDATE recurring_instance
|
|
542
|
+
SET status = 'pending', completed_at = NULL, completed_by = NULL,
|
|
543
|
+
version = version + 1, updated_at = now()
|
|
544
|
+
WHERE id = ${id} AND deleted_at IS NULL AND status = 'done'
|
|
545
|
+
RETURNING id, client_id, competence_id, item_type_id, label, nature,
|
|
546
|
+
due_date, status, responsible_user_id, completed_at
|
|
547
|
+
`;
|
|
548
|
+
if (!rows[0])
|
|
549
|
+
throw new NotFoundError('Item não encontrado ou não está concluído');
|
|
550
|
+
return mapInstance(rows[0]);
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Fecha a obrigação quando TODOS os documentos que ela pedia foram validados.
|
|
554
|
+
*
|
|
555
|
+
* Este é o elo que faltava no ciclo. `document_request.recurring_instance_id`
|
|
556
|
+
* existe no schema desde a 0026 e nunca era preenchido, então validar um
|
|
557
|
+
* documento não dizia nada à obrigação que o pediu: o operador entregava a
|
|
558
|
+
* DAS, validava a nota fiscal, e ainda precisava lembrar de marcar a obrigação
|
|
559
|
+
* à mão — numa lista onde esquecer é o resultado provável.
|
|
560
|
+
*
|
|
561
|
+
* **Todos**, não "algum". Uma obrigação pode pedir três documentos; concluir no
|
|
562
|
+
* primeiro validado marcaria como entregue algo que ainda falta. Pedido
|
|
563
|
+
* `canceled` não conta como pendência — foi retirado de propósito.
|
|
564
|
+
*
|
|
565
|
+
* Devolve a instância quando concluiu, `null` quando ainda há pendência. `null`
|
|
566
|
+
* é resposta normal, não erro.
|
|
567
|
+
*/
|
|
568
|
+
export async function completeInstanceIfDocumentsSettled(tx, input) {
|
|
569
|
+
const [pend] = await tx `
|
|
570
|
+
SELECT count(*) FILTER (WHERE status NOT IN ('validated', 'canceled'))::int AS pendentes,
|
|
571
|
+
count(*)::int AS total
|
|
572
|
+
FROM document_request
|
|
573
|
+
WHERE recurring_instance_id = ${input.instanceId} AND deleted_at IS NULL
|
|
574
|
+
`;
|
|
575
|
+
// Sem pedido nenhum, não há o que inferir: a obrigação não é "de documento".
|
|
576
|
+
if (!pend || pend.total === 0 || pend.pendentes > 0)
|
|
577
|
+
return null;
|
|
578
|
+
const rows = await tx `
|
|
579
|
+
UPDATE recurring_instance
|
|
580
|
+
SET status = 'done', completed_at = now(), completed_by = ${input.completedBy},
|
|
581
|
+
version = version + 1, updated_at = now()
|
|
582
|
+
WHERE id = ${input.instanceId} AND deleted_at IS NULL AND status <> 'done'
|
|
583
|
+
RETURNING id, client_id, competence_id, item_type_id, label, nature,
|
|
584
|
+
due_date, status, responsible_user_id, completed_at
|
|
585
|
+
`;
|
|
586
|
+
// Já estava concluída: não é erro, e não há nada a anunciar.
|
|
587
|
+
return rows[0] ? mapInstance(rows[0]) : null;
|
|
588
|
+
}
|
|
281
589
|
export async function completeInstance(tx, input) {
|
|
282
590
|
const rows = await tx `
|
|
283
591
|
UPDATE recurring_instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/competence/repository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/competence/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Tx } from '../db/client.js';
|
|
2
|
+
import { type DataProvenance } from '../pilot/milestone.js';
|
|
3
|
+
/**
|
|
4
|
+
* O painel do piloto — as perguntas que o responsável faz todo dia.
|
|
5
|
+
*
|
|
6
|
+
* ## O critério de inclusão
|
|
7
|
+
*
|
|
8
|
+
* Cada número aqui existe porque alguém precisa decidir algo com ele hoje de
|
|
9
|
+
* manhã. Um painel decorativo não é neutro: ele ocupa a tela onde deveria estar
|
|
10
|
+
* o que importa, e ensina a não olhar.
|
|
11
|
+
*
|
|
12
|
+
* Tudo é derivado de dado real do sistema, na consulta. Nada é gravado como
|
|
13
|
+
* contador — um contador é um segundo lugar para a verdade morar, e ele fica
|
|
14
|
+
* errado exatamente quando ninguém está olhando.
|
|
15
|
+
*
|
|
16
|
+
* ## O que este arquivo NÃO responde
|
|
17
|
+
*
|
|
18
|
+
* "Quantos clientes estão sem regime tributário?" e "quais certificados
|
|
19
|
+
* digitais vencem?" são perguntas de contabilidade, e as tabelas que as
|
|
20
|
+
* respondem (`accounting_regime`, `digital_certificate`) pertencem à vertical.
|
|
21
|
+
* O Core não as consulta — nem por import, nem por SQL. O teste de fronteira
|
|
22
|
+
* só enxerga imports, mas uma consulta SQL a tabela de vertical seria a mesma
|
|
23
|
+
* violação, e quebraria de verdade num tenant que não tem o produto contábil.
|
|
24
|
+
* Essas duas seções vêm de `@baruk/contabil` e são compostas na borda, como
|
|
25
|
+
* `getCoreStats` já fazia.
|
|
26
|
+
*
|
|
27
|
+
* ## As duas colunas que costumam faltar
|
|
28
|
+
*
|
|
29
|
+
* `clientesSemCanalAutomatico` e `obrigacoesSemResponsavel` existem porque são
|
|
30
|
+
* ausências, e ausência não aparece em lista: um cliente sem e-mail nunca vira
|
|
31
|
+
* linha na fila de cobrança, e uma obrigação sem responsável nunca vira tarefa
|
|
32
|
+
* de ninguém. Sem um número que as conte, elas somem — que é exatamente o que
|
|
33
|
+
* aconteceu na carteira de QA da Fase 3.
|
|
34
|
+
*/
|
|
35
|
+
export interface PilotPanel {
|
|
36
|
+
/**
|
|
37
|
+
* De que lado da fronteira estão os números deste painel.
|
|
38
|
+
*
|
|
39
|
+
* Enquanto o piloto real não é declarado, **tudo** é pré-produtivo — QA,
|
|
40
|
+
* demonstração, App Review. Um painel que anuncia "2 clientes ativos" sem
|
|
41
|
+
* dizer isso convida a ler indicador de teste como indicador de operação, e
|
|
42
|
+
* o erro é irreversível: depois de misturados, ninguém separa.
|
|
43
|
+
*/
|
|
44
|
+
provenance: DataProvenance;
|
|
45
|
+
clientes: {
|
|
46
|
+
ativos: number;
|
|
47
|
+
emOnboarding: number;
|
|
48
|
+
semCanalAutomatico: number;
|
|
49
|
+
semResponsavel: number;
|
|
50
|
+
/**
|
|
51
|
+
* Têm e-mail e ninguém liberou ainda.
|
|
52
|
+
*
|
|
53
|
+
* É a terceira ausência que não aparece em fila nenhuma: estes clientes
|
|
54
|
+
* parecem alcançáveis (têm endereço) e a régua não os toca. Sem o número,
|
|
55
|
+
* o escritório concluiria que a cobrança está rodando quando ela está
|
|
56
|
+
* parada — que é o modo de falha oposto ao dos 81 e-mails, e igualmente
|
|
57
|
+
* silencioso.
|
|
58
|
+
*/
|
|
59
|
+
aguardandoLiberacao: number;
|
|
60
|
+
};
|
|
61
|
+
obrigacoes: {
|
|
62
|
+
venceHoje: number;
|
|
63
|
+
venceEm7Dias: number;
|
|
64
|
+
atrasadas: number;
|
|
65
|
+
semResponsavel: number;
|
|
66
|
+
aguardandoCliente: number;
|
|
67
|
+
};
|
|
68
|
+
documentos: {
|
|
69
|
+
pendentes: number;
|
|
70
|
+
vencidos: number;
|
|
71
|
+
aguardandoValidacao: number;
|
|
72
|
+
};
|
|
73
|
+
solicitacoes: {
|
|
74
|
+
aguardandoCliente: number;
|
|
75
|
+
aguardandoEquipe: number;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Delegado a `financialSummary`, e não recalculado aqui.
|
|
79
|
+
*
|
|
80
|
+
* A régua do financeiro desconta pagamentos confirmados e usa o status
|
|
81
|
+
* EFETIVO (derivado da data), não o gravado. Uma segunda consulta escrita
|
|
82
|
+
* neste arquivo responderia a mesma pergunta com outro número — e o painel
|
|
83
|
+
* discordaria da tela de recebíveis sem que nada explicasse por quê.
|
|
84
|
+
*/
|
|
85
|
+
financeiro: {
|
|
86
|
+
recebiveisVencidos: number;
|
|
87
|
+
valorVencido: number;
|
|
88
|
+
aVencerEm7Dias: number;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Uma consulta por bloco, não uma por número.
|
|
93
|
+
*
|
|
94
|
+
* `count(*) FILTER (WHERE …)` faz o Postgres varrer a tabela uma vez e devolver
|
|
95
|
+
* todos os recortes. Doze `SELECT count(*)` separados dariam o mesmo resultado
|
|
96
|
+
* com doze varreduras — e, pior, com doze instantes diferentes: dois números do
|
|
97
|
+
* mesmo painel poderiam discordar entre si.
|
|
98
|
+
*/
|
|
99
|
+
export declare function getPilotPanel(tx: Tx): Promise<PilotPanel>;
|
|
100
|
+
//# sourceMappingURL=pilot-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pilot-panel.d.ts","sourceRoot":"","sources":["../../src/dashboard/pilot-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB;;;;;;;;WAQG;QACH,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,YAAY,EAAE;QACZ,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF;;;;;;;OAOG;IACH,UAAU,EAAE;QACV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CA0F/D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { financialSummary } from '../billing/ar-repository.js';
|
|
2
|
+
import { dataProvenance } from '../pilot/milestone.js';
|
|
3
|
+
/**
|
|
4
|
+
* Uma consulta por bloco, não uma por número.
|
|
5
|
+
*
|
|
6
|
+
* `count(*) FILTER (WHERE …)` faz o Postgres varrer a tabela uma vez e devolver
|
|
7
|
+
* todos os recortes. Doze `SELECT count(*)` separados dariam o mesmo resultado
|
|
8
|
+
* com doze varreduras — e, pior, com doze instantes diferentes: dois números do
|
|
9
|
+
* mesmo painel poderiam discordar entre si.
|
|
10
|
+
*/
|
|
11
|
+
export async function getPilotPanel(tx) {
|
|
12
|
+
const [clientes] = await tx `
|
|
13
|
+
SELECT
|
|
14
|
+
count(*) FILTER (WHERE c.status = 'active')::int AS ativos,
|
|
15
|
+
count(*) FILTER (WHERE c.status = 'prospect')::int AS onboarding,
|
|
16
|
+
count(*) FILTER (WHERE c.status = 'active' AND c.email IS NULL)::int AS sem_canal,
|
|
17
|
+
count(*) FILTER (WHERE c.status = 'active'
|
|
18
|
+
AND c.responsible_user_id IS NULL)::int AS sem_resp,
|
|
19
|
+
count(*) FILTER (WHERE c.status = 'active'
|
|
20
|
+
AND c.email IS NOT NULL
|
|
21
|
+
AND c.communication_cleared_at IS NULL)::int AS sem_liberacao
|
|
22
|
+
FROM client c
|
|
23
|
+
WHERE c.deleted_at IS NULL
|
|
24
|
+
`;
|
|
25
|
+
const [obrigacoes] = await tx `
|
|
26
|
+
SELECT
|
|
27
|
+
count(*) FILTER (WHERE due_date = current_date)::int AS hoje,
|
|
28
|
+
count(*) FILTER (WHERE due_date > current_date
|
|
29
|
+
AND due_date <= current_date + 7)::int AS sete,
|
|
30
|
+
count(*) FILTER (WHERE due_date < current_date)::int AS atraso,
|
|
31
|
+
count(*) FILTER (WHERE responsible_user_id IS NULL)::int AS sem_resp,
|
|
32
|
+
count(*) FILTER (WHERE status = 'awaiting_client')::int AS aguardando
|
|
33
|
+
FROM recurring_instance
|
|
34
|
+
WHERE deleted_at IS NULL
|
|
35
|
+
AND status NOT IN ('done', 'not_applicable', 'canceled')
|
|
36
|
+
`;
|
|
37
|
+
const [documentos] = await tx `
|
|
38
|
+
SELECT
|
|
39
|
+
count(*) FILTER (WHERE status = 'requested')::int AS pendentes,
|
|
40
|
+
count(*) FILTER (WHERE status = 'requested'
|
|
41
|
+
AND due_date IS NOT NULL AND due_date < current_date)::int AS vencidos,
|
|
42
|
+
count(*) FILTER (WHERE status = 'received')::int AS validar
|
|
43
|
+
FROM document_request
|
|
44
|
+
WHERE deleted_at IS NULL
|
|
45
|
+
`;
|
|
46
|
+
const [solicitacoes] = await tx `
|
|
47
|
+
SELECT
|
|
48
|
+
count(*) FILTER (WHERE status IN ('sent', 'viewed', 'awaiting_client'))::int AS cliente,
|
|
49
|
+
count(*) FILTER (WHERE status IN ('answered', 'in_review'))::int AS equipe
|
|
50
|
+
FROM service_request
|
|
51
|
+
WHERE deleted_at IS NULL
|
|
52
|
+
`;
|
|
53
|
+
const financeiro = await financialSummary(tx);
|
|
54
|
+
const provenance = await dataProvenance(tx);
|
|
55
|
+
return {
|
|
56
|
+
provenance,
|
|
57
|
+
clientes: {
|
|
58
|
+
ativos: clientes?.ativos ?? 0,
|
|
59
|
+
emOnboarding: clientes?.onboarding ?? 0,
|
|
60
|
+
semCanalAutomatico: clientes?.sem_canal ?? 0,
|
|
61
|
+
semResponsavel: clientes?.sem_resp ?? 0,
|
|
62
|
+
aguardandoLiberacao: clientes?.sem_liberacao ?? 0,
|
|
63
|
+
},
|
|
64
|
+
obrigacoes: {
|
|
65
|
+
venceHoje: obrigacoes?.hoje ?? 0,
|
|
66
|
+
venceEm7Dias: obrigacoes?.sete ?? 0,
|
|
67
|
+
atrasadas: obrigacoes?.atraso ?? 0,
|
|
68
|
+
semResponsavel: obrigacoes?.sem_resp ?? 0,
|
|
69
|
+
aguardandoCliente: obrigacoes?.aguardando ?? 0,
|
|
70
|
+
},
|
|
71
|
+
documentos: {
|
|
72
|
+
pendentes: documentos?.pendentes ?? 0,
|
|
73
|
+
vencidos: documentos?.vencidos ?? 0,
|
|
74
|
+
aguardandoValidacao: documentos?.validar ?? 0,
|
|
75
|
+
},
|
|
76
|
+
solicitacoes: {
|
|
77
|
+
aguardandoCliente: solicitacoes?.cliente ?? 0,
|
|
78
|
+
aguardandoEquipe: solicitacoes?.equipe ?? 0,
|
|
79
|
+
},
|
|
80
|
+
financeiro: {
|
|
81
|
+
recebiveisVencidos: financeiro.overdueCount,
|
|
82
|
+
valorVencido: financeiro.totalOverdue,
|
|
83
|
+
aVencerEm7Dias: financeiro.totalDueSoon,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=pilot-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pilot-panel.js","sourceRoot":"","sources":["../../src/dashboard/pilot-panel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAC;AA2F5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAM;IACxC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAQ1B;;;;;;;;;;;;GAYA,CAAC;IAEF,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,CAE5B;;;;;;;;;;;GAWA,CAAC;IAEF,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,CAA4D;;;;;;;;GAQxF,CAAC;IAEF,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,EAAE,CAAuC;;;;;;GAMrE,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;IAE5C,OAAO;QACL,UAAU;QACV,QAAQ,EAAE;YACR,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;YAC7B,YAAY,EAAE,QAAQ,EAAE,UAAU,IAAI,CAAC;YACvC,kBAAkB,EAAE,QAAQ,EAAE,SAAS,IAAI,CAAC;YAC5C,cAAc,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC;YACvC,mBAAmB,EAAE,QAAQ,EAAE,aAAa,IAAI,CAAC;SAClD;QACD,UAAU,EAAE;YACV,SAAS,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC;YAChC,YAAY,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC;YACnC,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;YAClC,cAAc,EAAE,UAAU,EAAE,QAAQ,IAAI,CAAC;YACzC,iBAAiB,EAAE,UAAU,EAAE,UAAU,IAAI,CAAC;SAC/C;QACD,UAAU,EAAE;YACV,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,CAAC;YACrC,QAAQ,EAAE,UAAU,EAAE,QAAQ,IAAI,CAAC;YACnC,mBAAmB,EAAE,UAAU,EAAE,OAAO,IAAI,CAAC;SAC9C;QACD,YAAY,EAAE;YACZ,iBAAiB,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC;YAC7C,gBAAgB,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;SAC5C;QACD,UAAU,EAAE;YACV,kBAAkB,EAAE,UAAU,CAAC,YAAY;YAC3C,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,cAAc,EAAE,UAAU,CAAC,YAAY;SACxC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/dashboard/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChF;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/dashboard/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChF;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4CtE"}
|