@wildo-ai/saas-models 1.1.7 → 1.1.9
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/dist/esm/_inspect.d.ts.map +1 -1
- package/dist/esm/_inspect.js.map +1 -1
- package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-subject.shared.schemas.js.map +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications-context.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
- package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js.map +1 -1
- package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/promotions.shared.schemas.js.map +1 -1
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -1
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -1
- package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -1
- package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -1
- package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
- package/dist/esm/charts/aggregation-query.shared.schemas.js.map +1 -1
- package/dist/esm/charts/aggregation.shared.definitions.d.ts.map +1 -1
- package/dist/esm/charts/aggregation.shared.definitions.js.map +1 -1
- package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
- package/dist/esm/charts/chart-definition-builder.shared.js.map +1 -1
- package/dist/esm/companion/artifact-placement.shared.definitions.d.ts.map +1 -1
- package/dist/esm/companion/artifact-placement.shared.definitions.js.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +13 -0
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js +13 -0
- package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
- package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
- package/dist/esm/companion/shared-library-companion.shared.definitions.js.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/companion-exports.js.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -1
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +32 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +32 -0
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/sharing.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/sharing.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/risk-posture.shared.schemas.d.ts +15 -3
- package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/risk-posture.shared.schemas.js +14 -2
- package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-frontend-type.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-frontend-type.shared.schemas.js.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
- package/dist/esm/config/configuration-validation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/configuration-validation.shared.schemas.js.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
- package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
- package/dist/esm/config/postgresql.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/postgresql.shared.schemas.js.map +1 -1
- package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/registration-acquisition-policy.shared.utils.js.map +1 -1
- package/dist/esm/config-authoring.entry.d.ts.map +1 -1
- package/dist/esm/config-authoring.entry.js.map +1 -1
- package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
- package/dist/esm/crdt/crdt-merge.shared.utils.js.map +1 -1
- package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js.map +1 -1
- package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.utils.js.map +1 -1
- package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts.map +1 -1
- package/dist/esm/errors/resource-access-forbidden.shared.error.js.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
- package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/zod-issue-formatting.shared.utils.js.map +1 -1
- package/dist/esm/exports/tabular-csv.shared.utils.d.ts.map +1 -1
- package/dist/esm/exports/tabular-csv.shared.utils.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
- package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -1
- package/dist/esm/external-data.exports.d.ts.map +1 -1
- package/dist/esm/external-data.exports.js.map +1 -1
- package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/compose-provider-registry.shared.js.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
- package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
- package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -1
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -1
- package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -1
- package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -1
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -1
- package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/features/connected-feature.example.d.ts.map +1 -1
- package/dist/esm/features/connected-feature.example.js.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
- package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-builders.shared.js.map +1 -1
- package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
- package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-registry.shared.js.map +1 -1
- package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/feature-resolution.shared.schemas.js.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
- package/dist/esm/files/files.shared.utils.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/prompt-ir.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -1
- package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
- package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
- package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
- package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-config.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -1
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -1
- package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -1
- package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -1
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -1
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -1
- package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -1
- package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -1
- package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts.map +1 -1
- package/dist/esm/i18n/interpolate-label-params.shared.utils.js.map +1 -1
- package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
- package/dist/esm/i18n/labelling.dto.shared.schemas.js.map +1 -1
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -1
- package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -1
- package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -1
- package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -1
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -1
- package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -1
- package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.d.ts +128 -0
- package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.js +136 -0
- package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +32 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +66 -1
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows.exports.d.ts +1 -0
- package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
- package/dist/esm/meta-workflows.exports.js +1 -0
- package/dist/esm/meta-workflows.exports.js.map +1 -1
- package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/monitoring.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-context.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-features.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-inheritance.shared.js.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.example.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.path.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.path.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +70 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +85 -2
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
- package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.utils.js.map +1 -1
- package/dist/esm/queue/rabbitmq-queue-args.shared.d.ts.map +1 -1
- package/dist/esm/queue/rabbitmq-queue-args.shared.js.map +1 -1
- package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -1
- package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -1
- package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
- package/dist/esm/requests/header-keys.shared.js.map +1 -1
- package/dist/esm/requests/http-requests.shared.d.ts.map +1 -1
- package/dist/esm/requests/http-requests.shared.js.map +1 -1
- package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -1
- package/dist/esm/requests/idempotency-key.shared.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
- package/dist/esm/resources/collection-query-parameters.shared.d.ts.map +1 -1
- package/dist/esm/resources/collection-query-parameters.shared.js.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
- package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -1
- package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/relationship-display.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-serialization.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
- package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-seedability.validation.js.map +1 -1
- package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -1
- package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js.map +1 -1
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -1
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -1
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/repository-dto-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/required-fk-fillability.validation.js.map +1 -1
- package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-operation-type-guards.utils.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.relationships.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.utils.js.map +1 -1
- package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-subtree.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-context-needs.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +25 -0
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +47 -19
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.path.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-family-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-type-inference.utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-type-utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-variant-resolver.utils.js.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
- package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -1
- package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
- package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
- package/dist/esm/runtime/runtime.shared.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/runtime.shared.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
- package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js.map +1 -1
- package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -1
- package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/same-origin-redirect-path.shared.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -1
- package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js.map +1 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
- package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -1
- package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -1
- package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
- package/dist/esm/testing/resource-config-builders.js.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js.map +1 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -1
- package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/package.json +4 -4
- package/dist/esm/__tests__/setup.d.ts +0 -2
- package/dist/esm/__tests__/setup.d.ts.map +0 -1
- package/dist/esm/__tests__/setup.js +0 -19
- package/dist/esm/__tests__/setup.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation-query.shared.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"aggregation-query.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/charts/aggregation-query.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;oEAMoE;AAEpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAI1C,eAAO,MAAM,aAAa;;;;;;;;;iBAqBxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAIpD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;iBAwC1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,eAAO,MAAM,qBAAqB;;;;;iBAkBhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,oBAAoB;;;;;;;;iBAY/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,kBAAkB;;;;;;iBAW7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,eAAO,MAAM,kBAAkB;;;;iBAO7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,eAAO,MAAM,mBAAmB;;;;;iBAO9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AA0ChE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAaE,CAAC;AACtC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,iCAAiC,wCAAoC,CAAC;AACnF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,0BAA0B;;;;;iBASrC,CAAC;AAKH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,8BAA8B;;;;;;;;iBAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation-query.shared.schemas.js","sourceRoot":"","sources":["../../../src/charts/aggregation-query.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * Aggregation Query Schemas\n * \n * Declarative data query spec — database-agnostic.\n * Charts are the first consumer; other consumers (counts, facets, exports)\n * use AggregationQuerySchema directly.\n * ────────────────────────────────────────────────────────────── */\n\nimport { z } from 'zod';\nimport {\n AggregateFunction,\n TimeGranularity,\n SortDirection,\n ComparisonOperator,\n JoinType,\n ContextFilterSource,\n WindowFunctionType,\n DimensionSortBy,\n} from './aggregation.shared.definitions';\n\n// ── Measure Schema ───────────────────────────────────────────\n\nexport const MeasureSchema = z.object({\n /** Unique ref for this measure (used in computed measures, orderBy, series mapping) */\n ref: z.string(),\n /** Field to aggregate. Use '*' for COUNT(*). Use dot notation for joined fields. */\n field: z.string(),\n /** Aggregation function */\n aggregate: z.enum(AggregateFunction),\n /** Display label */\n label: z.string().optional(),\n\n // Function-specific params\n /** For PERCENTILE: which percentile (0-100) */\n percentileValue: z.number().min(0).max(100).optional(),\n /** For STRING_AGG: separator */\n separator: z.string().optional(),\n /** For ARRAY_AGG: max items */\n arrayLimit: z.number().positive().optional(),\n\n // Measure-level filter\n /** Filter applied ONLY to this measure (SQL FILTER WHERE / MongoDB $cond) */\n filter: z.record(z.string(), z.unknown()).optional(),\n});\nexport type Measure = z.infer<typeof MeasureSchema>;\n\n// ── Dimension Schema ─────────────────────────────────────────\n\nexport const DimensionSchema = z.object({\n /** Unique ref for this dimension */\n ref: z.string(),\n /** Field to group by. Dot notation for joined fields. */\n field: z.string(),\n /** Display label */\n label: z.string().optional(),\n\n // Time dimension\n /** For temporal fields: bucket granularity */\n timeGranularity: z.enum(TimeGranularity).optional(),\n /** For time: fill empty buckets with zero/null */\n fillMissingBuckets: z.boolean().optional(),\n /** For time: custom date range (overrides global filter) */\n dateRange: z.object({\n from: z.string().optional(),\n to: z.string().optional(),\n }).optional(),\n\n // Bucketing (non-time)\n /** Numeric binning: { step: 10 } or { boundaries: [0, 50, 100, 500] } */\n bin: z.union([\n z.object({ step: z.number().positive() }),\n z.object({ boundaries: z.array(z.number()) }),\n ]).optional(),\n\n // Sorting\n sort: z.object({\n direction: z.enum(SortDirection).default(SortDirection.ASC),\n /** Sort by this dimension's values, or by a measure ref */\n by: z.enum(DimensionSortBy).default(DimensionSortBy.SELF),\n /** If by='measure': which measure ref to sort by */\n measureRef: z.string().optional(),\n }).optional(),\n\n // Limiting / top-N\n /** Only return top N values for this dimension */\n topN: z.number().positive().optional(),\n /** Group remaining values into \"Other\" bucket */\n groupOther: z.boolean().optional(),\n});\nexport type Dimension = z.infer<typeof DimensionSchema>;\n\n// ── Computed Measure Schema (post-aggregation) ───────────────\n\nexport const ComputedMeasureSchema = z.object({\n /** Unique ref */\n ref: z.string(),\n /** Display label */\n label: z.string().optional(),\n /**\n * Expression using measure refs as variables.\n * Supported operators: +, -, *, /, %, (, )\n * Built-in functions: round(x, decimals), abs(x), coalesce(x, fallback), min(x, y), max(x, y)\n * \n * Examples:\n * \"completed_count / total_count * 100\"\n * \"round(revenue / order_count, 2)\"\n * \"coalesce(returning_users / total_users * 100, 0)\"\n */\n expression: z.string(),\n /** Measure refs used in the expression (for validation) */\n dependsOn: z.array(z.string()),\n});\nexport type ComputedMeasure = z.infer<typeof ComputedMeasureSchema>;\n\n// ── Window Function Schema ───────────────────────────────────\n\nexport const WindowFunctionSchema = z.object({\n ref: z.string(),\n label: z.string().optional(),\n /** The base measure or dimension ref to transform */\n sourceRef: z.string(),\n type: z.enum(WindowFunctionType),\n /** For moving_avg: window size */\n windowSize: z.number().positive().optional(),\n /** Partition by dimension ref (for segmented windows) */\n partitionBy: z.string().optional(),\n /** Order by dimension ref (defaults to first time dimension) */\n orderBy: z.string().optional(),\n});\nexport type WindowFunction = z.infer<typeof WindowFunctionSchema>;\n\n// ── Cross-Resource Join Schema ───────────────────────────────\n\nexport const ResourceJoinSchema = z.object({\n /** Resource type to join */\n resourceType: z.string(),\n /** FK field on the source side (must exist in ResourceRelationship definitions) */\n foreignKeyField: z.string(),\n /** Alias prefix for joined fields (e.g., \"customer\" → \"customer.name\") */\n alias: z.string(),\n /** Optional: only include specific fields from joined resource */\n selectFields: z.array(z.string()).optional(),\n /** Join type — defaults to LEFT (null-safe for aggregation) */\n joinType: z.enum(JoinType).default(JoinType.LEFT),\n});\nexport type ResourceJoin = z.infer<typeof ResourceJoinSchema>;\n\n// ── HAVING Clause ────────────────────────────────────────────\n\nexport const HavingClauseSchema = z.object({\n /** Measure ref to filter on */\n measureRef: z.string(),\n /** Comparison operator */\n operator: z.enum(ComparisonOperator),\n /** Value to compare against */\n value: z.number(),\n});\nexport type HavingClause = z.infer<typeof HavingClauseSchema>;\n\n// ── Context Filter Schema ────────────────────────────────────\n\nexport const ContextFilterSchema = z.object({\n field: z.string(),\n /** Comparison operator — defaults to EQ. Use GTE/LTE for date ranges. */\n operator: z.enum(ComparisonOperator).default(ComparisonOperator.EQ),\n source: z.enum(ContextFilterSource),\n /** Source field name (URL param name, parent field name, user field name) */\n sourceField: z.string().optional(),\n});\nexport type ContextFilter = z.infer<typeof ContextFilterSchema>;\n\n// ── The Complete AggregationQuery Schema ─────────────────────\n\nconst AggregationQueryObjectSchema = z.object({\n /** Primary resource */\n mainResourceType: z.string(),\n\n /** Static filters (ResourceFilter syntax — same as LIST/SEARCH) */\n filters: z.record(z.string(), z.unknown()).optional(),\n /** Context-injected filters (resolved at query time) */\n contextFilters: z.array(ContextFilterSchema).optional(),\n\n /** Dimensions & Measures */\n dimensions: z.array(DimensionSchema).min(1),\n measures: z.array(MeasureSchema).min(1),\n\n /** Post-aggregation */\n computedMeasures: z.array(ComputedMeasureSchema).optional(),\n windowFunctions: z.array(WindowFunctionSchema).optional(),\n\n /** Cross-resource */\n joins: z.array(ResourceJoinSchema).optional(),\n\n /** Result shaping */\n having: z.array(HavingClauseSchema).optional(),\n limit: z.number().positive().max(10000).optional(),\n orderBy: z.array(z.object({\n ref: z.string(),\n direction: z.enum(SortDirection).default(SortDirection.ASC),\n })).optional(),\n\n /** Max query execution time in ms. Default: 30000 (30s). Max: 60000 (60s). */\n timeoutMs: z.number().positive().max(60_000).default(30_000).optional(),\n\n /**\n * IANA timezone for time dimension bucketing (e.g., 'Europe/Paris', 'America/New_York').\n * If omitted, resolved at query time from the user's session/organization settings.\n */\n timezone: z.string().optional(),\n});\n\n/**\n * `refreshInterval` used to sit on `AggregationQuery`, but polling semantics are\n * owned by `ChartDefinition`. Reject the legacy nested field explicitly so\n * hand-authored configs fail fast instead of being silently stripped.\n */\nexport const AggregationQuerySchema = z.unknown().superRefine((value, ctx) => {\n if (\n value &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.prototype.hasOwnProperty.call(value, 'refreshInterval')\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['refreshInterval'],\n message: 'AggregationQuery.refreshInterval has been removed. Use ChartDefinition.refreshInterval instead.',\n });\n }\n}).pipe(AggregationQueryObjectSchema);\nexport type AggregationQuery = z.infer<typeof AggregationQuerySchema>;\n\n// ── Aggregation Query Response Schemas ───────────────────────\n\nexport const AggregationQueryResponseRowSchema = z.record(z.string(), z.unknown());\nexport type AggregationQueryResponseRow = z.infer<typeof AggregationQueryResponseRowSchema>;\n\nexport const AggregationQueryMetaSchema = z.object({\n /** Server-side execution time in ms */\n executionTimeMs: z.number().optional(),\n /** Total rows returned (before limit) */\n totalRows: z.number().optional(),\n /** Whether result was truncated by limit */\n truncated: z.boolean().optional(),\n /** Resolved timezone used for bucketing */\n resolvedTimezone: z.string().optional(),\n});\n// Meta fields are diagnostic/advisory — a chart renders from `data` alone. They are\n// OPTIONAL so a valid `data` payload is never rejected because the producer omitted a\n// meta field (the frontend validates the whole response and would otherwise blank a\n// good chart over a missing `executionTimeMs`/`truncated`/etc.).\nexport type AggregationQueryMeta = z.infer<typeof AggregationQueryMetaSchema>;\n\nexport const AggregationQueryResponseSchema = z.object({\n /** Result rows — each row is a record keyed by dimension/measure ref */\n data: z.array(AggregationQueryResponseRowSchema),\n /** Query execution metadata */\n queryMeta: AggregationQueryMetaSchema,\n});\nexport type AggregationQueryResponse = z.infer<typeof AggregationQueryResponseSchema>;\n"]}
|
|
1
|
+
{"version":3,"file":"aggregation-query.shared.schemas.js","sourceRoot":"","sources":["../../../../src/charts/aggregation-query.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * Aggregation Query Schemas\n * \n * Declarative data query spec — database-agnostic.\n * Charts are the first consumer; other consumers (counts, facets, exports)\n * use AggregationQuerySchema directly.\n * ────────────────────────────────────────────────────────────── */\n\nimport { z } from 'zod';\nimport {\n AggregateFunction,\n TimeGranularity,\n SortDirection,\n ComparisonOperator,\n JoinType,\n ContextFilterSource,\n WindowFunctionType,\n DimensionSortBy,\n} from './aggregation.shared.definitions';\n\n// ── Measure Schema ───────────────────────────────────────────\n\nexport const MeasureSchema = z.object({\n /** Unique ref for this measure (used in computed measures, orderBy, series mapping) */\n ref: z.string(),\n /** Field to aggregate. Use '*' for COUNT(*). Use dot notation for joined fields. */\n field: z.string(),\n /** Aggregation function */\n aggregate: z.enum(AggregateFunction),\n /** Display label */\n label: z.string().optional(),\n\n // Function-specific params\n /** For PERCENTILE: which percentile (0-100) */\n percentileValue: z.number().min(0).max(100).optional(),\n /** For STRING_AGG: separator */\n separator: z.string().optional(),\n /** For ARRAY_AGG: max items */\n arrayLimit: z.number().positive().optional(),\n\n // Measure-level filter\n /** Filter applied ONLY to this measure (SQL FILTER WHERE / MongoDB $cond) */\n filter: z.record(z.string(), z.unknown()).optional(),\n});\nexport type Measure = z.infer<typeof MeasureSchema>;\n\n// ── Dimension Schema ─────────────────────────────────────────\n\nexport const DimensionSchema = z.object({\n /** Unique ref for this dimension */\n ref: z.string(),\n /** Field to group by. Dot notation for joined fields. */\n field: z.string(),\n /** Display label */\n label: z.string().optional(),\n\n // Time dimension\n /** For temporal fields: bucket granularity */\n timeGranularity: z.enum(TimeGranularity).optional(),\n /** For time: fill empty buckets with zero/null */\n fillMissingBuckets: z.boolean().optional(),\n /** For time: custom date range (overrides global filter) */\n dateRange: z.object({\n from: z.string().optional(),\n to: z.string().optional(),\n }).optional(),\n\n // Bucketing (non-time)\n /** Numeric binning: { step: 10 } or { boundaries: [0, 50, 100, 500] } */\n bin: z.union([\n z.object({ step: z.number().positive() }),\n z.object({ boundaries: z.array(z.number()) }),\n ]).optional(),\n\n // Sorting\n sort: z.object({\n direction: z.enum(SortDirection).default(SortDirection.ASC),\n /** Sort by this dimension's values, or by a measure ref */\n by: z.enum(DimensionSortBy).default(DimensionSortBy.SELF),\n /** If by='measure': which measure ref to sort by */\n measureRef: z.string().optional(),\n }).optional(),\n\n // Limiting / top-N\n /** Only return top N values for this dimension */\n topN: z.number().positive().optional(),\n /** Group remaining values into \"Other\" bucket */\n groupOther: z.boolean().optional(),\n});\nexport type Dimension = z.infer<typeof DimensionSchema>;\n\n// ── Computed Measure Schema (post-aggregation) ───────────────\n\nexport const ComputedMeasureSchema = z.object({\n /** Unique ref */\n ref: z.string(),\n /** Display label */\n label: z.string().optional(),\n /**\n * Expression using measure refs as variables.\n * Supported operators: +, -, *, /, %, (, )\n * Built-in functions: round(x, decimals), abs(x), coalesce(x, fallback), min(x, y), max(x, y)\n * \n * Examples:\n * \"completed_count / total_count * 100\"\n * \"round(revenue / order_count, 2)\"\n * \"coalesce(returning_users / total_users * 100, 0)\"\n */\n expression: z.string(),\n /** Measure refs used in the expression (for validation) */\n dependsOn: z.array(z.string()),\n});\nexport type ComputedMeasure = z.infer<typeof ComputedMeasureSchema>;\n\n// ── Window Function Schema ───────────────────────────────────\n\nexport const WindowFunctionSchema = z.object({\n ref: z.string(),\n label: z.string().optional(),\n /** The base measure or dimension ref to transform */\n sourceRef: z.string(),\n type: z.enum(WindowFunctionType),\n /** For moving_avg: window size */\n windowSize: z.number().positive().optional(),\n /** Partition by dimension ref (for segmented windows) */\n partitionBy: z.string().optional(),\n /** Order by dimension ref (defaults to first time dimension) */\n orderBy: z.string().optional(),\n});\nexport type WindowFunction = z.infer<typeof WindowFunctionSchema>;\n\n// ── Cross-Resource Join Schema ───────────────────────────────\n\nexport const ResourceJoinSchema = z.object({\n /** Resource type to join */\n resourceType: z.string(),\n /** FK field on the source side (must exist in ResourceRelationship definitions) */\n foreignKeyField: z.string(),\n /** Alias prefix for joined fields (e.g., \"customer\" → \"customer.name\") */\n alias: z.string(),\n /** Optional: only include specific fields from joined resource */\n selectFields: z.array(z.string()).optional(),\n /** Join type — defaults to LEFT (null-safe for aggregation) */\n joinType: z.enum(JoinType).default(JoinType.LEFT),\n});\nexport type ResourceJoin = z.infer<typeof ResourceJoinSchema>;\n\n// ── HAVING Clause ────────────────────────────────────────────\n\nexport const HavingClauseSchema = z.object({\n /** Measure ref to filter on */\n measureRef: z.string(),\n /** Comparison operator */\n operator: z.enum(ComparisonOperator),\n /** Value to compare against */\n value: z.number(),\n});\nexport type HavingClause = z.infer<typeof HavingClauseSchema>;\n\n// ── Context Filter Schema ────────────────────────────────────\n\nexport const ContextFilterSchema = z.object({\n field: z.string(),\n /** Comparison operator — defaults to EQ. Use GTE/LTE for date ranges. */\n operator: z.enum(ComparisonOperator).default(ComparisonOperator.EQ),\n source: z.enum(ContextFilterSource),\n /** Source field name (URL param name, parent field name, user field name) */\n sourceField: z.string().optional(),\n});\nexport type ContextFilter = z.infer<typeof ContextFilterSchema>;\n\n// ── The Complete AggregationQuery Schema ─────────────────────\n\nconst AggregationQueryObjectSchema = z.object({\n /** Primary resource */\n mainResourceType: z.string(),\n\n /** Static filters (ResourceFilter syntax — same as LIST/SEARCH) */\n filters: z.record(z.string(), z.unknown()).optional(),\n /** Context-injected filters (resolved at query time) */\n contextFilters: z.array(ContextFilterSchema).optional(),\n\n /** Dimensions & Measures */\n dimensions: z.array(DimensionSchema).min(1),\n measures: z.array(MeasureSchema).min(1),\n\n /** Post-aggregation */\n computedMeasures: z.array(ComputedMeasureSchema).optional(),\n windowFunctions: z.array(WindowFunctionSchema).optional(),\n\n /** Cross-resource */\n joins: z.array(ResourceJoinSchema).optional(),\n\n /** Result shaping */\n having: z.array(HavingClauseSchema).optional(),\n limit: z.number().positive().max(10000).optional(),\n orderBy: z.array(z.object({\n ref: z.string(),\n direction: z.enum(SortDirection).default(SortDirection.ASC),\n })).optional(),\n\n /** Max query execution time in ms. Default: 30000 (30s). Max: 60000 (60s). */\n timeoutMs: z.number().positive().max(60_000).default(30_000).optional(),\n\n /**\n * IANA timezone for time dimension bucketing (e.g., 'Europe/Paris', 'America/New_York').\n * If omitted, resolved at query time from the user's session/organization settings.\n */\n timezone: z.string().optional(),\n});\n\n/**\n * `refreshInterval` used to sit on `AggregationQuery`, but polling semantics are\n * owned by `ChartDefinition`. Reject the legacy nested field explicitly so\n * hand-authored configs fail fast instead of being silently stripped.\n */\nexport const AggregationQuerySchema = z.unknown().superRefine((value, ctx) => {\n if (\n value &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.prototype.hasOwnProperty.call(value, 'refreshInterval')\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['refreshInterval'],\n message: 'AggregationQuery.refreshInterval has been removed. Use ChartDefinition.refreshInterval instead.',\n });\n }\n}).pipe(AggregationQueryObjectSchema);\nexport type AggregationQuery = z.infer<typeof AggregationQuerySchema>;\n\n// ── Aggregation Query Response Schemas ───────────────────────\n\nexport const AggregationQueryResponseRowSchema = z.record(z.string(), z.unknown());\nexport type AggregationQueryResponseRow = z.infer<typeof AggregationQueryResponseRowSchema>;\n\nexport const AggregationQueryMetaSchema = z.object({\n /** Server-side execution time in ms */\n executionTimeMs: z.number().optional(),\n /** Total rows returned (before limit) */\n totalRows: z.number().optional(),\n /** Whether result was truncated by limit */\n truncated: z.boolean().optional(),\n /** Resolved timezone used for bucketing */\n resolvedTimezone: z.string().optional(),\n});\n// Meta fields are diagnostic/advisory — a chart renders from `data` alone. They are\n// OPTIONAL so a valid `data` payload is never rejected because the producer omitted a\n// meta field (the frontend validates the whole response and would otherwise blank a\n// good chart over a missing `executionTimeMs`/`truncated`/etc.).\nexport type AggregationQueryMeta = z.infer<typeof AggregationQueryMetaSchema>;\n\nexport const AggregationQueryResponseSchema = z.object({\n /** Result rows — each row is a record keyed by dimension/measure ref */\n data: z.array(AggregationQueryResponseRowSchema),\n /** Query execution metadata */\n queryMeta: AggregationQueryMetaSchema,\n});\nexport type AggregationQueryResponse = z.infer<typeof AggregationQueryResponseSchema>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.shared.definitions.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"aggregation.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/charts/aggregation.shared.definitions.ts"],"names":[],"mappings":"AAAA;;;;;;oEAMoE;AAIpE,oBAAY,iBAAiB;IAE3B,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IAGX,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,QAAQ,aAAa;IAGrB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IAGnB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AAID,oBAAY,eAAe;IACzB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAID,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAID,oBAAY,kBAAkB;IAC5B,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;CACZ;AAID,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAID,oBAAY,mBAAmB;IAC7B,YAAY,gBAAgB;IAC5B,oBAAoB,wBAAwB;IAC5C,SAAS,aAAa;IACtB,eAAe,mBAAmB;CACnC;AAID,oBAAY,kBAAkB;IAC5B,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,UAAU,eAAe;CAC1B;AAID,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAKD,oBAAY,oBAAoB;IAC9B,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,gCAAgC,qCAAqC;IACrE,+BAA+B,oCAAoC;IACnE,qCAAqC,0CAA0C;IAC/E,8BAA8B,mCAAmC;CAClE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.shared.definitions.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"aggregation.shared.definitions.js","sourceRoot":"","sources":["../../../../src/charts/aggregation.shared.definitions.ts"],"names":[],"mappings":"AAAA;;;;;;oEAMoE;AAEpE,gEAAgE;AAEhE,MAAM,CAAN,IAAY,iBAuBX;AAvBD,WAAY,iBAAiB;IAC3B,QAAQ;IACR,oCAAe,CAAA;IACf,sDAAiC,CAAA;IACjC,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;IAEX,cAAc;IACd,sCAAiB,CAAA;IACjB,8CAAyB,CAAA;IACzB,sCAAiB,CAAA;IACjB,0CAAqB,CAAA;IAErB,sBAAsB;IACtB,4CAAuB,CAAA;IACvB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IAEnB,QAAQ;IACR,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;AAC3B,CAAC,EAvBW,iBAAiB,KAAjB,iBAAiB,QAuB5B;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,sCAAmB,CAAA;IACnB,gCAAa,CAAA;AACf,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,8BAAa,CAAA;AACf,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,+BAAS,CAAA;IACT,+BAAS,CAAA;IACT,+BAAS,CAAA;IACT,iCAAW,CAAA;IACX,+BAAS,CAAA;IACT,iCAAW,CAAA;AACb,CAAC,EAPW,kBAAkB,KAAlB,kBAAkB,QAO7B;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;AACf,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,mDAA4B,CAAA;IAC5B,mEAA4C,CAAA;IAC5C,6CAAsB,CAAA;IACtB,yDAAkC,CAAA;AACpC,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC5B,qDAA+B,CAAA;IAC/B,iDAA2B,CAAA;IAC3B,2DAAqC,CAAA;IACrC,mCAAa,CAAA;IACb,+CAAyB,CAAA;IACzB,iCAAW,CAAA;IACX,mCAAa,CAAA;IACb,+CAAyB,CAAA;IACzB,uDAAiC,CAAA;IACjC,+CAAyB,CAAA;AAC3B,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,gEAAgE;AAChE,6EAA6E;AAE7E,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,2DAAmC,CAAA;IACnC,mEAA2C,CAAA;IAC3C,6FAAqE,CAAA;IACrE,2FAAmE,CAAA;IACnE,uGAA+E,CAAA;IAC/E,yFAAiE,CAAA;AACnE,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * Aggregation Engine — Enums & Definitions\n * \n * Generic aggregation enums used by the chart system and any future\n * aggregation consumers (resource counts, facets, report exports).\n * All constant sets are TypeScript enums — Zod 4 accepts enums via z.enum(MyEnum).\n * ────────────────────────────────────────────────────────────── */\n\n// ── Aggregate Functions ──────────────────────────────────────\n\nexport enum AggregateFunction {\n // Basic\n COUNT = 'count',\n COUNT_DISTINCT = 'count_distinct',\n SUM = 'sum',\n AVG = 'avg',\n MIN = 'min',\n MAX = 'max',\n\n // Statistical\n MEDIAN = 'median',\n PERCENTILE = 'percentile',\n STDDEV = 'stddev',\n VARIANCE = 'variance',\n\n // Boolean / existence\n ANY_VALUE = 'any_value',\n BOOL_AND = 'bool_and',\n BOOL_OR = 'bool_or',\n\n // Array\n ARRAY_AGG = 'array_agg',\n STRING_AGG = 'string_agg',\n}\n\n// ── Time Granularity ─────────────────────────────────────────\n\nexport enum TimeGranularity {\n MINUTE = 'minute',\n HOUR = 'hour',\n DAY = 'day',\n WEEK = 'week',\n MONTH = 'month',\n QUARTER = 'quarter',\n YEAR = 'year',\n}\n\n// ── Sort Direction ───────────────────────────────────────────\n\nexport enum SortDirection {\n ASC = 'asc',\n DESC = 'desc',\n}\n\n// ── Comparison Operator ──────────────────────────────────────\n\nexport enum ComparisonOperator {\n EQ = 'eq',\n NE = 'ne',\n GT = 'gt',\n GTE = 'gte',\n LT = 'lt',\n LTE = 'lte',\n}\n\n// ── Join Type ────────────────────────────────────────────────\n\nexport enum JoinType {\n INNER = 'inner',\n LEFT = 'left',\n}\n\n// ── Context Filter Source ────────────────────────────────────\n\nexport enum ContextFilterSource {\n CURRENT_USER = 'currentUser',\n CURRENT_ORGANIZATION = 'currentOrganization',\n URL_PARAM = 'urlParam',\n PARENT_RESOURCE = 'parentResource',\n}\n\n// ── Window Function Type ─────────────────────────────────────\n\nexport enum WindowFunctionType {\n RUNNING_TOTAL = 'running_total',\n RUNNING_AVG = 'running_avg',\n PERCENT_OF_TOTAL = 'percent_of_total',\n RANK = 'rank',\n DENSE_RANK = 'dense_rank',\n LAG = 'lag',\n LEAD = 'lead',\n DIFFERENCE = 'difference',\n PERCENT_CHANGE = 'percent_change',\n MOVING_AVG = 'moving_avg',\n}\n\n// ── Dimension Sort By ────────────────────────────────────────\n\nexport enum DimensionSortBy {\n SELF = 'self',\n MEASURE = 'measure',\n}\n\n// ── Aggregation Error Codes ──────────────────────────────────\n// Used by ErrorBuilderBackendService and frontend ChartErrorState component.\n\nexport enum AggregationErrorCode {\n CHART_NOT_FOUND = 'chart_not_found',\n AGGREGATION_TIMEOUT = 'aggregation_timeout',\n AGGREGATION_MAX_BUCKETS_EXCEEDED = 'aggregation_max_buckets_exceeded',\n AGGREGATION_FIELD_ACCESS_DENIED = 'aggregation_field_access_denied',\n AGGREGATION_COMPUTED_EXPRESSION_ERROR = 'aggregation_computed_expression_error',\n AGGREGATION_JOIN_ACCESS_DENIED = 'aggregation_join_access_denied',\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-definition-builder.shared.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"chart-definition-builder.shared.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-definition-builder.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;oEAiBoE;AAEpE,OAAO,EACL,SAAS,EAET,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EAEb,QAAQ,EACR,kBAAkB,EACnB,MAAM,kCAAkC,CAAC;AAc1C,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,sBAAsB;IAwB/B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAxBpC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAmD;IACpE,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,KAAK,CAAC,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAC,CAAyB;gBAGtB,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM;IAK5C,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAOhC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAiB1D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAsBhG,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAOrC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAIlD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAIlD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAIlD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAIlD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAcpF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAgBpF,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAQ9D,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAO/C,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUlI,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO9C;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAY3F;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAa/G;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,IAAI;IAIvG;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,IAAI;IAIxG;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,IAAI;IAOzH;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,IAAI;IAIzG;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,IAAI;IAMrG,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAavF;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO7E;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAoB/G,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK1B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKjC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAK7B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,aAAiC,GAAG,IAAI;IAQxE,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAKzC,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAK9C;;;;;OAKG;IACH,KAAK,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;IAS7C;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAOxD,KAAK,IAAI,eAAe;IAyExB,OAAO,CAAC,mBAAmB;CAO5B;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CAE1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-definition-builder.shared.js","sourceRoot":"","sources":["../../../src/charts/chart-definition-builder.shared.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartDefinitionBuilder — Fluent API for building ChartDefinitions\n *\n * Pure function that constructs a ChartDefinition object and validates\n * it against the schema. No backend/frontend deps.\n *\n * View wiring (scope, addressability, launcher) is composed separately\n * in frontend presets/config via InsertedChartDeclaration in saas-frontend-lib.\n * Charts are resource-owned inserted surfaces only; there is no app-level\n * chart view type.\n *\n * Usage:\n * chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build()\n * ────────────────────────────────────────────────────────────── */\n\nimport {\n ChartType,\n ChartDefinitionSchema,\n type ChartDefinition,\n type ChartSeriesDefinition,\n type ChartAccessControl,\n type ChartInputDefinition,\n type ChartSplitConfig,\n type ChartSeriesStyle,\n type ChartAppearance,\n type ChartTypeConfig,\n} from '../config/frontend/chart-definition.shared.schemas';\nimport {\n AggregateFunction,\n TimeGranularity,\n ComparisonOperator,\n ContextFilterSource,\n SortDirection,\n DimensionSortBy,\n JoinType,\n WindowFunctionType,\n} from './aggregation.shared.definitions';\nimport type {\n Measure,\n Dimension,\n ContextFilter,\n ResourceJoin,\n HavingClause,\n ComputedMeasure,\n WindowFunction,\n AggregationQuery,\n} from './aggregation-query.shared.schemas';\n\n// ── Builder Options Types ────────────────────────────────────\n\nexport interface MeasureOptions {\n label?: string;\n filter?: Record<string, unknown>;\n}\n\nexport interface DimensionOptions {\n label?: string;\n sort?: {\n direction?: SortDirection;\n by?: 'self' | 'measure';\n measureRef?: string;\n };\n topN?: number;\n groupOther?: boolean;\n}\n\nexport interface TimeDimensionOptions extends DimensionOptions {\n fillMissingBuckets?: boolean;\n dateRange?: { from?: string; to?: string };\n}\n\nexport interface SeriesOptions {\n chartType?: ChartType;\n yAxisIndex?: number;\n style?: Partial<ChartSeriesStyle>;\n hidden?: boolean;\n}\n\nexport interface JoinOptions {\n selectFields?: string[];\n joinType?: JoinType;\n}\n\nexport interface WindowFunctionOptions {\n label?: string;\n windowSize?: number;\n partitionBy?: string;\n orderBy?: string;\n}\n\n// ── Builder Class ────────────────────────────────────────────\n\nexport class ChartDefinitionBuilder {\n private _chartType: ChartType = ChartType.BAR;\n private _dimensions: Dimension[] = [];\n private _measures: Measure[] = [];\n private _series: ChartSeriesDefinition[] = [];\n private _contextFilters: ContextFilter[] = [];\n private _joins: ResourceJoin[] = [];\n private _filters?: Record<string, unknown>;\n private _accessControl?: ChartAccessControl;\n private _refreshInterval?: number;\n private _timezone?: string;\n private _limit?: number;\n private _orderBy?: Array<{ ref: string; direction: SortDirection }>;\n private _splitByDimension?: string;\n private _splitConfig?: ChartSplitConfig;\n private _having: HavingClause[] = [];\n private _computedMeasures: ComputedMeasure[] = [];\n private _windowFunctions: WindowFunction[] = [];\n private _appearance?: ChartAppearance;\n private _chartTypeConfig?: ChartTypeConfig;\n private _i18n?: ChartDefinition['i18n'];\n private _inputs?: ChartInputDefinition[];\n\n constructor(\n private readonly _ref: string,\n private readonly _mainResourceType: string,\n ) {}\n\n // ── Chart type ──\n\n type(chartType: ChartType): this {\n this._chartType = chartType;\n return this;\n }\n\n // ── Dimensions ──\n\n dimension(field: string, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n timeDimension(field: string, granularity: TimeGranularity, options?: TimeDimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n timeGranularity: granularity,\n fillMissingBuckets: options?.fillMissingBuckets ?? true, // default: true for time dimensions\n dateRange: options?.dateRange,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Measures (shorthands) ──\n\n count(options?: MeasureOptions): this {\n return this.measure('*', AggregateFunction.COUNT, {\n ...options,\n label: options?.label ?? 'Count',\n });\n }\n\n sum(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.SUM, options);\n }\n\n avg(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.AVG, options);\n }\n\n min(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MIN, options);\n }\n\n max(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MAX, options);\n }\n\n measure(field: string, aggregate: AggregateFunction, options?: MeasureOptions): this {\n const ref = field === '*' ? `*_${aggregate}` : `${field}_${aggregate}`;\n this._measures.push({\n ref,\n field,\n aggregate,\n label: options?.label,\n filter: options?.filter,\n });\n return this;\n }\n\n // ── Series (explicit) ──\n\n series(ref: string, name: string, measureRef: string, options?: SeriesOptions): this {\n const series: ChartSeriesDefinition = {\n ref,\n name,\n measureRef,\n chartType: options?.chartType,\n yAxisIndex: options?.yAxisIndex,\n hidden: options?.hidden,\n style: options?.style ? { ...options.style } : undefined,\n };\n this._series.push(series);\n return this;\n }\n\n // ── Split by dimension ──\n\n splitBy(dimensionRef: string, config?: ChartSplitConfig): this {\n this._splitByDimension = dimensionRef;\n this._splitConfig = config;\n return this;\n }\n\n // ── Access control ──\n\n accessControl(config: ChartAccessControl): this {\n this._accessControl = config;\n return this;\n }\n\n // ── Filters ──\n\n contextFilter(field: string, source: ContextFilterSource, options?: { operator?: ComparisonOperator; sourceField?: string }): this {\n this._contextFilters.push({\n field,\n operator: options?.operator ?? ComparisonOperator.EQ,\n source,\n sourceField: options?.sourceField,\n });\n return this;\n }\n\n filter(filters: Record<string, unknown>): this {\n this._filters = filters;\n return this;\n }\n\n // ── Computed measures (post-aggregation) ──\n\n /**\n * Add a computed measure that evaluates an expression using other measure refs as variables.\n *\n * @param ref - Unique ref for this computed measure\n * @param expression - Safe expression using measure refs (e.g., \"completed / total * 100\")\n * @param dependsOn - Measure refs referenced in the expression\n * @param label - Optional display label\n *\n * @example\n * ```ts\n * .count({ label: 'Total' }) // ref: \"*_count\"\n * .measure('status', AggregateFunction.COUNT, { // ref: \"status_count\"\n * label: 'Completed',\n * filter: { status: 'completed' }\n * })\n * .computedMeasure('completion_rate', 'round(status_count / *_count * 100, 1)', ['status_count', '*_count'])\n * ```\n */\n computedMeasure(ref: string, expression: string, dependsOn: string[], label?: string): this {\n this._computedMeasures.push({\n ref,\n expression,\n dependsOn,\n label,\n });\n return this;\n }\n\n // ── Window functions (post-aggregation transforms) ──\n\n /**\n * Generic window function.\n */\n windowFunction(ref: string, sourceRef: string, type: WindowFunctionType, options?: WindowFunctionOptions): this {\n this._windowFunctions.push({\n ref,\n sourceRef,\n type,\n label: options?.label,\n windowSize: options?.windowSize,\n partitionBy: options?.partitionBy,\n orderBy: options?.orderBy,\n });\n return this;\n }\n\n /**\n * Shorthand: running total (cumulative sum).\n */\n runningTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.RUNNING_TOTAL, options);\n }\n\n /**\n * Shorthand: percent change from previous row.\n */\n percentChange(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_CHANGE, options);\n }\n\n /**\n * Shorthand: moving average over a window of N rows.\n *\n * @param windowSize - Number of rows in the moving window (default: 3)\n */\n movingAvg(ref: string, sourceRef: string, windowSize?: number, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.MOVING_AVG, {\n ...options,\n windowSize: windowSize ?? 3,\n });\n }\n\n /**\n * Shorthand: percent of total (value / sum * 100).\n */\n percentOfTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_OF_TOTAL, options);\n }\n\n /**\n * Shorthand: difference from previous row.\n */\n difference(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.DIFFERENCE, options);\n }\n\n // ── Cross-resource joins ──\n\n join(resourceType: string, fkField: string, alias: string, options?: JoinOptions): this {\n this._joins.push({\n resourceType,\n foreignKeyField: fkField,\n alias,\n selectFields: options?.selectFields,\n joinType: options?.joinType ?? JoinType.LEFT,\n });\n return this;\n }\n\n // ── HAVING (filter on aggregated values) ──\n\n /**\n * Add a HAVING clause to filter on aggregated measure values.\n *\n * @param measureRef - Ref of the measure to filter on\n * @param operator - Comparison operator (GT, GTE, LT, LTE, EQ, NEQ)\n * @param value - Numeric value to compare against\n *\n * @example\n * ```ts\n * .count()\n * .having('*_COUNT', ComparisonOperator.GT, 10) // Only groups with count > 10\n * ```\n */\n having(measureRef: string, operator: ComparisonOperator, value: number): this {\n this._having.push({ measureRef, operator, value });\n return this;\n }\n\n // ── Binned dimension shorthand ──\n\n /**\n * Add a numeric dimension with binning (step-based or boundary-based).\n *\n * @example\n * ```ts\n * // Step-based: 0-10, 10-20, 20-30, ...\n * .binDimension('age', { step: 10 })\n *\n * // Boundary-based: <0, 0-50, 50-100, 100-500, ≥500\n * .binDimension('price', { boundaries: [0, 50, 100, 500] })\n * ```\n */\n binDimension(field: string, bin: { step: number } | { boundaries: number[] }, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n bin,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Result shaping ──\n\n timezone(tz: string): this {\n this._timezone = tz;\n return this;\n }\n\n refreshInterval(ms: number): this {\n this._refreshInterval = ms;\n return this;\n }\n\n limitResults(n: number): this {\n this._limit = n;\n return this;\n }\n\n orderBy(ref: string, direction: SortDirection = SortDirection.ASC): this {\n if (!this._orderBy) this._orderBy = [];\n this._orderBy.push({ ref, direction });\n return this;\n }\n\n // ── Appearance & type config ──\n\n appearance(config: ChartAppearance): this {\n this._appearance = config;\n return this;\n }\n\n chartTypeConfig(config: ChartTypeConfig): this {\n this._chartTypeConfig = config;\n return this;\n }\n\n /**\n * Declare an explicit runtime input for this chart.\n *\n * Inputs replace raw caller-provided filter fragments with an authored\n * contract that can only bind into approved query seams.\n */\n input(definition: ChartInputDefinition): this {\n if (!this._inputs) {\n this._inputs = [];\n }\n\n this._inputs.push(definition);\n return this;\n }\n\n /**\n * Set i18n labelling keys for chart-level text (title, axes, tooltips, split values).\n * When resolved at render time, these keys replace hardcoded text with translated strings.\n */\n i18n(config: NonNullable<ChartDefinition['i18n']>): this {\n this._i18n = config;\n return this;\n }\n\n // ── Build ──\n\n build(): ChartDefinition {\n // Validate computed measure dependsOn refs against actual measure refs\n if (this._computedMeasures.length > 0) {\n const measureRefs = new Set(this._measures.map(m => m.ref));\n // Also include other computed measure refs (for chained computations)\n const computedRefs = new Set(this._computedMeasures.map(cm => cm.ref));\n\n for (const cm of this._computedMeasures) {\n for (const dep of cm.dependsOn) {\n // Guard: a computed measure cannot reference itself\n if (dep === cm.ref) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' references itself in dependsOn. ` +\n `Self-referencing computed measures are not supported.`,\n );\n }\n if (!measureRefs.has(dep) && !computedRefs.has(dep)) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' depends on '${dep}', ` +\n `but no measure or computed measure with that ref exists. ` +\n `Available measure refs: [${[...measureRefs].join(', ')}]`,\n );\n }\n }\n }\n }\n\n // Auto-generate series from measures if none were explicitly defined\n const series = this._series.length > 0\n ? this._series\n : this._autoGenerateSeries();\n\n // Apply splitByDimension to auto-generated series\n const finalSeries = series.map(s => ({\n ...s,\n splitByDimension: s.splitByDimension ?? this._splitByDimension,\n splitConfig: s.splitConfig ?? this._splitConfig,\n }));\n\n const dataQuery: AggregationQuery = {\n mainResourceType: this._mainResourceType,\n dimensions: this._dimensions,\n measures: this._measures,\n filters: this._filters,\n contextFilters: this._contextFilters.length > 0 ? this._contextFilters : undefined,\n computedMeasures: this._computedMeasures.length > 0 ? this._computedMeasures : undefined,\n windowFunctions: this._windowFunctions.length > 0 ? this._windowFunctions : undefined,\n joins: this._joins.length > 0 ? this._joins : undefined,\n having: this._having.length > 0 ? this._having : undefined,\n timezone: this._timezone,\n limit: this._limit,\n orderBy: this._orderBy,\n };\n\n const definition: Record<string, unknown> = {\n ref: this._ref,\n chartType: this._chartType,\n dataQuery,\n series: finalSeries,\n inputs: this._inputs,\n accessControl: this._accessControl,\n refreshInterval: this._refreshInterval,\n appearance: this._appearance,\n chartTypeConfig: this._chartTypeConfig,\n i18n: this._i18n,\n };\n\n const parsed = ChartDefinitionSchema.parse(definition);\n return parsed as ChartDefinition;\n }\n\n // ── Private helpers ──\n\n private _autoGenerateSeries(): ChartSeriesDefinition[] {\n return this._measures.map(measure => ({\n ref: `${measure.ref}_series`,\n name: measure.label || measure.ref,\n measureRef: measure.ref,\n }));\n }\n}\n\n// ── Factory function ─────────────────────────────────────────\n\n/**\n * Create a ChartDefinitionBuilder.\n *\n * @param ref - Unique chart reference used for registry lookup and the backend data endpoint `/charts/:chartRef/data`\n * @param mainResourceType - Primary resource type for the data query\n *\n * @example\n * ```ts\n * const chart = chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build();\n * ```\n */\nexport function chartBuilder(ref: string, mainResourceType: string): ChartDefinitionBuilder {\n return new ChartDefinitionBuilder(ref, mainResourceType);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"chart-definition-builder.shared.js","sourceRoot":"","sources":["../../../../src/charts/chart-definition-builder.shared.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartDefinitionBuilder — Fluent API for building ChartDefinitions\n *\n * Pure function that constructs a ChartDefinition object and validates\n * it against the schema. No backend/frontend deps.\n *\n * View wiring (scope, addressability, launcher) is composed separately\n * in frontend presets/config via InsertedChartDeclaration in saas-frontend-lib.\n * Charts are resource-owned inserted surfaces only; there is no app-level\n * chart view type.\n *\n * Usage:\n * chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build()\n * ────────────────────────────────────────────────────────────── */\n\nimport {\n ChartType,\n ChartDefinitionSchema,\n type ChartDefinition,\n type ChartSeriesDefinition,\n type ChartAccessControl,\n type ChartInputDefinition,\n type ChartSplitConfig,\n type ChartSeriesStyle,\n type ChartAppearance,\n type ChartTypeConfig,\n} from '../config/frontend/chart-definition.shared.schemas';\nimport {\n AggregateFunction,\n TimeGranularity,\n ComparisonOperator,\n ContextFilterSource,\n SortDirection,\n DimensionSortBy,\n JoinType,\n WindowFunctionType,\n} from './aggregation.shared.definitions';\nimport type {\n Measure,\n Dimension,\n ContextFilter,\n ResourceJoin,\n HavingClause,\n ComputedMeasure,\n WindowFunction,\n AggregationQuery,\n} from './aggregation-query.shared.schemas';\n\n// ── Builder Options Types ────────────────────────────────────\n\nexport interface MeasureOptions {\n label?: string;\n filter?: Record<string, unknown>;\n}\n\nexport interface DimensionOptions {\n label?: string;\n sort?: {\n direction?: SortDirection;\n by?: 'self' | 'measure';\n measureRef?: string;\n };\n topN?: number;\n groupOther?: boolean;\n}\n\nexport interface TimeDimensionOptions extends DimensionOptions {\n fillMissingBuckets?: boolean;\n dateRange?: { from?: string; to?: string };\n}\n\nexport interface SeriesOptions {\n chartType?: ChartType;\n yAxisIndex?: number;\n style?: Partial<ChartSeriesStyle>;\n hidden?: boolean;\n}\n\nexport interface JoinOptions {\n selectFields?: string[];\n joinType?: JoinType;\n}\n\nexport interface WindowFunctionOptions {\n label?: string;\n windowSize?: number;\n partitionBy?: string;\n orderBy?: string;\n}\n\n// ── Builder Class ────────────────────────────────────────────\n\nexport class ChartDefinitionBuilder {\n private _chartType: ChartType = ChartType.BAR;\n private _dimensions: Dimension[] = [];\n private _measures: Measure[] = [];\n private _series: ChartSeriesDefinition[] = [];\n private _contextFilters: ContextFilter[] = [];\n private _joins: ResourceJoin[] = [];\n private _filters?: Record<string, unknown>;\n private _accessControl?: ChartAccessControl;\n private _refreshInterval?: number;\n private _timezone?: string;\n private _limit?: number;\n private _orderBy?: Array<{ ref: string; direction: SortDirection }>;\n private _splitByDimension?: string;\n private _splitConfig?: ChartSplitConfig;\n private _having: HavingClause[] = [];\n private _computedMeasures: ComputedMeasure[] = [];\n private _windowFunctions: WindowFunction[] = [];\n private _appearance?: ChartAppearance;\n private _chartTypeConfig?: ChartTypeConfig;\n private _i18n?: ChartDefinition['i18n'];\n private _inputs?: ChartInputDefinition[];\n\n constructor(\n private readonly _ref: string,\n private readonly _mainResourceType: string,\n ) {}\n\n // ── Chart type ──\n\n type(chartType: ChartType): this {\n this._chartType = chartType;\n return this;\n }\n\n // ── Dimensions ──\n\n dimension(field: string, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n timeDimension(field: string, granularity: TimeGranularity, options?: TimeDimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n timeGranularity: granularity,\n fillMissingBuckets: options?.fillMissingBuckets ?? true, // default: true for time dimensions\n dateRange: options?.dateRange,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Measures (shorthands) ──\n\n count(options?: MeasureOptions): this {\n return this.measure('*', AggregateFunction.COUNT, {\n ...options,\n label: options?.label ?? 'Count',\n });\n }\n\n sum(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.SUM, options);\n }\n\n avg(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.AVG, options);\n }\n\n min(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MIN, options);\n }\n\n max(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MAX, options);\n }\n\n measure(field: string, aggregate: AggregateFunction, options?: MeasureOptions): this {\n const ref = field === '*' ? `*_${aggregate}` : `${field}_${aggregate}`;\n this._measures.push({\n ref,\n field,\n aggregate,\n label: options?.label,\n filter: options?.filter,\n });\n return this;\n }\n\n // ── Series (explicit) ──\n\n series(ref: string, name: string, measureRef: string, options?: SeriesOptions): this {\n const series: ChartSeriesDefinition = {\n ref,\n name,\n measureRef,\n chartType: options?.chartType,\n yAxisIndex: options?.yAxisIndex,\n hidden: options?.hidden,\n style: options?.style ? { ...options.style } : undefined,\n };\n this._series.push(series);\n return this;\n }\n\n // ── Split by dimension ──\n\n splitBy(dimensionRef: string, config?: ChartSplitConfig): this {\n this._splitByDimension = dimensionRef;\n this._splitConfig = config;\n return this;\n }\n\n // ── Access control ──\n\n accessControl(config: ChartAccessControl): this {\n this._accessControl = config;\n return this;\n }\n\n // ── Filters ──\n\n contextFilter(field: string, source: ContextFilterSource, options?: { operator?: ComparisonOperator; sourceField?: string }): this {\n this._contextFilters.push({\n field,\n operator: options?.operator ?? ComparisonOperator.EQ,\n source,\n sourceField: options?.sourceField,\n });\n return this;\n }\n\n filter(filters: Record<string, unknown>): this {\n this._filters = filters;\n return this;\n }\n\n // ── Computed measures (post-aggregation) ──\n\n /**\n * Add a computed measure that evaluates an expression using other measure refs as variables.\n *\n * @param ref - Unique ref for this computed measure\n * @param expression - Safe expression using measure refs (e.g., \"completed / total * 100\")\n * @param dependsOn - Measure refs referenced in the expression\n * @param label - Optional display label\n *\n * @example\n * ```ts\n * .count({ label: 'Total' }) // ref: \"*_count\"\n * .measure('status', AggregateFunction.COUNT, { // ref: \"status_count\"\n * label: 'Completed',\n * filter: { status: 'completed' }\n * })\n * .computedMeasure('completion_rate', 'round(status_count / *_count * 100, 1)', ['status_count', '*_count'])\n * ```\n */\n computedMeasure(ref: string, expression: string, dependsOn: string[], label?: string): this {\n this._computedMeasures.push({\n ref,\n expression,\n dependsOn,\n label,\n });\n return this;\n }\n\n // ── Window functions (post-aggregation transforms) ──\n\n /**\n * Generic window function.\n */\n windowFunction(ref: string, sourceRef: string, type: WindowFunctionType, options?: WindowFunctionOptions): this {\n this._windowFunctions.push({\n ref,\n sourceRef,\n type,\n label: options?.label,\n windowSize: options?.windowSize,\n partitionBy: options?.partitionBy,\n orderBy: options?.orderBy,\n });\n return this;\n }\n\n /**\n * Shorthand: running total (cumulative sum).\n */\n runningTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.RUNNING_TOTAL, options);\n }\n\n /**\n * Shorthand: percent change from previous row.\n */\n percentChange(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_CHANGE, options);\n }\n\n /**\n * Shorthand: moving average over a window of N rows.\n *\n * @param windowSize - Number of rows in the moving window (default: 3)\n */\n movingAvg(ref: string, sourceRef: string, windowSize?: number, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.MOVING_AVG, {\n ...options,\n windowSize: windowSize ?? 3,\n });\n }\n\n /**\n * Shorthand: percent of total (value / sum * 100).\n */\n percentOfTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_OF_TOTAL, options);\n }\n\n /**\n * Shorthand: difference from previous row.\n */\n difference(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.DIFFERENCE, options);\n }\n\n // ── Cross-resource joins ──\n\n join(resourceType: string, fkField: string, alias: string, options?: JoinOptions): this {\n this._joins.push({\n resourceType,\n foreignKeyField: fkField,\n alias,\n selectFields: options?.selectFields,\n joinType: options?.joinType ?? JoinType.LEFT,\n });\n return this;\n }\n\n // ── HAVING (filter on aggregated values) ──\n\n /**\n * Add a HAVING clause to filter on aggregated measure values.\n *\n * @param measureRef - Ref of the measure to filter on\n * @param operator - Comparison operator (GT, GTE, LT, LTE, EQ, NEQ)\n * @param value - Numeric value to compare against\n *\n * @example\n * ```ts\n * .count()\n * .having('*_COUNT', ComparisonOperator.GT, 10) // Only groups with count > 10\n * ```\n */\n having(measureRef: string, operator: ComparisonOperator, value: number): this {\n this._having.push({ measureRef, operator, value });\n return this;\n }\n\n // ── Binned dimension shorthand ──\n\n /**\n * Add a numeric dimension with binning (step-based or boundary-based).\n *\n * @example\n * ```ts\n * // Step-based: 0-10, 10-20, 20-30, ...\n * .binDimension('age', { step: 10 })\n *\n * // Boundary-based: <0, 0-50, 50-100, 100-500, ≥500\n * .binDimension('price', { boundaries: [0, 50, 100, 500] })\n * ```\n */\n binDimension(field: string, bin: { step: number } | { boundaries: number[] }, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n bin,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Result shaping ──\n\n timezone(tz: string): this {\n this._timezone = tz;\n return this;\n }\n\n refreshInterval(ms: number): this {\n this._refreshInterval = ms;\n return this;\n }\n\n limitResults(n: number): this {\n this._limit = n;\n return this;\n }\n\n orderBy(ref: string, direction: SortDirection = SortDirection.ASC): this {\n if (!this._orderBy) this._orderBy = [];\n this._orderBy.push({ ref, direction });\n return this;\n }\n\n // ── Appearance & type config ──\n\n appearance(config: ChartAppearance): this {\n this._appearance = config;\n return this;\n }\n\n chartTypeConfig(config: ChartTypeConfig): this {\n this._chartTypeConfig = config;\n return this;\n }\n\n /**\n * Declare an explicit runtime input for this chart.\n *\n * Inputs replace raw caller-provided filter fragments with an authored\n * contract that can only bind into approved query seams.\n */\n input(definition: ChartInputDefinition): this {\n if (!this._inputs) {\n this._inputs = [];\n }\n\n this._inputs.push(definition);\n return this;\n }\n\n /**\n * Set i18n labelling keys for chart-level text (title, axes, tooltips, split values).\n * When resolved at render time, these keys replace hardcoded text with translated strings.\n */\n i18n(config: NonNullable<ChartDefinition['i18n']>): this {\n this._i18n = config;\n return this;\n }\n\n // ── Build ──\n\n build(): ChartDefinition {\n // Validate computed measure dependsOn refs against actual measure refs\n if (this._computedMeasures.length > 0) {\n const measureRefs = new Set(this._measures.map(m => m.ref));\n // Also include other computed measure refs (for chained computations)\n const computedRefs = new Set(this._computedMeasures.map(cm => cm.ref));\n\n for (const cm of this._computedMeasures) {\n for (const dep of cm.dependsOn) {\n // Guard: a computed measure cannot reference itself\n if (dep === cm.ref) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' references itself in dependsOn. ` +\n `Self-referencing computed measures are not supported.`,\n );\n }\n if (!measureRefs.has(dep) && !computedRefs.has(dep)) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' depends on '${dep}', ` +\n `but no measure or computed measure with that ref exists. ` +\n `Available measure refs: [${[...measureRefs].join(', ')}]`,\n );\n }\n }\n }\n }\n\n // Auto-generate series from measures if none were explicitly defined\n const series = this._series.length > 0\n ? this._series\n : this._autoGenerateSeries();\n\n // Apply splitByDimension to auto-generated series\n const finalSeries = series.map(s => ({\n ...s,\n splitByDimension: s.splitByDimension ?? this._splitByDimension,\n splitConfig: s.splitConfig ?? this._splitConfig,\n }));\n\n const dataQuery: AggregationQuery = {\n mainResourceType: this._mainResourceType,\n dimensions: this._dimensions,\n measures: this._measures,\n filters: this._filters,\n contextFilters: this._contextFilters.length > 0 ? this._contextFilters : undefined,\n computedMeasures: this._computedMeasures.length > 0 ? this._computedMeasures : undefined,\n windowFunctions: this._windowFunctions.length > 0 ? this._windowFunctions : undefined,\n joins: this._joins.length > 0 ? this._joins : undefined,\n having: this._having.length > 0 ? this._having : undefined,\n timezone: this._timezone,\n limit: this._limit,\n orderBy: this._orderBy,\n };\n\n const definition: Record<string, unknown> = {\n ref: this._ref,\n chartType: this._chartType,\n dataQuery,\n series: finalSeries,\n inputs: this._inputs,\n accessControl: this._accessControl,\n refreshInterval: this._refreshInterval,\n appearance: this._appearance,\n chartTypeConfig: this._chartTypeConfig,\n i18n: this._i18n,\n };\n\n const parsed = ChartDefinitionSchema.parse(definition);\n return parsed as ChartDefinition;\n }\n\n // ── Private helpers ──\n\n private _autoGenerateSeries(): ChartSeriesDefinition[] {\n return this._measures.map(measure => ({\n ref: `${measure.ref}_series`,\n name: measure.label || measure.ref,\n measureRef: measure.ref,\n }));\n }\n}\n\n// ── Factory function ─────────────────────────────────────────\n\n/**\n * Create a ChartDefinitionBuilder.\n *\n * @param ref - Unique chart reference used for registry lookup and the backend data endpoint `/charts/:chartRef/data`\n * @param mainResourceType - Primary resource type for the data query\n *\n * @example\n * ```ts\n * const chart = chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build();\n * ```\n */\nexport function chartBuilder(ref: string, mainResourceType: string): ChartDefinitionBuilder {\n return new ChartDefinitionBuilder(ref, mainResourceType);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-placement.shared.definitions.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"artifact-placement.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/companion/artifact-placement.shared.definitions.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oCAAoC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,sBAAsB,CAAC;IACtC,WAAW,EAAE,+BAA+B,CAAC;CAC9C;AAED,MAAM,WAAW,oCACf,SAAQ,oCAAoC;IAC5C,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,yCACf,SAAQ,oCAAoC;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-placement.shared.definitions.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"artifact-placement.shared.definitions.js","sourceRoot":"","sources":["../../../../src/companion/artifact-placement.shared.definitions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,yDAA+B,CAAA;IAC/B,2CAAiB,CAAA;IACjB,yDAA+B,CAAA;AACjC,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC","sourcesContent":["export enum CompanionArtifactClass {\n DOMAIN_MODULE = 'domain-module',\n ENGINE = 'engine',\n FRONTEND_ONLY = 'frontend-only',\n}\n\nexport interface CompanionArtifactPlacementRoots {\n shared?: string;\n backend?: string;\n frontend?: string;\n}\n\n/**\n * Tooling-facing ownership descriptor for generated artifacts such as\n * translations or email label files.\n *\n * `ownerId` is intentionally broader than `moduleId`: some generated artifacts\n * belong to engine/frontend-only buckets that are not business\n * modules, but still need a stable owner identity and placement contract.\n */\nexport interface CompanionArtifactPlacementDescriptor {\n ownerId: string;\n artifactClass: CompanionArtifactClass;\n rootsByRole: CompanionArtifactPlacementRoots;\n}\n\nexport interface CompanionResourceOwnershipDescriptor\n extends CompanionArtifactPlacementDescriptor {\n resourceTypes: string[];\n}\n\nexport interface CompanionEmailTemplateOwnershipDescriptor\n extends CompanionArtifactPlacementDescriptor {\n templateRefs: string[];\n}\n"]}
|
|
@@ -132,6 +132,19 @@ export declare const ProviderCompanionContributionSchema: z.ZodObject<{
|
|
|
132
132
|
required: z.ZodBoolean;
|
|
133
133
|
description: z.ZodString;
|
|
134
134
|
}, z.core.$strict>>;
|
|
135
|
+
/**
|
|
136
|
+
* Per protocol, the environment variable its API key is read from — the DEFAULT `authConfig.secretRef`
|
|
137
|
+
* a running host derives from the binding's runtime contract, so the value `getProviderApiKey` reads
|
|
138
|
+
* before it refuses a call for a missing key (#2229). Keyed by the same protocol strings as `protocols`;
|
|
139
|
+
* a protocol absent from the map authenticates with nothing a host must hold.
|
|
140
|
+
*
|
|
141
|
+
* Carried so tooling can predict that refusal from discovery without loading a provider module — the
|
|
142
|
+
* creation preflight names the ONE key a step needs, where `secretsContractShape` lists every key the
|
|
143
|
+
* provider may use (Stripe's webhook secret is required by its shape and read by no boot refusal).
|
|
144
|
+
* Values-free, and optional on the wire because a contribution emitted before #2229 carries none; a
|
|
145
|
+
* reader then falls back to the required entries of `secretsContractShape`.
|
|
146
|
+
*/
|
|
147
|
+
protocolSecretRefs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
135
148
|
/**
|
|
136
149
|
* Optional frontend-safe provider payload for `frontendService` runtime
|
|
137
150
|
* targets. Tooling materializes this into generated runtime artifacts so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-discovery.shared.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"provider-discovery.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/companion/provider-discovery.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAgD,YAAY,EAAE,MAAM,wDAAwD,CAAC;AAGpI;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0CAA0C;;;kBAGrD,CAAC;AACH,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,CAAC;AAE9G,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;4BAgB/C,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;kBAKjD,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG;;;;;;;;;GASG;AACH,eAAO,MAAM,iCAAiC;;;;;mBA+B5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC;;IAE9C;;;;;;OAMG;;;;;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;IAOH;;;;;;;;;;;OAWG;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;IAEH;;;;;;;;OAQG;;;;;;IAMH;;;;;;;OAOG;;IAEH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;;;;;iBAEH,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,sCAAsC;IACjD,wGAAwG;;IAExG,0EAA0E;;IAE1E,yFAAyF;;;;;;;;;;IAGzF,iGAAiG;;IAEjG,mFAAmF;;IAEnF,gGAAgG;;iBAUhG,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,CAAC,EAAE,6BAA6B,EAAE,CAAC;IACxD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,gCAAgC,EAAE,CAAC;CAC5D"}
|
|
@@ -126,6 +126,19 @@ export const ProviderCompanionContributionSchema = z.looseObject({
|
|
|
126
126
|
providerCapabilities: z.array(z.string().min(1)).default([]),
|
|
127
127
|
protocols: z.array(z.string().min(1)).default([]),
|
|
128
128
|
secretsContractShape: ProviderSecretContractShapeSchema,
|
|
129
|
+
/**
|
|
130
|
+
* Per protocol, the environment variable its API key is read from — the DEFAULT `authConfig.secretRef`
|
|
131
|
+
* a running host derives from the binding's runtime contract, so the value `getProviderApiKey` reads
|
|
132
|
+
* before it refuses a call for a missing key (#2229). Keyed by the same protocol strings as `protocols`;
|
|
133
|
+
* a protocol absent from the map authenticates with nothing a host must hold.
|
|
134
|
+
*
|
|
135
|
+
* Carried so tooling can predict that refusal from discovery without loading a provider module — the
|
|
136
|
+
* creation preflight names the ONE key a step needs, where `secretsContractShape` lists every key the
|
|
137
|
+
* provider may use (Stripe's webhook secret is required by its shape and read by no boot refusal).
|
|
138
|
+
* Values-free, and optional on the wire because a contribution emitted before #2229 carries none; a
|
|
139
|
+
* reader then falls back to the required entries of `secretsContractShape`.
|
|
140
|
+
*/
|
|
141
|
+
protocolSecretRefs: z.record(z.string().min(1), z.string().min(1)).optional(),
|
|
129
142
|
/**
|
|
130
143
|
* Optional frontend-safe provider payload for `frontendService` runtime
|
|
131
144
|
* targets. Tooling materializes this into generated runtime artifacts so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-discovery.shared.schemas.js","sourceRoot":"","sources":["../../../src/companion/provider-discovery.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { AppFrontendType } from '../config/app-frontend-type.shared.schemas';\nimport { EngineCapability } from '../external-providers/engine-capabilities.shared.schemas';\nimport { FrontendProviderEntrySchema } from '../external-providers/frontend-bootstrap.shared.schemas';\nimport { ProviderIdentitySchema, ProviderOriginSchema, ProviderTier } from '../external-providers/provider-metadata.shared.schemas';\nimport { ProviderComplianceProfileSchema } from '../external-providers/provider-compliance-profile.shared.schemas';\n\n/**\n * Companion-safe provider implementation declaration.\n *\n * App/runtime-owner packages expose these entries through their `./companion`\n * default export so tooling can discover which provider refs are actually\n * reachable from which runtime owners before materializing generated artifacts.\n */\n\n/**\n * Discriminator branch for `frontendService` runtime targets.\n *\n * Targets a frontend service by its `AppFrontendType` (the closed kind set\n * — SAAS_APP, STATIC_WEBSITE, TECH_DOC) rather than by an app-defined\n * `serviceKey` string. Engine-shipped packages (`external-connectors-public`,\n * etc.) have no way to know app-defined service keys, so the discovery\n * contract is keyed on the type. Apps with multiple frontend services of\n * the same type currently broadcast the contribution to all of them; if\n * per-service-key targeting becomes a need, add a second variant.\n */\nexport const ProviderFrontendServiceRuntimeTargetSchema = z.strictObject({\n kind: z.literal('frontendService'),\n serviceType: z.enum(AppFrontendType),\n});\nexport type ProviderFrontendServiceRuntimeTarget = z.infer<typeof ProviderFrontendServiceRuntimeTargetSchema>;\n\nexport const ProviderCompanionRuntimeTargetSchema = z.discriminatedUnion('kind', [\n z.strictObject({\n kind: z.literal('backend'),\n }),\n z.strictObject({\n kind: z.literal('companion'),\n }),\n ProviderFrontendServiceRuntimeTargetSchema,\n z.strictObject({\n kind: z.literal('minion'),\n minionKey: z.string().min(1),\n }),\n z.strictObject({\n kind: z.literal('worker'),\n workerKey: z.string().min(1),\n }),\n]);\nexport type ProviderCompanionRuntimeTarget = z.infer<typeof ProviderCompanionRuntimeTargetSchema>;\n\n/**\n * Values-free projection of one backend provider secret requirement.\n *\n * The stable provider-owned `slug` is preserved separately from the concrete\n * environment-variable name so a rename on either axis changes the lockfile\n * integrity digest. Secret values never cross this companion-safe boundary.\n */\nexport const ProviderSecretContractShapeEntrySchema = z.strictObject({\n slug: z.string().min(1),\n envVarName: z.string().min(1),\n required: z.boolean(),\n description: z.string().min(1),\n});\nexport type ProviderSecretContractShapeEntry = z.infer<typeof ProviderSecretContractShapeEntrySchema>;\n\n/**\n * Deterministic, values-free secret-contract shape used by provider discovery\n * and lockfile integrity checks.\n *\n * Every contribution must declare this field. `[]` means the provider is\n * authoritatively known to require no secrets; omission is rejected rather\n * than being silently interpreted as an empty contract. Entries must be\n * sorted by `slug`, and both slugs and environment-variable names are unique,\n * so independently contributed facets cannot produce order-dependent digests.\n */\nexport const ProviderSecretContractShapeSchema = z.array(ProviderSecretContractShapeEntrySchema).superRefine((entries, context) => {\n const seenSlugs = new Set<string>();\n const seenEnvVarNames = new Set<string>();\n\n for (const [index, entry] of entries.entries()) {\n if (seenSlugs.has(entry.slug)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: `Duplicate provider secret-contract slug \"${entry.slug}\".`,\n });\n }\n seenSlugs.add(entry.slug);\n\n if (seenEnvVarNames.has(entry.envVarName)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'envVarName'],\n message: `Duplicate provider secret-contract envVarName \"${entry.envVarName}\".`,\n });\n }\n seenEnvVarNames.add(entry.envVarName);\n\n if (index > 0 && entries[index - 1].slug.localeCompare(entry.slug) >= 0) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: 'Provider secret-contract entries must be sorted by slug.',\n });\n }\n }\n});\nexport type ProviderSecretContractShape = z.infer<typeof ProviderSecretContractShapeSchema>;\n\n/**\n * A contribution is a wire record produced by one package version and read by\n * another (the CLI, the companion, a generated artifact), so it is a LOOSE\n * object: an additive field from a newer producer rides through an older\n * consumer instead of hard-failing the parse (#328 — it used to be strict,\n * which made every additive field a five-surface change and every old/new\n * mix a boot failure). Required fields stay required; only UNKNOWN keys are\n * tolerated, and they are kept rather than stripped so a re-emitting\n * consumer does not silently drop what it did not understand.\n */\nexport const ProviderCompanionContributionSchema = z.looseObject({\n ref: z.string().min(1),\n /**\n * The provider's identity (package, tier, vendor, origin) as declared on\n * its module metadata, so tooling can display tiers and group vendors\n * without loading the runtime module. Optional on the wire for one\n * reason only: contributions emitted before #328 carry none, and a\n * discovery walk must still read them.\n */\n identity: ProviderIdentitySchema.optional(),\n /**\n * Stable package import path that makes the provider implementation reachable\n * from the contributing package at runtime. This validates owner-package\n * reachability without coupling discovery to source-file paths.\n */\n runtimeImportPath: z.string().min(1),\n runtimeTargets: z.array(ProviderCompanionRuntimeTargetSchema).min(1),\n engineCapabilities: z.array(z.enum(EngineCapability)).default([]),\n providerCapabilities: z.array(z.string().min(1)).default([]),\n protocols: z.array(z.string().min(1)).default([]),\n secretsContractShape: ProviderSecretContractShapeSchema,\n /**\n * Optional frontend-safe provider payload for `frontendService` runtime\n * targets. Tooling materializes this into generated runtime artifacts so the\n * backend bootstrap endpoint can serve app-owned public providers without\n * importing frontend packages at runtime.\n */\n frontendEntry: FrontendProviderEntrySchema.optional(),\n /**\n * Optional app module owner when the provider implementation belongs to one\n * concrete module instead of the whole package/runtime.\n */\n sourceModuleId: z.string().min(1).optional(),\n /**\n * The hosts the provider's OAuth2 TOKEN endpoint may resolve to (#1725) — derived by the producer with\n * `describeProviderOAuth2TokenEndpointHosts`, absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo config sync` can refuse a declared shared connection whose member names a different\n * authorization server than its base, without loading either module. Values-free: a login host is not a\n * secret. Optional on the wire because a contribution emitted before #1725 carries none; the registry then\n * makes the same comparison on the loaded modules at boot.\n */\n oauth2TokenEndpointHosts: z.strictObject({\n exact: z.array(z.string().min(1)),\n suffixes: z.array(z.string().min(1)),\n undeterminable: z.boolean(),\n }).optional(),\n /**\n * The secrets-contract SLUGS holding the provider's connected-account OAuth2 client registration — its client id\n * and client secret (#1725). Absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo secrets` can tell an operator which registration a declared shared connection actually needs:\n * the BASE's slots are then required, and a MEMBER's own slots are inert — reported, never required — because the\n * base's client connects and refreshes the one grant.\n */\n oauth2ClientSlotSlugs: z.array(z.string().min(1)).optional(),\n /**\n * What the provider's BACKEND module declares about who runs it and where it processes (#1708) — ESTABLISHED\n * facts, or UNDETERMINED. A frontend facet's profile rides `frontendEntry.complianceProfile` instead (#1743).\n *\n * Carried so the compliance readers (the evidence collector, the companion's drafting brief) learn every\n * declared provider's profile from discovery, WITHOUT loading a provider module — the same reason\n * `oauth2TokenEndpointHosts` is here. Values-free: a vendor's region list is not a secret. Optional on the wire\n * because a contribution emitted before #1708 carries none, which a reader reports as \"no profile\".\n */\n complianceProfile: ProviderComplianceProfileSchema.optional(),\n});\nexport type ProviderCompanionContribution = z.infer<typeof ProviderCompanionContributionSchema>;\n\n/**\n * A package's declaration that it ADDS OPERATIONS to a provider it does not own (#1672).\n *\n * ## Why this is its own record and not a `ProviderCompanionContribution`\n *\n * A contribution says \"this package OWNS provider X\": identity, secrets contract, protocols, the runtimes\n * it reaches. Discovery keeps one owner per ref and compares every contribution's secrets-contract shape\n * against the others. An augmentation owns none of that — the base keeps identity, tier, secrets contract,\n * OAuth2 block and connection — so recording it as a second contribution of the same ref would make the\n * shape comparison treat it as a second owner, and the import map would pick one of the two by sort order.\n * A separate record is what lets the base stay the base.\n *\n * ## What it carries, and why each field is STATIC\n *\n * `operationIds` and `requiredScopes` are stated here rather than read from the catalogue because a\n * catalogue is a LAZY loader that tooling must never call (`ProviderRestOperationCatalogueLoader`). So\n * `wildo config sync` can refuse an operation-id collision and record which scopes an augmentation may ask\n * for without evaluating any vendor code; the runtime then checks that what the loader delivers is exactly\n * what was declared here, and refuses the augmentation otherwise.\n *\n * INERT until an application opts it in under `providers.augmentations.<augments>` — installing a package\n * never adds an operation to a provider on its own.\n *\n * Loose for the reason `ProviderCompanionContributionSchema` is: a newer producer's additive field must ride\n * through an older consumer.\n */\nexport const ProviderAugmentationContributionSchema = z.looseObject({\n /** The ref of the provider this package adds operations to — owned by the engine or another package. */\n augments: z.string().min(1),\n /** The augmentation package's own npm name, as its manifest states it. */\n packageName: z.string().min(1),\n /** Always `CATALOGUE`: an augmentation binds no engine slot and adds only operations. */\n tier: z.literal(ProviderTier.CATALOGUE),\n origin: ProviderOriginSchema,\n /** The specifier a host imports to read the augmentation (`<package>/backend` by convention). */\n runtimeImportPath: z.string().min(1),\n /** Every operation id the augmentation contributes — sorted, unique, non-empty. */\n operationIds: z.array(z.string().min(1)).min(1),\n /** Every vendor scope any of those operations declares in `requiredScopes` — sorted, unique. */\n requiredScopes: z.array(z.string().min(1)).default([]),\n}).superRefine((contribution, ctx) => {\n for (const [field, values] of [['operationIds', contribution.operationIds], ['requiredScopes', contribution.requiredScopes]] as const) {\n for (let index = 1; index < values.length; index += 1) {\n if (values[index - 1].localeCompare(values[index]) >= 0) {\n ctx.addIssue({ code: 'custom', path: [field, index], message: `${field} must be sorted and unique (\"${values[index]}\" follows \"${values[index - 1]}\").` });\n }\n }\n }\n});\nexport type ProviderAugmentationContribution = z.infer<typeof ProviderAugmentationContributionSchema>;\n\nexport interface RuntimeOwnerCompanionExports {\n providerContributions?: ProviderCompanionContribution[];\n /**\n * Operation augmentations of providers this package does not own (#1672). Separate from\n * `providerContributions` on purpose — see {@link ProviderAugmentationContributionSchema}.\n */\n providerAugmentations?: ProviderAugmentationContribution[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"provider-discovery.shared.schemas.js","sourceRoot":"","sources":["../../../../src/companion/provider-discovery.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { AppFrontendType } from '../config/app-frontend-type.shared.schemas';\nimport { EngineCapability } from '../external-providers/engine-capabilities.shared.schemas';\nimport { FrontendProviderEntrySchema } from '../external-providers/frontend-bootstrap.shared.schemas';\nimport { ProviderIdentitySchema, ProviderOriginSchema, ProviderTier } from '../external-providers/provider-metadata.shared.schemas';\nimport { ProviderComplianceProfileSchema } from '../external-providers/provider-compliance-profile.shared.schemas';\n\n/**\n * Companion-safe provider implementation declaration.\n *\n * App/runtime-owner packages expose these entries through their `./companion`\n * default export so tooling can discover which provider refs are actually\n * reachable from which runtime owners before materializing generated artifacts.\n */\n\n/**\n * Discriminator branch for `frontendService` runtime targets.\n *\n * Targets a frontend service by its `AppFrontendType` (the closed kind set\n * — SAAS_APP, STATIC_WEBSITE, TECH_DOC) rather than by an app-defined\n * `serviceKey` string. Engine-shipped packages (`external-connectors-public`,\n * etc.) have no way to know app-defined service keys, so the discovery\n * contract is keyed on the type. Apps with multiple frontend services of\n * the same type currently broadcast the contribution to all of them; if\n * per-service-key targeting becomes a need, add a second variant.\n */\nexport const ProviderFrontendServiceRuntimeTargetSchema = z.strictObject({\n kind: z.literal('frontendService'),\n serviceType: z.enum(AppFrontendType),\n});\nexport type ProviderFrontendServiceRuntimeTarget = z.infer<typeof ProviderFrontendServiceRuntimeTargetSchema>;\n\nexport const ProviderCompanionRuntimeTargetSchema = z.discriminatedUnion('kind', [\n z.strictObject({\n kind: z.literal('backend'),\n }),\n z.strictObject({\n kind: z.literal('companion'),\n }),\n ProviderFrontendServiceRuntimeTargetSchema,\n z.strictObject({\n kind: z.literal('minion'),\n minionKey: z.string().min(1),\n }),\n z.strictObject({\n kind: z.literal('worker'),\n workerKey: z.string().min(1),\n }),\n]);\nexport type ProviderCompanionRuntimeTarget = z.infer<typeof ProviderCompanionRuntimeTargetSchema>;\n\n/**\n * Values-free projection of one backend provider secret requirement.\n *\n * The stable provider-owned `slug` is preserved separately from the concrete\n * environment-variable name so a rename on either axis changes the lockfile\n * integrity digest. Secret values never cross this companion-safe boundary.\n */\nexport const ProviderSecretContractShapeEntrySchema = z.strictObject({\n slug: z.string().min(1),\n envVarName: z.string().min(1),\n required: z.boolean(),\n description: z.string().min(1),\n});\nexport type ProviderSecretContractShapeEntry = z.infer<typeof ProviderSecretContractShapeEntrySchema>;\n\n/**\n * Deterministic, values-free secret-contract shape used by provider discovery\n * and lockfile integrity checks.\n *\n * Every contribution must declare this field. `[]` means the provider is\n * authoritatively known to require no secrets; omission is rejected rather\n * than being silently interpreted as an empty contract. Entries must be\n * sorted by `slug`, and both slugs and environment-variable names are unique,\n * so independently contributed facets cannot produce order-dependent digests.\n */\nexport const ProviderSecretContractShapeSchema = z.array(ProviderSecretContractShapeEntrySchema).superRefine((entries, context) => {\n const seenSlugs = new Set<string>();\n const seenEnvVarNames = new Set<string>();\n\n for (const [index, entry] of entries.entries()) {\n if (seenSlugs.has(entry.slug)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: `Duplicate provider secret-contract slug \"${entry.slug}\".`,\n });\n }\n seenSlugs.add(entry.slug);\n\n if (seenEnvVarNames.has(entry.envVarName)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'envVarName'],\n message: `Duplicate provider secret-contract envVarName \"${entry.envVarName}\".`,\n });\n }\n seenEnvVarNames.add(entry.envVarName);\n\n if (index > 0 && entries[index - 1].slug.localeCompare(entry.slug) >= 0) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: 'Provider secret-contract entries must be sorted by slug.',\n });\n }\n }\n});\nexport type ProviderSecretContractShape = z.infer<typeof ProviderSecretContractShapeSchema>;\n\n/**\n * A contribution is a wire record produced by one package version and read by\n * another (the CLI, the companion, a generated artifact), so it is a LOOSE\n * object: an additive field from a newer producer rides through an older\n * consumer instead of hard-failing the parse (#328 — it used to be strict,\n * which made every additive field a five-surface change and every old/new\n * mix a boot failure). Required fields stay required; only UNKNOWN keys are\n * tolerated, and they are kept rather than stripped so a re-emitting\n * consumer does not silently drop what it did not understand.\n */\nexport const ProviderCompanionContributionSchema = z.looseObject({\n ref: z.string().min(1),\n /**\n * The provider's identity (package, tier, vendor, origin) as declared on\n * its module metadata, so tooling can display tiers and group vendors\n * without loading the runtime module. Optional on the wire for one\n * reason only: contributions emitted before #328 carry none, and a\n * discovery walk must still read them.\n */\n identity: ProviderIdentitySchema.optional(),\n /**\n * Stable package import path that makes the provider implementation reachable\n * from the contributing package at runtime. This validates owner-package\n * reachability without coupling discovery to source-file paths.\n */\n runtimeImportPath: z.string().min(1),\n runtimeTargets: z.array(ProviderCompanionRuntimeTargetSchema).min(1),\n engineCapabilities: z.array(z.enum(EngineCapability)).default([]),\n providerCapabilities: z.array(z.string().min(1)).default([]),\n protocols: z.array(z.string().min(1)).default([]),\n secretsContractShape: ProviderSecretContractShapeSchema,\n /**\n * Per protocol, the environment variable its API key is read from — the DEFAULT `authConfig.secretRef`\n * a running host derives from the binding's runtime contract, so the value `getProviderApiKey` reads\n * before it refuses a call for a missing key (#2229). Keyed by the same protocol strings as `protocols`;\n * a protocol absent from the map authenticates with nothing a host must hold.\n *\n * Carried so tooling can predict that refusal from discovery without loading a provider module — the\n * creation preflight names the ONE key a step needs, where `secretsContractShape` lists every key the\n * provider may use (Stripe's webhook secret is required by its shape and read by no boot refusal).\n * Values-free, and optional on the wire because a contribution emitted before #2229 carries none; a\n * reader then falls back to the required entries of `secretsContractShape`.\n */\n protocolSecretRefs: z.record(z.string().min(1), z.string().min(1)).optional(),\n /**\n * Optional frontend-safe provider payload for `frontendService` runtime\n * targets. Tooling materializes this into generated runtime artifacts so the\n * backend bootstrap endpoint can serve app-owned public providers without\n * importing frontend packages at runtime.\n */\n frontendEntry: FrontendProviderEntrySchema.optional(),\n /**\n * Optional app module owner when the provider implementation belongs to one\n * concrete module instead of the whole package/runtime.\n */\n sourceModuleId: z.string().min(1).optional(),\n /**\n * The hosts the provider's OAuth2 TOKEN endpoint may resolve to (#1725) — derived by the producer with\n * `describeProviderOAuth2TokenEndpointHosts`, absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo config sync` can refuse a declared shared connection whose member names a different\n * authorization server than its base, without loading either module. Values-free: a login host is not a\n * secret. Optional on the wire because a contribution emitted before #1725 carries none; the registry then\n * makes the same comparison on the loaded modules at boot.\n */\n oauth2TokenEndpointHosts: z.strictObject({\n exact: z.array(z.string().min(1)),\n suffixes: z.array(z.string().min(1)),\n undeterminable: z.boolean(),\n }).optional(),\n /**\n * The secrets-contract SLUGS holding the provider's connected-account OAuth2 client registration — its client id\n * and client secret (#1725). Absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo secrets` can tell an operator which registration a declared shared connection actually needs:\n * the BASE's slots are then required, and a MEMBER's own slots are inert — reported, never required — because the\n * base's client connects and refreshes the one grant.\n */\n oauth2ClientSlotSlugs: z.array(z.string().min(1)).optional(),\n /**\n * What the provider's BACKEND module declares about who runs it and where it processes (#1708) — ESTABLISHED\n * facts, or UNDETERMINED. A frontend facet's profile rides `frontendEntry.complianceProfile` instead (#1743).\n *\n * Carried so the compliance readers (the evidence collector, the companion's drafting brief) learn every\n * declared provider's profile from discovery, WITHOUT loading a provider module — the same reason\n * `oauth2TokenEndpointHosts` is here. Values-free: a vendor's region list is not a secret. Optional on the wire\n * because a contribution emitted before #1708 carries none, which a reader reports as \"no profile\".\n */\n complianceProfile: ProviderComplianceProfileSchema.optional(),\n});\nexport type ProviderCompanionContribution = z.infer<typeof ProviderCompanionContributionSchema>;\n\n/**\n * A package's declaration that it ADDS OPERATIONS to a provider it does not own (#1672).\n *\n * ## Why this is its own record and not a `ProviderCompanionContribution`\n *\n * A contribution says \"this package OWNS provider X\": identity, secrets contract, protocols, the runtimes\n * it reaches. Discovery keeps one owner per ref and compares every contribution's secrets-contract shape\n * against the others. An augmentation owns none of that — the base keeps identity, tier, secrets contract,\n * OAuth2 block and connection — so recording it as a second contribution of the same ref would make the\n * shape comparison treat it as a second owner, and the import map would pick one of the two by sort order.\n * A separate record is what lets the base stay the base.\n *\n * ## What it carries, and why each field is STATIC\n *\n * `operationIds` and `requiredScopes` are stated here rather than read from the catalogue because a\n * catalogue is a LAZY loader that tooling must never call (`ProviderRestOperationCatalogueLoader`). So\n * `wildo config sync` can refuse an operation-id collision and record which scopes an augmentation may ask\n * for without evaluating any vendor code; the runtime then checks that what the loader delivers is exactly\n * what was declared here, and refuses the augmentation otherwise.\n *\n * INERT until an application opts it in under `providers.augmentations.<augments>` — installing a package\n * never adds an operation to a provider on its own.\n *\n * Loose for the reason `ProviderCompanionContributionSchema` is: a newer producer's additive field must ride\n * through an older consumer.\n */\nexport const ProviderAugmentationContributionSchema = z.looseObject({\n /** The ref of the provider this package adds operations to — owned by the engine or another package. */\n augments: z.string().min(1),\n /** The augmentation package's own npm name, as its manifest states it. */\n packageName: z.string().min(1),\n /** Always `CATALOGUE`: an augmentation binds no engine slot and adds only operations. */\n tier: z.literal(ProviderTier.CATALOGUE),\n origin: ProviderOriginSchema,\n /** The specifier a host imports to read the augmentation (`<package>/backend` by convention). */\n runtimeImportPath: z.string().min(1),\n /** Every operation id the augmentation contributes — sorted, unique, non-empty. */\n operationIds: z.array(z.string().min(1)).min(1),\n /** Every vendor scope any of those operations declares in `requiredScopes` — sorted, unique. */\n requiredScopes: z.array(z.string().min(1)).default([]),\n}).superRefine((contribution, ctx) => {\n for (const [field, values] of [['operationIds', contribution.operationIds], ['requiredScopes', contribution.requiredScopes]] as const) {\n for (let index = 1; index < values.length; index += 1) {\n if (values[index - 1].localeCompare(values[index]) >= 0) {\n ctx.addIssue({ code: 'custom', path: [field, index], message: `${field} must be sorted and unique (\"${values[index]}\" follows \"${values[index - 1]}\").` });\n }\n }\n }\n});\nexport type ProviderAugmentationContribution = z.infer<typeof ProviderAugmentationContributionSchema>;\n\nexport interface RuntimeOwnerCompanionExports {\n providerContributions?: ProviderCompanionContribution[];\n /**\n * Operation augmentations of providers this package does not own (#1672). Separate from\n * `providerContributions` on purpose — see {@link ProviderAugmentationContributionSchema}.\n */\n providerAugmentations?: ProviderAugmentationContribution[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-library-companion.shared.definitions.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"shared-library-companion.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/companion/shared-library-companion.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAExF,MAAM,WAAW,6BAA6B,CAC5C,aAAa,SAAS,gBAAgB,GAAG,gBAAgB,CACzD,SAAQ,4BAA4B;IACpC,iBAAiB,EAAE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-library-companion.shared.definitions.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"shared-library-companion.shared.definitions.js","sourceRoot":"","sources":["../../../../src/companion/shared-library-companion.shared.definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { SharedSaaSModule } from '../runtime/domain-module.shared.definitions';\nimport type { RuntimeOwnerCompanionExports } from './provider-discovery.shared.schemas';\n\nexport interface SharedLibraryCompanionExports<\n TSharedModule extends SharedSaaSModule = SharedSaaSModule,\n> extends RuntimeOwnerCompanionExports {\n loadSharedModules: () => Promise<TSharedModule[]>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion-exports.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"companion-exports.d.ts","sourceRoot":"","sources":["../../../src/companion-exports.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion-exports.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"companion-exports.js","sourceRoot":"","sources":["../../../src/companion-exports.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC","sourcesContent":["export * from './companion/artifact-placement.shared.definitions';\nexport * from './companion/provider-discovery.shared.schemas';\nexport * from './companion/shared-library-companion.shared.definitions';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-audit-logs.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"application-audit-logs.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAA6B,MAAM,kCAAkC,CAAC;AAErH,OAAO,EAAE,qBAAqB,EAAwD,MAAM,mDAAmD,CAAC;AAChJ,OAAO,EAAE,0BAA0B,EAAgC,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAGpF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,SAAS,cAAc,EAGpE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,+DAA+D,GAC1E,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmG9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-audit-logs.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\nimport { AuditEventCategory, AuditEventSeverity, AuditableEvent_BaseSchema } from './auditable-events.shared.schema';\nimport { createResourceConfiguration_Initialization } from '../../resources/resources-config.shared.factory';\nimport { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from '../../resources/resources.shared.core.definitions';\nimport { ResourceOperationRiskLevel, ResourceOperationVariantType, ResourceRelationship } from '../../resources/resources.shared.schemas';\nimport { CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\n\n/**\n * The roles the application audit door's READ, LIST and SEARCH accept — ONE list, so the three verbs\n * cannot disagree about who may read the trail.\n *\n * `APP_ADMIN_SUPER_ADMIN` for the operator who investigates and then acts; `APP_AUDIT_EVIDENCE_READER`\n * for a party that must read and must NOT act — an assurance collector's machine credential, an\n * external auditor. Neither is an organization role: the rows behind this door span every tenant.\n */\nexport const APPLICATION_AUDIT_LOG_READ_ROLES: readonly CORE_APP_ROLES[] = Object.freeze([\n CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN,\n CORE_APP_ROLES.APP_AUDIT_EVIDENCE_READER,\n]);\n\n/**\n * The APPLICATION-scoped door onto the audit trail.\n *\n * ## Why this exists at all\n *\n * `AUDIT_LOGS` is organization-scoped and its only route is\n * `/organizations/{organizationId}/audit-logs`, so it returns exactly the rows carrying that\n * tenant. A large share of security events carry NO organization by design — `logUserLogin` takes\n * `organizationId` as optional because no organization is selected at login, and the same is true\n * of session eviction, token refresh and application-wide authentication-policy changes. Measured\n * on a dogfood application (#317): **94 of 127 rows had no organization**, and were reachable\n * through no API. An operator could see 26% of the trail and could not attest the rest, while a\n * reader querying the only available surface saw `user_login: 0` for a control that had emitted 21.\n *\n * ## Why a SEPARATE resource type rather than a second route\n *\n * `generateParentCombinations` composes every URL as\n * `[...primaryScope, ...mandatoryContext, ...optionalCombo]`, so a routed application edge on\n * `AUDIT_LOGS` would appear in EVERY combination and rewrite the organization route to\n * `/applications/{applicationId}/organizations/{organizationId}/audit-logs` — breaking all eight of\n * its documented paths and their consumers. Making the organization edge optional does not help:\n * the empty combination is skipped whenever any parent exists, so no bare route is emitted either.\n * A sibling type carrying ONE application parent takes the route it needs and leaves the existing\n * door byte-identical. The pattern is the engine's own: notification badges are dual-scope with a\n * type per scope, `APPLICATION_API_KEYS` shows the application routing shape, and `USER_SELF`\n * shows a distinct type addressing another's rows.\n *\n * ## Two doors, ONE record set — the security contract\n *\n * Both types resolve to the `auditLogs` collection through\n * `RESOURCE_SHARED_PERSISTENCE_COLLECTION_ALIASES`. That makes the isolation properties a\n * per-DOOR obligation rather than a property of the rows:\n *\n * - the organization door keeps its tenant filter and its organization roles, unchanged;\n * - this door accepts {@link APPLICATION_AUDIT_LOG_READ_ROLES} and nothing else — `APP_ADMIN_SUPER_ADMIN`\n * or the read-only `APP_AUDIT_EVIDENCE_READER`. An organization role must never reach it — the rows\n * behind it span every tenant;\n * - a read here that touches a tenant-attributed row is a CROSS-TENANT read and OWES an audit\n * emission. **It is wired**, by the two halves below acting together, and neither is optional:\n * each read variant declares `admitsCrossTenantPlatformAdministration`, and\n * `ServicesRegistryHandler.recordCrossTenantReadAccess` observes every enrolled read and emits\n * `CROSS_TENANT_ADMINISTRATIVE_ACCESS` once per TENANT the returned rows belong to. The\n * declaration is what enrols the read: `authorizeOrganizations` — where that event is otherwise\n * emitted — runs only for ORGANIZATIONS-scoped resources and decides on ONE fetched row, so it\n * never sees this door at all. Grouping per tenant is what makes the crossing visible to the\n * REACHED tenant, in its own organization-scoped viewer, rather than only to the operator.\n * `.claude/rules/administrative-continuity-floors.md` requires every crossing to be named in the\n * trail, and the trail is the worst possible surface on which to make an operator read invisible.\n * See `security/authorizations/cross-tenant-read-observation.backend.ts` for why an UNDECLARED\n * door is deliberately not observed instead of being observed with a false `admissionDeclared`.\n *\n * ## Deliberately mirrored from the organization resource\n *\n * `isSystemResource`, `systemAccessPolicy.exportSubject: FORBIDDEN` and the ABSENCE of a\n * `retentionPolicy` are copied ON PURPOSE. They are properties of the ROWS, and the rows are the\n * same ones — a second door that disagreed about whether the audit trail is subject-exportable, or\n * about how long it is kept, would be a policy fork over one record set. See the organization\n * config for the reasoning behind each; do not change one without the other.\n *\n * ## Deliberately NOT mirrored\n *\n * There is no CREATE. The organization resource carries a `REPOSITORY_ONLY` CREATE because that is\n * how audit rows are written; writing is not a scope question and must keep exactly one door.\n */\nexport const applicationAuditLogsResourceConfiguration_InitializationFactory = (\n resourcesRelationships: ResourceRelationship[]\n) => createResourceConfiguration_Initialization<\n undefined,\n CoreResourceOperation.READ | CoreResourceOperation.LIST | CoreResourceOperation.SEARCH,\n typeof AuditableEvent_BaseSchema\n>({\n mainSchema: AuditableEvent_BaseSchema,\n resourceIdentifier: CoreResourceType.APPLICATION_AUDIT_LOGS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.APPLICATION_AUDIT_LOGS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n /** Mirrored from the organization door — the same rows, so the same answer. Disclosing the monitoring trail to its own subject is self-defeating and out of Art. 20 scope. */\n systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n ],\n\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /**\n * Reading ONE tenant's audit row through the application door IS a crossing, so the cheapest\n * reach — fetch by id — is declared and audited exactly like the collection verbs. Declaring\n * it is also what stops `assignInitiatorOrganizationConfinementToFilter` silently narrowing\n * this door to an operator who happens to carry an ambient organization, which would make a\n * surface documented as spanning every tenant return one tenant and report success.\n */\n admitsCrossTenantPlatformAdministration: true,\n }],\n },\n\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n /**\n * Filterable so an operator can narrow to one tenant THROUGH this door, which is the\n * cross-tenant investigation this surface exists for. It is a FILTER, never the isolation\n * boundary: isolation on this door is the role gate above, and narrowing to a tenant does\n * not make the read any less cross-tenant for audit purposes.\n */\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n /** `eventId` last, as the keyset tie-breaker — `createdAt` is not unique under boot/seed bursts. Mirrors the organization door; removing it reintroduces a paging data-loss path. */\n sortFields: ['createdAt', 'severity', 'eventType', 'eventId'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n\n [CoreResourceOperation.SEARCH]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n isSearchable: true,\n searchableFields: [],\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n sortFields: ['createdAt', 'severity', 'eventType'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n },\n});\n"]}
|
|
1
|
+
{"version":3,"file":"application-audit-logs.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\nimport { AuditEventCategory, AuditEventSeverity, AuditableEvent_BaseSchema } from './auditable-events.shared.schema';\nimport { createResourceConfiguration_Initialization } from '../../resources/resources-config.shared.factory';\nimport { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from '../../resources/resources.shared.core.definitions';\nimport { ResourceOperationRiskLevel, ResourceOperationVariantType, ResourceRelationship } from '../../resources/resources.shared.schemas';\nimport { CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\n\n/**\n * The roles the application audit door's READ, LIST and SEARCH accept — ONE list, so the three verbs\n * cannot disagree about who may read the trail.\n *\n * `APP_ADMIN_SUPER_ADMIN` for the operator who investigates and then acts; `APP_AUDIT_EVIDENCE_READER`\n * for a party that must read and must NOT act — an assurance collector's machine credential, an\n * external auditor. Neither is an organization role: the rows behind this door span every tenant.\n */\nexport const APPLICATION_AUDIT_LOG_READ_ROLES: readonly CORE_APP_ROLES[] = Object.freeze([\n CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN,\n CORE_APP_ROLES.APP_AUDIT_EVIDENCE_READER,\n]);\n\n/**\n * The APPLICATION-scoped door onto the audit trail.\n *\n * ## Why this exists at all\n *\n * `AUDIT_LOGS` is organization-scoped and its only route is\n * `/organizations/{organizationId}/audit-logs`, so it returns exactly the rows carrying that\n * tenant. A large share of security events carry NO organization by design — `logUserLogin` takes\n * `organizationId` as optional because no organization is selected at login, and the same is true\n * of session eviction, token refresh and application-wide authentication-policy changes. Measured\n * on a dogfood application (#317): **94 of 127 rows had no organization**, and were reachable\n * through no API. An operator could see 26% of the trail and could not attest the rest, while a\n * reader querying the only available surface saw `user_login: 0` for a control that had emitted 21.\n *\n * ## Why a SEPARATE resource type rather than a second route\n *\n * `generateParentCombinations` composes every URL as\n * `[...primaryScope, ...mandatoryContext, ...optionalCombo]`, so a routed application edge on\n * `AUDIT_LOGS` would appear in EVERY combination and rewrite the organization route to\n * `/applications/{applicationId}/organizations/{organizationId}/audit-logs` — breaking all eight of\n * its documented paths and their consumers. Making the organization edge optional does not help:\n * the empty combination is skipped whenever any parent exists, so no bare route is emitted either.\n * A sibling type carrying ONE application parent takes the route it needs and leaves the existing\n * door byte-identical. The pattern is the engine's own: notification badges are dual-scope with a\n * type per scope, `APPLICATION_API_KEYS` shows the application routing shape, and `USER_SELF`\n * shows a distinct type addressing another's rows.\n *\n * ## Two doors, ONE record set — the security contract\n *\n * Both types resolve to the `auditLogs` collection through\n * `RESOURCE_SHARED_PERSISTENCE_COLLECTION_ALIASES`. That makes the isolation properties a\n * per-DOOR obligation rather than a property of the rows:\n *\n * - the organization door keeps its tenant filter and its organization roles, unchanged;\n * - this door accepts {@link APPLICATION_AUDIT_LOG_READ_ROLES} and nothing else — `APP_ADMIN_SUPER_ADMIN`\n * or the read-only `APP_AUDIT_EVIDENCE_READER`. An organization role must never reach it — the rows\n * behind it span every tenant;\n * - a read here that touches a tenant-attributed row is a CROSS-TENANT read and OWES an audit\n * emission. **It is wired**, by the two halves below acting together, and neither is optional:\n * each read variant declares `admitsCrossTenantPlatformAdministration`, and\n * `ServicesRegistryHandler.recordCrossTenantReadAccess` observes every enrolled read and emits\n * `CROSS_TENANT_ADMINISTRATIVE_ACCESS` once per TENANT the returned rows belong to. The\n * declaration is what enrols the read: `authorizeOrganizations` — where that event is otherwise\n * emitted — runs only for ORGANIZATIONS-scoped resources and decides on ONE fetched row, so it\n * never sees this door at all. Grouping per tenant is what makes the crossing visible to the\n * REACHED tenant, in its own organization-scoped viewer, rather than only to the operator.\n * `.claude/rules/administrative-continuity-floors.md` requires every crossing to be named in the\n * trail, and the trail is the worst possible surface on which to make an operator read invisible.\n * See `security/authorizations/cross-tenant-read-observation.backend.ts` for why an UNDECLARED\n * door is deliberately not observed instead of being observed with a false `admissionDeclared`.\n *\n * ## Deliberately mirrored from the organization resource\n *\n * `isSystemResource`, `systemAccessPolicy.exportSubject: FORBIDDEN` and the ABSENCE of a\n * `retentionPolicy` are copied ON PURPOSE. They are properties of the ROWS, and the rows are the\n * same ones — a second door that disagreed about whether the audit trail is subject-exportable, or\n * about how long it is kept, would be a policy fork over one record set. See the organization\n * config for the reasoning behind each; do not change one without the other.\n *\n * ## Deliberately NOT mirrored\n *\n * There is no CREATE. The organization resource carries a `REPOSITORY_ONLY` CREATE because that is\n * how audit rows are written; writing is not a scope question and must keep exactly one door.\n */\nexport const applicationAuditLogsResourceConfiguration_InitializationFactory = (\n resourcesRelationships: ResourceRelationship[]\n) => createResourceConfiguration_Initialization<\n undefined,\n CoreResourceOperation.READ | CoreResourceOperation.LIST | CoreResourceOperation.SEARCH,\n typeof AuditableEvent_BaseSchema\n>({\n mainSchema: AuditableEvent_BaseSchema,\n resourceIdentifier: CoreResourceType.APPLICATION_AUDIT_LOGS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.APPLICATION_AUDIT_LOGS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n /** Mirrored from the organization door — the same rows, so the same answer. Disclosing the monitoring trail to its own subject is self-defeating and out of Art. 20 scope. */\n systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n ],\n\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /**\n * Reading ONE tenant's audit row through the application door IS a crossing, so the cheapest\n * reach — fetch by id — is declared and audited exactly like the collection verbs. Declaring\n * it is also what stops `assignInitiatorOrganizationConfinementToFilter` silently narrowing\n * this door to an operator who happens to carry an ambient organization, which would make a\n * surface documented as spanning every tenant return one tenant and report success.\n */\n admitsCrossTenantPlatformAdministration: true,\n }],\n },\n\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n /**\n * Filterable so an operator can narrow to one tenant THROUGH this door, which is the\n * cross-tenant investigation this surface exists for. It is a FILTER, never the isolation\n * boundary: isolation on this door is the role gate above, and narrowing to a tenant does\n * not make the read any less cross-tenant for audit purposes.\n */\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n /** `eventId` last, as the keyset tie-breaker — `createdAt` is not unique under boot/seed bursts. Mirrors the organization door; removing it reintroduces a paging data-loss path. */\n sortFields: ['createdAt', 'severity', 'eventType', 'eventId'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n\n [CoreResourceOperation.SEARCH]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n isSearchable: true,\n searchableFields: [],\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n sortFields: ['createdAt', 'severity', 'eventType'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n },\n});\n"]}
|