@wildo-ai/saas-models 1.1.5 → 1.1.6
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/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications-context.schemas.d.ts +176 -2
- package/dist/esm/applications/applications-context.schemas.d.ts.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 +3 -2
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.d.ts +7 -5
- package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.js +6 -4
- package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +10 -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 +49 -15
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.js +2 -2
- package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +25 -0
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.js +19 -0
- package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts +27 -5
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js +30 -4
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts +37 -11
- package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.js +31 -19
- package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +2 -0
- 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 +18 -7
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts +2 -0
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.js +7 -1
- package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +6 -6
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.js +1 -1
- package/dist/esm/billing/invoice-ref.shared.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 +5 -3
- package/dist/esm/billing/price.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts +11 -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 +39 -23
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.d.ts +30 -2
- package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.js +35 -0
- package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +6 -3
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.d.ts +7 -3
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js +22 -7
- package/dist/esm/billing/product.shared.schemas.js.map +1 -1
- package/dist/esm/billing/promotions.shared.resources-config.schemas.js +8 -8
- package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts +135 -0
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -0
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.js +112 -0
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -0
- package/dist/esm/billing/public-pricing-catalog.shared.d.ts +30 -0
- package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -0
- package/dist/esm/billing/public-pricing-catalog.shared.js +53 -0
- package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -0
- package/dist/esm/billing/referral-reward.shared.schemas.d.ts +51 -0
- package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -0
- package/dist/esm/billing/referral-reward.shared.schemas.js +92 -0
- package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -0
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts +54 -33
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.js +56 -2
- package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.d.ts +22 -37
- package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.js +24 -44
- package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +9 -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 +55 -22
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts +80 -5
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.js +85 -25
- package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +5 -5
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +143 -2
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js +84 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -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 +4 -0
- 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 +70 -0
- 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 +87 -0
- 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 +34 -0
- 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 +137 -3
- 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 +7 -0
- 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 +28 -2
- 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 +29 -8
- 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 +29 -6
- 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 +38 -9
- 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 +1822 -146
- 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 +1777 -87
- 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 +10 -0
- 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 +148 -7
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +2 -0
- 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 +2 -0
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts +0 -8
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +0 -1
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.js.map +0 -1
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +17 -8
- 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 +43 -20
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +38 -0
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +39 -0
- 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 +35 -0
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js +82 -0
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts +37 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js +223 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts +222 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js +331 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +37 -3
- 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 +33 -4
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts +52 -0
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js +116 -0
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts +11 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js +11 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts +93 -0
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.js +149 -0
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts +43 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js +106 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts +209 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js +226 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts +129 -5
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js +128 -4
- 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 +53 -0
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js +74 -0
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts +311 -0
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js +355 -0
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +178 -39
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +145 -35
- 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 +26 -0
- 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 +9 -0
- 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/config/app-configuration-shared.shared.schemas.d.ts +109 -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 +57 -0
- package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +69 -0
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js +93 -0
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +16 -16
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +160 -61
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.js +297 -65
- package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
- package/dist/esm/errors/caught-error-description.shared.utils.d.ts +69 -0
- package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -0
- package/dist/esm/errors/caught-error-description.shared.utils.js +77 -0
- package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -0
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +76 -3
- 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 +76 -2
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts +20 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.js +16 -9
- package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.shared.utils.d.ts +0 -24
- package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.utils.js +0 -39
- package/dist/esm/errors/errors.shared.utils.js.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +6 -7
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.js +6 -7
- package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts +70 -0
- package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-description.shared.js +92 -0
- package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts +154 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js +161 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +1071 -23
- 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 +1065 -17
- 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 +71 -0
- package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -0
- package/dist/esm/external-data/external-data-provenance.shared.js +88 -0
- package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -0
- package/dist/esm/external-data.exports.d.ts +5 -0
- package/dist/esm/external-data.exports.d.ts.map +1 -1
- package/dist/esm/external-data.exports.js +11 -0
- package/dist/esm/external-data.exports.js.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +17 -2
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +22 -4
- 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 +3 -0
- 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 +2 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +152 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +4 -3
- 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 +4 -3
- 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 +45 -0
- 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 +14 -0
- 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 +188 -4
- 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 +76 -9
- 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 +175 -33
- 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 +247 -42
- 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 +53 -0
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js +41 -0
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts +150 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js +22 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts +42 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js +49 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +53 -0
- 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 +56 -0
- 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 +34 -0
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +34 -0
- 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 +341 -4
- 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 +270 -20
- 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 +6 -2
- 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 +6 -2
- 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 +174 -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 +125 -0
- 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 +3 -3
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts +42 -0
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js +57 -0
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +6 -0
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js +6 -0
- 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 +58 -0
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js +35 -0
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts +115 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js +137 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-usage-cost.shared.d.ts +73 -0
- package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-usage-cost.shared.js +171 -0
- package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.d.ts +12 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.js +40 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -0
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts +68 -32
- 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 +63 -52
- 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 +5 -5
- 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 +13 -5
- 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 +2 -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 +2 -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 +2 -11
- package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/feature-definition.shared.schemas.js +0 -12
- package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.d.ts +31 -17
- package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.js +27 -5
- package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +5 -5
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts +127 -11
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +32 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +16 -0
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.js +7 -0
- 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 +68 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js +276 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts +468 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js +472 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts +118 -0
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js +144 -0
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +142 -8
- 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 +209 -11
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +37 -2
- 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 +30 -2
- 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 +0 -11
- 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 +12 -5
- 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 +45 -6
- 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 +31 -5
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +30 -30
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +15 -7
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts +15 -0
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +506 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.js +502 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts +46 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js +65 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts +120 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js +165 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts +45 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js +127 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts +83 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js +97 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts +136 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js +90 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +5 -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 +19 -4
- 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 +13 -15
- 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 +30 -17
- 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 +268 -0
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.js +576 -0
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +30 -0
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts +129 -0
- package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/work-attribution.shared.schemas.js +141 -0
- package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -0
- package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts +22 -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 +23 -0
- 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 +61 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +61 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.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 +11 -10
- package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js +6 -6
- package/dist/esm/guidance/lifecycle-state.shared.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 +8 -7
- package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +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 +550 -30
- 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 +498 -34
- 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 +62 -0
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -0
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js +66 -0
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts +133 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js +191 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +37 -6
- 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 +37 -6
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
- package/dist/esm/i18n/application-config-vocabulary.shared.d.ts +36 -0
- package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -0
- package/dist/esm/i18n/application-config-vocabulary.shared.js +39 -0
- package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts +11 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.js +14 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts +20 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.js +21 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -0
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts +94 -0
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js +206 -0
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts +169 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.js +231 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts +195 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.js +244 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts +36 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js +169 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts +404 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.js +449 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts +46 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.js +57 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -0
- package/dist/esm/index.d.ts +58 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +67 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +28 -0
- 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 +29 -0
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +95 -1
- 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 +121 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows.exports.d.ts +0 -1
- package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
- package/dist/esm/meta-workflows.exports.js +0 -1
- package/dist/esm/meta-workflows.exports.js.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +7 -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 +35 -0
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts +131 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js +258 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts +448 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js +530 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -0
- 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 +4 -3
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +16 -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 +46 -16
- 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 +19 -12
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +77 -12
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.d.ts +35 -3
- package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.js +43 -3
- package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts +66 -399
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js +111 -58
- package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +5 -5
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +6 -6
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +3 -0
- 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 +60 -14
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts +3 -0
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js +30 -0
- package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js +9 -9
- package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js +4 -4
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts +0 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +5 -5
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js +15 -10
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js +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 +2 -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 +63 -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 +106 -5
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.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 +9 -0
- package/dist/esm/organizations/organization-unit-narrowing.shared.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 +7 -2
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +3 -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 +12 -8
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.d.ts +7 -2
- package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.js +51 -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 +58 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js +188 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts +122 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js +136 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts +36 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js +155 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts +229 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js +290 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts +48 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js +50 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts +97 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js +572 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts +590 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.js +869 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +36 -6
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +57 -16
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.d.ts +0 -1
- package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.js +0 -1
- package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
- package/dist/esm/public-runtime/index.d.ts +30 -11
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js +30 -11
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +36 -8
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +12 -0
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/requests/header-keys.shared.d.ts +6 -0
- package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
- package/dist/esm/requests/header-keys.shared.js +7 -0
- package/dist/esm/requests/header-keys.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 +147 -8
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts +51 -23
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js +64 -0
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts +78 -13
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +91 -18
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts +21 -0
- package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/embedded-resource-mark.shared.utils.js +22 -0
- package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -0
- package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.js +812 -32
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +244 -48
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js +151 -17
- 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 +353 -12
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts +45 -0
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js +92 -0
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts +2 -17
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js +24 -20
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.utils.d.ts +16 -8
- package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.utils.js +16 -8
- package/dist/esm/resources/resources.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/collection-export.shared.utils.d.ts +2 -2
- package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/collection-export.shared.utils.js +4 -2
- package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts +103 -0
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js +275 -0
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -0
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts +51 -0
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js +28 -0
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -0
- 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 +30 -19
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts +2 -0
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js +33 -0
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -0
- package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts +15 -0
- package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.js +6 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.schemas.js +30 -4
- package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +46 -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 +205 -22
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-serialization.utils.d.ts +19 -2
- package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-serialization.utils.js +4 -0
- package/dist/esm/resources/utils/resources-serialization.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 +15 -9
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
- package/dist/esm/resources/work-unit.shared.schemas.d.ts +20 -0
- package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -0
- package/dist/esm/resources/work-unit.shared.schemas.js +19 -0
- package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -0
- package/dist/esm/runtime/execution-context.shared.schemas.d.ts +48 -1
- package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/execution-context.shared.schemas.js +101 -9
- package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
- 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 +37 -20
- 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 +1 -0
- 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 +61 -48
- 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 +26 -0
- 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 +39 -5
- package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +5 -3
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +6 -0
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +2 -2
- 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 +11 -0
- 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 +19 -8
- 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 +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +5 -5
- 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.js +11 -11
- 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 +2 -0
- 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 +9 -0
- 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 +169 -0
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js +162 -0
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -0
- 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 +10 -8
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +8 -8
- 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 +17 -16
- 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 +28 -25
- 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 +17 -6
- 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 +90 -38
- 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 +0 -24
- 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 +79 -68
- 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 +8 -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 +7 -0
- 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.js +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +7 -7
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.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 +56 -0
- package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +77 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js +90 -0
- package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts +86 -0
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js +40 -0
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +2 -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 +2 -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 +2 -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 +2 -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 +46 -14
- 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 +81 -21
- 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 +69 -0
- package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -0
- package/dist/esm/security/credential-rotation-grace.shared.utils.js +77 -0
- package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -0
- 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 +28 -8
- 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 +3 -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 +89 -14
- 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 +1 -0
- 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 +25 -4
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +7 -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 +6 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
- package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts +143 -0
- package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -0
- package/dist/esm/security/submission-challenge/submission-challenge.shared.js +123 -0
- package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts +384 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js +327 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +121 -8
- 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 +83 -4
- 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-error-codes.shared.d.ts +266 -8
- 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 +291 -7
- 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 +313 -3
- 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 +369 -3
- 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 +2 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +5 -3
- 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 +19 -10
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.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 +6 -0
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.js +2 -2
- 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 +0 -3
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +0 -3
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.js +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 +82 -20
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts +12 -9
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +49 -18
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/package.json +4 -4
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.js +0 -7
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound-email.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/inbound-email/inbound-email.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Receiving email (#1600) — the email channel's own records.\n *\n * #1630 built the channel mechanism (handlers, sender assurance, threads, replies). This file holds what\n * only EMAIL has: where a message is addressed, the domains an organization receives and sends on, the\n * mailboxes a firm keeps for its clients, and the message itself as it was received.\n *\n * | resource | scope | one row per | what it is for |\n * |---|---|---|---|\n * | `inboundEmails` | organization | message routed to that organization | the channel record: bodies, headers, attachments, raw MIME, and the message's disposition |\n * | `organizationEmailDomains` | organization | domain the organization claimed | proving ownership, provisioning it at the provider, receiving and sending on it |\n * | `clientMailboxes` | organization (the CLIENT) | address on a firm's domain | mail to `acme@inbox.firm.com` lands in the client organization, where the case lives |\n * | `inboundAddressTombstones` | application | slug of a deleted organization | a reused slug never receives an old organization's mail |\n *\n * ## Addresses, and the order they are tried in (fail closed)\n *\n * {@link InboundRouteKind}: a reply token first (it names a thread, and its organization must be the one the\n * address reaches), then an exact client mailbox, then a verified organization domain, then the shared\n * domain's `{slug}` address. Anything else is UNROUTABLE and audited. The SENDER never decides where a\n * message goes: a `From` domain is spoofable, and routing on it would let anyone write into any tenant.\n *\n * ## One state per row\n *\n * `inboundEmails.status` is the MESSAGE's disposition. Whether its handler ran is the inbound delivery's\n * status (#1596) — there is no second \"processed\" state here, and no \"quarantined\" one anywhere: a message\n * below its handler's minimum is `STORED_BELOW_MINIMUM`, an infected attachment is listed in\n * `withheldAttachments`.\n */\nimport { z } from 'zod';\nimport { addImpersonalizeWith, z_file } from '@wildo-ai/zod-decorators';\n\nimport { PersonalDataCategory } from '../../compliance/privacy/personal-data-category.shared.schemas';\nimport { RedactionType } from '../../compliance/privacy/redaction.shared.schemas';\nimport { InboundSenderAssurance } from '../../inbound/inbound-channels.shared.schemas';\n\n/** @wildo_source:part:start saas.models.inbound-email facet:layer:shared facet:family:inbound facet:audience:app-developer */\n\n/**\n * What became of a received message. The message's disposition only; the handler's run is the delivery's.\n */\nexport enum InboundEmailStatus {\n /** Stored; at least one attachment has no scan verdict yet. Nothing reaches a handler before every one has one. */\n AWAITING_ATTACHMENT_SCAN = 'awaiting_attachment_scan',\n /** Handed to its channel handler through a stored delivery. */\n DISPATCHED = 'dispatched',\n /**\n * The sender is below the selected handler's minimum assurance and no below-minimum handler is declared.\n * Kept — it is correspondence — audited, and dispatched to nobody. Who sees it is the application's choice.\n */\n STORED_BELOW_MINIMUM = 'stored_below_minimum',\n /** Over a limit (see {@link InboundEmailLimit}). Only the envelope is kept: no bodies, no attachments. */\n REJECTED_LIMIT = 'rejected_limit',\n}\n\n/** How an address reached its organization, in the order routing tries them. */\nexport enum InboundRouteKind {\n /** `{local}+r-{token}@{domain}` — a reply to a thread. The token's organization must be the routed one. */\n REPLY_TOKEN = 'reply_token',\n /** An exact client mailbox on a firm's verified domain, under an ACTIVE service-provider relationship. */\n CLIENT_MAILBOX = 'client_mailbox',\n /** Any address on a VERIFIED receiving domain of the organization; `local+tag` passes `tag`. */\n ORGANIZATION_DOMAIN = 'organization_domain',\n /** `{slug}[+tag]@{sharedDomain}` — the zero-configuration default every organization has. */\n SHARED_DOMAIN = 'shared_domain',\n}\n\n/** Where an organization's claimed domain stands. Only VERIFIED routes and sends. */\nexport enum OrganizationEmailDomainStatus {\n /** Claimed; the DNS TXT ownership challenge is not answered yet. Blocks nobody — several organizations may be here at once. */\n OWNERSHIP_PENDING = 'ownership_pending',\n /** Ownership proven, the domain exists at the provider, and its DNS records are not verified there yet. */\n PROVIDER_PENDING = 'provider_pending',\n /** Ownership proven and the provider verified its records: the domain routes (receiving) and sends (sending). */\n VERIFIED = 'verified',\n /** The provider could not verify the records. Fix the DNS and verify again. */\n FAILED = 'failed',\n /** Was verified; the ownership record or the provider's records disappeared. Routing and sending stop. */\n SUSPENDED = 'suspended',\n}\n\n/**\n * Whether an organization's verified SENDING domain is used beyond thread replies. Applies application-wide.\n * The default keeps the application's own sender on every message the application did not route through a thread.\n */\nexport enum OrganizationSendingDomainUse {\n /** Only replies on a thread go out from the organization's domain. */\n THREAD_REPLIES = 'thread_replies',\n /** Every email sent on behalf of the organization goes out from its verified sending domain. */\n ALL_ORGANIZATION_MAIL = 'all_organization_mail',\n}\n\n/**\n * Whether the original bytes of a received message are kept. Default `KEEP`: DKIM verifies over the original\n * bytes only (RFC 6376 §3.7), so parsed text can never be re-verified, and commercial law asks for received\n * letters to be reproducible as received.\n *\n * spec-cite: RFC 6376 §3.7 (the body hash and signature are computed over the canonicalized ORIGINAL message).\n */\nexport enum InboundEmailRawRetention {\n KEEP = 'keep',\n DISCARD = 'discard',\n}\n\n/** Which limit a `REJECTED_LIMIT` message exceeded. */\nexport enum InboundEmailLimit {\n /** The whole message is larger than the application's configured maximum. */\n MESSAGE_SIZE = 'message_size',\n /** More attachments than {@link INBOUND_EMAIL_MAX_ATTACHMENTS}. */\n ATTACHMENT_COUNT = 'attachment_count',\n /** One attachment is larger than the application's maximum file size. */\n ATTACHMENT_SIZE = 'attachment_size',\n}\n\n/** Why an attachment was not made available to the handler. The message itself still reaches it. */\nexport enum InboundEmailWithheldReason {\n /** The scanner found malware. The file is quarantined and never served. */\n INFECTED = 'infected',\n /** The scan could not run or did not conclude. Not proven clean, so not exposed. */\n SCAN_FAILED = 'scan_failed',\n}\n\n/** Why a verified domain stopped routing and sending. */\nexport enum OrganizationEmailDomainSuspensionReason {\n /** The organization's ownership TXT record is no longer published. */\n OWNERSHIP_RECORD_MISSING = 'ownership_record_missing',\n /** The provider no longer finds the domain's records (or the domain itself). */\n PROVIDER_RECORDS_MISSING = 'provider_records_missing',\n}\n\n/** What removed a domain — both delete the provider's domain (E9). */\nexport enum OrganizationEmailDomainRemovalTrigger {\n /** An organization administrator removed it. */\n REMOVE = 'remove',\n /** The organization was deleted. */\n ORGANIZATION_DELETED = 'organization_deleted',\n}\n\n/** @wildo_source:part:end saas.models.inbound-email */\n\n/** The largest notification body the `inbound-email` endpoint accepts. A notification is small JSON; the message is FETCHED. */\nexport const INBOUND_EMAIL_NOTIFICATION_MAX_BODY_BYTES = 256 * 1024;\n/** The default ceiling on a whole message (the application may lower or raise it). */\nexport const INBOUND_EMAIL_DEFAULT_MAX_MESSAGE_BYTES = 25 * 1024 * 1024;\n/** The most attachments one message may carry. */\nexport const INBOUND_EMAIL_MAX_ATTACHMENTS = 20;\n/** The most text a stored message keeps per body; the rest is cut and `textTruncated` is set. */\nexport const INBOUND_EMAIL_MAX_STORED_TEXT_BYTES = 1024 * 1024;\n\n/**\n * The headers an `inboundEmails` row keeps. An ALLOW-list, not a deny-list: a header is correspondence metadata\n * that can carry personal data, and one not named here is not stored. Threading and authentication headers are\n * kept in their own fields.\n */\nexport const INBOUND_EMAIL_KEPT_HEADERS: readonly string[] = [\n 'date',\n 'from',\n 'to',\n 'cc',\n 'reply-to',\n 'subject',\n 'message-id',\n 'in-reply-to',\n 'references',\n 'return-path',\n 'authentication-results',\n 'content-type',\n 'mime-version',\n 'auto-submitted',\n 'list-id',\n 'precedence',\n];\n\n/** Placeholder written over free text an erasure scrubs. */\nexport const ERASED_INBOUND_EMAIL_TEXT = '[erased]';\n\nconst addressText = (maximum = 320) => addImpersonalizeWith(\n z.string().max(maximum).dataCategories(PersonalDataCategory.CONTACT_DETAILS),\n RedactionType.MASK,\n { maskValue: ERASED_INBOUND_EMAIL_TEXT },\n);\n\n/** One address as a message named it. */\nexport const InboundEmailAddressSchema = z.strictObject({\n address: z.string().max(320).describe('The address.'),\n name: z.string().max(320).optional().describe('The display name the message gave it, when it gave one.'),\n});\n\nexport type InboundEmailAddress = z.infer<typeof InboundEmailAddressSchema>;\n\n/** One attachment that was stored and made available. `fileId` names a `files` row. */\nexport const InboundEmailAttachmentSchema = z.strictObject({\n fileId: z.string().min(1).describe('The stored file. Served only once its scan verdict is clean.'),\n filename: z.string().max(255).describe('The filename the sender gave.'),\n contentType: z.string().max(255).describe('The content type the sender declared.'),\n size: z.number().int().nonnegative().describe('The size in bytes.'),\n contentId: z.string().max(998).optional().describe('The Content-ID of an inline part, without angle brackets.'),\n disposition: z.string().max(20).optional().describe('`attachment` or `inline`, as the sender declared it.'),\n});\n\nexport type InboundEmailAttachment = z.infer<typeof InboundEmailAttachmentSchema>;\n\n/** An attachment that was NOT made available, and why. */\nexport const InboundEmailWithheldAttachmentSchema = z.strictObject({\n filename: z.string().max(255).describe('The filename the sender gave.'),\n reason: z.enum(InboundEmailWithheldReason).systemEnum('InboundEmailWithheldReason').describe('Why it was withheld.'),\n});\n\nexport type InboundEmailWithheldAttachment = z.infer<typeof InboundEmailWithheldAttachmentSchema>;\n\n/**\n * The original bytes, copied at ingest (a provider's download link is signed and expires). `sha256` is of the\n * bytes AS CAPTURED; the stored file must hash to it (E5). Nothing updates this field: `inboundEmails` has no\n * update route and the field is excluded from every write after creation.\n */\nexport const InboundEmailRawMimeSchema = z.strictObject({\n fileId: z.string().min(1).describe('The stored file holding the original message bytes.'),\n sha256: z.string().length(64).describe('The SHA-256 (hex) of the bytes as captured.'),\n sizeBytes: z.number().int().nonnegative().describe('The size of the original message in bytes.'),\n});\n\nexport type InboundEmailRawMime = z.infer<typeof InboundEmailRawMimeSchema>;\n\n/** What the receiving provider concluded about the message's origin (RFC 8601 result names). */\nexport const InboundEmailAuthenticationSchema = z.strictObject({\n spf: z.string().max(20).describe('The SPF result.'),\n dkim: z.string().max(20).describe('The DKIM result.'),\n dmarc: z.string().max(20).describe('The DMARC result.'),\n dmarcAligned: z.boolean().describe('Whether the From domain aligned with an authenticated identifier.'),\n});\n\n/**\n * One received message, in the organization it was routed to.\n *\n * A message addressed to two organizations is one row in EACH: routing decides the organization, and a row\n * never names another tenant.\n */\nexport const InboundEmailSchema = z.object({\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n organizationId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate(),\n\n // IDENTITY ────────────────────────────────────────────────────────────────\n /** The stage-1 delivery that carried the provider's notification (#1596). */\n inboundDeliveryId: z.string().min(1).isDBIndexed().excludeFromUpdate()\n .describe('The stored delivery of the provider\\'s notification that announced this message.'),\n providerRef: z.string().min(1).max(100).excludeFromUpdate().describe('The provider that received the message.'),\n providerMessageId: z.string().min(1).max(200).isDBIndexed().excludeFromUpdate()\n .describe('The provider\\'s id for the message.'),\n messageId: z.string().max(998).nullable().default(null).excludeFromUpdate()\n .describe('The Message-ID the message carried, angle brackets included, when it carried a well-formed one.'),\n\n // THREADING ───────────────────────────────────────────────────────────────\n inReplyTo: z.string().max(998).nullable().default(null).excludeFromUpdate().describe('The Message-ID this message answers.'),\n references: z.array(z.string().max(998)).max(100).default([]).excludeFromUpdate().describe('The Message-IDs of the thread before it, oldest first.'),\n threadId: z.string().isDBIndexed().nullable().default(null).excludeFromUpdate()\n .describe('The conversation thread the message was recorded in, once it was dispatched.'),\n\n // ADDRESSING ──────────────────────────────────────────────────────────────\n /** The sender's address, lower-cased. Indexed: a data subject's erasure finds their letters by it. */\n fromAddress: addressText().isDBIndexed().isSummaryField().excludeFromUpdate()\n .describe('The sender\\'s address.'),\n fromName: addImpersonalizeWith(\n z.string().max(320).nullable().default(null).dataCategories(PersonalDataCategory.CONTACT_DETAILS),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The sender\\'s display name.'),\n to: addImpersonalizeWith(\n z.array(InboundEmailAddressSchema).default([]).dataCategories(PersonalDataCategory.CONTACT_DETAILS),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The addresses in To.'),\n cc: addImpersonalizeWith(\n z.array(InboundEmailAddressSchema).default([]).dataCategories(PersonalDataCategory.CONTACT_DETAILS),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The addresses in Cc.'),\n replyTo: addImpersonalizeWith(\n z.string().max(320).nullable().default(null).dataCategories(PersonalDataCategory.CONTACT_DETAILS),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The Reply-To address, when the message named one.'),\n /** The recipient the message was routed on — one of the envelope recipients, on this organization's route. */\n receivedFor: z.string().min(1).max(320).isDBIndexed().isSummaryField().excludeFromUpdate()\n .describe('The address the message was delivered for, which routing read.'),\n routeKind: z.enum(InboundRouteKind).systemEnum('InboundRouteKind').isSummaryField().excludeFromUpdate()\n .describe('How that address reached this organization.'),\n routeTag: z.string().max(64).nullable().default(null).excludeFromUpdate()\n .describe('The tag the address carried (`cases+tag@…`), which selects the handler.'),\n\n // CONTENT ─────────────────────────────────────────────────────────────────\n subject: addImpersonalizeWith(\n z.string().max(998).default('').isSummaryField().dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.MASK,\n { maskValue: ERASED_INBOUND_EMAIL_TEXT },\n ).excludeFromUpdate().describe('The subject.'),\n textBody: addImpersonalizeWith(\n z.string().nullable().default(null).dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The plain-text body, cut at 1 MB.'),\n /** RAW as received. Never trusted as markup: rendered only in a sandboxed frame that runs nothing and loads nothing remote. */\n htmlBody: addImpersonalizeWith(\n z.string().nullable().default(null).dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The HTML body as received, cut at 1 MB; shown only in a sandboxed frame that runs nothing and loads nothing remote.'),\n strippedReply: addImpersonalizeWith(\n z.string().nullable().default(null).dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The new part of a reply, without the quoted history, when it could be separated.'),\n headers: addImpersonalizeWith(\n z.record(z.string(), z.string()).default({}).dataCategories(PersonalDataCategory.CONTACT_DETAILS),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The allow-listed headers the message carried.'),\n textTruncated: z.boolean().default(false).excludeFromUpdate().describe('Whether a body was cut at the stored-text limit.'),\n\n // AUTHENTICATION ──────────────────────────────────────────────────────────\n authentication: InboundEmailAuthenticationSchema.excludeFromUpdate()\n .describe('The SPF, DKIM and DMARC results the receiving provider reported.'),\n senderAssurance: z.enum(InboundSenderAssurance).systemEnum('InboundSenderAssurance').nullable().default(null).excludeFromUpdate()\n .describe('How well the sender is known, as the channel derived it; null until the message was admitted.'),\n\n // ATTACHMENTS AND RAW ─────────────────────────────────────────────────────\n // What the sender attached, as stored — filenames are the sender's words, so they are reset on erasure.\n attachments: addImpersonalizeWith(\n z.array(InboundEmailAttachmentSchema).default([]).dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The attachments that were stored, each with the verdict-independent metadata the sender declared.'),\n withheldAttachments: addImpersonalizeWith(\n z.array(InboundEmailWithheldAttachmentSchema).default([]).dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.RESET,\n ).excludeFromUpdate().describe('The attachments that were not made available, and why.'),\n /**\n * The CLEAN attachments, as files LINKED to this row. Linking is what keeps them: an unlinked file is swept by\n * the files cleanup a day after its scan, so a message's attachments would otherwise outlive it by one day. It is\n * also what serves them: the file routes authorize a linked file through this row's READ. Set only once every\n * verdict is known; an infected or unscannable file is never linked, so it is never served and is swept.\n * Removed — and its files erased — when the message is impersonalized.\n */\n attachmentFiles: addImpersonalizeWith(\n z_file({ multiple: true, maxFiles: INBOUND_EMAIL_MAX_ATTACHMENTS }).optional().dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.REMOVE,\n ).excludeFromCreate().excludeFromUpdate().describe('The clean attachments, as files readable wherever the message is.'),\n rawMime: InboundEmailRawMimeSchema.nullable().default(null).excludeFromUpdate()\n .describe('The original message\\'s digest and size, as captured.'),\n /**\n * The original message bytes as a file LINKED to this row — for the same two reasons as `attachmentFiles`. Set\n * only when its scan is clean (the raw message contains every attachment). Removed, and the file erased, when the\n * message is impersonalized: the raw bytes hold everything the reset text fields held.\n */\n rawMimeFile: addImpersonalizeWith(\n z_file().optional().dataCategories(PersonalDataCategory.USER_CONTENT),\n RedactionType.REMOVE,\n ).excludeFromCreate().excludeFromUpdate().describe('The original message, as a file readable wherever the message is.'),\n sizeBytes: z.number().int().nonnegative().excludeFromUpdate().describe('The size of the message in bytes.'),\n receivedAt: z.date().isDBIndexed().isSummaryField().excludeFromUpdate().describe('When the provider received the message.'),\n\n // DISPOSITION ─────────────────────────────────────────────────────────────\n status: z.enum(InboundEmailStatus).systemEnum('InboundEmailStatus').isDBIndexed().isSummaryField().excludeFromCreate().excludeFromUpdate()\n .describe('What became of the message.'),\n limitExceeded: z.enum(InboundEmailLimit).systemEnum('InboundEmailLimit').nullable().default(null).excludeFromCreate().excludeFromUpdate()\n .describe('For a message rejected over a limit, which one.'),\n\n createdAt: z.date().default(() => new Date()).isDBIndexed().excludeFromCreate().excludeFromUpdate(),\n updatedAt: z.date().default(() => new Date()).excludeFromCreate().excludeFromUpdate(),\n}).businessKeySet(['organizationId', 'providerRef', 'providerMessageId']);\n\nexport type InboundEmail = z.infer<typeof InboundEmailSchema>;\n\n/** The DNS ownership challenge an organization answers before its domain is created anywhere. */\nexport const EmailDomainOwnershipChallengeSchema = z.strictObject({\n txtName: z.string().min(1).max(253).describe('The DNS name the TXT record is published on.'),\n /** SHA-256 of the challenge value. The value itself is shown once, when the domain is claimed. */\n nonceHash: z.string().length(64).describe('The SHA-256 of the challenge value.'),\n});\n\nexport type EmailDomainOwnershipChallenge = z.infer<typeof EmailDomainOwnershipChallengeSchema>;\n\n/** One DNS record the provider asks the organization to publish, copied as the provider reported it. */\nexport const EmailDomainDnsRecordSchema = z.strictObject({\n purpose: z.string().max(40).describe('What the record is for, as the provider named it (DKIM, SPF, MX…).'),\n type: z.string().max(10).describe('The record type.'),\n name: z.string().max(253).describe('The name to publish it on.'),\n value: z.string().max(4096).describe('The value to publish.'),\n priority: z.number().int().optional().describe('For an MX record, its priority.'),\n status: z.string().max(40).optional().describe('Whether the provider has seen it yet.'),\n});\n\nexport type EmailDomainDnsRecord = z.infer<typeof EmailDomainDnsRecordSchema>;\n\n/** What an organization uses a domain for. */\nexport const EmailDomainCapabilitiesSchema = z.strictObject({\n sending: z.boolean().describe('Replies and organization mail may be sent from it.'),\n receiving: z.boolean().describe('Mail addressed to it is routed to the organization.'),\n});\n\nexport type EmailDomainCapabilities = z.infer<typeof EmailDomainCapabilitiesSchema>;\n\n/**\n * A domain an organization claimed, from the ownership challenge to a verified sending and receiving domain.\n *\n * Ownership is proven PER ORGANIZATION before anything is created at the provider (review H1): every tenant\n * shares one provider account, so the provider's own verification would accept a squatter's claim the moment\n * the real owner published its records. Pending claims block nobody; the first organization to prove\n * ownership wins, and from then on the domain is refused to everyone else.\n */\nexport const OrganizationEmailDomainSchema = z.object({\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n organizationId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate(),\n /** Lower-case DNS hostname. Not unique: several organizations may hold PENDING claims on one domain. */\n domain: z.string().min(4).max(253).isDBIndexed().isSummaryField().excludeFromUpdate()\n .describe('The domain, e.g. `inbox.firm.com`. A subdomain keeps the organization\\'s existing mailbox untouched.'),\n capabilities: EmailDomainCapabilitiesSchema.excludeFromUpdate()\n .describe('Whether the organization sends from it, receives on it, or both.'),\n providerRef: z.string().max(100).nullable().default(null).excludeFromCreate().excludeFromUpdate()\n .describe('The provider the domain was created at, once ownership was proven.'),\n providerDomainId: z.string().max(200).isDBIndexed().nullable().default(null).excludeFromCreate().excludeFromUpdate()\n .describe('The provider\\'s id for the domain, once created there.'),\n /**\n * Where to publish the ownership TXT record, and the SHA-256 of the value to publish. The value itself is\n * answered once, by `claim`; claiming again mints a fresh one and invalidates the old.\n */\n ownershipChallenge: EmailDomainOwnershipChallengeSchema.excludeFromCreate().excludeFromUpdate()\n .describe('The DNS TXT ownership challenge: the name to publish it on, and a hash of the value.'),\n status: z.enum(OrganizationEmailDomainStatus).systemEnum('OrganizationEmailDomainStatus').isDBIndexed().isSummaryField()\n .excludeFromCreate().excludeFromUpdate()\n .describe('Where the domain stands. Only a verified domain routes and sends.'),\n dnsRecords: z.array(EmailDomainDnsRecordSchema).default([]).excludeFromCreate().excludeFromUpdate()\n .describe('The records the provider asks to be published, as it reported them.'),\n ownershipVerifiedAt: z.date().nullable().default(null).excludeFromCreate().excludeFromUpdate()\n .describe('When the organization proved it owns the domain.'),\n lastVerifiedAt: z.date().nullable().default(null).excludeFromCreate().excludeFromUpdate()\n .describe('When the domain was last found verified.'),\n createdAt: z.date().default(() => new Date()).isDBIndexed().excludeFromCreate().excludeFromUpdate(),\n updatedAt: z.date().default(() => new Date()).excludeFromCreate().excludeFromUpdate(),\n}).businessKeySet(['organizationId', 'domain']);\n\nexport type OrganizationEmailDomain = z.infer<typeof OrganizationEmailDomainSchema>;\n\n/**\n * A mailbox a firm keeps for one of its clients on the firm's own domain (S1): `acme@inbox.firm.com` → the\n * client organization Acme, so the work lands where the case lives.\n *\n * OWNED BY THE FIRM — scoped to the organization that owns the domain, and created and deleted only by it. The\n * domain owner decides what each of its addresses does, as every mail host does (a Google Workspace or Microsoft 365\n * administrator creates the addresses on their domain; no one else can). The first design let the CLIENT create the\n * row in its own organization, which let a client take any address on the firm's domain — the firm's own intake\n * address included — and route the firm's mail into itself, with no way for the firm to remove it.\n *\n * It routes only while its domain is VERIFIED for receiving and still the firm's, and the service-provider\n * relationship (#1597) is ACTIVE — re-checked for every message. The client ends it by ending the relationship.\n */\nexport const ClientMailboxSchema = z.object({\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The FIRM — the organization that owns the domain and the mailbox. */\n organizationId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate(),\n /** Lower-case, unique across the application: one address routes to one organization. */\n address: z.string().min(3).max(320).isUnique({ scope: 'global', sparse: false }).isSummaryField().excludeFromUpdate()\n .describe('The mailbox address, on the firm\\'s verified domain.'),\n /** The firm's domain. A plain id: it names a row of ANOTHER tenant, and a navigable edge across tenants is refused. */\n emailDomainId: z.string().min(1).isDBIndexed().isSummaryField().excludeFromUpdate()\n .describe('The firm\\'s email domain the address is on.'),\n serviceProviderRelationshipId: z.string().min(1).isDBIndexed().isSummaryField().excludeFromUpdate()\n .describe('The relationship between the client and the firm that authorizes this mailbox.'),\n /** A plain id, not a navigable edge: it names ANOTHER tenant. */\n clientOrganizationId: z.string().min(1).isDBIndexed().isSummaryField().excludeFromCreate().excludeFromUpdate()\n .describe('The client organization the mail lands in, as the relationship names it.'),\n createdAt: z.date().default(() => new Date()).isDBIndexed().excludeFromCreate().excludeFromUpdate(),\n updatedAt: z.date().default(() => new Date()).excludeFromCreate().excludeFromUpdate(),\n});\n\nexport type ClientMailbox = z.infer<typeof ClientMailboxSchema>;\n\n/**\n * The slug of a deleted organization, which the shared domain never routes again (L3). Kept for as long as\n * the application exists: a tombstone that expired would hand an old organization's correspondents to\n * whoever took the slug next.\n */\nexport const InboundAddressTombstoneSchema = z.object({\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n applicationId: z.string().min(1).isDBIndexed().isForeignKey().excludeFromUpdate(),\n slug: z.string().min(1).max(50).isUnique({ scope: 'global', sparse: false }).isSummaryField().excludeFromUpdate()\n .describe('The slug of the deleted organization.'),\n tombstonedAt: z.date().isSummaryField().excludeFromUpdate().describe('When the organization was deleted.'),\n createdAt: z.date().default(() => new Date()).isDBIndexed().excludeFromCreate().excludeFromUpdate(),\n updatedAt: z.date().default(() => new Date()).excludeFromCreate().excludeFromUpdate(),\n});\n\nexport type InboundAddressTombstone = z.infer<typeof InboundAddressTombstoneSchema>;\n\n/** @wildo_source:part:start saas.models.inbound-email-domains facet:layer:shared facet:family:inbound facet:audience:app-developer */\n\n/** The verbs of `organizationEmailDomains`, each audited. */\nexport enum OrganizationEmailDomains_Operations {\n /** Mint the organization's DNS TXT ownership challenge. Creates nothing at the provider. */\n CLAIM = 'claim',\n /** Resolve the TXT record; the first organization to prove ownership wins, and only then is the domain created at the provider. */\n VERIFY_OWNERSHIP = 'verify_ownership',\n /** Ask the provider to verify the domain's records. */\n VERIFY = 'verify',\n /** Delete the domain at the provider, and the row. */\n REMOVE = 'remove',\n}\n\n/** A claim: the domain and what it will be used for. */\nexport const OrganizationEmailDomainClaimRequestSchema = z.object({\n domain: z.string()\n .min(4)\n .max(253)\n .regex(/^(?!-)[A-Za-z0-9-]{1,63}(?<!-)(\\.(?!-)[A-Za-z0-9-]{1,63}(?<!-))+$/, 'Provide a DNS hostname with at least two labels, e.g. \"inbox.firm.com\".')\n .describe('The domain to claim, e.g. `inbox.firm.com`.'),\n capabilities: EmailDomainCapabilitiesSchema.default({ sending: true, receiving: true })\n .describe('Whether the organization will send from it, receive on it, or both.'),\n});\n\nexport type OrganizationEmailDomainClaimRequest = z.infer<typeof OrganizationEmailDomainClaimRequestSchema>;\n\n/**\n * What `claim` answers: the claim, and the ONE time the ownership record's value is shown. Only its hash is\n * stored, so claiming again is how a lost value is recovered — and it replaces the old one.\n */\nexport const OrganizationEmailDomainClaimResponseSchema = z.object({\n organizationEmailDomainId: z.string().describe('The claim.'),\n domain: z.string().describe('The domain claimed.'),\n status: z.enum(OrganizationEmailDomainStatus).describe('OWNERSHIP_PENDING until the record is found.'),\n txtName: z.string().describe('The DNS name to publish the TXT record on.'),\n // `.isEphemeral()`: the frontend reveals it once, in the dialog that must be acknowledged (the SSO domain claim's contract).\n txtValue: z.string().isEphemeral().describe('The TXT record value to publish. Shown once.'),\n});\n\nexport type OrganizationEmailDomainClaimResponse = z.infer<typeof OrganizationEmailDomainClaimResponseSchema>;\n\n/** What `remove` answers: which domain went, and whether the provider still held it and deleted it. */\nexport const OrganizationEmailDomainRemoveResponseSchema = z.object({\n organizationEmailDomainId: z.string().describe('The removed domain.'),\n domain: z.string().describe('The domain name.'),\n providerDomainDeleted: z.boolean().describe('Whether the domain existed at the email provider and was deleted there.'),\n});\n\nexport type OrganizationEmailDomainRemoveResponse = z.infer<typeof OrganizationEmailDomainRemoveResponseSchema>;\n\n/** The prefix of an email domain ownership record's value; the nonce follows it. */\nexport const EMAIL_DOMAIN_OWNERSHIP_TXT_PREFIX = 'wildo-email-domain-verification=';\n/** The label the ownership record is published under: `_wildo-verification.{domain}` (the SSO challenge's name). */\nexport const EMAIL_DOMAIN_OWNERSHIP_TXT_LABEL = '_wildo-verification';\n\n/** A client mailbox, as a firm or a client administrator asks for it. */\nexport const ClientMailboxCreateRequestSchema = z.object({\n address: z.string().min(3).max(320).describe('The mailbox address, e.g. `acme@inbox.firm.com`.'),\n emailDomainId: z.string().min(1).describe('This organization\\'s verified receiving domain the address is on.'),\n serviceProviderRelationshipId: z.string().min(1).describe('The ACTIVE relationship in which this organization serves the client.'),\n});\n\n/**\n * An application's receiving-email settings (`email.inbound` in the backend configuration). Every field has a\n * safe default, and the section is optional: an application that receives no email declares nothing.\n */\nexport const InboundEmailConfigSchema = z.object({\n /**\n * The application's SHARED receiving domain — every organization's zero-configuration address is\n * `{slug}@{sharedDomain}`. Its MX points at the receiving provider. Absent, the shared address does not exist\n * and only organization domains and client mailboxes route.\n */\n sharedDomain: z.string()\n .min(4)\n .max(253)\n .regex(/^(?!-)[a-z0-9-]{1,63}(?<!-)(\\.(?!-)[a-z0-9-]{1,63}(?<!-))+$/, 'A lower-case DNS hostname, e.g. \"in.example.com\".')\n .optional()\n .describe('The shared receiving domain: every organization is reachable at {slug}@{sharedDomain}.'),\n /** Keep the original bytes of every received message (default), or discard them. */\n rawMimeRetention: z.enum(InboundEmailRawRetention).default(InboundEmailRawRetention.KEEP)\n .describe('Whether the original message bytes are kept; kept by default, because only they can be re-verified.'),\n /** Whether an organization's verified sending domain is used for all its mail, or for thread replies only (default). */\n organizationSendingDomainUse: z.enum(OrganizationSendingDomainUse).default(OrganizationSendingDomainUse.THREAD_REPLIES)\n .describe('Where an organization\\'s verified sending domain is used as the sender.'),\n /** The largest message accepted whole; a larger one is kept as its envelope only (REJECTED_LIMIT). */\n maxMessageSizeBytes: z.number().int().positive().max(100 * 1024 * 1024).default(INBOUND_EMAIL_DEFAULT_MAX_MESSAGE_BYTES)\n .describe('The largest message accepted whole, in bytes.'),\n});\n\nexport type InboundEmailConfig = z.infer<typeof InboundEmailConfigSchema>;\n\n/** @wildo_source:part:end saas.models.inbound-email-domains */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Addresses — pure functions every consumer shares, so routing and reply composition cannot disagree.\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** The prefix of a reply-token sub-address: `{local}+r-{token}@{domain}`. */\nexport const REPLY_TOKEN_SUBADDRESS_PREFIX = 'r-';\n\n/** A reply token as it appears in an address: base64url, at least 128 bits (22 characters). */\nconst REPLY_TOKEN_PATTERN = /^[A-Za-z0-9_-]{22,128}$/;\n/** A route tag: the same shape as `INBOUND_ROUTE_TAG_PATTERN` on the backend. */\nconst ROUTE_TAG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\n/** An address taken apart. `local` is the part before any `+`; `domain` is lower-cased. */\nexport interface ParsedInboundAddress {\n readonly address: string;\n readonly local: string;\n readonly domain: string;\n /** The sub-address after `+`, when it is a route tag. */\n readonly tag?: string;\n /** The reply token, when the sub-address is `r-{token}`. Case preserved: a token is case-sensitive. */\n readonly replyToken?: string;\n}\n\n/**\n * Take an envelope recipient apart. Returns `undefined` for anything that is not `local@domain` with a\n * non-empty local part — such an address routes nowhere.\n *\n * The local part is compared lower-cased (mailboxes here are case-insensitive, and the provider lower-cases\n * nothing); the reply token alone keeps its case.\n */\nexport function parseInboundAddress(raw: string): ParsedInboundAddress | undefined {\n const trimmed = raw.trim().replace(/^<|>$/g, '');\n const at = trimmed.lastIndexOf('@');\n if (at <= 0 || at === trimmed.length - 1) return undefined;\n const localRaw = trimmed.slice(0, at);\n const domain = trimmed.slice(at + 1).toLowerCase();\n if (!/^[a-z0-9.-]+$/.test(domain) || !domain.includes('.')) return undefined;\n const plus = localRaw.indexOf('+');\n const local = (plus >= 0 ? localRaw.slice(0, plus) : localRaw).toLowerCase();\n if (local.length === 0) return undefined;\n const address = `${localRaw.toLowerCase()}@${domain}`;\n if (plus < 0) return { address, local, domain };\n const sub = localRaw.slice(plus + 1);\n if (sub.toLowerCase().startsWith(REPLY_TOKEN_SUBADDRESS_PREFIX) && REPLY_TOKEN_PATTERN.test(sub.slice(REPLY_TOKEN_SUBADDRESS_PREFIX.length))) {\n return { address, local, domain, replyToken: sub.slice(REPLY_TOKEN_SUBADDRESS_PREFIX.length) };\n }\n const tag = sub.toLowerCase();\n return ROUTE_TAG_PATTERN.test(tag) ? { address, local, domain, tag } : { address, local, domain };\n}\n\n/** `{local}+r-{token}@{domain}` — the address a reply on a thread carries in Reply-To. */\nexport function composeReplyTokenAddress(local: string, token: string, domain: string): string {\n return `${local.toLowerCase()}+${REPLY_TOKEN_SUBADDRESS_PREFIX}${token}@${domain.toLowerCase()}`;\n}\n\n/** How many trailing characters of an organization id disambiguate a reused slug. */\nexport const SHARED_DOMAIN_SHORT_ORGANIZATION_ID_LENGTH = 8;\n\n/** The trailing characters of an organization id that follow a reused slug: `{slug}.{shortOrgId}`. */\nexport function shortOrganizationId(organizationId: string): string {\n return organizationId.toLowerCase().replace(/[^a-z0-9]/g, '').slice(-SHARED_DOMAIN_SHORT_ORGANIZATION_ID_LENGTH);\n}\n\n/**\n * What separates a reused slug from its organization's short id. A DOT, because an organization slug cannot contain\n * one (`^[a-z0-9]+(?:-[a-z0-9]+)*$`): with a hyphen, `{slug}-{shortOrgId}` was itself a valid slug, and an organization\n * registering exactly that slug would have been routed its victim's mail. A dot is legal in an RFC 5321 local part.\n */\nexport const SHARED_DOMAIN_REUSED_SLUG_SEPARATOR = '.';\n\n/**\n * An organization's local part on the shared domain: its slug, or `{slug}.{shortOrgId}` when its slug was\n * once held by a DELETED organization — so mail written to the old organization never reaches the new one.\n */\nexport function sharedDomainLocalPartFor(slug: string, organizationId: string, slugTombstoned: boolean): string {\n return slugTombstoned ? `${slug}${SHARED_DOMAIN_REUSED_SLUG_SEPARATOR}${shortOrganizationId(organizationId)}` : slug;\n}\n"]}
|
package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EAEtB,MAAM,mDAAmD,CAAC;AAkB3D,oBAAY,gCAAgC;IAC1C,wFAAwF;IACxF,KAAK,UAAU;IACf,0EAA0E;IAC1E,SAAS,aAAa;CACvB;AAMD;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,iCAAqB,CAAC;AAExE,eAAO,MAAM,wCAAwC;;
|
|
1
|
+
{"version":3,"file":"m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EAEtB,MAAM,mDAAmD,CAAC;AAkB3D,oBAAY,gCAAgC;IAC1C,wFAAwF;IACxF,KAAK,UAAU;IACf,0EAA0E;IAC1E,SAAS,aAAa;CACvB;AAMD;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,iCAAqB,CAAC;AAExE,eAAO,MAAM,wCAAwC;;iBAInD,CAAC;AAMH,eAAO,MAAM,yCAAyC,oVAkLrD,CAAC"}
|
package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js
CHANGED
|
@@ -50,7 +50,8 @@ export var M2MWebhookDeliveryLog_Operations;
|
|
|
50
50
|
export const M2MWebhookDeliveryLog_RetryRequestDto = z.strictObject({});
|
|
51
51
|
export const M2MWebhookDeliveryLog_PurgeOldRequestDto = z.object({
|
|
52
52
|
/** Rows whose `createdAt` is older than `now() - olderThanDays` are eligible. */
|
|
53
|
-
olderThanDays: z.number().int().positive().max(365)
|
|
53
|
+
olderThanDays: z.number().int().positive().max(365)
|
|
54
|
+
.describe('Age threshold in days: delivered and failed deliveries created more than this many days ago are deleted. Deliveries still pending or in flight are never deleted.'),
|
|
54
55
|
});
|
|
55
56
|
// =============================================================================
|
|
56
57
|
// POLYMORPHIC FACTORY
|
|
@@ -223,8 +224,8 @@ export const m2mWebhookDeliveryLogPolymorphicFactories = createPolymorphicResour
|
|
|
223
224
|
resourceOperationLike: CoreResourceOperation.DELETE_MANY,
|
|
224
225
|
requestDto: M2MWebhookDeliveryLog_PurgeOldRequestDto,
|
|
225
226
|
customResponseDto: z.object({
|
|
226
|
-
purgedCount: z.number(),
|
|
227
|
-
message: z.string(),
|
|
227
|
+
purgedCount: z.number().describe('How many delivered or failed deliveries older than the requested window were deleted.'),
|
|
228
|
+
message: z.string().describe('A human-readable summary of the purge.'),
|
|
228
229
|
}),
|
|
229
230
|
},
|
|
230
231
|
],
|
package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"m2m-webhook-delivery-log.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * M2M Webhook Delivery Log Resource Configuration — Polymorphic dual-scope\n *\n * Produces 2 factory functions (ORG + APP) via the polymorphic factory.\n * Spread into the registry factory map:\n * ...m2mWebhookDeliveryLogPolymorphicFactories\n *\n * Operation set (per Plan §D3 / Step 5):\n * - READ (API) : admin views a single delivery row\n * - LIST (API) : admin browses recent deliveries\n * - SEARCH (API) : admin filters deliveries (status / endpoint / date)\n * - CREATE (REPOSITORY_ONLY) : dispatcher-only — never externally callable\n * - DELETE (REPOSITORY_ONLY) : reserved for `PURGE_OLD` bulk path; no\n * external single-row delete to keep the\n * audit trail stable\n * - RETRY (custom, API) : re-enqueue a `FAILED` row (mirrors\n * SIEM DLQ `RETRY_SINGLE`)\n * - PURGE_OLD (custom, API) : delete `DELIVERED`/`FAILED` rows older\n * than N days (mirrors SIEM DLQ\n * `PURGE_ALL` but date-bounded)\n *\n * @see m2m-webhook-organization-delivery.md — Phase 2 / Step 5\n * @see security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.ts\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n} from '../../resources/resources.shared.core.definitions';\nimport {\n ResourceOperationRiskLevel,\n ResourceOperationReversibility,\n ResourceOperationVariantType,\n} from '../../resources/resources.shared.schemas';\nimport { createPolymorphicResourceConfigurations } from '../../resources/utils/resource-polymorphism.factory';\nimport { CORE_ORG_ROLES, CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { CoreM2MNotificationChannel } from '../notifications.shared.schemas';\nimport {\n m2mWebhookDeliveryLogPolymorphicDeclaration,\n M2MWebhookDeliveryLogStatus,\n} from './m2m-webhook-delivery-log.shared.schemas';\n\n// =============================================================================\n// CUSTOM OPERATIONS\n// =============================================================================\n\nexport enum M2MWebhookDeliveryLog_Operations {\n /** Re-enqueue a single `FAILED` row (resets `status → PENDING`, `attemptCount → 0`). */\n RETRY = 'retry',\n /** Bulk delete `DELIVERED` / `FAILED` rows older than `olderThanDays`. */\n PURGE_OLD = 'purgeOld',\n}\n\n// =============================================================================\n// REQUEST DTOs\n// =============================================================================\n\n/**\n * RETRY addresses exactly one delivery row through the route path. Keeping the\n * body empty prevents two independently supplied ids from disagreeing; the\n * backend custom implementation uses the framework-resolved entity id.\n */\nexport const M2MWebhookDeliveryLog_RetryRequestDto = z.strictObject({});\n\nexport const M2MWebhookDeliveryLog_PurgeOldRequestDto = z.object({\n /** Rows whose `createdAt` is older than `now() - olderThanDays` are eligible. */\n olderThanDays: z.number().int().positive().max(365),\n});\n\n// =============================================================================\n// POLYMORPHIC FACTORY\n// =============================================================================\n\nexport const m2mWebhookDeliveryLogPolymorphicFactories = createPolymorphicResourceConfigurations(\n m2mWebhookDeliveryLogPolymorphicDeclaration,\n {\n isSystemResource: true,\n customOperation: M2MWebhookDeliveryLog_Operations,\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n CoreResourceOperation.CREATE,\n // UPDATE is the delivery lifecycle: the dispatcher/worker drives the\n // PENDING → IN_FLIGHT → DELIVERED/FAILED status transitions\n // (markInFlight / markDelivered / markFailedAttempt / markFinallyFailed)\n // through the generic `repository.update`, which requires a DEFAULT UPDATE\n // operation. REPOSITORY_ONLY like CREATE — never a public HTTP surface\n // (admins act via the RETRY custom operation, which owns request/response).\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n ],\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.LIST]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.SEARCH]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n isSearchable: true,\n searchableFields: ['endpointId', 'resourceIdentifier', 'operationIdentifier', 'failureReason'],\n filterFields: {\n status: z.enum(M2MWebhookDeliveryLogStatus),\n channel: z.enum(CoreM2MNotificationChannel),\n endpointId: z.string(),\n createdAt: z.date(),\n },\n sortFields: ['createdAt', 'status', 'attemptCount'] as const,\n },\n ],\n },\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n // Delivery-lifecycle status transitions (dispatcher/worker only). Mirrors\n // CREATE: REPOSITORY_ONLY default so `repository.update` resolves a default\n // UPDATE op; never exposed as a public HTTP mutation.\n [CoreResourceOperation.UPDATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n // Bulk twin of DELETE — the actual `PURGE_OLD` write path: the custom impl\n // routes through the repository's `deleteMany` (which requires a default\n // DELETE_MANY operation) to drop terminal DELIVERED/FAILED rows older\n // than the requested retention window in one round trip. REPOSITORY_ONLY:\n // never a public HTTP surface — admins purge via the PURGE_OLD custom\n // operation, which owns the request validation + response summary.\n [CoreResourceOperation.DELETE_MANY]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n [M2MWebhookDeliveryLog_Operations.RETRY]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: M2MWebhookDeliveryLog_RetryRequestDto,\n },\n ],\n },\n [M2MWebhookDeliveryLog_Operations.PURGE_OLD]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n // IRREVERSIBLE: Deletes delivery-log rows outright. Nothing retains them afterwards.\n // This is what admits it to the danger zone; risk alone no longer does.\n reversibility: ResourceOperationReversibility.IRREVERSIBLE,\n // Borrows the COLLECTION verb DELETE_MANY (not entity DELETE): purging\n // rows older than `olderThanDays` acts on the whole scope, so it needs a\n // collection route (`…/m2m-webhook-delivery-log/purge-old`, no `:id`) —\n // a scope-level maintenance action has no single row to address. Mirrors\n // SIEM DLQ `PURGE_ALL`. `isBulkOperation` stays unset (collection-level,\n // not a selection bulk). Returns a purge summary, NOT the borrowed\n // bulk-delete default `{ deletedIds, deletedCount }` — customResponseDto\n // overrides it. Impl: `m2m-webhook-delivery-log.custom-impl.backend.service.ts`\n // (saas-backend-lib) — deleteMany of terminal rows older than the window.\n resourceOperationLike: CoreResourceOperation.DELETE_MANY,\n requestDto: M2MWebhookDeliveryLog_PurgeOldRequestDto,\n customResponseDto: z.object({\n purgedCount: z.number(),\n message: z.string(),\n }),\n },\n ],\n },\n },\n },\n);\n"]}
|
|
1
|
+
{"version":3,"file":"m2m-webhook-delivery-log.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * M2M Webhook Delivery Log Resource Configuration — Polymorphic dual-scope\n *\n * Produces 2 factory functions (ORG + APP) via the polymorphic factory.\n * Spread into the registry factory map:\n * ...m2mWebhookDeliveryLogPolymorphicFactories\n *\n * Operation set (per Plan §D3 / Step 5):\n * - READ (API) : admin views a single delivery row\n * - LIST (API) : admin browses recent deliveries\n * - SEARCH (API) : admin filters deliveries (status / endpoint / date)\n * - CREATE (REPOSITORY_ONLY) : dispatcher-only — never externally callable\n * - DELETE (REPOSITORY_ONLY) : reserved for `PURGE_OLD` bulk path; no\n * external single-row delete to keep the\n * audit trail stable\n * - RETRY (custom, API) : re-enqueue a `FAILED` row (mirrors\n * SIEM DLQ `RETRY_SINGLE`)\n * - PURGE_OLD (custom, API) : delete `DELIVERED`/`FAILED` rows older\n * than N days (mirrors SIEM DLQ\n * `PURGE_ALL` but date-bounded)\n *\n * @see m2m-webhook-organization-delivery.md — Phase 2 / Step 5\n * @see security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.ts\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n} from '../../resources/resources.shared.core.definitions';\nimport {\n ResourceOperationRiskLevel,\n ResourceOperationReversibility,\n ResourceOperationVariantType,\n} from '../../resources/resources.shared.schemas';\nimport { createPolymorphicResourceConfigurations } from '../../resources/utils/resource-polymorphism.factory';\nimport { CORE_ORG_ROLES, CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { CoreM2MNotificationChannel } from '../notifications.shared.schemas';\nimport {\n m2mWebhookDeliveryLogPolymorphicDeclaration,\n M2MWebhookDeliveryLogStatus,\n} from './m2m-webhook-delivery-log.shared.schemas';\n\n// =============================================================================\n// CUSTOM OPERATIONS\n// =============================================================================\n\nexport enum M2MWebhookDeliveryLog_Operations {\n /** Re-enqueue a single `FAILED` row (resets `status → PENDING`, `attemptCount → 0`). */\n RETRY = 'retry',\n /** Bulk delete `DELIVERED` / `FAILED` rows older than `olderThanDays`. */\n PURGE_OLD = 'purgeOld',\n}\n\n// =============================================================================\n// REQUEST DTOs\n// =============================================================================\n\n/**\n * RETRY addresses exactly one delivery row through the route path. Keeping the\n * body empty prevents two independently supplied ids from disagreeing; the\n * backend custom implementation uses the framework-resolved entity id.\n */\nexport const M2MWebhookDeliveryLog_RetryRequestDto = z.strictObject({});\n\nexport const M2MWebhookDeliveryLog_PurgeOldRequestDto = z.object({\n /** Rows whose `createdAt` is older than `now() - olderThanDays` are eligible. */\n olderThanDays: z.number().int().positive().max(365)\n .describe('Age threshold in days: delivered and failed deliveries created more than this many days ago are deleted. Deliveries still pending or in flight are never deleted.'),\n});\n\n// =============================================================================\n// POLYMORPHIC FACTORY\n// =============================================================================\n\nexport const m2mWebhookDeliveryLogPolymorphicFactories = createPolymorphicResourceConfigurations(\n m2mWebhookDeliveryLogPolymorphicDeclaration,\n {\n isSystemResource: true,\n customOperation: M2MWebhookDeliveryLog_Operations,\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n CoreResourceOperation.CREATE,\n // UPDATE is the delivery lifecycle: the dispatcher/worker drives the\n // PENDING → IN_FLIGHT → DELIVERED/FAILED status transitions\n // (markInFlight / markDelivered / markFailedAttempt / markFinallyFailed)\n // through the generic `repository.update`, which requires a DEFAULT UPDATE\n // operation. REPOSITORY_ONLY like CREATE — never a public HTTP surface\n // (admins act via the RETRY custom operation, which owns request/response).\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n ],\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.LIST]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.SEARCH]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n isSearchable: true,\n searchableFields: ['endpointId', 'resourceIdentifier', 'operationIdentifier', 'failureReason'],\n filterFields: {\n status: z.enum(M2MWebhookDeliveryLogStatus),\n channel: z.enum(CoreM2MNotificationChannel),\n endpointId: z.string(),\n createdAt: z.date(),\n },\n sortFields: ['createdAt', 'status', 'attemptCount'] as const,\n },\n ],\n },\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n // Delivery-lifecycle status transitions (dispatcher/worker only). Mirrors\n // CREATE: REPOSITORY_ONLY default so `repository.update` resolves a default\n // UPDATE op; never exposed as a public HTTP mutation.\n [CoreResourceOperation.UPDATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n // Bulk twin of DELETE — the actual `PURGE_OLD` write path: the custom impl\n // routes through the repository's `deleteMany` (which requires a default\n // DELETE_MANY operation) to drop terminal DELIVERED/FAILED rows older\n // than the requested retention window in one round trip. REPOSITORY_ONLY:\n // never a public HTTP surface — admins purge via the PURGE_OLD custom\n // operation, which owns the request validation + response summary.\n [CoreResourceOperation.DELETE_MANY]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n [M2MWebhookDeliveryLog_Operations.RETRY]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: M2MWebhookDeliveryLog_RetryRequestDto,\n },\n ],\n },\n [M2MWebhookDeliveryLog_Operations.PURGE_OLD]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n // IRREVERSIBLE: Deletes delivery-log rows outright. Nothing retains them afterwards.\n // This is what admits it to the danger zone; risk alone no longer does.\n reversibility: ResourceOperationReversibility.IRREVERSIBLE,\n // Borrows the COLLECTION verb DELETE_MANY (not entity DELETE): purging\n // rows older than `olderThanDays` acts on the whole scope, so it needs a\n // collection route (`…/m2m-webhook-delivery-log/purge-old`, no `:id`) —\n // a scope-level maintenance action has no single row to address. Mirrors\n // SIEM DLQ `PURGE_ALL`. `isBulkOperation` stays unset (collection-level,\n // not a selection bulk). Returns a purge summary, NOT the borrowed\n // bulk-delete default `{ deletedIds, deletedCount }` — customResponseDto\n // overrides it. Impl: `m2m-webhook-delivery-log.custom-impl.backend.service.ts`\n // (saas-backend-lib) — deleteMany of terminal rows older than the window.\n resourceOperationLike: CoreResourceOperation.DELETE_MANY,\n requestDto: M2MWebhookDeliveryLog_PurgeOldRequestDto,\n customResponseDto: z.object({\n purgedCount: z.number().describe('How many delivered or failed deliveries older than the requested window were deleted.'),\n message: z.string().describe('A human-readable summary of the purge.'),\n }),\n },\n ],\n },\n },\n },\n);\n"]}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* Operation set (mirrors SIEM Export Config singleton precedent):
|
|
9
9
|
* - READ (API) : admin reads the config + derived public key
|
|
10
10
|
* - CREATE (REPOSITORY_ONLY) : seeded once per scope; not externally callable
|
|
11
|
-
* - UPDATE (
|
|
11
|
+
* - UPDATE (API_CALL) : the administrator's edit door; a PREFIX stamps each endpoint's
|
|
12
|
+
* id and timestamps (see `WEBHOOK_CONFIG_WRITE_VARIANT_TYPE`)
|
|
12
13
|
* - TEST_ENDPOINT (custom) : fires a synthetic delivery to verify URL reachability
|
|
13
14
|
*
|
|
14
15
|
* @see m2m-webhook-organization-delivery.md — Phase 2 / Step 5
|
|
@@ -16,6 +17,7 @@
|
|
|
16
17
|
*/
|
|
17
18
|
import { z } from 'zod';
|
|
18
19
|
import { CoreResourceOperation } from '../../resources/resources.shared.core.definitions';
|
|
20
|
+
import { ResourceOperationVariantType } from '../../resources/resources.shared.schemas';
|
|
19
21
|
import { WebhookEndpointProbeOutcome } from './webhook-config.shared.schemas';
|
|
20
22
|
export declare enum WebhookConfig_Operations {
|
|
21
23
|
/**
|
|
@@ -59,5 +61,18 @@ export declare const WebhookConfig_TestEndpointResponseDto: z.ZodObject<{
|
|
|
59
61
|
signatureJti: z.ZodString;
|
|
60
62
|
attemptedAt: z.ZodDate;
|
|
61
63
|
}, z.core.$strip>;
|
|
64
|
+
/**
|
|
65
|
+
* The variant type of the webhook config's UPDATE — read by the resource configuration below AND by
|
|
66
|
+
* the UPDATE prefix that stamps each endpoint's id and timestamps (`webhook-config-update.custom-impl`,
|
|
67
|
+
* #1801).
|
|
68
|
+
*
|
|
69
|
+
* One named value because the custom-implementation registry keys a registration on the FULL
|
|
70
|
+
* operation path, variant type included: a hand-restated value that drifted would leave the prefix
|
|
71
|
+
* unbound, and every save would again reset `createdAt` and freeze `updatedAt` while the update
|
|
72
|
+
* itself reported success. Same reason, and same shape, as `SSO_CONFIG_WRITE_VARIANT_TYPE`.
|
|
73
|
+
*/
|
|
74
|
+
export declare const WEBHOOK_CONFIG_WRITE_VARIANT_TYPE: Readonly<{
|
|
75
|
+
[CoreResourceOperation.UPDATE]: ResourceOperationVariantType.API_CALL;
|
|
76
|
+
}>;
|
|
62
77
|
export declare const webhookConfigPolymorphicFactories: Record<string, import("../..").ResourceConfiguration_InitializationFactory<typeof WebhookConfig_Operations, CoreResourceOperation.READ | CoreResourceOperation.UPDATE | CoreResourceOperation.DELETE | CoreResourceOperation.CREATE, any>>;
|
|
63
78
|
//# sourceMappingURL=webhook-config.shared.resources-config.schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-config.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/m2m/webhook-config.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"webhook-config.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/m2m/webhook-config.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EAEtB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAEL,4BAA4B,EAC7B,MAAM,0CAA0C,CAAC;AAIlD,OAAO,EAAuC,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAMnH,oBAAY,wBAAwB;IAClC;;;;;;;;;;;;;;;OAeG;IACH,aAAa,iBAAiB;CAC/B;AAMD,eAAO,MAAM,oCAAoC;;iBAE/C,CAAC;AAMH;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC;;;;;;;;;;;iBAoDhD,CAAC;AAMH;;;;;;;;;GASG;AACH,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC;IAEvD,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,4BAA4B,CAAC,QAAQ,CAAC;CACvE,CAEA,CAAC;AAEF,eAAO,MAAM,iCAAiC,4OA+I7C,CAAC"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* Operation set (mirrors SIEM Export Config singleton precedent):
|
|
9
9
|
* - READ (API) : admin reads the config + derived public key
|
|
10
10
|
* - CREATE (REPOSITORY_ONLY) : seeded once per scope; not externally callable
|
|
11
|
-
* - UPDATE (
|
|
11
|
+
* - UPDATE (API_CALL) : the administrator's edit door; a PREFIX stamps each endpoint's
|
|
12
|
+
* id and timestamps (see `WEBHOOK_CONFIG_WRITE_VARIANT_TYPE`)
|
|
12
13
|
* - TEST_ENDPOINT (custom) : fires a synthetic delivery to verify URL reachability
|
|
13
14
|
*
|
|
14
15
|
* @see m2m-webhook-organization-delivery.md — Phase 2 / Step 5
|
|
@@ -48,7 +49,7 @@ export var WebhookConfig_Operations;
|
|
|
48
49
|
// REQUEST DTOs
|
|
49
50
|
// =============================================================================
|
|
50
51
|
export const WebhookConfig_TestEndpointRequestDto = z.object({
|
|
51
|
-
endpointId: z.string().min(1),
|
|
52
|
+
endpointId: z.string().min(1).describe('The id of the configured endpoint to test. A disabled endpoint can be tested too.'),
|
|
52
53
|
});
|
|
53
54
|
// =============================================================================
|
|
54
55
|
// RESPONSE DTOs
|
|
@@ -62,9 +63,9 @@ export const WebhookConfig_TestEndpointRequestDto = z.object({
|
|
|
62
63
|
* `endpointId`, no config row, rate limit exceeded).
|
|
63
64
|
*/
|
|
64
65
|
export const WebhookConfig_TestEndpointResponseDto = z.object({
|
|
65
|
-
endpointId: z.string(),
|
|
66
|
+
endpointId: z.string().describe('The endpoint that was tested.'),
|
|
66
67
|
/** Destination actually contacted, echoed so the admin can confirm the stored URL. */
|
|
67
|
-
url: z.string(),
|
|
68
|
+
url: z.string().describe('The destination URL that was contacted, as stored on the endpoint.'),
|
|
68
69
|
/**
|
|
69
70
|
* True when that destination is plaintext `http://`, so the signature JWT travelled in the clear.
|
|
70
71
|
*
|
|
@@ -83,26 +84,51 @@ export const WebhookConfig_TestEndpointResponseDto = z.object({
|
|
|
83
84
|
* Reported for every outcome, including `NOT_SENT` — the scheme is a property of the stored
|
|
84
85
|
* destination, not of the attempt, and an admin fixing a signing fault should still be told.
|
|
85
86
|
*/
|
|
86
|
-
transportIsPlaintext: z
|
|
87
|
-
|
|
87
|
+
transportIsPlaintext: z
|
|
88
|
+
.boolean()
|
|
89
|
+
.describe('`true` when the destination uses plaintext `http://`, so the signature token travels in the clear. Reported for every outcome.'),
|
|
90
|
+
outcome: z
|
|
91
|
+
.enum(WebhookEndpointProbeOutcome)
|
|
92
|
+
.describe('The result of the test: `accepted` (the endpoint answered 2xx), `rejected` (it answered with another status), `unreachable` (no HTTP response, including a timeout), or `not_sent` (the request could not be signed, so nothing was sent).'),
|
|
88
93
|
/** HTTP status returned by the endpoint. Absent for `UNREACHABLE` / `NOT_SENT`. */
|
|
89
|
-
responseStatus: z.number().int().optional(),
|
|
94
|
+
responseStatus: z.number().int().optional().describe('The HTTP status the endpoint answered with. Absent when it did not answer or nothing was sent.'),
|
|
90
95
|
/** Truncated response body, to let an admin read the consumer's own error text. */
|
|
91
|
-
responseBodyTruncated: z
|
|
96
|
+
responseBodyTruncated: z
|
|
97
|
+
.string()
|
|
98
|
+
.optional()
|
|
99
|
+
.describe("The start of the endpoint's response body, cut to 4 KB (UTF-8), so you can read the endpoint's own error text. Absent when the body was empty or there was no response."),
|
|
92
100
|
/** Network / timeout / signing failure detail. Absent when the endpoint answered. */
|
|
93
|
-
failureReason: z
|
|
94
|
-
|
|
101
|
+
failureReason: z
|
|
102
|
+
.string()
|
|
103
|
+
.optional()
|
|
104
|
+
.describe('Why no response was received — a network error, a refused destination, the 30-second timeout, or a signing failure. Absent when the endpoint answered.'),
|
|
105
|
+
durationMs: z.number().int().nonnegative().describe('How long the request took, in milliseconds. `0` when nothing was sent.'),
|
|
95
106
|
/**
|
|
96
107
|
* `jti` of the signed probe. Stated so an admin can correlate this attempt with
|
|
97
108
|
* the entry in their own consumer's logs — the same dedup key a real delivery
|
|
98
109
|
* carries.
|
|
99
110
|
*/
|
|
100
|
-
signatureJti: z
|
|
101
|
-
|
|
111
|
+
signatureJti: z
|
|
112
|
+
.string()
|
|
113
|
+
.describe("The unique id of the signed test request — the same delivery-id claim a real delivery carries — so you can find this attempt in the endpoint's own logs."),
|
|
114
|
+
attemptedAt: z.date().describe('When the test request was built and sent.'),
|
|
102
115
|
});
|
|
103
116
|
// =============================================================================
|
|
104
117
|
// POLYMORPHIC FACTORY
|
|
105
118
|
// =============================================================================
|
|
119
|
+
/**
|
|
120
|
+
* The variant type of the webhook config's UPDATE — read by the resource configuration below AND by
|
|
121
|
+
* the UPDATE prefix that stamps each endpoint's id and timestamps (`webhook-config-update.custom-impl`,
|
|
122
|
+
* #1801).
|
|
123
|
+
*
|
|
124
|
+
* One named value because the custom-implementation registry keys a registration on the FULL
|
|
125
|
+
* operation path, variant type included: a hand-restated value that drifted would leave the prefix
|
|
126
|
+
* unbound, and every save would again reset `createdAt` and freeze `updatedAt` while the update
|
|
127
|
+
* itself reported success. Same reason, and same shape, as `SSO_CONFIG_WRITE_VARIANT_TYPE`.
|
|
128
|
+
*/
|
|
129
|
+
export const WEBHOOK_CONFIG_WRITE_VARIANT_TYPE = {
|
|
130
|
+
[CoreResourceOperation.UPDATE]: ResourceOperationVariantType.API_CALL,
|
|
131
|
+
};
|
|
106
132
|
export const webhookConfigPolymorphicFactories = createPolymorphicResourceConfigurations(webhookConfigPolymorphicDeclaration, {
|
|
107
133
|
isSystemResource: true,
|
|
108
134
|
// Server-internal webhook delivery loads the (org/app) endpoint config via
|
|
@@ -177,9 +203,13 @@ export const webhookConfigPolymorphicFactories = createPolymorphicResourceConfig
|
|
|
177
203
|
* of saving. `pickInlineFieldWriteOperation` now refuses a borrowed verb outright, so the
|
|
178
204
|
* mis-wiring is closed whatever this variant says; the door is what makes the pane work.
|
|
179
205
|
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
206
|
+
* A PREFIX is registered on it (#1801): the endpoints array is written whole, so the prefix
|
|
207
|
+
* matches each incoming endpoint to its stored self by `id`, keeps the stored `createdAt`,
|
|
208
|
+
* advances `updatedAt` only for an endpoint whose settings changed, and assigns an id and both
|
|
209
|
+
* timestamps to a new one. Its variant type is `WEBHOOK_CONFIG_WRITE_VARIANT_TYPE`, which this
|
|
210
|
+
* declaration reads too. Should an internal writer ever need the repository path,
|
|
211
|
+
* `getInternalRepositoryOperationPathDefault` falls back to the URL-bearing default for exactly
|
|
212
|
+
* this shape.
|
|
183
213
|
*
|
|
184
214
|
* CREATE stays REPOSITORY_ONLY beside it: the row is seeded once per scope and is never
|
|
185
215
|
* created self-serve. Admin tier / MEDIUM, unchanged.
|
|
@@ -187,7 +217,7 @@ export const webhookConfigPolymorphicFactories = createPolymorphicResourceConfig
|
|
|
187
217
|
[CoreResourceOperation.UPDATE]: {
|
|
188
218
|
variants: [
|
|
189
219
|
{
|
|
190
|
-
variantType:
|
|
220
|
+
variantType: WEBHOOK_CONFIG_WRITE_VARIANT_TYPE[CoreResourceOperation.UPDATE],
|
|
191
221
|
isDefault: true,
|
|
192
222
|
polymorphicRole: {
|
|
193
223
|
[CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-config.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/m2m/webhook-config.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * M2M Webhook Config Resource Configuration — Polymorphic dual-scope\n *\n * Produces 2 factory functions (ORG + APP) via the polymorphic factory.\n * Spread into the registry factory map:\n * ...webhookConfigPolymorphicFactories\n *\n * Operation set (mirrors SIEM Export Config singleton precedent):\n * - READ (API) : admin reads the config + derived public key\n * - CREATE (REPOSITORY_ONLY) : seeded once per scope; not externally callable\n * - UPDATE (REPOSITORY_ONLY) : admin edits via dedicated endpoint flow (not a public REST PUT)\n * - TEST_ENDPOINT (custom) : fires a synthetic delivery to verify URL reachability\n *\n * @see m2m-webhook-organization-delivery.md — Phase 2 / Step 5\n * @see security/authentications/siem/siem-export-config.shared.resources-config.schemas.ts\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n} from '../../resources/resources.shared.core.definitions';\nimport {\n ResourceOperationRiskLevel,\n ResourceOperationVariantType,\n} from '../../resources/resources.shared.schemas';\nimport { createPolymorphicResourceConfigurations } from '../../resources/utils/resource-polymorphism.factory';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\nimport { CORE_ORG_ROLES, CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { webhookConfigPolymorphicDeclaration, WebhookEndpointProbeOutcome } from './webhook-config.shared.schemas';\n\n// =============================================================================\n// CUSTOM OPERATIONS\n// =============================================================================\n\nexport enum WebhookConfig_Operations {\n /**\n * Synthetic delivery to verify URL reachability + signature\n * verification on the consumer side. Targets a single endpoint\n * (selected by `endpointId` in the request body); does not write to\n * `M2MWebhookDeliveryLog` (test deliveries are excluded from the user\n * event log to keep the log clean).\n *\n * The probe is `resourceOperationLike: UPDATE`, NOT `READ`. It performs no\n * database write, but it DOES have an external side effect — a live signed\n * POST leaves the platform and arrives at a customer-controlled URL. Borrowing\n * READ made this a `GET` whose OpenAPI entry had to declare `x-idempotent: false`,\n * a self-contradiction, and pushed `endpointId` into a query string. Borrowing\n * UPDATE yields a `PUT` on the same custom-op sub-path, matching the\n * `M2MWebhookDeliveryLog.retry` precedent (also a no-DB-write-of-its-own verb\n * that triggers a delivery).\n */\n TEST_ENDPOINT = 'testEndpoint',\n}\n\n// =============================================================================\n// REQUEST DTOs\n// =============================================================================\n\nexport const WebhookConfig_TestEndpointRequestDto = z.object({\n endpointId: z.string().min(1),\n});\n\n// =============================================================================\n// RESPONSE DTOs\n// =============================================================================\n\n/**\n * Diagnostic returned synchronously by `testEndpoint`.\n *\n * A transport-level failure at the customer endpoint is a successful PROBE and\n * therefore answers HTTP 200 carrying `outcome: UNREACHABLE` — it is not an API\n * error. API errors are reserved for faults in the request itself (unknown\n * `endpointId`, no config row, rate limit exceeded).\n */\nexport const WebhookConfig_TestEndpointResponseDto = z.object({\n endpointId: z.string(),\n /** Destination actually contacted, echoed so the admin can confirm the stored URL. */\n url: z.string(),\n /**\n * True when that destination is plaintext `http://`, so the signature JWT travelled in the clear.\n *\n * ## Why the exposure is reported HERE (#492)\n *\n * Plaintext endpoints are admitted, deliberately, and the reasoning is recorded on\n * `WebhookEndpointSchema.url`. The cost of admitting them is that the decision becomes invisible:\n * a documented exposure nobody encounters is the same as an undocumented one, and the JSDoc\n * reaches only someone reading the schema.\n *\n * This probe is the one place an admin acts on a SINGLE endpoint and reads a per-endpoint answer,\n * so it is where the exposure can actually be met. It rides beside `outcome` rather than replacing\n * it, because the two say different things: `ACCEPTED` over `http://` is a working endpoint AND a\n * credential on the wire, and collapsing that into a failure would be false.\n *\n * Reported for every outcome, including `NOT_SENT` — the scheme is a property of the stored\n * destination, not of the attempt, and an admin fixing a signing fault should still be told.\n */\n transportIsPlaintext: z.boolean(),\n outcome: z.enum(WebhookEndpointProbeOutcome),\n /** HTTP status returned by the endpoint. Absent for `UNREACHABLE` / `NOT_SENT`. */\n responseStatus: z.number().int().optional(),\n /** Truncated response body, to let an admin read the consumer's own error text. */\n responseBodyTruncated: z.string().optional(),\n /** Network / timeout / signing failure detail. Absent when the endpoint answered. */\n failureReason: z.string().optional(),\n durationMs: z.number().int().nonnegative(),\n /**\n * `jti` of the signed probe. Stated so an admin can correlate this attempt with\n * the entry in their own consumer's logs — the same dedup key a real delivery\n * carries.\n */\n signatureJti: z.string(),\n attemptedAt: z.date(),\n});\n\n// =============================================================================\n// POLYMORPHIC FACTORY\n// =============================================================================\n\nexport const webhookConfigPolymorphicFactories = createPolymorphicResourceConfigurations(\n webhookConfigPolymorphicDeclaration,\n {\n isSystemResource: true,\n // Server-internal webhook delivery loads the (org/app) endpoint config via\n // `readAsSystem`, independent of the triggering user's roles — the config\n // governs runtime delivery behaviour, not user-facing data.\n //\n // CREATE joined it on 2026-09-18, matching the three enterprise-config singletons\n // (SSO / SCIM / SIEM) this resource is otherwise shaped like. It said \"READ-only\"\n // because, unlike them, it had no lazy materialiser of its own — not because a default\n // row would be wrong. #1179's seam reads this declaration before materialising a\n // context-addressed singleton on an UPDATE or DELETE the caller never named, so an\n // administrator can start configuring webhooks for a scope that has no row yet.\n //\n // It does NOT make a READ materialise — measured 2026-09-19, that seam is never entered on\n // the read route — so an unconfigured scope still 404s when the settings pane reads it.\n // Making the row exist for an organization that predates the `afterCreate` default seed is\n // a SEEDING question, and is where that defect belongs.\n systemAccessPolicy: {\n read: ResourceSystemAccessMode.ALLOWED,\n create: ResourceSystemAccessMode.ALLOWED,\n },\n customOperation: WebhookConfig_Operations,\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.DELETE,\n ],\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n },\n ],\n },\n /*\n * API_CALL — the administrator's edit door, and the only caller of this write.\n *\n * It was REPOSITORY_ONLY, which is route-less, and nothing in the engine called it: the\n * scope's row is seeded by `webhook-config-defaults.seeds.ts` through CREATE, the two\n * registered custom implementations are keyed on READ and on `testEndpoint`, and\n * `WebhookConfigBackendService` never updates. So the declared write had no caller on either\n * side of the boundary — no route for an administrator, no service reaching it internally —\n * and a webhook configuration is nothing BUT settings: whether outbound delivery is on, the\n * endpoints, the event selection, the retry posture.\n *\n * Worse than unreachable, and this is why it moved rather than being deleted: with no\n * addressable literal `update`, the frontend's update resolution fell through to whatever\n * operation borrowed UPDATE semantics — and here that is `testEndpoint`\n * (`resourceOperationLike: UPDATE`, API_CALL). Every writable field on the webhook settings\n * pane was a control that would have FIRED A TEST DELIVERY at the configured endpoint instead\n * of saving. `pickInlineFieldWriteOperation` now refuses a borrowed verb outright, so the\n * mis-wiring is closed whatever this variant says; the door is what makes the pane work.\n *\n * Nothing moves in lockstep: no custom implementation is registered on this operation. Should\n * an internal writer ever need the repository path, `getInternalRepositoryOperationPathDefault`\n * falls back to the URL-bearing default for exactly this shape.\n *\n * CREATE stays REPOSITORY_ONLY beside it: the row is seeded once per scope and is never\n * created self-serve. Admin tier / MEDIUM, unchanged.\n */\n [CoreResourceOperation.UPDATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n },\n ],\n },\n // Internal-only (REPOSITORY_ONLY, no HTTP route): powers the composition\n // onParentDelete cascade so this one-per-scope webhook-config row is physically\n // removed when its owning org/app is deleted. Without a DELETE op the cascade\n // (deleteChildrenImmediate) throws ErrorType.CONFIGURATION on any scope with a\n // config row. Admin tier (ORG_ADMIN / APP super-admin) / HIGH.\n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n [WebhookConfig_Operations.TEST_ENDPOINT]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n // UPDATE-like, not READ-like — see the JSDoc on `TEST_ENDPOINT`. The\n // operation writes nothing, but it emits a live outbound request.\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: WebhookConfig_TestEndpointRequestDto,\n // Implemented by `createWebhookConfigTestEndpointFactories()` in\n // saas-backend-lib (REPLACE_CORE_OPERATIONS): the core write is\n // replaced by the synthetic delivery, and this diagnostic — NOT the\n // config row — is what the caller receives. Keep this contract in\n // lockstep with that implementation.\n customResponseDto: WebhookConfig_TestEndpointResponseDto,\n },\n ],\n },\n },\n },\n);\n"]}
|
|
1
|
+
{"version":3,"file":"webhook-config.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/m2m/webhook-config.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * M2M Webhook Config Resource Configuration — Polymorphic dual-scope\n *\n * Produces 2 factory functions (ORG + APP) via the polymorphic factory.\n * Spread into the registry factory map:\n * ...webhookConfigPolymorphicFactories\n *\n * Operation set (mirrors SIEM Export Config singleton precedent):\n * - READ (API) : admin reads the config + derived public key\n * - CREATE (REPOSITORY_ONLY) : seeded once per scope; not externally callable\n * - UPDATE (API_CALL) : the administrator's edit door; a PREFIX stamps each endpoint's\n * id and timestamps (see `WEBHOOK_CONFIG_WRITE_VARIANT_TYPE`)\n * - TEST_ENDPOINT (custom) : fires a synthetic delivery to verify URL reachability\n *\n * @see m2m-webhook-organization-delivery.md — Phase 2 / Step 5\n * @see security/authentications/siem/siem-export-config.shared.resources-config.schemas.ts\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n} from '../../resources/resources.shared.core.definitions';\nimport {\n ResourceOperationRiskLevel,\n ResourceOperationVariantType,\n} from '../../resources/resources.shared.schemas';\nimport { createPolymorphicResourceConfigurations } from '../../resources/utils/resource-polymorphism.factory';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\nimport { CORE_ORG_ROLES, CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { webhookConfigPolymorphicDeclaration, WebhookEndpointProbeOutcome } from './webhook-config.shared.schemas';\n\n// =============================================================================\n// CUSTOM OPERATIONS\n// =============================================================================\n\nexport enum WebhookConfig_Operations {\n /**\n * Synthetic delivery to verify URL reachability + signature\n * verification on the consumer side. Targets a single endpoint\n * (selected by `endpointId` in the request body); does not write to\n * `M2MWebhookDeliveryLog` (test deliveries are excluded from the user\n * event log to keep the log clean).\n *\n * The probe is `resourceOperationLike: UPDATE`, NOT `READ`. It performs no\n * database write, but it DOES have an external side effect — a live signed\n * POST leaves the platform and arrives at a customer-controlled URL. Borrowing\n * READ made this a `GET` whose OpenAPI entry had to declare `x-idempotent: false`,\n * a self-contradiction, and pushed `endpointId` into a query string. Borrowing\n * UPDATE yields a `PUT` on the same custom-op sub-path, matching the\n * `M2MWebhookDeliveryLog.retry` precedent (also a no-DB-write-of-its-own verb\n * that triggers a delivery).\n */\n TEST_ENDPOINT = 'testEndpoint',\n}\n\n// =============================================================================\n// REQUEST DTOs\n// =============================================================================\n\nexport const WebhookConfig_TestEndpointRequestDto = z.object({\n endpointId: z.string().min(1).describe('The id of the configured endpoint to test. A disabled endpoint can be tested too.'),\n});\n\n// =============================================================================\n// RESPONSE DTOs\n// =============================================================================\n\n/**\n * Diagnostic returned synchronously by `testEndpoint`.\n *\n * A transport-level failure at the customer endpoint is a successful PROBE and\n * therefore answers HTTP 200 carrying `outcome: UNREACHABLE` — it is not an API\n * error. API errors are reserved for faults in the request itself (unknown\n * `endpointId`, no config row, rate limit exceeded).\n */\nexport const WebhookConfig_TestEndpointResponseDto = z.object({\n endpointId: z.string().describe('The endpoint that was tested.'),\n /** Destination actually contacted, echoed so the admin can confirm the stored URL. */\n url: z.string().describe('The destination URL that was contacted, as stored on the endpoint.'),\n /**\n * True when that destination is plaintext `http://`, so the signature JWT travelled in the clear.\n *\n * ## Why the exposure is reported HERE (#492)\n *\n * Plaintext endpoints are admitted, deliberately, and the reasoning is recorded on\n * `WebhookEndpointSchema.url`. The cost of admitting them is that the decision becomes invisible:\n * a documented exposure nobody encounters is the same as an undocumented one, and the JSDoc\n * reaches only someone reading the schema.\n *\n * This probe is the one place an admin acts on a SINGLE endpoint and reads a per-endpoint answer,\n * so it is where the exposure can actually be met. It rides beside `outcome` rather than replacing\n * it, because the two say different things: `ACCEPTED` over `http://` is a working endpoint AND a\n * credential on the wire, and collapsing that into a failure would be false.\n *\n * Reported for every outcome, including `NOT_SENT` — the scheme is a property of the stored\n * destination, not of the attempt, and an admin fixing a signing fault should still be told.\n */\n transportIsPlaintext: z\n .boolean()\n .describe('`true` when the destination uses plaintext `http://`, so the signature token travels in the clear. Reported for every outcome.'),\n outcome: z\n .enum(WebhookEndpointProbeOutcome)\n .describe(\n 'The result of the test: `accepted` (the endpoint answered 2xx), `rejected` (it answered with another status), `unreachable` (no HTTP response, including a timeout), or `not_sent` (the request could not be signed, so nothing was sent).',\n ),\n /** HTTP status returned by the endpoint. Absent for `UNREACHABLE` / `NOT_SENT`. */\n responseStatus: z.number().int().optional().describe('The HTTP status the endpoint answered with. Absent when it did not answer or nothing was sent.'),\n /** Truncated response body, to let an admin read the consumer's own error text. */\n responseBodyTruncated: z\n .string()\n .optional()\n .describe(\"The start of the endpoint's response body, cut to 4 KB (UTF-8), so you can read the endpoint's own error text. Absent when the body was empty or there was no response.\"),\n /** Network / timeout / signing failure detail. Absent when the endpoint answered. */\n failureReason: z\n .string()\n .optional()\n .describe('Why no response was received — a network error, a refused destination, the 30-second timeout, or a signing failure. Absent when the endpoint answered.'),\n durationMs: z.number().int().nonnegative().describe('How long the request took, in milliseconds. `0` when nothing was sent.'),\n /**\n * `jti` of the signed probe. Stated so an admin can correlate this attempt with\n * the entry in their own consumer's logs — the same dedup key a real delivery\n * carries.\n */\n signatureJti: z\n .string()\n .describe(\"The unique id of the signed test request — the same delivery-id claim a real delivery carries — so you can find this attempt in the endpoint's own logs.\"),\n attemptedAt: z.date().describe('When the test request was built and sent.'),\n});\n\n// =============================================================================\n// POLYMORPHIC FACTORY\n// =============================================================================\n\n/**\n * The variant type of the webhook config's UPDATE — read by the resource configuration below AND by\n * the UPDATE prefix that stamps each endpoint's id and timestamps (`webhook-config-update.custom-impl`,\n * #1801).\n *\n * One named value because the custom-implementation registry keys a registration on the FULL\n * operation path, variant type included: a hand-restated value that drifted would leave the prefix\n * unbound, and every save would again reset `createdAt` and freeze `updatedAt` while the update\n * itself reported success. Same reason, and same shape, as `SSO_CONFIG_WRITE_VARIANT_TYPE`.\n */\nexport const WEBHOOK_CONFIG_WRITE_VARIANT_TYPE: Readonly<{\n // Exact member, not the enum: a variant is a union DISCRIMINATED by `variantType`.\n [CoreResourceOperation.UPDATE]: ResourceOperationVariantType.API_CALL;\n}> = {\n [CoreResourceOperation.UPDATE]: ResourceOperationVariantType.API_CALL,\n};\n\nexport const webhookConfigPolymorphicFactories = createPolymorphicResourceConfigurations(\n webhookConfigPolymorphicDeclaration,\n {\n isSystemResource: true,\n // Server-internal webhook delivery loads the (org/app) endpoint config via\n // `readAsSystem`, independent of the triggering user's roles — the config\n // governs runtime delivery behaviour, not user-facing data.\n //\n // CREATE joined it on 2026-09-18, matching the three enterprise-config singletons\n // (SSO / SCIM / SIEM) this resource is otherwise shaped like. It said \"READ-only\"\n // because, unlike them, it had no lazy materialiser of its own — not because a default\n // row would be wrong. #1179's seam reads this declaration before materialising a\n // context-addressed singleton on an UPDATE or DELETE the caller never named, so an\n // administrator can start configuring webhooks for a scope that has no row yet.\n //\n // It does NOT make a READ materialise — measured 2026-09-19, that seam is never entered on\n // the read route — so an unconfigured scope still 404s when the settings pane reads it.\n // Making the row exist for an organization that predates the `afterCreate` default seed is\n // a SEEDING question, and is where that defect belongs.\n systemAccessPolicy: {\n read: ResourceSystemAccessMode.ALLOWED,\n create: ResourceSystemAccessMode.ALLOWED,\n },\n customOperation: WebhookConfig_Operations,\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.DELETE,\n ],\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n },\n ],\n },\n /*\n * API_CALL — the administrator's edit door, and the only caller of this write.\n *\n * It was REPOSITORY_ONLY, which is route-less, and nothing in the engine called it: the\n * scope's row is seeded by `webhook-config-defaults.seeds.ts` through CREATE, the two\n * registered custom implementations are keyed on READ and on `testEndpoint`, and\n * `WebhookConfigBackendService` never updates. So the declared write had no caller on either\n * side of the boundary — no route for an administrator, no service reaching it internally —\n * and a webhook configuration is nothing BUT settings: whether outbound delivery is on, the\n * endpoints, the event selection, the retry posture.\n *\n * Worse than unreachable, and this is why it moved rather than being deleted: with no\n * addressable literal `update`, the frontend's update resolution fell through to whatever\n * operation borrowed UPDATE semantics — and here that is `testEndpoint`\n * (`resourceOperationLike: UPDATE`, API_CALL). Every writable field on the webhook settings\n * pane was a control that would have FIRED A TEST DELIVERY at the configured endpoint instead\n * of saving. `pickInlineFieldWriteOperation` now refuses a borrowed verb outright, so the\n * mis-wiring is closed whatever this variant says; the door is what makes the pane work.\n *\n * A PREFIX is registered on it (#1801): the endpoints array is written whole, so the prefix\n * matches each incoming endpoint to its stored self by `id`, keeps the stored `createdAt`,\n * advances `updatedAt` only for an endpoint whose settings changed, and assigns an id and both\n * timestamps to a new one. Its variant type is `WEBHOOK_CONFIG_WRITE_VARIANT_TYPE`, which this\n * declaration reads too. Should an internal writer ever need the repository path,\n * `getInternalRepositoryOperationPathDefault` falls back to the URL-bearing default for exactly\n * this shape.\n *\n * CREATE stays REPOSITORY_ONLY beside it: the row is seeded once per scope and is never\n * created self-serve. Admin tier / MEDIUM, unchanged.\n */\n [CoreResourceOperation.UPDATE]: {\n variants: [\n {\n variantType: WEBHOOK_CONFIG_WRITE_VARIANT_TYPE[CoreResourceOperation.UPDATE],\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n },\n ],\n },\n // Internal-only (REPOSITORY_ONLY, no HTTP route): powers the composition\n // onParentDelete cascade so this one-per-scope webhook-config row is physically\n // removed when its owning org/app is deleted. Without a DELETE op the cascade\n // (deleteChildrenImmediate) throws ErrorType.CONFIGURATION on any scope with a\n // config row. Admin tier (ORG_ADMIN / APP super-admin) / HIGH.\n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.REPOSITORY_ONLY,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n [WebhookConfig_Operations.TEST_ENDPOINT]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: {\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n },\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n // UPDATE-like, not READ-like — see the JSDoc on `TEST_ENDPOINT`. The\n // operation writes nothing, but it emits a live outbound request.\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: WebhookConfig_TestEndpointRequestDto,\n // Implemented by `createWebhookConfigTestEndpointFactories()` in\n // saas-backend-lib (REPLACE_CORE_OPERATIONS): the core write is\n // replaced by the synthetic delivery, and this diagnostic — NOT the\n // config row — is what the caller receives. Keep this contract in\n // lockstep with that implementation.\n customResponseDto: WebhookConfig_TestEndpointResponseDto,\n },\n ],\n },\n },\n },\n);\n"]}
|
|
@@ -83,13 +83,19 @@ export declare const M2M_WEBHOOK_SCOPE_VARIANTS: PolymorphicVariantDefinition[];
|
|
|
83
83
|
* derived `applicationPublicKeyPem` field.
|
|
84
84
|
*/
|
|
85
85
|
export declare const WebhookEndpointSchema: z.ZodObject<{
|
|
86
|
-
id: z.ZodString
|
|
86
|
+
id: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
87
87
|
url: z.ZodURL;
|
|
88
88
|
description: z.ZodDefault<z.ZodString>;
|
|
89
89
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
90
|
-
createdAt: z.ZodDefault<z.ZodDate
|
|
91
|
-
updatedAt: z.ZodDefault<z.ZodDate
|
|
90
|
+
createdAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>;
|
|
91
|
+
updatedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>;
|
|
92
92
|
}, z.core.$strip>;
|
|
93
|
+
/**
|
|
94
|
+
* The endpoint fields a CLIENT authors — every field except the identity and the two server-stamped
|
|
95
|
+
* timestamps. The UPDATE path compares these to decide whether an endpoint changed, so a field added
|
|
96
|
+
* to {@link WebhookEndpointSchema} tomorrow counts as a change without anyone remembering to list it.
|
|
97
|
+
*/
|
|
98
|
+
export declare const WEBHOOK_ENDPOINT_SERVER_OWNED_FIELDS: readonly ["id", "createdAt", "updatedAt"];
|
|
93
99
|
export type WebhookEndpoint = z.infer<typeof WebhookEndpointSchema>;
|
|
94
100
|
/**
|
|
95
101
|
* Whether a destination is reached over PLAINTEXT HTTP, so the signature JWT travels in the clear.
|
|
@@ -102,9 +108,10 @@ export type WebhookEndpoint = z.infer<typeof WebhookEndpointSchema>;
|
|
|
102
108
|
* it. A refusal can live in one place because it stops the request; a TOLERATED condition is
|
|
103
109
|
* observed by several, and those several must agree.
|
|
104
110
|
*
|
|
105
|
-
* Read by the
|
|
106
|
-
* the admin who pressed "test"). Both are
|
|
107
|
-
* third is joining a mechanism or starting
|
|
111
|
+
* Read by the UPDATE path (which logs a warning naming the destination host when a plaintext endpoint
|
|
112
|
+
* is saved) and by the endpoint probe (which reports it to the admin who pressed "test"). Both are
|
|
113
|
+
* listed here so the next reader can tell whether adding a third is joining a mechanism or starting
|
|
114
|
+
* a second one.
|
|
108
115
|
*
|
|
109
116
|
* Scheme comparison, not a `startsWith`: `WHATWG` lowercases the scheme during parsing, so
|
|
110
117
|
* `HTTP://example.test` and `http://example.test` are the same destination and a prefix test would
|
|
@@ -125,12 +132,12 @@ export declare const WebhookConfigBaseSchema: z.ZodObject<{
|
|
|
125
132
|
_id: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
126
133
|
enabled: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodBoolean>>;
|
|
127
134
|
endpoints: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
128
|
-
id: z.ZodString
|
|
135
|
+
id: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
129
136
|
url: z.ZodURL;
|
|
130
137
|
description: z.ZodDefault<z.ZodString>;
|
|
131
138
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
132
|
-
createdAt: z.ZodDefault<z.ZodDate
|
|
133
|
-
updatedAt: z.ZodDefault<z.ZodDate
|
|
139
|
+
createdAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>;
|
|
140
|
+
updatedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>;
|
|
134
141
|
}, z.core.$strip>>>;
|
|
135
142
|
applicationPublicKeyPem: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>>;
|
|
136
143
|
createdAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>>;
|
|
@@ -150,12 +157,12 @@ export declare const webhookConfigPolymorphicDeclaration: import("../..").Polymo
|
|
|
150
157
|
_id: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
151
158
|
enabled: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodBoolean>>;
|
|
152
159
|
endpoints: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
153
|
-
id: z.ZodString
|
|
160
|
+
id: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
154
161
|
url: z.ZodURL;
|
|
155
162
|
description: z.ZodDefault<z.ZodString>;
|
|
156
163
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
157
|
-
createdAt: z.ZodDefault<z.ZodDate
|
|
158
|
-
updatedAt: z.ZodDefault<z.ZodDate
|
|
164
|
+
createdAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>;
|
|
165
|
+
updatedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>;
|
|
159
166
|
}, z.core.$strip>>>;
|
|
160
167
|
applicationPublicKeyPem: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>>;
|
|
161
168
|
createdAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-config.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/m2m/webhook-config.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,qDAAqD,CAAC;AAM7D;;;;;;;;;;;;GAYG;AACH,oBAAY,2BAA2B;IACrC;;;;;OAKG;IACH,QAAQ,aAAa;IACrB,iFAAiF;IACjF,QAAQ,aAAa;IACrB,sFAAsF;IACtF,WAAW,gBAAgB;IAC3B;;;;;OAKG;IACH,QAAQ,aAAa;CACtB;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,0BAA0B,EAAE,4BAA4B,EAWpE,CAAC;AAMF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB;;;;;;;
|
|
1
|
+
{"version":3,"file":"webhook-config.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/m2m/webhook-config.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,qDAAqD,CAAC;AAM7D;;;;;;;;;;;;GAYG;AACH,oBAAY,2BAA2B;IACrC;;;;;OAKG;IACH,QAAQ,aAAa;IACrB,iFAAiF;IACjF,QAAQ,aAAa;IACrB,sFAAsF;IACtF,WAAW,gBAAgB;IAC3B;;;;;OAKG;IACH,QAAQ,aAAa;CACtB;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,0BAA0B,EAAE,4BAA4B,EAWpE,CAAC;AAMF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB;;;;;;;iBAoEhC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,2CAA+G,CAAC;AAEjK,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMxE;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlE;AAMD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBA2ClC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;kBAM9C,CAAC"}
|