@baruk/core 0.1.0 → 0.3.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/CHANGELOG.md +59 -0
- package/dist/auth/password-reset.d.ts.map +1 -1
- package/dist/auth/password-reset.js +2 -4
- package/dist/auth/password-reset.js.map +1 -1
- package/dist/auth/password.d.ts +2 -18
- package/dist/auth/password.d.ts.map +1 -1
- package/dist/auth/password.js +12 -51
- package/dist/auth/password.js.map +1 -1
- package/dist/auth/service.d.ts +0 -12
- package/dist/auth/service.d.ts.map +1 -1
- package/dist/auth/service.js +3 -36
- package/dist/auth/service.js.map +1 -1
- package/dist/auth/session-token.d.ts +5 -2
- package/dist/auth/session-token.d.ts.map +1 -1
- package/dist/auth/session-token.js +7 -12
- package/dist/auth/session-token.js.map +1 -1
- package/dist/billing/dunning.d.ts +33 -0
- package/dist/billing/dunning.d.ts.map +1 -0
- package/dist/billing/dunning.js +49 -0
- package/dist/billing/dunning.js.map +1 -0
- package/dist/billing/provider/asaas.d.ts +15 -0
- package/dist/billing/provider/asaas.d.ts.map +1 -0
- package/dist/billing/provider/asaas.js +121 -0
- package/dist/billing/provider/asaas.js.map +1 -0
- package/dist/billing/provider/manual.d.ts +14 -0
- package/dist/billing/provider/manual.d.ts.map +1 -0
- package/dist/billing/provider/manual.js +24 -0
- package/dist/billing/provider/manual.js.map +1 -0
- package/dist/billing/provider/registry.d.ts +12 -0
- package/dist/billing/provider/registry.d.ts.map +1 -0
- package/dist/billing/provider/registry.js +22 -0
- package/dist/billing/provider/registry.js.map +1 -0
- package/dist/billing/provider/types.d.ts +76 -0
- package/dist/billing/provider/types.d.ts.map +1 -0
- package/dist/billing/provider/types.js +9 -0
- package/dist/billing/provider/types.js.map +1 -0
- package/dist/billing/receivable.d.ts +108 -0
- package/dist/billing/receivable.d.ts.map +1 -0
- package/dist/billing/receivable.js +2 -0
- package/dist/billing/receivable.js.map +1 -0
- package/dist/billing/repository.d.ts +97 -0
- package/dist/billing/repository.d.ts.map +1 -0
- package/dist/billing/repository.js +167 -0
- package/dist/billing/repository.js.map +1 -0
- package/dist/cjs/audit/audit.js +31 -0
- package/dist/cjs/audit/audit.js.map +1 -0
- package/dist/cjs/audit/repository.js +32 -0
- package/dist/cjs/audit/repository.js.map +1 -0
- package/dist/cjs/auth/password-reset.js +58 -0
- package/dist/cjs/auth/password-reset.js.map +1 -0
- package/dist/cjs/auth/password.js +32 -0
- package/dist/cjs/auth/password.js.map +1 -0
- package/dist/cjs/auth/service.js +191 -0
- package/dist/cjs/auth/service.js.map +1 -0
- package/dist/cjs/auth/session-token.js +18 -0
- package/dist/cjs/auth/session-token.js.map +1 -0
- package/dist/cjs/billing/dunning.js +54 -0
- package/dist/cjs/billing/dunning.js.map +1 -0
- package/dist/cjs/billing/provider/asaas.js +125 -0
- package/dist/cjs/billing/provider/asaas.js.map +1 -0
- package/dist/cjs/billing/provider/manual.js +28 -0
- package/dist/cjs/billing/provider/manual.js.map +1 -0
- package/dist/cjs/billing/provider/registry.js +27 -0
- package/dist/cjs/billing/provider/registry.js.map +1 -0
- package/dist/cjs/billing/provider/types.js +10 -0
- package/dist/cjs/billing/provider/types.js.map +1 -0
- package/dist/cjs/billing/receivable.js +3 -0
- package/dist/cjs/billing/receivable.js.map +1 -0
- package/dist/cjs/billing/repository.js +180 -0
- package/dist/cjs/billing/repository.js.map +1 -0
- package/dist/cjs/clients/repository.js +123 -0
- package/dist/cjs/clients/repository.js.map +1 -0
- package/dist/cjs/commercial-catalog/catalog.js +108 -0
- package/dist/cjs/commercial-catalog/catalog.js.map +1 -0
- package/dist/cjs/commercial-catalog/consumption-contracts.js +10 -0
- package/dist/cjs/commercial-catalog/consumption-contracts.js.map +1 -0
- package/dist/cjs/commercial-catalog/coupon.js +63 -0
- package/dist/cjs/commercial-catalog/coupon.js.map +1 -0
- package/dist/cjs/commercial-catalog/index.js +16 -0
- package/dist/cjs/commercial-catalog/index.js.map +1 -0
- package/dist/cjs/commercial-catalog/offer-application.js +53 -0
- package/dist/cjs/commercial-catalog/offer-application.js.map +1 -0
- package/dist/cjs/commercial-catalog/types.js +26 -0
- package/dist/cjs/commercial-catalog/types.js.map +1 -0
- package/dist/cjs/crm/repository.js +195 -0
- package/dist/cjs/crm/repository.js.map +1 -0
- package/dist/cjs/dashboard/repository.js +39 -0
- package/dist/cjs/dashboard/repository.js.map +1 -0
- package/dist/cjs/db/client.js +27 -0
- package/dist/cjs/db/client.js.map +1 -0
- package/dist/cjs/db/context.js +43 -0
- package/dist/cjs/db/context.js.map +1 -0
- package/dist/cjs/db/load-env.js +47 -0
- package/dist/cjs/db/load-env.js.map +1 -0
- package/dist/cjs/db/seed.js +69 -0
- package/dist/cjs/db/seed.js.map +1 -0
- package/dist/cjs/entitlements/decision.js +203 -0
- package/dist/cjs/entitlements/decision.js.map +1 -0
- package/dist/cjs/entitlements/derive.js +46 -0
- package/dist/cjs/entitlements/derive.js.map +1 -0
- package/dist/cjs/entitlements/index.js +23 -0
- package/dist/cjs/entitlements/index.js.map +1 -0
- package/dist/cjs/entitlements/sources.js +60 -0
- package/dist/cjs/entitlements/sources.js.map +1 -0
- package/dist/cjs/entitlements/standing.js +42 -0
- package/dist/cjs/entitlements/standing.js.map +1 -0
- package/dist/cjs/entitlements/types.js +16 -0
- package/dist/cjs/entitlements/types.js.map +1 -0
- package/dist/cjs/import/clients-import.js +147 -0
- package/dist/cjs/import/clients-import.js.map +1 -0
- package/dist/cjs/index.js +335 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/mail/dedup-store.js +56 -0
- package/dist/cjs/mail/dedup-store.js.map +1 -0
- package/dist/cjs/mail/index.js +24 -0
- package/dist/cjs/mail/index.js.map +1 -0
- package/dist/cjs/mail/provider.js +251 -0
- package/dist/cjs/mail/provider.js.map +1 -0
- package/dist/cjs/mail/resend-client.js +103 -0
- package/dist/cjs/mail/resend-client.js.map +1 -0
- package/dist/cjs/mail/resend.js +21 -0
- package/dist/cjs/mail/resend.js.map +1 -0
- package/dist/cjs/mail/sanitize.js +56 -0
- package/dist/cjs/mail/sanitize.js.map +1 -0
- package/dist/cjs/mail/sender-resolver.js +15 -0
- package/dist/cjs/mail/sender-resolver.js.map +1 -0
- package/dist/cjs/mail/template-renderer.js +21 -0
- package/dist/cjs/mail/template-renderer.js.map +1 -0
- package/dist/cjs/mail/types.js +38 -0
- package/dist/cjs/mail/types.js.map +1 -0
- package/dist/cjs/notifications/repository.js +49 -0
- package/dist/cjs/notifications/repository.js.map +1 -0
- package/dist/cjs/onboarding/domain.js +370 -0
- package/dist/cjs/onboarding/domain.js.map +1 -0
- package/dist/cjs/onboarding/interaction-review.js +425 -0
- package/dist/cjs/onboarding/interaction-review.js.map +1 -0
- package/dist/cjs/onboarding/persistence.js +444 -0
- package/dist/cjs/onboarding/persistence.js.map +1 -0
- package/dist/cjs/onboarding/portal-actions.js +157 -0
- package/dist/cjs/onboarding/portal-actions.js.map +1 -0
- package/dist/cjs/onboarding/portal.js +177 -0
- package/dist/cjs/onboarding/portal.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/portal/repository.js +37 -0
- package/dist/cjs/portal/repository.js.map +1 -0
- package/dist/cjs/pricing-engine/bundle.js +49 -0
- package/dist/cjs/pricing-engine/bundle.js.map +1 -0
- package/dist/cjs/pricing-engine/errors.js +48 -0
- package/dist/cjs/pricing-engine/errors.js.map +1 -0
- package/dist/cjs/pricing-engine/index.js +30 -0
- package/dist/cjs/pricing-engine/index.js.map +1 -0
- package/dist/cjs/pricing-engine/money.js +69 -0
- package/dist/cjs/pricing-engine/money.js.map +1 -0
- package/dist/cjs/pricing-engine/pipeline.js +330 -0
- package/dist/cjs/pricing-engine/pipeline.js.map +1 -0
- package/dist/cjs/pricing-engine/proration.js +53 -0
- package/dist/cjs/pricing-engine/proration.js.map +1 -0
- package/dist/cjs/pricing-engine/shadow.js +58 -0
- package/dist/cjs/pricing-engine/shadow.js.map +1 -0
- package/dist/cjs/pricing-engine/types.js +34 -0
- package/dist/cjs/pricing-engine/types.js.map +1 -0
- package/dist/cjs/products/catalog.js +10 -0
- package/dist/cjs/products/catalog.js.map +1 -0
- package/dist/cjs/products/repository.js +61 -0
- package/dist/cjs/products/repository.js.map +1 -0
- package/dist/cjs/rbac/authorize.js +36 -0
- package/dist/cjs/rbac/authorize.js.map +1 -0
- package/dist/cjs/rbac/catalog.js +455 -0
- package/dist/cjs/rbac/catalog.js.map +1 -0
- package/dist/cjs/requests/repository.js +114 -0
- package/dist/cjs/requests/repository.js.map +1 -0
- package/dist/cjs/subscription-billing/dunning.js +26 -0
- package/dist/cjs/subscription-billing/dunning.js.map +1 -0
- package/dist/cjs/subscription-billing/events.js +45 -0
- package/dist/cjs/subscription-billing/events.js.map +1 -0
- package/dist/cjs/subscription-billing/index.js +62 -0
- package/dist/cjs/subscription-billing/index.js.map +1 -0
- package/dist/cjs/subscription-billing/plans.js +88 -0
- package/dist/cjs/subscription-billing/plans.js.map +1 -0
- package/dist/cjs/subscription-billing/product-config.js +54 -0
- package/dist/cjs/subscription-billing/product-config.js.map +1 -0
- package/dist/cjs/subscription-billing/provider/asaas.js +233 -0
- package/dist/cjs/subscription-billing/provider/asaas.js.map +1 -0
- package/dist/cjs/subscription-billing/provider/disabled.js +46 -0
- package/dist/cjs/subscription-billing/provider/disabled.js.map +1 -0
- package/dist/cjs/subscription-billing/provider/registry.js +29 -0
- package/dist/cjs/subscription-billing/provider/registry.js.map +1 -0
- package/dist/cjs/subscription-billing/reconcile.js +198 -0
- package/dist/cjs/subscription-billing/reconcile.js.map +1 -0
- package/dist/cjs/subscription-billing/repository.js +359 -0
- package/dist/cjs/subscription-billing/repository.js.map +1 -0
- package/dist/cjs/subscription-billing/service.js +838 -0
- package/dist/cjs/subscription-billing/service.js.map +1 -0
- package/dist/cjs/subscription-billing/types.js +28 -0
- package/dist/cjs/subscription-billing/types.js.map +1 -0
- package/dist/cjs/tenancy/provisioning.js +126 -0
- package/dist/cjs/tenancy/provisioning.js.map +1 -0
- package/dist/cjs/users/repository.js +83 -0
- package/dist/cjs/users/repository.js.map +1 -0
- package/dist/cjs/vault/crypto.js +94 -0
- package/dist/cjs/vault/crypto.js.map +1 -0
- package/dist/cjs/vault/repository.js +120 -0
- package/dist/cjs/vault/repository.js.map +1 -0
- package/dist/commercial-catalog/catalog.d.ts +27 -0
- package/dist/commercial-catalog/catalog.d.ts.map +1 -0
- package/dist/commercial-catalog/catalog.js +104 -0
- package/dist/commercial-catalog/catalog.js.map +1 -0
- package/dist/commercial-catalog/consumption-contracts.d.ts +33 -0
- package/dist/commercial-catalog/consumption-contracts.d.ts.map +1 -0
- package/dist/commercial-catalog/consumption-contracts.js +9 -0
- package/dist/commercial-catalog/consumption-contracts.js.map +1 -0
- package/dist/commercial-catalog/coupon.d.ts +43 -0
- package/dist/commercial-catalog/coupon.d.ts.map +1 -0
- package/dist/commercial-catalog/coupon.js +57 -0
- package/dist/commercial-catalog/coupon.js.map +1 -0
- package/dist/commercial-catalog/index.d.ts +10 -0
- package/dist/commercial-catalog/index.d.ts.map +1 -0
- package/dist/commercial-catalog/index.js +5 -0
- package/dist/commercial-catalog/index.js.map +1 -0
- package/dist/commercial-catalog/offer-application.d.ts +39 -0
- package/dist/commercial-catalog/offer-application.d.ts.map +1 -0
- package/dist/commercial-catalog/offer-application.js +50 -0
- package/dist/commercial-catalog/offer-application.js.map +1 -0
- package/dist/commercial-catalog/types.d.ts +175 -0
- package/dist/commercial-catalog/types.d.ts.map +1 -0
- package/dist/commercial-catalog/types.js +23 -0
- package/dist/commercial-catalog/types.js.map +1 -0
- package/dist/crm/repository.d.ts +109 -0
- package/dist/crm/repository.d.ts.map +1 -0
- package/dist/crm/repository.js +181 -0
- package/dist/crm/repository.js.map +1 -0
- package/dist/db/context.d.ts +2 -0
- package/dist/db/context.d.ts.map +1 -1
- package/dist/db/context.js +3 -0
- package/dist/db/context.js.map +1 -1
- package/dist/db/migrate.js +7 -2
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/seed.js +4 -1
- package/dist/db/seed.js.map +1 -1
- package/dist/entitlements/decision.d.ts +86 -0
- package/dist/entitlements/decision.d.ts.map +1 -0
- package/dist/entitlements/decision.js +196 -0
- package/dist/entitlements/decision.js.map +1 -0
- package/dist/entitlements/derive.d.ts +30 -0
- package/dist/entitlements/derive.d.ts.map +1 -0
- package/dist/entitlements/derive.js +42 -0
- package/dist/entitlements/derive.js.map +1 -0
- package/dist/entitlements/index.d.ts +10 -0
- package/dist/entitlements/index.d.ts.map +1 -0
- package/dist/entitlements/index.js +7 -0
- package/dist/entitlements/index.js.map +1 -0
- package/dist/entitlements/sources.d.ts +30 -0
- package/dist/entitlements/sources.d.ts.map +1 -0
- package/dist/entitlements/sources.js +55 -0
- package/dist/entitlements/sources.js.map +1 -0
- package/dist/entitlements/standing.d.ts +22 -0
- package/dist/entitlements/standing.d.ts.map +1 -0
- package/dist/entitlements/standing.js +38 -0
- package/dist/entitlements/standing.js.map +1 -0
- package/dist/entitlements/types.d.ts +26 -0
- package/dist/entitlements/types.d.ts.map +1 -0
- package/dist/entitlements/types.js +15 -0
- package/dist/entitlements/types.js.map +1 -0
- package/dist/index.d.ts +74 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -4
- package/dist/index.js.map +1 -1
- package/dist/mail/dedup-store.d.ts +25 -0
- package/dist/mail/dedup-store.d.ts.map +1 -0
- package/dist/mail/dedup-store.js +51 -0
- package/dist/mail/dedup-store.js.map +1 -0
- package/dist/mail/index.d.ts +10 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +9 -0
- package/dist/mail/index.js.map +1 -0
- package/dist/mail/provider.d.ts +31 -0
- package/dist/mail/provider.d.ts.map +1 -0
- package/dist/mail/provider.js +248 -0
- package/dist/mail/provider.js.map +1 -0
- package/dist/mail/resend-client.d.ts +16 -0
- package/dist/mail/resend-client.d.ts.map +1 -0
- package/dist/mail/resend-client.js +100 -0
- package/dist/mail/resend-client.js.map +1 -0
- package/dist/mail/resend.d.ts.map +1 -1
- package/dist/mail/resend.js +2 -0
- package/dist/mail/resend.js.map +1 -1
- package/dist/mail/sanitize.d.ts +17 -0
- package/dist/mail/sanitize.d.ts.map +1 -0
- package/dist/mail/sanitize.js +51 -0
- package/dist/mail/sanitize.js.map +1 -0
- package/dist/mail/sender-resolver.d.ts +8 -0
- package/dist/mail/sender-resolver.d.ts.map +1 -0
- package/dist/mail/sender-resolver.js +11 -0
- package/dist/mail/sender-resolver.js.map +1 -0
- package/dist/mail/template-renderer.d.ts +10 -0
- package/dist/mail/template-renderer.d.ts.map +1 -0
- package/dist/mail/template-renderer.js +17 -0
- package/dist/mail/template-renderer.js.map +1 -0
- package/dist/mail/types.d.ts +143 -0
- package/dist/mail/types.d.ts.map +1 -0
- package/dist/mail/types.js +34 -0
- package/dist/mail/types.js.map +1 -0
- package/dist/onboarding/domain.d.ts +146 -0
- package/dist/onboarding/domain.d.ts.map +1 -0
- package/dist/onboarding/domain.js +348 -0
- package/dist/onboarding/domain.js.map +1 -0
- package/dist/onboarding/interaction-review.d.ts +123 -0
- package/dist/onboarding/interaction-review.d.ts.map +1 -0
- package/dist/onboarding/interaction-review.js +413 -0
- package/dist/onboarding/interaction-review.js.map +1 -0
- package/dist/onboarding/persistence.d.ts +106 -0
- package/dist/onboarding/persistence.d.ts.map +1 -0
- package/dist/onboarding/persistence.js +430 -0
- package/dist/onboarding/persistence.js.map +1 -0
- package/dist/onboarding/portal-actions.d.ts +48 -0
- package/dist/onboarding/portal-actions.d.ts.map +1 -0
- package/dist/onboarding/portal-actions.js +153 -0
- package/dist/onboarding/portal-actions.js.map +1 -0
- package/dist/onboarding/portal.d.ts +58 -0
- package/dist/onboarding/portal.d.ts.map +1 -0
- package/dist/onboarding/portal.js +170 -0
- package/dist/onboarding/portal.js.map +1 -0
- package/dist/pricing-engine/bundle.d.ts +22 -0
- package/dist/pricing-engine/bundle.d.ts.map +1 -0
- package/dist/pricing-engine/bundle.js +44 -0
- package/dist/pricing-engine/bundle.js.map +1 -0
- package/dist/pricing-engine/errors.d.ts +32 -0
- package/dist/pricing-engine/errors.d.ts.map +1 -0
- package/dist/pricing-engine/errors.js +44 -0
- package/dist/pricing-engine/errors.js.map +1 -0
- package/dist/pricing-engine/index.d.ts +12 -0
- package/dist/pricing-engine/index.d.ts.map +1 -0
- package/dist/pricing-engine/index.js +8 -0
- package/dist/pricing-engine/index.js.map +1 -0
- package/dist/pricing-engine/money.d.ts +32 -0
- package/dist/pricing-engine/money.d.ts.map +1 -0
- package/dist/pricing-engine/money.js +58 -0
- package/dist/pricing-engine/money.js.map +1 -0
- package/dist/pricing-engine/pipeline.d.ts +3 -0
- package/dist/pricing-engine/pipeline.d.ts.map +1 -0
- package/dist/pricing-engine/pipeline.js +327 -0
- package/dist/pricing-engine/pipeline.js.map +1 -0
- package/dist/pricing-engine/proration.d.ts +3 -0
- package/dist/pricing-engine/proration.d.ts.map +1 -0
- package/dist/pricing-engine/proration.js +50 -0
- package/dist/pricing-engine/proration.js.map +1 -0
- package/dist/pricing-engine/shadow.d.ts +51 -0
- package/dist/pricing-engine/shadow.d.ts.map +1 -0
- package/dist/pricing-engine/shadow.js +54 -0
- package/dist/pricing-engine/shadow.js.map +1 -0
- package/dist/pricing-engine/types.d.ts +184 -0
- package/dist/pricing-engine/types.d.ts.map +1 -0
- package/dist/pricing-engine/types.js +31 -0
- package/dist/pricing-engine/types.js.map +1 -0
- package/dist/rbac/authorize.d.ts +3 -6
- package/dist/rbac/authorize.d.ts.map +1 -1
- package/dist/rbac/authorize.js +4 -8
- package/dist/rbac/authorize.js.map +1 -1
- package/dist/rbac/catalog.d.ts.map +1 -1
- package/dist/rbac/catalog.js +414 -21
- package/dist/rbac/catalog.js.map +1 -1
- package/dist/subscription-billing/dunning.d.ts +18 -0
- package/dist/subscription-billing/dunning.d.ts.map +1 -0
- package/dist/subscription-billing/dunning.js +28 -0
- package/dist/subscription-billing/dunning.js.map +1 -0
- package/dist/subscription-billing/events.d.ts +58 -0
- package/dist/subscription-billing/events.d.ts.map +1 -0
- package/dist/subscription-billing/events.js +38 -0
- package/dist/subscription-billing/events.js.map +1 -0
- package/dist/subscription-billing/index.d.ts +18 -0
- package/dist/subscription-billing/index.d.ts.map +1 -0
- package/dist/subscription-billing/index.js +16 -0
- package/dist/subscription-billing/index.js.map +1 -0
- package/dist/subscription-billing/plans.d.ts +34 -0
- package/dist/subscription-billing/plans.d.ts.map +1 -0
- package/dist/subscription-billing/plans.js +85 -0
- package/dist/subscription-billing/plans.js.map +1 -0
- package/dist/subscription-billing/product-config.d.ts +61 -0
- package/dist/subscription-billing/product-config.d.ts.map +1 -0
- package/dist/subscription-billing/product-config.js +50 -0
- package/dist/subscription-billing/product-config.js.map +1 -0
- package/dist/subscription-billing/provider/asaas.d.ts +26 -0
- package/dist/subscription-billing/provider/asaas.d.ts.map +1 -0
- package/dist/subscription-billing/provider/asaas.js +229 -0
- package/dist/subscription-billing/provider/asaas.js.map +1 -0
- package/dist/subscription-billing/provider/disabled.d.ts +30 -0
- package/dist/subscription-billing/provider/disabled.d.ts.map +1 -0
- package/dist/subscription-billing/provider/disabled.js +42 -0
- package/dist/subscription-billing/provider/disabled.js.map +1 -0
- package/dist/subscription-billing/provider/registry.d.ts +10 -0
- package/dist/subscription-billing/provider/registry.d.ts.map +1 -0
- package/dist/subscription-billing/provider/registry.js +26 -0
- package/dist/subscription-billing/provider/registry.js.map +1 -0
- package/dist/subscription-billing/reconcile.d.ts +45 -0
- package/dist/subscription-billing/reconcile.d.ts.map +1 -0
- package/dist/subscription-billing/reconcile.js +192 -0
- package/dist/subscription-billing/reconcile.js.map +1 -0
- package/dist/subscription-billing/repository.d.ts +168 -0
- package/dist/subscription-billing/repository.d.ts.map +1 -0
- package/dist/subscription-billing/repository.js +336 -0
- package/dist/subscription-billing/repository.js.map +1 -0
- package/dist/subscription-billing/service.d.ts +175 -0
- package/dist/subscription-billing/service.d.ts.map +1 -0
- package/dist/subscription-billing/service.js +818 -0
- package/dist/subscription-billing/service.js.map +1 -0
- package/dist/subscription-billing/types.d.ts +161 -0
- package/dist/subscription-billing/types.d.ts.map +1 -0
- package/dist/subscription-billing/types.js +24 -0
- package/dist/subscription-billing/types.js.map +1 -0
- package/dist/vault/crypto.d.ts +22 -0
- package/dist/vault/crypto.d.ts.map +1 -0
- package/dist/vault/crypto.js +88 -0
- package/dist/vault/crypto.js.map +1 -0
- package/dist/vault/repository.d.ts +45 -0
- package/dist/vault/repository.d.ts.map +1 -0
- package/dist/vault/repository.js +111 -0
- package/dist/vault/repository.js.map +1 -0
- package/package.json +23 -13
- package/src/db/migrations/0012_vault.sql +51 -0
- package/src/db/migrations/0013_crm.sql +67 -0
- package/src/db/migrations/0014_billing.sql +146 -0
- package/src/db/migrations/0015_merchant_billing_ar.sql +201 -0
- package/src/db/migrations/0016_office_onboarding.sql +162 -0
- package/src/db/migrations/0017_office_onboarding_api.sql +21 -0
- package/src/db/migrations/0018_office_onboarding_portal_actions.sql +60 -0
- package/src/db/migrations/0019_office_onboarding_interaction_review.sql +134 -0
- package/src/db/migrations/0020_saas_billing.sql +157 -0
- package/src/db/migrations/0021_saas_billing_indexes.sql +23 -0
- package/src/db/migrations/0022_saas_billing_multi_product.sql +75 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingDomainError = void 0;
|
|
4
|
+
exports.createOnboarding = createOnboarding;
|
|
5
|
+
exports.startOnboarding = startOnboarding;
|
|
6
|
+
exports.blockOnboarding = blockOnboarding;
|
|
7
|
+
exports.unblockOnboarding = unblockOnboarding;
|
|
8
|
+
exports.completeOnboarding = completeOnboarding;
|
|
9
|
+
exports.cancelOnboarding = cancelOnboarding;
|
|
10
|
+
exports.addItem = addItem;
|
|
11
|
+
exports.completeItem = completeItem;
|
|
12
|
+
exports.startItem = startItem;
|
|
13
|
+
exports.markItemNotApplicable = markItemNotApplicable;
|
|
14
|
+
exports.rejectItem = rejectItem;
|
|
15
|
+
exports.addTask = addTask;
|
|
16
|
+
exports.completeTask = completeTask;
|
|
17
|
+
exports.isOverdue = isOverdue;
|
|
18
|
+
exports.requestDocument = requestDocument;
|
|
19
|
+
exports.receiveDocument = receiveDocument;
|
|
20
|
+
exports.validateDocument = validateDocument;
|
|
21
|
+
exports.rejectDocument = rejectDocument;
|
|
22
|
+
const shared_1 = require("@baruk/shared");
|
|
23
|
+
class OnboardingDomainError extends shared_1.AppError {
|
|
24
|
+
constructor(code, message, details) {
|
|
25
|
+
super(message, { status: 409, code, details });
|
|
26
|
+
this.name = 'OnboardingDomainError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.OnboardingDomainError = OnboardingDomainError;
|
|
30
|
+
function requireText(value, field) {
|
|
31
|
+
if (!value.trim())
|
|
32
|
+
throw new shared_1.ValidationError(`${field} é obrigatório`, { field });
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
function assertExpectedVersion(entity, context) {
|
|
36
|
+
if (context.expectedVersion !== undefined && context.expectedVersion !== entity.version) {
|
|
37
|
+
throw new OnboardingDomainError('version_conflict', 'A versão do onboarding está desatualizada', {
|
|
38
|
+
expectedVersion: context.expectedVersion,
|
|
39
|
+
actualVersion: entity.version,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function assertDateOrder(start, end, field) {
|
|
44
|
+
if (end && Date.parse(end) < Date.parse(start)) {
|
|
45
|
+
throw new shared_1.ValidationError(`${field} não pode ser anterior ao início`, { field });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function event(idFactory, context, tenantId, entityType, entityId, eventType, payload = {}, causationId = null) {
|
|
49
|
+
return {
|
|
50
|
+
eventId: idFactory.next(),
|
|
51
|
+
eventType,
|
|
52
|
+
eventVersion: 1,
|
|
53
|
+
occurredAt: context.clock.now(),
|
|
54
|
+
tenantId,
|
|
55
|
+
actorId: context.actorId,
|
|
56
|
+
entityType,
|
|
57
|
+
entityId,
|
|
58
|
+
correlationId: context.correlationId,
|
|
59
|
+
causationId,
|
|
60
|
+
payload,
|
|
61
|
+
metadata: {},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function change(value, events) {
|
|
65
|
+
return { value, events };
|
|
66
|
+
}
|
|
67
|
+
function assertOnboardingTransition(current, next) {
|
|
68
|
+
const allowed = {
|
|
69
|
+
draft: ['active', 'cancelled'],
|
|
70
|
+
active: ['blocked', 'completed', 'cancelled'],
|
|
71
|
+
blocked: ['active', 'cancelled'],
|
|
72
|
+
completed: [],
|
|
73
|
+
cancelled: [],
|
|
74
|
+
};
|
|
75
|
+
if (!allowed[current].includes(next)) {
|
|
76
|
+
throw new OnboardingDomainError('invalid_transition', `Transição inválida: ${current} → ${next}`, { current, next });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function transition(onboarding, next, context, idFactory, payload = {}) {
|
|
80
|
+
assertExpectedVersion(onboarding, context);
|
|
81
|
+
assertOnboardingTransition(onboarding.status, next);
|
|
82
|
+
if (next === 'completed' &&
|
|
83
|
+
onboarding.items.some((item) => item.required && !['completed', 'not_applicable'].includes(item.status))) {
|
|
84
|
+
throw new OnboardingDomainError('required_item_pending', 'Itens obrigatórios ainda estão pendentes');
|
|
85
|
+
}
|
|
86
|
+
const occurredAt = context.clock.now();
|
|
87
|
+
const previous = onboarding.status;
|
|
88
|
+
onboarding.status = next;
|
|
89
|
+
onboarding.version += 1;
|
|
90
|
+
if (next === 'active' && onboarding.startedAt === null)
|
|
91
|
+
onboarding.startedAt = occurredAt;
|
|
92
|
+
if (next === 'blocked')
|
|
93
|
+
onboarding.blockedAt = occurredAt;
|
|
94
|
+
if (next === 'completed') {
|
|
95
|
+
onboarding.completedAt = occurredAt;
|
|
96
|
+
}
|
|
97
|
+
if (next === 'cancelled')
|
|
98
|
+
onboarding.cancelledAt = occurredAt;
|
|
99
|
+
return change(onboarding, [
|
|
100
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding', onboarding.id, `onboarding.${next}`, {
|
|
101
|
+
previousStatus: previous,
|
|
102
|
+
...payload,
|
|
103
|
+
}),
|
|
104
|
+
]);
|
|
105
|
+
}
|
|
106
|
+
function createOnboarding(input, context, idFactory) {
|
|
107
|
+
const tenantId = requireText(input.tenantId, 'tenantId');
|
|
108
|
+
const clientId = requireText(input.clientId, 'clientId');
|
|
109
|
+
const createdAt = context.clock.now();
|
|
110
|
+
assertDateOrder(createdAt, input.dueAt ?? null, 'dueAt');
|
|
111
|
+
const onboarding = {
|
|
112
|
+
id: idFactory.next(),
|
|
113
|
+
tenantId,
|
|
114
|
+
clientId,
|
|
115
|
+
status: 'draft',
|
|
116
|
+
ownerId: input.ownerId ?? null,
|
|
117
|
+
startedAt: null,
|
|
118
|
+
dueAt: input.dueAt ?? null,
|
|
119
|
+
blockedAt: null,
|
|
120
|
+
completedAt: null,
|
|
121
|
+
cancelledAt: null,
|
|
122
|
+
blockedReason: null,
|
|
123
|
+
cancellationReason: null,
|
|
124
|
+
version: 1,
|
|
125
|
+
items: [],
|
|
126
|
+
tasks: [],
|
|
127
|
+
documentRequirements: [],
|
|
128
|
+
};
|
|
129
|
+
return change(onboarding, [
|
|
130
|
+
event(idFactory, context, tenantId, 'onboarding', onboarding.id, 'onboarding.created', {
|
|
131
|
+
clientId,
|
|
132
|
+
}),
|
|
133
|
+
]);
|
|
134
|
+
}
|
|
135
|
+
function startOnboarding(onboarding, context, idFactory) {
|
|
136
|
+
return transition(onboarding, 'active', context, idFactory);
|
|
137
|
+
}
|
|
138
|
+
function blockOnboarding(onboarding, reason, context, idFactory) {
|
|
139
|
+
requireText(reason, 'reason');
|
|
140
|
+
onboarding.blockedReason = reason;
|
|
141
|
+
return transition(onboarding, 'blocked', context, idFactory, { reasonProvided: true });
|
|
142
|
+
}
|
|
143
|
+
function unblockOnboarding(onboarding, context, idFactory) {
|
|
144
|
+
onboarding.blockedReason = null;
|
|
145
|
+
return transition(onboarding, 'active', context, idFactory);
|
|
146
|
+
}
|
|
147
|
+
function completeOnboarding(onboarding, context, idFactory) {
|
|
148
|
+
return transition(onboarding, 'completed', context, idFactory);
|
|
149
|
+
}
|
|
150
|
+
function cancelOnboarding(onboarding, reason, context, idFactory) {
|
|
151
|
+
requireText(reason, 'reason');
|
|
152
|
+
onboarding.cancellationReason = reason;
|
|
153
|
+
return transition(onboarding, 'cancelled', context, idFactory, { reasonProvided: true });
|
|
154
|
+
}
|
|
155
|
+
function addItem(onboarding, input, context, idFactory) {
|
|
156
|
+
assertExpectedVersion(onboarding, context);
|
|
157
|
+
const title = requireText(input.title, 'title');
|
|
158
|
+
assertDateOrder(context.clock.now(), input.dueAt ?? null, 'dueAt');
|
|
159
|
+
const item = {
|
|
160
|
+
id: idFactory.next(),
|
|
161
|
+
onboardingId: onboarding.id,
|
|
162
|
+
title,
|
|
163
|
+
description: input.description ?? null,
|
|
164
|
+
status: 'pending',
|
|
165
|
+
required: input.required ?? true,
|
|
166
|
+
assignedTo: input.assignedTo ?? null,
|
|
167
|
+
dueAt: input.dueAt ?? null,
|
|
168
|
+
completedAt: null,
|
|
169
|
+
rejectionReason: null,
|
|
170
|
+
order: input.order ?? onboarding.items.length,
|
|
171
|
+
visibility: input.visibility ?? 'internal',
|
|
172
|
+
version: 1,
|
|
173
|
+
};
|
|
174
|
+
onboarding.items.push(item);
|
|
175
|
+
onboarding.version += 1;
|
|
176
|
+
return change(item, [
|
|
177
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding_item', item.id, 'onboarding.item.created', { onboardingId: onboarding.id, required: item.required }),
|
|
178
|
+
]);
|
|
179
|
+
}
|
|
180
|
+
function findItem(onboarding, itemId) {
|
|
181
|
+
const item = onboarding.items.find((candidate) => candidate.id === itemId);
|
|
182
|
+
if (!item)
|
|
183
|
+
throw new shared_1.ValidationError('Item de onboarding não encontrado', { itemId });
|
|
184
|
+
return item;
|
|
185
|
+
}
|
|
186
|
+
function completeItem(onboarding, itemId, context, idFactory) {
|
|
187
|
+
const item = findItem(onboarding, itemId);
|
|
188
|
+
assertExpectedVersion(item, {
|
|
189
|
+
...context,
|
|
190
|
+
expectedVersion: context.expectedItemVersion ?? context.expectedVersion,
|
|
191
|
+
});
|
|
192
|
+
if (!['pending', 'in_progress'].includes(item.status))
|
|
193
|
+
throw new OnboardingDomainError('invalid_item_transition', 'Item não pode ser concluído neste estado');
|
|
194
|
+
item.status = 'completed';
|
|
195
|
+
item.completedAt = context.clock.now();
|
|
196
|
+
item.version += 1;
|
|
197
|
+
onboarding.version += 1;
|
|
198
|
+
return change(item, [
|
|
199
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding_item', item.id, 'onboarding.item.completed', { onboardingId: onboarding.id }),
|
|
200
|
+
]);
|
|
201
|
+
}
|
|
202
|
+
function startItem(onboarding, itemId, context, idFactory) {
|
|
203
|
+
const item = findItem(onboarding, itemId);
|
|
204
|
+
assertExpectedVersion(item, {
|
|
205
|
+
...context,
|
|
206
|
+
expectedVersion: context.expectedItemVersion ?? context.expectedVersion,
|
|
207
|
+
});
|
|
208
|
+
if (!['pending', 'rejected'].includes(item.status)) {
|
|
209
|
+
throw new OnboardingDomainError('invalid_item_transition', 'Item não pode ser iniciado neste estado');
|
|
210
|
+
}
|
|
211
|
+
item.status = 'in_progress';
|
|
212
|
+
item.rejectionReason = null;
|
|
213
|
+
item.version += 1;
|
|
214
|
+
onboarding.version += 1;
|
|
215
|
+
return change(item, [
|
|
216
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding_item', item.id, 'onboarding.item.started', {
|
|
217
|
+
onboardingId: onboarding.id,
|
|
218
|
+
}),
|
|
219
|
+
]);
|
|
220
|
+
}
|
|
221
|
+
function markItemNotApplicable(onboarding, itemId, context, idFactory) {
|
|
222
|
+
const item = findItem(onboarding, itemId);
|
|
223
|
+
assertExpectedVersion(item, {
|
|
224
|
+
...context,
|
|
225
|
+
expectedVersion: context.expectedItemVersion ?? context.expectedVersion,
|
|
226
|
+
});
|
|
227
|
+
if (['completed', 'not_applicable'].includes(item.status)) {
|
|
228
|
+
throw new OnboardingDomainError('invalid_item_transition', 'Item não pode ser marcado neste estado');
|
|
229
|
+
}
|
|
230
|
+
item.status = 'not_applicable';
|
|
231
|
+
item.completedAt = context.clock.now();
|
|
232
|
+
item.rejectionReason = null;
|
|
233
|
+
item.version += 1;
|
|
234
|
+
onboarding.version += 1;
|
|
235
|
+
return change(item, [
|
|
236
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding_item', item.id, 'onboarding.item.not_applicable', { onboardingId: onboarding.id }),
|
|
237
|
+
]);
|
|
238
|
+
}
|
|
239
|
+
function rejectItem(onboarding, itemId, reason, context, idFactory) {
|
|
240
|
+
const item = findItem(onboarding, itemId);
|
|
241
|
+
requireText(reason, 'reason');
|
|
242
|
+
assertExpectedVersion(item, {
|
|
243
|
+
...context,
|
|
244
|
+
expectedVersion: context.expectedItemVersion ?? context.expectedVersion,
|
|
245
|
+
});
|
|
246
|
+
item.status = 'rejected';
|
|
247
|
+
item.rejectionReason = reason;
|
|
248
|
+
item.completedAt = null;
|
|
249
|
+
item.version += 1;
|
|
250
|
+
onboarding.version += 1;
|
|
251
|
+
return change(item, [
|
|
252
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding_item', item.id, 'onboarding.item.rejected', { onboardingId: onboarding.id, reasonProvided: true }),
|
|
253
|
+
]);
|
|
254
|
+
}
|
|
255
|
+
function addTask(onboarding, input, context, idFactory) {
|
|
256
|
+
assertExpectedVersion(onboarding, context);
|
|
257
|
+
const title = requireText(input.title, 'title');
|
|
258
|
+
assertDateOrder(context.clock.now(), input.dueAt ?? null, 'dueAt');
|
|
259
|
+
const task = {
|
|
260
|
+
id: idFactory.next(),
|
|
261
|
+
onboardingId: onboarding.id,
|
|
262
|
+
clientId: onboarding.clientId,
|
|
263
|
+
title,
|
|
264
|
+
description: input.description ?? null,
|
|
265
|
+
status: 'pending',
|
|
266
|
+
priority: input.priority ?? 'normal',
|
|
267
|
+
assignedTo: input.assignedTo ?? null,
|
|
268
|
+
dueAt: input.dueAt ?? null,
|
|
269
|
+
completedAt: null,
|
|
270
|
+
version: 1,
|
|
271
|
+
};
|
|
272
|
+
onboarding.tasks.push(task);
|
|
273
|
+
onboarding.version += 1;
|
|
274
|
+
return change(task, [
|
|
275
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding_task', task.id, 'onboarding.task.created', { onboardingId: onboarding.id }),
|
|
276
|
+
]);
|
|
277
|
+
}
|
|
278
|
+
function completeTask(onboarding, taskId, context, idFactory) {
|
|
279
|
+
const task = onboarding.tasks.find((candidate) => candidate.id === taskId);
|
|
280
|
+
if (!task)
|
|
281
|
+
throw new shared_1.ValidationError('Tarefa de onboarding não encontrada', { taskId });
|
|
282
|
+
assertExpectedVersion(task, {
|
|
283
|
+
...context,
|
|
284
|
+
expectedVersion: context.expectedItemVersion ?? context.expectedVersion,
|
|
285
|
+
});
|
|
286
|
+
if (task.status === 'completed' || task.status === 'cancelled')
|
|
287
|
+
throw new OnboardingDomainError('invalid_task_transition', 'Tarefa não pode ser concluída neste estado');
|
|
288
|
+
task.status = 'completed';
|
|
289
|
+
task.completedAt = context.clock.now();
|
|
290
|
+
task.version += 1;
|
|
291
|
+
onboarding.version += 1;
|
|
292
|
+
return change(task, [
|
|
293
|
+
event(idFactory, context, onboarding.tenantId, 'onboarding_task', task.id, 'onboarding.task.completed', { onboardingId: onboarding.id }),
|
|
294
|
+
]);
|
|
295
|
+
}
|
|
296
|
+
function isOverdue(onboarding, now) {
|
|
297
|
+
return (onboarding.dueAt !== null &&
|
|
298
|
+
onboarding.status !== 'completed' &&
|
|
299
|
+
onboarding.status !== 'cancelled' &&
|
|
300
|
+
Date.parse(now) > Date.parse(onboarding.dueAt));
|
|
301
|
+
}
|
|
302
|
+
function requestDocument(onboarding, input, context, idFactory) {
|
|
303
|
+
assertExpectedVersion(onboarding, context);
|
|
304
|
+
const type = requireText(input.type, 'type');
|
|
305
|
+
const label = requireText(input.label, 'label');
|
|
306
|
+
const requirement = {
|
|
307
|
+
id: idFactory.next(),
|
|
308
|
+
onboardingId: onboarding.id,
|
|
309
|
+
type,
|
|
310
|
+
label,
|
|
311
|
+
status: 'requested',
|
|
312
|
+
requestedAt: context.clock.now(),
|
|
313
|
+
receivedAt: null,
|
|
314
|
+
validatedAt: null,
|
|
315
|
+
rejectedAt: null,
|
|
316
|
+
rejectionReason: null,
|
|
317
|
+
expiresAt: input.expiresAt ?? null,
|
|
318
|
+
canonicalDocumentId: null,
|
|
319
|
+
};
|
|
320
|
+
onboarding.documentRequirements.push(requirement);
|
|
321
|
+
onboarding.version += 1;
|
|
322
|
+
return change(requirement, [
|
|
323
|
+
event(idFactory, context, onboarding.tenantId, 'document_requirement', requirement.id, 'onboarding.document.requested', { onboardingId: onboarding.id, type }),
|
|
324
|
+
]);
|
|
325
|
+
}
|
|
326
|
+
function findDocument(onboarding, requirementId) {
|
|
327
|
+
const requirement = onboarding.documentRequirements.find((candidate) => candidate.id === requirementId);
|
|
328
|
+
if (!requirement)
|
|
329
|
+
throw new shared_1.ValidationError('Requisito documental não encontrado', { requirementId });
|
|
330
|
+
return requirement;
|
|
331
|
+
}
|
|
332
|
+
function receiveDocument(onboarding, requirementId, context, idFactory) {
|
|
333
|
+
const requirement = findDocument(onboarding, requirementId);
|
|
334
|
+
if (requirement.status !== 'requested' && requirement.status !== 'rejected')
|
|
335
|
+
throw new OnboardingDomainError('invalid_document_transition', 'Documento não pode ser recebido neste estado');
|
|
336
|
+
requirement.status = 'received';
|
|
337
|
+
requirement.receivedAt = context.clock.now();
|
|
338
|
+
requirement.rejectionReason = null;
|
|
339
|
+
requirement.rejectedAt = null;
|
|
340
|
+
onboarding.version += 1;
|
|
341
|
+
return change(requirement, [
|
|
342
|
+
event(idFactory, context, onboarding.tenantId, 'document_requirement', requirement.id, 'onboarding.document.received', { onboardingId: onboarding.id }),
|
|
343
|
+
]);
|
|
344
|
+
}
|
|
345
|
+
function validateDocument(onboarding, requirementId, context, idFactory) {
|
|
346
|
+
const requirement = findDocument(onboarding, requirementId);
|
|
347
|
+
if (requirement.status !== 'received')
|
|
348
|
+
throw new OnboardingDomainError('invalid_document_transition', 'Somente documentos recebidos podem ser validados');
|
|
349
|
+
requirement.status = 'validated';
|
|
350
|
+
requirement.validatedAt = context.clock.now();
|
|
351
|
+
onboarding.version += 1;
|
|
352
|
+
return change(requirement, [
|
|
353
|
+
event(idFactory, context, onboarding.tenantId, 'document_requirement', requirement.id, 'onboarding.document.validated', { onboardingId: onboarding.id }),
|
|
354
|
+
]);
|
|
355
|
+
}
|
|
356
|
+
function rejectDocument(onboarding, requirementId, reason, context, idFactory) {
|
|
357
|
+
const requirement = findDocument(onboarding, requirementId);
|
|
358
|
+
requireText(reason, 'reason');
|
|
359
|
+
if (requirement.status !== 'received')
|
|
360
|
+
throw new OnboardingDomainError('invalid_document_transition', 'Somente documentos recebidos podem ser rejeitados');
|
|
361
|
+
requirement.status = 'rejected';
|
|
362
|
+
requirement.rejectedAt = context.clock.now();
|
|
363
|
+
requirement.rejectionReason = reason;
|
|
364
|
+
requirement.validatedAt = null;
|
|
365
|
+
onboarding.version += 1;
|
|
366
|
+
return change(requirement, [
|
|
367
|
+
event(idFactory, context, onboarding.tenantId, 'document_requirement', requirement.id, 'onboarding.document.rejected', { onboardingId: onboarding.id, reasonProvided: true }),
|
|
368
|
+
]);
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/onboarding/domain.ts"],"names":[],"mappings":";;;AAoPA,4CAgCC;AAED,0CAMC;AAED,0CASC;AAED,8CAOC;AAED,gDAMC;AAED,4CASC;AAYD,0BAqCC;AAQD,oCA+BC;AAED,8BAkCC;AAED,sDAiCC;AAED,gCA6BC;AAUD,0BAmCC;AAED,oCAgCC;AAED,8BAOC;AAQD,0CAoCC;AAWD,0CA4BC;AAED,4CA0BC;AAED,wCA8BC;AAxuBD,0CAA0D;AA8G1D,MAAa,qBAAsB,SAAQ,iBAAQ;IACjD,YAAY,IAAY,EAAE,OAAe,EAAE,OAAiB;QAC1D,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,wBAAe,CAAC,GAAG,KAAK,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA2B,EAC3B,OAAmC;IAEnC,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;QACxF,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,EAClB,2CAA2C,EAC3C;YACE,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,aAAa,EAAE,MAAM,CAAC,OAAO;SAC9B,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,GAAkB,EAAE,KAAa;IACvE,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,wBAAe,CAAC,GAAG,KAAK,kCAAkC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CACZ,SAA8B,EAC9B,OAAmC,EACnC,QAAgB,EAChB,UAAyC,EACzC,QAAgB,EAChB,SAAiB,EACjB,UAAsE,EAAE,EACxE,cAA6B,IAAI;IAEjC,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE;QACzB,SAAS;QACT,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;QAC/B,QAAQ;QACR,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU;QACV,QAAQ;QACR,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW;QACX,OAAO;QACP,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAI,KAAQ,EAAE,MAAyB;IACpD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAyB,EAAE,IAAsB;IACnF,MAAM,OAAO,GAA0D;QACrE,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC9B,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;QAC7C,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QAChC,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;KACd,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,qBAAqB,CAC7B,oBAAoB,EACpB,uBAAuB,OAAO,MAAM,IAAI,EAAE,EAC1C,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,UAAsB,EACtB,IAAsB,EACtB,OAAmC,EACnC,SAA8B,EAC9B,UAAsE,EAAE;IAExE,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpD,IACE,IAAI,KAAK,WAAW;QACpB,UAAU,CAAC,KAAK,CAAC,IAAI,CACnB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAClF,EACD,CAAC;QACD,MAAM,IAAI,qBAAqB,CAC7B,uBAAuB,EACvB,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;IACnC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,IAAI,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI;QAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC;IAC1F,IAAI,IAAI,KAAK,SAAS;QAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC;IAC1D,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,KAAK,WAAW;QAAE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;IAC9D,OAAO,MAAM,CAAC,UAAU,EAAE;QACxB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,YAAY,EACZ,UAAU,CAAC,EAAE,EACb,cAAc,IAAI,EAAE,EACpB;YACE,cAAc,EAAE,QAAQ;YACxB,GAAG,OAAO;SACX,CACF;KACF,CAAC,CAAC;AACL,CAAC;AASD,SAAgB,gBAAgB,CAC9B,KAA4B,EAC5B,OAAmC,EACnC,SAA8B;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACtC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,UAAU,GAAe;QAC7B,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE;QACpB,QAAQ;QACR,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,oBAAoB,EAAE,EAAE;KACzB,CAAC;IACF,OAAO,MAAM,CAAC,UAAU,EAAE;QACxB,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,oBAAoB,EAAE;YACrF,QAAQ;SACT,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,eAAe,CAC7B,UAAsB,EACtB,OAAmC,EACnC,SAA8B;IAE9B,OAAO,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,eAAe,CAC7B,UAAsB,EACtB,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC;IAClC,OAAO,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,SAAgB,iBAAiB,CAC/B,UAAsB,EACtB,OAAmC,EACnC,SAA8B;IAE9B,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;IAChC,OAAO,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,kBAAkB,CAChC,UAAsB,EACtB,OAAmC,EACnC,SAA8B;IAE9B,OAAO,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,gBAAgB,CAC9B,UAAsB,EACtB,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;IACvC,OAAO,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3F,CAAC;AAYD,SAAgB,OAAO,CACrB,UAAsB,EACtB,KAAmB,EACnB,OAAmC,EACnC,SAA8B;IAE9B,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,IAAI,GAAmB;QAC3B,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,KAAK;QACL,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;QACtC,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,IAAI;QACrB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM;QAC7C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,UAAU;QAC1C,OAAO,EAAE,CAAC;KACX,CAAC;IACF,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,IAAI,EAAE;QAClB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,iBAAiB,EACjB,IAAI,CAAC,EAAE,EACP,yBAAyB,EACzB,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACzD;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,UAAsB,EAAE,MAAc;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,wBAAe,CAAC,mCAAmC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,YAAY,CAC1B,UAAsB,EACtB,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,qBAAqB,CAAC,IAAI,EAAE;QAC1B,GAAG,OAAO;QACV,eAAe,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,eAAe;KACxE,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,MAAM,IAAI,qBAAqB,CAC7B,yBAAyB,EACzB,0CAA0C,CAC3C,CAAC;IACJ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAClB,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,IAAI,EAAE;QAClB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,iBAAiB,EACjB,IAAI,CAAC,EAAE,EACP,2BAA2B,EAC3B,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAChC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,SAAS,CACvB,UAAsB,EACtB,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,qBAAqB,CAAC,IAAI,EAAE;QAC1B,GAAG,OAAO;QACV,eAAe,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,eAAe;KACxE,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,qBAAqB,CAC7B,yBAAyB,EACzB,yCAAyC,CAC1C,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAClB,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,IAAI,EAAE;QAClB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,iBAAiB,EACjB,IAAI,CAAC,EAAE,EACP,yBAAyB,EACzB;YACE,YAAY,EAAE,UAAU,CAAC,EAAE;SAC5B,CACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,qBAAqB,CACnC,UAAsB,EACtB,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,qBAAqB,CAAC,IAAI,EAAE;QAC1B,GAAG,OAAO;QACV,eAAe,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,eAAe;KACxE,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,qBAAqB,CAC7B,yBAAyB,EACzB,wCAAwC,CACzC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC;IAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAClB,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,IAAI,EAAE;QAClB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,iBAAiB,EACjB,IAAI,CAAC,EAAE,EACP,gCAAgC,EAChC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAChC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,UAAU,CACxB,UAAsB,EACtB,MAAc,EACd,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,qBAAqB,CAAC,IAAI,EAAE;QAC1B,GAAG,OAAO;QACV,eAAe,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,eAAe;KACxE,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAClB,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,IAAI,EAAE;QAClB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,iBAAiB,EACjB,IAAI,CAAC,EAAE,EACP,0BAA0B,EAC1B,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CACtD;KACF,CAAC,CAAC;AACL,CAAC;AAUD,SAAgB,OAAO,CACrB,UAAsB,EACtB,KAAmB,EACnB,OAAmC,EACnC,SAA8B;IAE9B,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,IAAI,GAAmB;QAC3B,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,KAAK;QACL,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;QACtC,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC;KACX,CAAC;IACF,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,IAAI,EAAE;QAClB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,iBAAiB,EACjB,IAAI,CAAC,EAAE,EACP,yBAAyB,EACzB,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAChC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,YAAY,CAC1B,UAAsB,EACtB,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,wBAAe,CAAC,qCAAqC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,qBAAqB,CAAC,IAAI,EAAE;QAC1B,GAAG,OAAO;QACV,eAAe,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,eAAe;KACxE,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;QAC5D,MAAM,IAAI,qBAAqB,CAC7B,yBAAyB,EACzB,4CAA4C,CAC7C,CAAC;IACJ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAClB,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,IAAI,EAAE;QAClB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,iBAAiB,EACjB,IAAI,CAAC,EAAE,EACP,2BAA2B,EAC3B,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAChC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,SAAS,CAAC,UAAsB,EAAE,GAAW;IAC3D,OAAO,CACL,UAAU,CAAC,KAAK,KAAK,IAAI;QACzB,UAAU,CAAC,MAAM,KAAK,WAAW;QACjC,UAAU,CAAC,MAAM,KAAK,WAAW;QACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAC/C,CAAC;AACJ,CAAC;AAQD,SAAgB,eAAe,CAC7B,UAAsB,EACtB,KAAkC,EAClC,OAAmC,EACnC,SAA8B;IAE9B,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAwB;QACvC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,IAAI;QACJ,KAAK;QACL,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,mBAAmB,EAAE,IAAI;KAC1B,CAAC;IACF,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,WAAW,EAAE;QACzB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,sBAAsB,EACtB,WAAW,CAAC,EAAE,EACd,+BAA+B,EAC/B,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,CACtC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,UAAsB,EAAE,aAAqB;IACjE,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,CAAC,IAAI,CACtD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,aAAa,CAC9C,CAAC;IACF,IAAI,CAAC,WAAW;QACd,MAAM,IAAI,wBAAe,CAAC,qCAAqC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACtF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,eAAe,CAC7B,UAAsB,EACtB,aAAqB,EACrB,OAAmC,EACnC,SAA8B;IAE9B,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU;QACzE,MAAM,IAAI,qBAAqB,CAC7B,6BAA6B,EAC7B,8CAA8C,CAC/C,CAAC;IACJ,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC;IAChC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7C,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,WAAW,EAAE;QACzB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,sBAAsB,EACtB,WAAW,CAAC,EAAE,EACd,8BAA8B,EAC9B,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAChC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,gBAAgB,CAC9B,UAAsB,EACtB,aAAqB,EACrB,OAAmC,EACnC,SAA8B;IAE9B,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU;QACnC,MAAM,IAAI,qBAAqB,CAC7B,6BAA6B,EAC7B,kDAAkD,CACnD,CAAC;IACJ,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC;IACjC,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC9C,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,WAAW,EAAE;QACzB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,sBAAsB,EACtB,WAAW,CAAC,EAAE,EACd,+BAA+B,EAC/B,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAChC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAC5B,UAAsB,EACtB,aAAqB,EACrB,MAAc,EACd,OAAmC,EACnC,SAA8B;IAE9B,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5D,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU;QACnC,MAAM,IAAI,qBAAqB,CAC7B,6BAA6B,EAC7B,mDAAmD,CACpD,CAAC;IACJ,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC;IAChC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7C,WAAW,CAAC,eAAe,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,WAAW,EAAE;QACzB,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAU,CAAC,QAAQ,EACnB,sBAAsB,EACtB,WAAW,CAAC,EAAE,EACd,8BAA8B,EAC9B,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CACtD;KACF,CAAC,CAAC;AACL,CAAC"}
|