@wildo-ai/saas-models 1.1.3 → 1.1.5
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-metadata.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -2
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications-context.schemas.d.ts +236 -18
- package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.d.ts +3 -2
- package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.js +40 -5
- package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +1 -2
- 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 +1 -2
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts +87 -5
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js +91 -5
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts +25 -4
- package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.js +61 -0
- package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
- package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.resources-config.schemas.js +32 -2
- package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.js +32 -2
- package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js +3 -0
- package/dist/esm/billing/product.shared.schemas.js.map +1 -1
- package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/promotions.shared.resources-config.schemas.js +33 -3
- package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.js +22 -2
- package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.js +3 -0
- package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +23 -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 +48 -2
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.js +3 -0
- package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts +49 -0
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -0
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.js +48 -0
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -0
- package/dist/esm/billing/usage-record.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +3 -0
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +8 -0
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -3
- 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 +21 -7
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts +450 -0
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js +723 -0
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +2 -2
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +8 -0
- 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 +15 -0
- 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 +787 -21
- 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 +1079 -26
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +51 -0
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts +463 -0
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js +526 -0
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts +539 -15
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.js +402 -14
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts +18 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js +89 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts +47 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js +73 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +21 -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 +39 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts +33 -0
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js +30 -0
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts +6 -5
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.js +15 -5
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts +127 -0
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js +94 -0
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts +125 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.js +136 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +91 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +123 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +27 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +36 -2
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +68 -25
- 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 +74 -22
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +9 -17
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js +74 -31
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts +47 -0
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js +98 -0
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +368 -35
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +403 -17
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/review-cadence.shared.schemas.d.ts +56 -0
- package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/review-cadence.shared.schemas.js +71 -0
- package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.d.ts +161 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.js +166 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +4 -3
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.js +4 -3
- package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +222 -9
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.js +232 -9
- package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +75 -3
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.js +93 -4
- package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.d.ts +5 -4
- package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.js +14 -4
- package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +463 -19
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js +535 -28
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +14 -14
- package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts +139 -3
- package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
- package/dist/esm/config/frontend/chart-registration-alignment.shared.js +151 -4
- package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +21 -17
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.js +58 -40
- package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts +90 -133
- package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.js +148 -100
- package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +146 -43
- 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 +147 -42
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.definitions.js +1 -1
- package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts +29 -40
- package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.js +37 -54
- package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.shared.utils.d.ts +24 -0
- package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.utils.js +39 -0
- package/dist/esm/errors/errors.shared.utils.js.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +27 -0
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -0
- package/dist/esm/errors/thrown-value-description.shared.utils.js +67 -0
- package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +48 -73
- 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 +103 -9
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
- package/dist/esm/external-data.exports.d.ts +1 -0
- package/dist/esm/external-data.exports.d.ts.map +1 -1
- package/dist/esm/external-data.exports.js +1 -0
- package/dist/esm/external-data.exports.js.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +18 -12
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +18 -12
- 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 +5 -3
- 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 +5 -3
- 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 +77 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.js +173 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -0
- package/dist/esm/external-providers/external-providers.shared.schemas.d.ts +2 -0
- package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/external-providers.shared.schemas.js +21 -0
- package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +131 -7
- 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 +114 -0
- 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 +148 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +108 -0
- 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 +86 -0
- 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 +184 -0
- package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js +216 -0
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts +30 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js +32 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +86 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js +85 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +14 -13
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +10 -10
- 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 +18 -8
- 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 +10 -4
- 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 +165 -0
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +39 -0
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +7 -5
- 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 +7 -5
- 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 +8 -5
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js +5 -2
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +2 -0
- 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 +42 -3
- package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/features/connected-feature.example.d.ts +64 -0
- package/dist/esm/features/connected-feature.example.d.ts.map +1 -0
- package/dist/esm/features/connected-feature.example.js +86 -0
- package/dist/esm/features/connected-feature.example.js.map +1 -0
- package/dist/esm/features/scope-features.shared.schemas.d.ts +53 -0
- package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.js +37 -0
- package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.js +42 -48
- package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts +73 -0
- package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -0
- package/dist/esm/files/file-remote-reference-link.shared.schemas.js +62 -0
- package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -0
- package/dist/esm/files/files.shared.resources-config.schemas.d.ts +3 -3
- package/dist/esm/files/files.shared.resources-config.schemas.js +3 -3
- package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts +152 -129
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +99 -2
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +6 -0
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts +3 -3
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.js +11 -5
- package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +13 -0
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts +45 -0
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js +51 -0
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -0
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +31 -0
- 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 +61 -3
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts +2 -2
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +16 -8
- 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 +23 -11
- 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 -189
- 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 +14 -50
- 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 +0 -3
- 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 +0 -1
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +1 -67
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +1 -2
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts +0 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +121 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.js +252 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +2 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +13 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +24 -0
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js +80 -0
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts +123 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.js +181 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +58 -81
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.js +75 -38
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +217 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +230 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -0
- package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts +106 -24
- package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-flow.shared.schemas.js +152 -14
- package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts +0 -6
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js +0 -19
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.d.ts +4 -2
- package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.js +4 -2
- package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts +66 -4
- package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.js +50 -0
- package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts +71 -0
- package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -0
- package/dist/esm/guidance/progression-presentation.shared.schemas.js +72 -0
- package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -0
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +2 -0
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts +4 -0
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js +5 -0
- package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +2 -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 +181 -412
- 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 +249 -199
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +107 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js +108 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts +38 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js +42 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -0
- package/dist/esm/index.d.ts +47 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +77 -16
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts +130 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js +104 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/decisions.meta-workflows.shared.schemas.d.ts +64 -0
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/decisions.meta-workflows.shared.schemas.js +47 -0
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +544 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +638 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/portable-primitives.meta-workflows.shared.schemas.d.ts +15 -8
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/portable-primitives.meta-workflows.shared.schemas.js +15 -8
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows.exports.d.ts +21 -25
- package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
- package/dist/esm/meta-workflows.exports.js +21 -25
- package/dist/esm/meta-workflows.exports.js.map +1 -1
- package/dist/esm/notifications/email/email-submission.shared.enums.d.ts +16 -0
- package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -0
- package/dist/esm/notifications/email/email-submission.shared.enums.js +17 -0
- package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -0
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +36 -0
- 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 +50 -3
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js +4 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts +2 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js +3 -2
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +44 -3
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js +12 -33
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts +68 -6
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js +68 -6
- package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts +145 -0
- package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/application-owner-organization.shared.schemas.js +146 -0
- package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +2 -0
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +39 -3
- 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 +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +18 -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 +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js +9 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +2 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js +3 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +3 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js +4 -2
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +29 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.js +27 -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 +2 -0
- 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 +3 -0
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.d.ts +17 -5
- package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.js +65 -5
- package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +51 -7
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +151 -7
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.d.ts +18 -83
- package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.js +37 -19
- package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +13 -0
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +13 -0
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.d.ts +1 -0
- package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.js +1 -0
- package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
- package/dist/esm/public-runtime/index.d.ts +53 -2
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js +45 -2
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +7 -8
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js +30 -6
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +388 -2
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +315 -11
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.d.ts +6 -4
- package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.js +5 -4
- package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.d.ts +20 -8
- package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.js +23 -18
- package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
- package/dist/esm/queue/queues.shared.utils.d.ts +4 -2
- package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.utils.js +4 -2
- package/dist/esm/queue/queues.shared.utils.js.map +1 -1
- package/dist/esm/rag/rag-retrieval-health.shared.d.ts +27 -0
- package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -0
- package/dist/esm/rag/rag-retrieval-health.shared.js +29 -0
- package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -0
- 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/idempotency-key.shared.d.ts +76 -0
- package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -0
- package/dist/esm/requests/idempotency-key.shared.js +112 -0
- package/dist/esm/requests/idempotency-key.shared.js.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.js +275 -20
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts +134 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js +153 -0
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts +198 -20
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +236 -5
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.d.ts +56 -5
- package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.js +97 -5
- package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.d.ts +20 -0
- package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.js +3 -0
- package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.js +596 -34
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +665 -40
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js +315 -22
- 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 +431 -69
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts +36 -0
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js +46 -0
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts +256 -10
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js +209 -9
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.utils.d.ts +34 -8
- package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.utils.js +69 -12
- package/dist/esm/resources/resources.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts +44 -12
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.js +46 -23
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts +61 -0
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -0
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js +79 -0
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts +60 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js +80 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts +21 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js +159 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -0
- package/dist/esm/resources/utils/resources-config-naming.utils.d.ts +15 -0
- package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-naming.utils.js +56 -11
- package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +51 -1
- 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 +210 -51
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts +34 -0
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js +45 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts +29 -0
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js +30 -0
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
- package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js +49 -11
- package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +4 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +4 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +129 -17
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +160 -6
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +324 -9
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js +411 -8
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.d.ts +87 -4
- package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.js +95 -6
- package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts +23 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js +23 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts +7 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js +7 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts +74 -0
- package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -0
- package/dist/esm/security/authentications/password-blocklist.shared.utils.js +122 -0
- package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +88 -2
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js +149 -2
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts +57 -11
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +44 -11
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js +20 -7
- 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 +16 -2
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +32 -2
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js +7 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js +4 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts +27 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js +109 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts +66 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js +107 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -0
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts +19 -0
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js +50 -13
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts +18 -6
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +133 -4
- 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 +29 -3
- 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 +81 -22
- 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 +0 -40
- 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 +100 -26
- 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 +9 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js +9 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +8 -2
- 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 +91 -4
- 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 +50 -6
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +50 -6
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts +39 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +265 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts +187 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js +271 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +23 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +24 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.defaults.js +6 -0
- package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +14 -0
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js +19 -0
- package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.js +2 -0
- package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +4 -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-user.shared.resources-config.schemas.d.ts +5 -2
- 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 +13 -42
- 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 +257 -13
- 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 +281 -49
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +6 -3
- 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 +74 -4
- 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 +5 -2
- 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 +105 -3
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +67 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.js +69 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts +159 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js +164 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +209 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js +150 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts +79 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.js +116 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts +145 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js +146 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts +478 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js +619 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts +31 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js +232 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts +127 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js +204 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -0
- package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
- package/dist/esm/testing/resource-config-builders.js +10 -4
- package/dist/esm/testing/resource-config-builders.js.map +1 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts +2 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js +2 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +139 -24
- 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 +255 -0
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.d.ts +5 -3
- package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.js +18 -1
- package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts +2 -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 +23 -0
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.d.ts +2 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-consent-decision.shared.utils.d.ts +127 -0
- package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -0
- package/dist/esm/users/user-consent-decision.shared.utils.js +189 -0
- package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -0
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts +1 -0
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.js +30 -0
- package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.d.ts +6 -6
- package/dist/esm/users/user-preferences-reset.shared.utils.js +6 -6
- 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 +74 -29
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.js +99 -0
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.js +25 -9
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +4 -4
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js +12 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.js +2 -2
- 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 +1 -0
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.js +2 -2
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts +28 -10
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +86 -11
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +14 -35
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts +0 -19
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js +0 -35
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +0 -213
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js +0 -287
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts +0 -236
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js +0 -212
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -17
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +0 -31
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts +0 -28
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js +0 -28
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +0 -100
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +0 -232
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts +0 -29
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js +0 -58
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts +0 -81
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js +0 -82
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts +0 -2
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts.map +0 -1
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js +0 -1
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js.map +0 -1
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/actions.meta-workflows.shared.schemas.d.ts +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/actions.meta-workflows.shared.schemas.js +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/catalog.meta-workflows.shared.schemas.d.ts +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/catalog.meta-workflows.shared.schemas.js +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/context-selection.meta-workflows.shared.schemas.d.ts +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/context-selection.meta-workflows.shared.schemas.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queues.shared.schemas.js","sourceRoot":"","sources":["../../../../src/queue/queues.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEnF,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,2EAA2E;IAC3E,sCAAiB,CAAA;IACjB,yFAAyF;IACzF,4CAAuB,CAAA;IACvB,2FAA2F;IAC3F,4CAAuB,CAAA;AACzB,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;AACrB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,qDAAqD;IACrD,qCAAqB,CAAA;IACrB,wCAAwC;IACxC,yCAAyB,CAAA;AAC3B,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAA0B,CAAC;AACnG,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAA0B,CAAC;AAC1F,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAA0B,CAAC;AAE1F,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9D,kEAAkE;IAClE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;IAEzD,gDAAgD;IAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9C,iEAAiE;IACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAErD;;;;;;OAMG;IACH,WAAW,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IAErD;;;;;OAKG;IACH,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC;CACpG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAId;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,YAAY;IAC/B,iFAAiF;IACjF,iFAAiF;IACjF,0EAA0E;IAC1E,qBAAqB,EAAE,sBAAsB,CAAC,QAAQ;CAC9C,CAAC;AAEX,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,gDAAgD;IAChD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,WAAW,CAAC;IAEzF,6BAA6B;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9C,+DAA+D;IAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEpD,oDAAoD;IACpD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,eAAe;IAEtE,gCAAgC;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY;CACpE,CAAC,CAAC;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAqB;IACpD,WAAW,EAAE,uBAAuB,CAAC,WAAW;IAChD,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,+EAA+E;AAC/E,sCAAsC;AACtC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,iCAAiC;IACjC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;CACrC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,iCAAiC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IAEvB,6CAA6C;IAC7C,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;IAE7C,iDAAiD;IACjD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAExC,gDAAgD;IAChD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEvC,4EAA4E;IAC5E,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAE7C,mDAAmD;IACnD,SAAS,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IAEhD,wDAAwD;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAE/C,yCAAyC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwC;IACxE,iDAAiD;IACjD,UAAU,EAAE;QACV,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE,iBAAiB,CAAC,MAAM;QACtC,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,KAAK;KACzB;IAED,yDAAyD;IACzD,SAAS,EAAE;QACT,WAAW,EAAE,uCAAuC;QACpD,YAAY,EAAE,iBAAiB,CAAC,MAAM;QACtC,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,KAAK;QAClB,iBAAiB,EAAE,IAAI,EAAE,2BAA2B;KACrD;IAED,qCAAqC;IACrC,SAAS,EAAE;QACT,WAAW,EAAE,gCAAgC;QAC7C,YAAY,EAAE,iBAAiB,CAAC,SAAS;QACzC,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwC,EAAE,CAAC;AAE7E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,MAA2B;IAC7E,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,qBAAqB,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,iBAAiB;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IAErB,sBAAsB;IACtB,uCAAuC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,yCAAyC;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,oCAAoC;IACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAExC,oCAAoC;IACpC,oCAAoC;IACpC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,mCAAmC;IACnC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvC,yCAAyC;IACzC,8BAA8B;IAC9B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,sCAAsC;IACtC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,sCAAsC;IACtC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtC,wBAAwB;IACxB,uBAAuB;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,uBAAuB;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnC,oBAAoB;IACpB,kCAAkC;IAClC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;CACtB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,uCAAuC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IAExB,sDAAsD;IACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEvD,4DAA4D;IAC5D,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEtD,qDAAqD;IACrD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEvD,kDAAkD;IAClD,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,4BAA4B;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;IAEvC,+BAA+B;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtC,gCAAgC;IAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvC,iCAAiC;IACjC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAExC,oBAAoB;IACpB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;KACtB,CAAC,CAAC;IAEH,8BAA8B;IAC9B,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC","sourcesContent":["/**\n * Queues Shared Schemas\n *\n * All queue-related enums, schemas, configuration, and types consolidated in a single file.\n * Includes: queue config, retry config, category registry, and monitoring schemas.\n */\n\nimport { z } from 'zod';\nimport { ErrorHandling_Strategy, RetryPolicy_BackoffType } from '../errors/errors.shared.schemas';\nimport { JobPriority, QueueRetryBackoffConfigSchema } from './jobs.shared.schemas';\n\n// ============================================================================\n// ENUMS\n// ============================================================================\n\n/**\n * Consumer mode for queue categories.\n */\nexport enum QueueConsumerMode {\n /** Any worker in the pool consumes (general operations, scheduled jobs) */\n SHARED = 'shared',\n /** Dedicated consumer process/pod (email, agents, exports - different resource needs) */\n DEDICATED = 'dedicated',\n /** All pods consume, filter locally (callbacks - find the pod with matching callbackId) */\n BROADCAST = 'broadcast',\n}\n\n/**\n * Queue health status.\n */\nexport enum QueueHealthStatus {\n HEALTHY = 'healthy',\n DEGRADED = 'degraded',\n UNHEALTHY = 'unhealthy',\n UNKNOWN = 'unknown',\n}\n\n/**\n * Queue variant for queue name construction.\n */\nexport enum QueueVariant {\n /** Priority queue for high/critical priority jobs */\n PRIORITY = 'priority',\n /** Dead letter queue for failed jobs */\n DEADLETTER = 'deadletter',\n}\n\n// ============================================================================\n// ZOD ENUM VALUE EXTRACTION (for Zod 4)\n// ============================================================================\n\nconst ErrorHandlingStrategyValues = Object.values(ErrorHandling_Strategy) as [string, ...string[]];\nconst QueueConsumerModeValues = Object.values(QueueConsumerMode) as [string, ...string[]];\nconst QueueHealthStatusValues = Object.values(QueueHealthStatus) as [string, ...string[]];\n\n// ============================================================================\n// QUEUE CONFIGURATION SCHEMA\n// ============================================================================\n\n/**\n * Queue-specific configuration for operations.\n * All fields are optional with sensible defaults.\n *\n * NOTE: Uses ErrorHandling_Strategy from errors module (STOP, SKIP, RETRY, FALLBACK)\n * for dead letter policy to maintain consistency across the engine.\n *\n * Authorization is NOT configured here - it is inherited automatically\n * from the operation's `roles` and `resourcePrimaryScope`.\n */\nexport const ResourceConfiguration_QueueConfigSchema = z.object({\n /** Priority for queue routing (HIGH/CRITICAL → priority queue) */\n priority: z.enum(JobPriority).default(JobPriority.NORMAL),\n\n /** Maximum retry attempts before dead-letter */\n maxRetries: z.number().int().min(0).default(3),\n\n /** Job execution timeout in milliseconds (default: 5 minutes) */\n timeoutMs: z.number().int().min(1000).default(300000),\n\n /**\n * Retry backoff timing (base delay, cap, curve). Controls how long a failed\n * job of this operation waits before each re-attempt. Optional — unset fields\n * fall back to `QUEUE_RETRY_DEFAULTS`. Honored by the queue worker via a\n * durable broker delay queue (see `QueueRetryBackoffConfig`). Distinct from\n * `maxRetries` (how many attempts) and `timeoutMs` (per-attempt execution cap).\n */\n retryConfig: QueueRetryBackoffConfigSchema.optional(),\n\n /**\n * Dead letter handling policy (reuses ErrorHandling_Strategy)\n * - STOP: discard the job\n * - RETRY: retry with backoff\n * - FALLBACK: move to dead-letter queue\n */\n errorHandlingStrategy: z.enum(ErrorHandlingStrategyValues).default(ErrorHandling_Strategy.FALLBACK),\n}).optional();\n\nexport type ResourceConfiguration_QueueConfig = z.infer<typeof ResourceConfiguration_QueueConfigSchema>;\n\n/**\n * Default values for queue configuration.\n * Used when queueConfig is not specified on an operation.\n */\nexport const QUEUE_CONFIG_DEFAULTS = {\n priority: 'normal',\n maxRetries: 3,\n timeoutMs: 300000, // 5 minutes\n // Retry backoff timing defaults (baseDelayMs / maxDelayMs / retryPolicy) live in\n // QUEUE_RETRY_DEFAULTS below — the single source of truth the enqueue path reads\n // per-field to resolve an operation's optional `queueConfig.retryConfig`.\n errorHandlingStrategy: ErrorHandling_Strategy.FALLBACK,\n} as const;\n\n// ============================================================================\n// QUEUE RETRY CONFIGURATION SCHEMA\n// ============================================================================\n\n/**\n * Retry configuration for queue jobs.\n * Aligns with existing patterns from WildoError and remote-client-base.\n */\nexport const QueueRetryConfigSchema = z.object({\n /** Retry policy (matches WildoError pattern) */\n retryPolicy: z.enum(RetryPolicy_BackoffType).default(RetryPolicy_BackoffType.EXPONENTIAL),\n\n /** Maximum retry attempts */\n maxRetries: z.number().int().min(0).default(3),\n\n /** Base delay in ms (for first retry / base of exponential) */\n baseDelayMs: z.number().int().min(100).default(1000),\n\n /** Maximum delay cap (prevents infinite backoff) */\n maxDelayMs: z.number().int().min(1000).default(60000), // 1 minute cap\n\n /** Timeout for job execution */\n timeoutMs: z.number().int().min(1000).default(300000), // 5 minutes\n});\n\nexport type QueueRetryConfig = z.infer<typeof QueueRetryConfigSchema>;\n\n/**\n * Default retry configuration values.\n * Matches existing patterns from remote-client-base.backend.service.ts:\n * - RETRY_DELAY = 1000\n * - RETRY_MAX_ATTEMPTS = 3\n * - TIMEOUT = 300000\n */\nexport const QUEUE_RETRY_DEFAULTS: QueueRetryConfig = {\n retryPolicy: RetryPolicy_BackoffType.EXPONENTIAL,\n maxRetries: 3,\n baseDelayMs: 1000,\n maxDelayMs: 60000,\n timeoutMs: 300000,\n};\n\n// ============================================================================\n// QUEUE CATEGORY CONFIGURATION SCHEMA\n// ============================================================================\n\n/**\n * Rate limit configuration for domain queues.\n */\nexport const QueueRateLimitConfigSchema = z.object({\n /** Maximum requests in window */\n max: z.number().int().min(1),\n /** Window duration in milliseconds */\n windowMs: z.number().int().min(1000),\n});\n\nexport type QueueRateLimitConfig = z.infer<typeof QueueRateLimitConfigSchema>;\n\n/**\n * Queue category configuration.\n */\nexport const QueueCategoryConfigSchema = z.object({\n /** Human-readable description */\n description: z.string(),\n\n /** How consumers should handle this queue */\n consumerMode: z.enum(QueueConsumerModeValues),\n\n /** Whether this queue has a dead-letter queue */\n hasDeadletter: z.boolean().default(true),\n\n /** Whether this queue has a priority variant */\n hasPriority: z.boolean().default(false),\n\n /** Whether messages require JWT signature verification (scheduled queue) */\n requiresSignature: z.boolean().default(false),\n\n /** Rate limit configuration (for domain queues) */\n rateLimit: QueueRateLimitConfigSchema.optional(),\n\n /** Maximum concurrent executions (for domain queues) */\n concurrency: z.number().int().min(1).optional(),\n\n /** Custom timeout override (optional) */\n timeoutMs: z.number().int().min(1000).optional(),\n});\n\nexport type QueueCategoryConfig = z.infer<typeof QueueCategoryConfigSchema>;\n\n/**\n * Core queue categories (always available).\n * Additional domains can be registered at app startup.\n */\nexport const CORE_QUEUE_CATEGORIES: Record<string, QueueCategoryConfig> = {\n /** QUEUED resource operations (API-triggered) */\n operations: {\n description: 'QUEUED resource operations from API',\n consumerMode: QueueConsumerMode.SHARED,\n hasDeadletter: true,\n hasPriority: true,\n requiresSignature: false,\n },\n\n /** Cron/batch jobs from crontabs-manager (JWT signed) */\n scheduled: {\n description: 'Cron/batch jobs from crontabs-manager',\n consumerMode: QueueConsumerMode.SHARED,\n hasDeadletter: true,\n hasPriority: false,\n requiresSignature: true, // JWT signed messages only\n },\n\n /** Internal callback distribution */\n callbacks: {\n description: 'Internal callback distribution',\n consumerMode: QueueConsumerMode.BROADCAST,\n hasDeadletter: false,\n hasPriority: false,\n requiresSignature: false,\n },\n};\n\n/**\n * Registry for custom queue categories (domain-specific).\n * Populated at application startup via registerQueueCategory().\n */\nexport const customQueueCategories: Record<string, QueueCategoryConfig> = {};\n\n/**\n * Register a custom queue category (typically domain-specific).\n * Category names are automatically prefixed with 'domain-'.\n *\n * @param name - Category name (e.g., 'email', 'agents')\n * @param config - Queue category configuration\n * @throws Error if attempting to override a core category\n *\n * @example\n * registerQueueCategory('email', {\n * description: 'Email sending operations',\n * consumerMode: QueueConsumerMode.DEDICATED,\n * hasDeadletter: true,\n * rateLimit: { max: 100, windowMs: 60000 },\n * concurrency: 5,\n * });\n */\nexport function registerQueueCategory(name: string, config: QueueCategoryConfig): void {\n if (CORE_QUEUE_CATEGORIES[name]) {\n throw new Error(`Cannot override core queue category: ${name}`);\n }\n customQueueCategories[`domain-${name}`] = config;\n}\n\n/**\n * Get a queue category by name.\n * Checks both core and custom categories.\n *\n * @param name - Category name\n * @returns Queue category configuration or undefined\n */\nexport function getQueueCategory(name: string): QueueCategoryConfig | undefined {\n return CORE_QUEUE_CATEGORIES[name] ?? customQueueCategories[name];\n}\n\n// ============================================================================\n// QUEUE MONITORING SCHEMAS\n// ============================================================================\n\n/**\n * Queue metrics for monitoring.\n */\nexport const QueueMetricsSchema = z.object({\n /** Queue name */\n queueName: z.string(),\n\n // === Queue Stats ===\n /** Messages waiting to be processed */\n pendingCount: z.number().int().min(0),\n /** Messages currently being processed */\n processingCount: z.number().int().min(0),\n /** Messages in dead letter queue */\n deadLetterCount: z.number().int().min(0),\n\n // === Rate Metrics (per minute) ===\n /** Messages published per minute */\n publishRatePerMinute: z.number().min(0),\n /** Messages consumed per minute */\n consumeRatePerMinute: z.number().min(0),\n\n // === Latency Metrics (milliseconds) ===\n /** Average processing time */\n avgProcessingTimeMs: z.number().min(0),\n /** 95th percentile processing time */\n p95ProcessingTimeMs: z.number().min(0),\n /** 99th percentile processing time */\n p99ProcessingTimeMs: z.number().min(0),\n\n // === Error Metrics ===\n /** Error rate (0-1) */\n errorRate: z.number().min(0).max(1),\n /** Retry rate (0-1) */\n retryRate: z.number().min(0).max(1),\n\n // === Timestamp ===\n /** When metrics were collected */\n collectedAt: z.date(),\n});\n\nexport type QueueMetrics = z.infer<typeof QueueMetricsSchema>;\n\n/**\n * Alert threshold configuration.\n */\nexport const QueueAlertThresholdSchema = z.object({\n /** Queue name or pattern to monitor */\n queuePattern: z.string(),\n\n /** Alert when dead letter count exceeds this value */\n deadLetterThreshold: z.number().int().min(0).optional(),\n\n /** Alert when processing latency exceeds this value (ms) */\n latencyThresholdMs: z.number().int().min(0).optional(),\n\n /** Alert when error rate exceeds this value (0-1) */\n errorRateThreshold: z.number().min(0).max(1).optional(),\n\n /** Alert when pending count exceeds this value */\n pendingCountThreshold: z.number().int().min(0).optional(),\n});\n\nexport type QueueAlertThreshold = z.infer<typeof QueueAlertThresholdSchema>;\n\n/**\n * Queue health summary.\n */\nexport const QueueHealthSummarySchema = z.object({\n /** Overall health status */\n status: z.enum(QueueHealthStatusValues),\n\n /** Number of healthy queues */\n healthyQueues: z.number().int().min(0),\n\n /** Number of degraded queues */\n degradedQueues: z.number().int().min(0),\n\n /** Number of unhealthy queues */\n unhealthyQueues: z.number().int().min(0),\n\n /** Active alerts */\n activeAlerts: z.array(z.object({\n queueName: z.string(),\n alertType: z.string(),\n value: z.number(),\n threshold: z.number(),\n triggeredAt: z.date(),\n })),\n\n /** When health was checked */\n checkedAt: z.date(),\n});\n\nexport type QueueHealthSummary = z.infer<typeof QueueHealthSummarySchema>;\n"]}
|
|
1
|
+
{"version":3,"file":"queues.shared.schemas.js","sourceRoot":"","sources":["../../../../src/queue/queues.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Queues Shared Schemas\n *\n * All queue-related enums, schemas, configuration, and types consolidated in a single file.\n * Includes: queue config, retry config, category registry, and monitoring schemas.\n */\n\nimport { z } from 'zod';\nimport { RetryPolicy_BackoffType } from '../errors/errors.shared.schemas';\nimport { JobPriority, QueueRetryBackoffConfigSchema } from './jobs.shared.schemas';\n\n// ============================================================================\n// ENUMS\n// ============================================================================\n\n/**\n * Consumer mode for queue categories.\n */\nexport enum QueueConsumerMode {\n /** Any worker in the pool consumes (general operations, scheduled jobs) */\n SHARED = 'shared',\n /** Dedicated consumer process/pod (email, agents, exports - different resource needs) */\n DEDICATED = 'dedicated',\n /** All pods consume, filter locally (callbacks - find the pod with matching callbackId) */\n BROADCAST = 'broadcast',\n}\n\n/**\n * Queue health status.\n */\nexport enum QueueHealthStatus {\n HEALTHY = 'healthy',\n DEGRADED = 'degraded',\n UNHEALTHY = 'unhealthy',\n UNKNOWN = 'unknown',\n}\n\n/**\n * Queue variant for queue name construction.\n */\nexport enum QueueVariant {\n /** Priority queue for high/critical priority jobs */\n PRIORITY = 'priority',\n /** Dead letter queue for failed jobs */\n DEADLETTER = 'deadletter',\n}\n\n// ============================================================================\n// ZOD ENUM VALUE EXTRACTION (for Zod 4)\n// ============================================================================\n\nconst QueueConsumerModeValues = Object.values(QueueConsumerMode) as [string, ...string[]];\nconst QueueHealthStatusValues = Object.values(QueueHealthStatus) as [string, ...string[]];\n\n// ============================================================================\n// QUEUE CONFIGURATION SCHEMA\n// ============================================================================\n\n/**\n * Queue-specific configuration for operations.\n * All fields are optional with sensible defaults.\n *\n * Operation policy controls routing and retry timing; actual errors carry their handling strategy.\n *\n * Authorization is NOT configured here - it is inherited automatically\n * from the operation's `roles` and `resourcePrimaryScope`.\n */\n/**\n * @wildo_source:part:start saas.models.resource-config.queue-policy facet:layer:shared facet:audience:app-developer\n *\n * Queue policy for an operation declared with createResourceConfiguration_Initialization\n * from @wildo-ai/saas-models. Set queueConfig beside serviceRuntimeMode, outside variants.\n * Omitted fields take the schema defaults. timeoutMs limits caller waiting, not execution.\n * Priority selects the initial queue lane; retries do not promise permanent priority ordering.\n * maxRetries limits additional attempts after an actual failure, not duplicate broker deliveries.\n *\n * @example\n * // Inside an operation configuration:\n * // serviceRuntimeMode: ResourceOperation_ServiceRuntimeMode.QUEUED,\n * // queueConfig: { timeoutMs: 30000, maxRetries: 0 },\n */\nexport const ResourceConfiguration_QueueConfigSchema = z.object({\n /** Priority for queue routing (HIGH/CRITICAL → priority queue) */\n priority: z.enum(JobPriority).default(JobPriority.NORMAL),\n\n /** Maximum retry attempts before dead-letter */\n maxRetries: z.number().int().min(0).default(3),\n\n /** Caller reply-wait deadline in milliseconds (default: 5 minutes). Does not cancel worker execution. */\n timeoutMs: z.number().int().min(1000).max(2147483647).default(300000),\n\n /**\n * Retry backoff timing (base delay, cap, curve). Controls how long a failed\n * job of this operation waits before each re-attempt. Optional — unset fields\n * fall back to `QUEUE_RETRY_DEFAULTS`. Honored by the queue worker via a\n * durable broker delay queue (see `QueueRetryBackoffConfig`). Distinct from\n * `maxRetries` (how many attempts) and `timeoutMs` (caller reply-wait deadline).\n */\n retryConfig: QueueRetryBackoffConfigSchema.optional(),\n\n}).strict().optional();\n\nexport type ResourceConfiguration_QueueConfig = z.infer<typeof ResourceConfiguration_QueueConfigSchema>;\n\n/** Application input accepts omitted defaulted fields; the resource factory validates and resolves them. */\nexport type ResourceConfiguration_QueueConfigAuthored = z.input<typeof ResourceConfiguration_QueueConfigSchema>;\n/** @wildo_source:part:end saas.models.resource-config.queue-policy */\n\n/**\n * Default values for queue configuration.\n * Used when queueConfig is not specified on an operation.\n */\nexport const QUEUE_CONFIG_DEFAULTS = {\n priority: 'normal',\n maxRetries: 3,\n timeoutMs: 300000, // 5 minutes\n // Retry backoff timing defaults (baseDelayMs / maxDelayMs / retryPolicy) live in\n // QUEUE_RETRY_DEFAULTS below — the single source of truth the enqueue path reads\n // per-field to resolve an operation's optional `queueConfig.retryConfig`.\n} as const;\n\n// ============================================================================\n// QUEUE RETRY CONFIGURATION SCHEMA\n// ============================================================================\n\n/**\n * Retry configuration for queue jobs.\n * Aligns with existing patterns from WildoError and remote-client-base.\n */\nexport const QueueRetryConfigSchema = z.object({\n /** Retry policy (matches WildoError pattern) */\n retryPolicy: z.enum(RetryPolicy_BackoffType).default(RetryPolicy_BackoffType.EXPONENTIAL),\n\n /** Maximum retry attempts */\n maxRetries: z.number().int().min(0).default(3),\n\n /** Base delay in ms (for first retry / base of exponential) */\n baseDelayMs: z.number().int().min(100).default(1000),\n\n /** Maximum delay cap (prevents infinite backoff) */\n maxDelayMs: z.number().int().min(1000).default(60000), // 1 minute cap\n\n /** Duration estimate input; retry scheduling does not enforce an execution deadline */\n timeoutMs: z.number().int().min(1000).default(300000), // 5 minutes\n});\n\nexport type QueueRetryConfig = z.infer<typeof QueueRetryConfigSchema>;\n\n/**\n * Default retry configuration values.\n * Matches existing patterns from remote-client-base.backend.service.ts:\n * - RETRY_DELAY = 1000\n * - RETRY_MAX_ATTEMPTS = 3\n * - TIMEOUT = 300000\n */\nexport const QUEUE_RETRY_DEFAULTS: QueueRetryConfig = {\n retryPolicy: RetryPolicy_BackoffType.EXPONENTIAL,\n maxRetries: 3,\n baseDelayMs: 1000,\n maxDelayMs: 60000,\n timeoutMs: 300000,\n};\n\n// ============================================================================\n// QUEUE CATEGORY CONFIGURATION SCHEMA\n// ============================================================================\n\n/**\n * Rate limit configuration for domain queues.\n */\nexport const QueueRateLimitConfigSchema = z.object({\n /** Maximum requests in window */\n max: z.number().int().min(1),\n /** Window duration in milliseconds */\n windowMs: z.number().int().min(1000),\n});\n\nexport type QueueRateLimitConfig = z.infer<typeof QueueRateLimitConfigSchema>;\n\n/**\n * Queue category configuration.\n */\nexport const QueueCategoryConfigSchema = z.object({\n /** Human-readable description */\n description: z.string(),\n\n /** How consumers should handle this queue */\n consumerMode: z.enum(QueueConsumerModeValues),\n\n /** Whether this queue has a dead-letter queue */\n hasDeadletter: z.boolean().default(true),\n\n /** Whether this queue has a priority variant */\n hasPriority: z.boolean().default(false),\n\n /** Whether messages require JWT signature verification (scheduled queue) */\n requiresSignature: z.boolean().default(false),\n\n /** Rate limit configuration (for domain queues) */\n rateLimit: QueueRateLimitConfigSchema.optional(),\n\n /** Maximum concurrent executions (for domain queues) */\n concurrency: z.number().int().min(1).optional(),\n\n /** Optional category metadata. Core queue execution does not enforce a deadline from this field. */\n timeoutMs: z.number().int().min(1000).optional(),\n});\n\nexport type QueueCategoryConfig = z.infer<typeof QueueCategoryConfigSchema>;\n\n/**\n * Core queue categories (always available).\n * Additional domains can be registered at app startup.\n */\nexport const CORE_QUEUE_CATEGORIES: Record<string, QueueCategoryConfig> = {\n /** QUEUED resource operations (API-triggered) */\n operations: {\n description: 'QUEUED resource operations from API',\n consumerMode: QueueConsumerMode.SHARED,\n hasDeadletter: true,\n hasPriority: true,\n requiresSignature: false,\n },\n\n /** Cron/batch jobs from crontabs-manager (JWT signed) */\n scheduled: {\n description: 'Cron/batch jobs from crontabs-manager',\n consumerMode: QueueConsumerMode.SHARED,\n hasDeadletter: true,\n hasPriority: false,\n requiresSignature: true, // JWT signed messages only\n },\n\n /** Internal callback distribution */\n callbacks: {\n description: 'Internal callback distribution',\n consumerMode: QueueConsumerMode.BROADCAST,\n hasDeadletter: false,\n hasPriority: false,\n requiresSignature: false,\n },\n};\n\n/**\n * Registry for custom queue categories (domain-specific).\n * Populated at application startup via registerQueueCategory().\n */\nexport const customQueueCategories: Record<string, QueueCategoryConfig> = {};\n\n/**\n * Register a custom queue category (typically domain-specific).\n * Category names are automatically prefixed with 'domain-'.\n *\n * @param name - Category name (e.g., 'email', 'agents')\n * @param config - Queue category configuration\n * @throws Error if attempting to override a core category\n *\n * @example\n * registerQueueCategory('email', {\n * description: 'Email sending operations',\n * consumerMode: QueueConsumerMode.DEDICATED,\n * hasDeadletter: true,\n * rateLimit: { max: 100, windowMs: 60000 },\n * concurrency: 5,\n * });\n */\nexport function registerQueueCategory(name: string, config: QueueCategoryConfig): void {\n if (CORE_QUEUE_CATEGORIES[name]) {\n throw new Error(`Cannot override core queue category: ${name}`);\n }\n customQueueCategories[`domain-${name}`] = config;\n}\n\n/**\n * Get a queue category by name.\n * Checks both core and custom categories.\n *\n * @param name - Category name\n * @returns Queue category configuration or undefined\n */\nexport function getQueueCategory(name: string): QueueCategoryConfig | undefined {\n return CORE_QUEUE_CATEGORIES[name] ?? customQueueCategories[name];\n}\n\n// ============================================================================\n// QUEUE MONITORING SCHEMAS\n// ============================================================================\n\n/**\n * Queue metrics for monitoring.\n */\nexport const QueueMetricsSchema = z.object({\n /** Queue name */\n queueName: z.string(),\n\n // === Queue Stats ===\n /** Messages waiting to be processed */\n pendingCount: z.number().int().min(0),\n /** Messages currently being processed */\n processingCount: z.number().int().min(0),\n /** Messages in dead letter queue */\n deadLetterCount: z.number().int().min(0),\n\n // === Rate Metrics (per minute) ===\n /** Messages published per minute */\n publishRatePerMinute: z.number().min(0),\n /** Messages consumed per minute */\n consumeRatePerMinute: z.number().min(0),\n\n // === Latency Metrics (milliseconds) ===\n /** Average processing time */\n avgProcessingTimeMs: z.number().min(0),\n /** 95th percentile processing time */\n p95ProcessingTimeMs: z.number().min(0),\n /** 99th percentile processing time */\n p99ProcessingTimeMs: z.number().min(0),\n\n // === Error Metrics ===\n /** Error rate (0-1) */\n errorRate: z.number().min(0).max(1),\n /** Retry rate (0-1) */\n retryRate: z.number().min(0).max(1),\n\n // === Timestamp ===\n /** When metrics were collected */\n collectedAt: z.date(),\n});\n\nexport type QueueMetrics = z.infer<typeof QueueMetricsSchema>;\n\n/**\n * Alert threshold configuration.\n */\nexport const QueueAlertThresholdSchema = z.object({\n /** Queue name or pattern to monitor */\n queuePattern: z.string(),\n\n /** Alert when dead letter count exceeds this value */\n deadLetterThreshold: z.number().int().min(0).optional(),\n\n /** Alert when processing latency exceeds this value (ms) */\n latencyThresholdMs: z.number().int().min(0).optional(),\n\n /** Alert when error rate exceeds this value (0-1) */\n errorRateThreshold: z.number().min(0).max(1).optional(),\n\n /** Alert when pending count exceeds this value */\n pendingCountThreshold: z.number().int().min(0).optional(),\n});\n\nexport type QueueAlertThreshold = z.infer<typeof QueueAlertThresholdSchema>;\n\n/**\n * Queue health summary.\n */\nexport const QueueHealthSummarySchema = z.object({\n /** Overall health status */\n status: z.enum(QueueHealthStatusValues),\n\n /** Number of healthy queues */\n healthyQueues: z.number().int().min(0),\n\n /** Number of degraded queues */\n degradedQueues: z.number().int().min(0),\n\n /** Number of unhealthy queues */\n unhealthyQueues: z.number().int().min(0),\n\n /** Active alerts */\n activeAlerts: z.array(z.object({\n queueName: z.string(),\n alertType: z.string(),\n value: z.number(),\n threshold: z.number(),\n triggeredAt: z.date(),\n })),\n\n /** When health was checked */\n checkedAt: z.date(),\n});\n\nexport type QueueHealthSummary = z.infer<typeof QueueHealthSummarySchema>;\n"]}
|
|
@@ -166,10 +166,12 @@ export declare function buildMinionTickQueueName(appId: string, minionName: stri
|
|
|
166
166
|
*/
|
|
167
167
|
export declare function calculateRetryDelay(config: QueueRetryConfig, attempt: number): number;
|
|
168
168
|
/**
|
|
169
|
-
*
|
|
169
|
+
* Estimate retry duration assuming each retry takes exactly config.timeoutMs.
|
|
170
|
+
* Excludes the initial attempt and broker waiting time. Worker execution is not
|
|
171
|
+
* capped by timeoutMs; the legacy function name does not imply an enforced maximum.
|
|
170
172
|
*
|
|
171
173
|
* @param config Retry configuration
|
|
172
|
-
* @returns
|
|
174
|
+
* @returns Estimated retry duration in milliseconds under the stated assumption
|
|
173
175
|
*/
|
|
174
176
|
export declare function calculateMaxRetryDuration(config: QueueRetryConfig): number;
|
|
175
177
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queues.shared.utils.d.ts","sourceRoot":"","sources":["../../../../src/queue/queues.shared.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAwB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAM/F;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,cAAc,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM;IAKT;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAmB3F;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAItE;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAI5E;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAI1E;;;;;;;;;;OAUG;IACH,MAAM,CAAC,sBAAsB,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM;IAKT;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;QACxC,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;QACnC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAoDR;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/C;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAMnD;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAElF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBrF;AAED
|
|
1
|
+
{"version":3,"file":"queues.shared.utils.d.ts","sourceRoot":"","sources":["../../../../src/queue/queues.shared.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -282,10 +282,12 @@ export function calculateRetryDelay(config, attempt) {
|
|
|
282
282
|
return Math.min(delay, config.maxDelayMs);
|
|
283
283
|
}
|
|
284
284
|
/**
|
|
285
|
-
*
|
|
285
|
+
* Estimate retry duration assuming each retry takes exactly config.timeoutMs.
|
|
286
|
+
* Excludes the initial attempt and broker waiting time. Worker execution is not
|
|
287
|
+
* capped by timeoutMs; the legacy function name does not imply an enforced maximum.
|
|
286
288
|
*
|
|
287
289
|
* @param config Retry configuration
|
|
288
|
-
* @returns
|
|
290
|
+
* @returns Estimated retry duration in milliseconds under the stated assumption
|
|
289
291
|
*/
|
|
290
292
|
export function calculateMaxRetryDuration(config) {
|
|
291
293
|
let totalDelay = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queues.shared.utils.js","sourceRoot":"","sources":["../../../../src/queue/queues.shared.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Queues Shared Utilities\n * \n * All queue-related utility classes consolidated in a single file.\n * Includes: queue naming, retry delay calculations (legacy functions).\n */\n\nimport { RetryPolicy_BackoffType } from '../errors/errors.shared.schemas';\nimport { QueueRetryConfig, QUEUE_RETRY_DEFAULTS, QueueVariant } from './queues.shared.schemas';\n\n// ============================================================================\n// QUEUE NAMING UTILITIES\n// ============================================================================\n\n/**\n * Utilities for building queue names.\n *\n * Mono-env architecture: each deployment has its own infra, so env is NOT\n * part of queue names. Uniqueness comes from appId alone.\n *\n * The `appId` here is the application's canonical identifier — its Mongo `_id`,\n * projected into the app runtime as env `APPLICATION_ID` and exposed by\n * `AppConfigurationService.applicationId`. It is NOT the human-readable\n * `appSlug`. Every producer AND consumer of a given app's queues must derive\n * the name from the same identifier; keying one side on the slug orphans the\n * queue (nothing consumes it) and a slug rename would silently orphan it again.\n *\n * Queue naming convention:\n * - App queues: wildo.queue.{appId}.{category}[.{variant}]\n * - Reply queues: wildo.reply.{appId}.{podId}\n * - Domain queues: wildo.queue.{appId}.domain.{domainName}\n * - Platform queues: wildo.queue.platform.{msName}.{category}[.{variant}]\n */\nexport class QueueNamingUtils {\n /**\n * Build queue name following the convention:\n * wildo.queue.{appId}.{category}[.{variant}]\n *\n * @param appId - Canonical application identifier (the app's Mongo `_id` /\n * env `APPLICATION_ID`), NOT the human-readable slug. Producer and consumer\n * must agree on this identifier or the queue is orphaned.\n * @param category - Queue category (operations, scheduled, callbacks, domain.*)\n * @param variant - Optional variant (priority, deadletter)\n * @returns Formatted queue name\n *\n * @example\n * QueueNamingUtils.buildQueueName('6a08488438bc965729b8b9ff', 'operations')\n * // => 'wildo.queue.6a08488438bc965729b8b9ff.operations'\n */\n static buildQueueName(\n appId: string,\n category: string,\n variant?: QueueVariant\n ): string {\n const base = `wildo.queue.${appId}.${category}`;\n return variant ? `${base}.${variant}` : base;\n }\n\n /**\n * Build reply queue name for RPC pattern.\n * Reply queues are exclusive, auto-delete, and transient.\n * \n * wildo.reply.{appId}.{podId}\n */\n static buildReplyQueueName(appId: string, podId: string, principalSegment?: string): string {\n // `principalSegment` makes an RPC reply queue attributable to the RUNTIME\n // that owns it, which is what lets a broker permission separate one\n // runtime's replies from another's.\n //\n // Without it the name is `wildo.reply.<appId>.<podId>` and `podId` is a\n // per-PROCESS token carrying no principal — so a minion's reply queue and\n // the application backend's differ only by an opaque suffix, and no regex\n // can admit one while refusing the other. Narrowing a minion's broker `read`\n // therefore refused its OWN replies and crash-looped it (2026-08-12).\n //\n // OPTIONAL, and absent means the historical layout. Existing callers keep\n // producing exactly the names they produce today; only a caller that knows\n // its principal opts in.\n return principalSegment\n ? `wildo.reply.${appId}.${principalSegment}.${podId}`\n : `wildo.reply.${appId}.${podId}`;\n }\n\n /**\n * Build domain-specific queue name.\n *\n * wildo.queue.{appId}.domain.{domainName}\n */\n static buildDomainQueueName(appId: string, domainName: string): string {\n return `wildo.queue.${appId}.domain.${domainName}`;\n }\n\n /**\n * Build a delay (retry-hold) queue name for durable backoff.\n *\n * A delay queue holds a failed job for a fixed TTL, then dead-letters it back\n * to its source queue for re-delivery. One queue exists PER distinct delay\n * value so every message in it shares the same `x-message-ttl` — this avoids\n * RabbitMQ's per-message-TTL head-of-line blocking (where a short-delay message\n * would wait behind a longer-delay one ahead of it in the queue). The delay is\n * embedded in the name, so the set of delay queues stays bounded by the (few)\n * distinct backoff delays an app produces (`baseDelayMs × 2^attempt`, capped).\n *\n * `{sourceQueueName}.delay.{delayMs}`\n *\n * @param sourceQueueName - Full name of the queue the message returns to on expiry\n * @param delayMs - Hold duration in ms (becomes the delay queue's `x-message-ttl`)\n * @example\n * QueueNamingUtils.buildDelayQueueName('wildo.queue.my-app.operations', 2000)\n * // => 'wildo.queue.my-app.operations.delay.2000'\n */\n static buildDelayQueueName(sourceQueueName: string, delayMs: number): string {\n return `${sourceQueueName}.delay.${delayMs}`;\n }\n\n /**\n * Build minion-tick queue name (KD-12 of\n * `.claude/plans/minions-and-workers-implementation.md`).\n *\n * `wildo.queue.{appId}.minion-tick.{minionName}`\n *\n * Each minion subscribes only to its own per-minion queue so the\n * backend-api and the minion (which both connect to the same RabbitMQ\n * vhost) do not compete on the shared `scheduled` queue. The publisher\n * (`platform-crontabs-batches-manager`) routes `MINION_TICK` ticks to\n * this per-minion queue; `SCHEDULED_CRON` ticks keep flowing to the\n * shared `scheduled` queue (consumed by the backend-api executor).\n */\n static buildMinionTickQueueName(appId: string, minionName: string): string {\n return `wildo.queue.${appId}.minion-tick.${minionName}`;\n }\n\n /**\n * Build platform microservice queue name.\n * Platform queues don't include environment as they're shared infrastructure.\n * \n * wildo.queue.platform.{msName}.{category}[.{variant}]\n * \n * @param msName - Microservice name\n * @param category - Queue category\n * @param variant - Optional variant\n * @returns Formatted platform queue name\n */\n static buildPlatformQueueName(\n msName: string,\n category: string,\n variant?: QueueVariant\n ): string {\n const base = `wildo.queue.platform.${msName}.${category}`;\n return variant ? `${base}.${variant}` : base;\n }\n\n /**\n * Parse a queue name to extract its components.\n * \n * @param queueName - Full queue name to parse\n * @returns Parsed components or null if invalid format\n */\n static parseQueueName(queueName: string): {\n type: 'app' | 'platform' | 'reply';\n identifier: string;\n category?: string;\n variant?: string;\n } | null {\n const parts = queueName.split('.');\n \n if (parts.length < 3 || parts[0] !== 'wildo') {\n return null;\n }\n\n // Reply queue: wildo.reply.{appId}.{podId}\n // or wildo.reply.{appId}.{principalSegment}.{podId}\n //\n // `category` stays the LAST segment in both layouts, so it remains the podId\n // rather than silently becoming the principal for principal-scoped names —\n // a caller reading `category` expecting a pod identity must keep getting\n // one.\n if (parts[1] === 'reply') {\n if (parts.length < 4) return null;\n return {\n type: 'reply',\n identifier: parts[2],\n category: parts[parts.length - 1]!,\n // Present only for the principal-scoped layout; `undefined` for the\n // historical one rather than an empty string, so \"no principal in the\n // name\" is distinguishable from \"a principal whose name is empty\".\n variant: parts.length > 4 ? parts[3] : undefined,\n };\n }\n\n // Queue: wildo.queue.{...}\n if (parts[1] === 'queue') {\n if (parts[2] === 'platform') {\n // Platform queue: wildo.queue.platform.{msName}.{category}[.{variant}]\n return {\n type: 'platform',\n identifier: parts[3],\n category: parts[4],\n variant: parts[5],\n };\n } else {\n // App queue: wildo.queue.{appId}.{category}[.{variant}]\n if (parts.length < 4) return null;\n return {\n type: 'app',\n identifier: parts[2],\n category: parts[3],\n variant: parts[4],\n };\n }\n }\n\n return null;\n }\n\n /**\n * Check if a queue name is a dead letter queue.\n */\n static isDeadLetterQueue(queueName: string): boolean {\n return queueName.endsWith('.deadletter');\n }\n\n /**\n * Check if a queue name is a priority queue.\n */\n static isPriorityQueue(queueName: string): boolean {\n return queueName.endsWith('.priority');\n }\n\n /**\n * Check if a queue name is a reply queue.\n */\n static isReplyQueue(queueName: string): boolean {\n return queueName.startsWith('wildo.reply.');\n }\n\n /**\n * Get the base queue name (without variant suffix).\n * \n * @param queueName - Full queue name\n * @returns Base queue name without variant\n */\n static getBaseQueueName(queueName: string): string {\n if (queueName.endsWith('.priority') || queueName.endsWith('.deadletter')) {\n return queueName.substring(0, queueName.lastIndexOf('.'));\n }\n return queueName;\n }\n}\n\n// ============================================================================\n// STANDALONE FUNCTIONS\n// Convenience wrappers around QueueNamingUtils class\n// ============================================================================\n\n/**\n * Build queue name following the convention.\n * wildo.queue.{appId}.{category}[.{variant}]\n */\nexport function buildQueueName(\n appId: string,\n category: string,\n variant?: QueueVariant\n): string {\n return QueueNamingUtils.buildQueueName(appId, category, variant);\n}\n\n/**\n * Build reply queue name for RPC pattern.\n * wildo.reply.{appId}.{podId}\n */\nexport function buildReplyQueueName(appId: string, podId: string, principalSegment?: string): string {\n return QueueNamingUtils.buildReplyQueueName(appId, podId, principalSegment);\n}\n\n/**\n * Build domain queue name.\n * wildo.queue.{appId}.domain.{domainName}\n */\nexport function buildDomainQueueName(appId: string, domainName: string): string {\n return QueueNamingUtils.buildDomainQueueName(appId, domainName);\n}\n\n/**\n * Build a delay (retry-hold) queue name for durable backoff.\n * {sourceQueueName}.delay.{delayMs}\n */\nexport function buildDelayQueueName(sourceQueueName: string, delayMs: number): string {\n return QueueNamingUtils.buildDelayQueueName(sourceQueueName, delayMs);\n}\n\n/**\n * Build per-minion tick queue name (KD-12).\n * wildo.queue.{appId}.minion-tick.{minionName}\n */\nexport function buildMinionTickQueueName(appId: string, minionName: string): string {\n return QueueNamingUtils.buildMinionTickQueueName(appId, minionName);\n}\n\n/**\n * Calculate retry delay based on policy and attempt number.\n * \n * @param config Retry configuration\n * @param attempt Current retry attempt (0-indexed)\n * @returns Delay in milliseconds (capped at maxDelayMs)\n */\nexport function calculateRetryDelay(config: QueueRetryConfig, attempt: number): number {\n let delay: number;\n \n switch (config.retryPolicy) {\n case RetryPolicy_BackoffType.FIXED:\n delay = config.baseDelayMs;\n break;\n case RetryPolicy_BackoffType.LINEAR:\n delay = config.baseDelayMs * (attempt + 1);\n break;\n case RetryPolicy_BackoffType.EXPONENTIAL:\n default:\n delay = config.baseDelayMs * Math.pow(2, attempt);\n break;\n }\n \n return Math.min(delay, config.maxDelayMs);\n}\n\n/**\n * Calculate maximum possible retry duration.\n *\n * @param config Retry configuration\n * @returns Total maximum duration for all retries in milliseconds\n */\nexport function calculateMaxRetryDuration(config: QueueRetryConfig): number {\n let totalDelay = 0;\n for (let i = 0; i < config.maxRetries; i++) {\n totalDelay += calculateRetryDelay(config, i);\n totalDelay += config.timeoutMs;\n }\n return totalDelay;\n}\n\n// ============================================================================\n// BROKER CONNECTION URL\n// ============================================================================\n\n/**\n * The RabbitMQ default virtual host, whose NAME is the single character `/`.\n *\n * Every broker ships with it, and an app that authors no\n * `backingServices.rabbitmq.vhost` lands here (isolation then comes from the\n * per-app user's permission regex rather than from a dedicated vhost).\n *\n * Note the deliberate ambiguity this constant resolves: `/` is BOTH the name of\n * the default vhost AND the AMQP URI path separator. Conflating the two is what\n * broke the two pre-consolidation URL builders — see\n * {@link buildRabbitMQConnectionUrl}.\n */\nexport const DEFAULT_RABBITMQ_VHOST = '/';\n\n/** Connection inputs for {@link buildRabbitMQConnectionUrl}. */\nexport interface RabbitMQConnectionUrlParts {\n /** Broker hostname, e.g. `'localhost'`. */\n host: string;\n /** Broker AMQP port, e.g. `5672`. */\n port: number;\n /** Per-app broker username (minted by the infra provider module). */\n username: string;\n /** Per-app broker password (minted by the infra provider module). */\n password: string;\n /**\n * Virtual host **name** — e.g. `'wonder-todos'`, with NO leading slash. This\n * is the value authored at `backingServices.rabbitmq.vhost` in\n * `wildo.infra.<envName>.config.ts` and the same name the infra provider\n * passes to `ensureVhost()` (`PUT /api/vhosts/{name}`), so the string that\n * names the vhost on the broker is the string that appears here.\n *\n * Omit it — or pass {@link DEFAULT_RABBITMQ_VHOST} — to connect to the broker\n * default vhost.\n */\n vhost?: string;\n}\n\n/**\n * Assemble the AMQP connection URL for a broker + vhost + credential triple.\n *\n * This is the SINGLE owner of AMQP URL assembly across the monorepo. It exists\n * because the URL was previously built ad-hoc at three call sites with three\n * different conventions, two of which were wrong in the same way — they\n * interpolated the vhost directly after the port with no separator:\n *\n * ```ts\n * `amqp://${user}:${pass}@${host}:${port}${vhost || '/'}` // ← the old, broken form\n * ```\n *\n * That form only ever worked because the `'/'` fallback doubles as the URI path\n * separator, so the default case accidentally produced a well-formed URL with an\n * empty path. The moment a real vhost was threaded through it produced\n * `amqp://…@localhost:5672wonder-todos` — a malformed authority that fails to\n * connect. A silent misconfiguration (every app quietly sharing the default\n * vhost) was therefore load-bearing for the URL builder not crashing, which is\n * why the two defects had to be fixed together.\n *\n * The encoding rules, per the AMQP URI spec (RFC 3986 userinfo + path):\n *\n * - **Userinfo is percent-encoded.** Minted passwords are random and may contain\n * `@`, `:` or `/`, any of which would otherwise terminate the userinfo or\n * authority early and silently retarget the connection.\n * - **The path separator is unconditional.** The `/` after the port is always\n * emitted; it is URI syntax, never vhost data.\n * - **An EMPTY path means the default vhost.** So both an omitted vhost and the\n * literal default-vhost name `'/'` collapse to `amqp://host:port/`. This is\n * byte-for-byte what the previous builders emitted for the default case, so\n * consolidating cannot regress a currently-connected deployment.\n * - **A named vhost is percent-encoded** into exactly one path segment, so a\n * vhost containing `/` encodes to `%2F` and addresses one vhost rather than\n * splitting into a bogus second segment.\n *\n * @example\n * buildRabbitMQConnectionUrl({ host: 'localhost', port: 5672, username: 'wildo', password: 'pw' });\n * // → 'amqp://wildo:pw@localhost:5672/' (default vhost)\n *\n * buildRabbitMQConnectionUrl({ host: 'localhost', port: 5672, username: 'wildo', password: 'pw', vhost: 'wonder-todos' });\n * // → 'amqp://wildo:pw@localhost:5672/wonder-todos' (per-app vhost)\n */\nexport function buildRabbitMQConnectionUrl(parts: RabbitMQConnectionUrlParts): string {\n const { host, port, username, password, vhost } = parts;\n\n // An empty path addresses the broker default vhost. Encoding the literal name\n // `'/'` as `%2F` would ALSO address it, but emitting the empty path keeps this\n // builder's default-case output identical to the pre-consolidation builders.\n const vhostPath =\n !vhost || vhost === DEFAULT_RABBITMQ_VHOST ? '' : encodeURIComponent(vhost);\n\n return `amqp://${encodeURIComponent(username)}:${encodeURIComponent(password)}@${host}:${port}/${vhostPath}`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"queues.shared.utils.js","sourceRoot":"","sources":["../../../../src/queue/queues.shared.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Queues Shared Utilities\n * \n * All queue-related utility classes consolidated in a single file.\n * Includes: queue naming, retry delay calculations (legacy functions).\n */\n\nimport { RetryPolicy_BackoffType } from '../errors/errors.shared.schemas';\nimport { QueueRetryConfig, QUEUE_RETRY_DEFAULTS, QueueVariant } from './queues.shared.schemas';\n\n// ============================================================================\n// QUEUE NAMING UTILITIES\n// ============================================================================\n\n/**\n * Utilities for building queue names.\n *\n * Mono-env architecture: each deployment has its own infra, so env is NOT\n * part of queue names. Uniqueness comes from appId alone.\n *\n * The `appId` here is the application's canonical identifier — its Mongo `_id`,\n * projected into the app runtime as env `APPLICATION_ID` and exposed by\n * `AppConfigurationService.applicationId`. It is NOT the human-readable\n * `appSlug`. Every producer AND consumer of a given app's queues must derive\n * the name from the same identifier; keying one side on the slug orphans the\n * queue (nothing consumes it) and a slug rename would silently orphan it again.\n *\n * Queue naming convention:\n * - App queues: wildo.queue.{appId}.{category}[.{variant}]\n * - Reply queues: wildo.reply.{appId}.{podId}\n * - Domain queues: wildo.queue.{appId}.domain.{domainName}\n * - Platform queues: wildo.queue.platform.{msName}.{category}[.{variant}]\n */\nexport class QueueNamingUtils {\n /**\n * Build queue name following the convention:\n * wildo.queue.{appId}.{category}[.{variant}]\n *\n * @param appId - Canonical application identifier (the app's Mongo `_id` /\n * env `APPLICATION_ID`), NOT the human-readable slug. Producer and consumer\n * must agree on this identifier or the queue is orphaned.\n * @param category - Queue category (operations, scheduled, callbacks, domain.*)\n * @param variant - Optional variant (priority, deadletter)\n * @returns Formatted queue name\n *\n * @example\n * QueueNamingUtils.buildQueueName('6a08488438bc965729b8b9ff', 'operations')\n * // => 'wildo.queue.6a08488438bc965729b8b9ff.operations'\n */\n static buildQueueName(\n appId: string,\n category: string,\n variant?: QueueVariant\n ): string {\n const base = `wildo.queue.${appId}.${category}`;\n return variant ? `${base}.${variant}` : base;\n }\n\n /**\n * Build reply queue name for RPC pattern.\n * Reply queues are exclusive, auto-delete, and transient.\n * \n * wildo.reply.{appId}.{podId}\n */\n static buildReplyQueueName(appId: string, podId: string, principalSegment?: string): string {\n // `principalSegment` makes an RPC reply queue attributable to the RUNTIME\n // that owns it, which is what lets a broker permission separate one\n // runtime's replies from another's.\n //\n // Without it the name is `wildo.reply.<appId>.<podId>` and `podId` is a\n // per-PROCESS token carrying no principal — so a minion's reply queue and\n // the application backend's differ only by an opaque suffix, and no regex\n // can admit one while refusing the other. Narrowing a minion's broker `read`\n // therefore refused its OWN replies and crash-looped it (2026-08-12).\n //\n // OPTIONAL, and absent means the historical layout. Existing callers keep\n // producing exactly the names they produce today; only a caller that knows\n // its principal opts in.\n return principalSegment\n ? `wildo.reply.${appId}.${principalSegment}.${podId}`\n : `wildo.reply.${appId}.${podId}`;\n }\n\n /**\n * Build domain-specific queue name.\n *\n * wildo.queue.{appId}.domain.{domainName}\n */\n static buildDomainQueueName(appId: string, domainName: string): string {\n return `wildo.queue.${appId}.domain.${domainName}`;\n }\n\n /**\n * Build a delay (retry-hold) queue name for durable backoff.\n *\n * A delay queue holds a failed job for a fixed TTL, then dead-letters it back\n * to its source queue for re-delivery. One queue exists PER distinct delay\n * value so every message in it shares the same `x-message-ttl` — this avoids\n * RabbitMQ's per-message-TTL head-of-line blocking (where a short-delay message\n * would wait behind a longer-delay one ahead of it in the queue). The delay is\n * embedded in the name, so the set of delay queues stays bounded by the (few)\n * distinct backoff delays an app produces (`baseDelayMs × 2^attempt`, capped).\n *\n * `{sourceQueueName}.delay.{delayMs}`\n *\n * @param sourceQueueName - Full name of the queue the message returns to on expiry\n * @param delayMs - Hold duration in ms (becomes the delay queue's `x-message-ttl`)\n * @example\n * QueueNamingUtils.buildDelayQueueName('wildo.queue.my-app.operations', 2000)\n * // => 'wildo.queue.my-app.operations.delay.2000'\n */\n static buildDelayQueueName(sourceQueueName: string, delayMs: number): string {\n return `${sourceQueueName}.delay.${delayMs}`;\n }\n\n /**\n * Build minion-tick queue name (KD-12 of\n * `.claude/plans/minions-and-workers-implementation.md`).\n *\n * `wildo.queue.{appId}.minion-tick.{minionName}`\n *\n * Each minion subscribes only to its own per-minion queue so the\n * backend-api and the minion (which both connect to the same RabbitMQ\n * vhost) do not compete on the shared `scheduled` queue. The publisher\n * (`platform-crontabs-batches-manager`) routes `MINION_TICK` ticks to\n * this per-minion queue; `SCHEDULED_CRON` ticks keep flowing to the\n * shared `scheduled` queue (consumed by the backend-api executor).\n */\n static buildMinionTickQueueName(appId: string, minionName: string): string {\n return `wildo.queue.${appId}.minion-tick.${minionName}`;\n }\n\n /**\n * Build platform microservice queue name.\n * Platform queues don't include environment as they're shared infrastructure.\n * \n * wildo.queue.platform.{msName}.{category}[.{variant}]\n * \n * @param msName - Microservice name\n * @param category - Queue category\n * @param variant - Optional variant\n * @returns Formatted platform queue name\n */\n static buildPlatformQueueName(\n msName: string,\n category: string,\n variant?: QueueVariant\n ): string {\n const base = `wildo.queue.platform.${msName}.${category}`;\n return variant ? `${base}.${variant}` : base;\n }\n\n /**\n * Parse a queue name to extract its components.\n * \n * @param queueName - Full queue name to parse\n * @returns Parsed components or null if invalid format\n */\n static parseQueueName(queueName: string): {\n type: 'app' | 'platform' | 'reply';\n identifier: string;\n category?: string;\n variant?: string;\n } | null {\n const parts = queueName.split('.');\n \n if (parts.length < 3 || parts[0] !== 'wildo') {\n return null;\n }\n\n // Reply queue: wildo.reply.{appId}.{podId}\n // or wildo.reply.{appId}.{principalSegment}.{podId}\n //\n // `category` stays the LAST segment in both layouts, so it remains the podId\n // rather than silently becoming the principal for principal-scoped names —\n // a caller reading `category` expecting a pod identity must keep getting\n // one.\n if (parts[1] === 'reply') {\n if (parts.length < 4) return null;\n return {\n type: 'reply',\n identifier: parts[2],\n category: parts[parts.length - 1]!,\n // Present only for the principal-scoped layout; `undefined` for the\n // historical one rather than an empty string, so \"no principal in the\n // name\" is distinguishable from \"a principal whose name is empty\".\n variant: parts.length > 4 ? parts[3] : undefined,\n };\n }\n\n // Queue: wildo.queue.{...}\n if (parts[1] === 'queue') {\n if (parts[2] === 'platform') {\n // Platform queue: wildo.queue.platform.{msName}.{category}[.{variant}]\n return {\n type: 'platform',\n identifier: parts[3],\n category: parts[4],\n variant: parts[5],\n };\n } else {\n // App queue: wildo.queue.{appId}.{category}[.{variant}]\n if (parts.length < 4) return null;\n return {\n type: 'app',\n identifier: parts[2],\n category: parts[3],\n variant: parts[4],\n };\n }\n }\n\n return null;\n }\n\n /**\n * Check if a queue name is a dead letter queue.\n */\n static isDeadLetterQueue(queueName: string): boolean {\n return queueName.endsWith('.deadletter');\n }\n\n /**\n * Check if a queue name is a priority queue.\n */\n static isPriorityQueue(queueName: string): boolean {\n return queueName.endsWith('.priority');\n }\n\n /**\n * Check if a queue name is a reply queue.\n */\n static isReplyQueue(queueName: string): boolean {\n return queueName.startsWith('wildo.reply.');\n }\n\n /**\n * Get the base queue name (without variant suffix).\n * \n * @param queueName - Full queue name\n * @returns Base queue name without variant\n */\n static getBaseQueueName(queueName: string): string {\n if (queueName.endsWith('.priority') || queueName.endsWith('.deadletter')) {\n return queueName.substring(0, queueName.lastIndexOf('.'));\n }\n return queueName;\n }\n}\n\n// ============================================================================\n// STANDALONE FUNCTIONS\n// Convenience wrappers around QueueNamingUtils class\n// ============================================================================\n\n/**\n * Build queue name following the convention.\n * wildo.queue.{appId}.{category}[.{variant}]\n */\nexport function buildQueueName(\n appId: string,\n category: string,\n variant?: QueueVariant\n): string {\n return QueueNamingUtils.buildQueueName(appId, category, variant);\n}\n\n/**\n * Build reply queue name for RPC pattern.\n * wildo.reply.{appId}.{podId}\n */\nexport function buildReplyQueueName(appId: string, podId: string, principalSegment?: string): string {\n return QueueNamingUtils.buildReplyQueueName(appId, podId, principalSegment);\n}\n\n/**\n * Build domain queue name.\n * wildo.queue.{appId}.domain.{domainName}\n */\nexport function buildDomainQueueName(appId: string, domainName: string): string {\n return QueueNamingUtils.buildDomainQueueName(appId, domainName);\n}\n\n/**\n * Build a delay (retry-hold) queue name for durable backoff.\n * {sourceQueueName}.delay.{delayMs}\n */\nexport function buildDelayQueueName(sourceQueueName: string, delayMs: number): string {\n return QueueNamingUtils.buildDelayQueueName(sourceQueueName, delayMs);\n}\n\n/**\n * Build per-minion tick queue name (KD-12).\n * wildo.queue.{appId}.minion-tick.{minionName}\n */\nexport function buildMinionTickQueueName(appId: string, minionName: string): string {\n return QueueNamingUtils.buildMinionTickQueueName(appId, minionName);\n}\n\n/**\n * Calculate retry delay based on policy and attempt number.\n * \n * @param config Retry configuration\n * @param attempt Current retry attempt (0-indexed)\n * @returns Delay in milliseconds (capped at maxDelayMs)\n */\nexport function calculateRetryDelay(config: QueueRetryConfig, attempt: number): number {\n let delay: number;\n \n switch (config.retryPolicy) {\n case RetryPolicy_BackoffType.FIXED:\n delay = config.baseDelayMs;\n break;\n case RetryPolicy_BackoffType.LINEAR:\n delay = config.baseDelayMs * (attempt + 1);\n break;\n case RetryPolicy_BackoffType.EXPONENTIAL:\n default:\n delay = config.baseDelayMs * Math.pow(2, attempt);\n break;\n }\n \n return Math.min(delay, config.maxDelayMs);\n}\n\n/**\n * Estimate retry duration assuming each retry takes exactly config.timeoutMs.\n * Excludes the initial attempt and broker waiting time. Worker execution is not\n * capped by timeoutMs; the legacy function name does not imply an enforced maximum.\n *\n * @param config Retry configuration\n * @returns Estimated retry duration in milliseconds under the stated assumption\n */\nexport function calculateMaxRetryDuration(config: QueueRetryConfig): number {\n let totalDelay = 0;\n for (let i = 0; i < config.maxRetries; i++) {\n totalDelay += calculateRetryDelay(config, i);\n totalDelay += config.timeoutMs;\n }\n return totalDelay;\n}\n\n// ============================================================================\n// BROKER CONNECTION URL\n// ============================================================================\n\n/**\n * The RabbitMQ default virtual host, whose NAME is the single character `/`.\n *\n * Every broker ships with it, and an app that authors no\n * `backingServices.rabbitmq.vhost` lands here (isolation then comes from the\n * per-app user's permission regex rather than from a dedicated vhost).\n *\n * Note the deliberate ambiguity this constant resolves: `/` is BOTH the name of\n * the default vhost AND the AMQP URI path separator. Conflating the two is what\n * broke the two pre-consolidation URL builders — see\n * {@link buildRabbitMQConnectionUrl}.\n */\nexport const DEFAULT_RABBITMQ_VHOST = '/';\n\n/** Connection inputs for {@link buildRabbitMQConnectionUrl}. */\nexport interface RabbitMQConnectionUrlParts {\n /** Broker hostname, e.g. `'localhost'`. */\n host: string;\n /** Broker AMQP port, e.g. `5672`. */\n port: number;\n /** Per-app broker username (minted by the infra provider module). */\n username: string;\n /** Per-app broker password (minted by the infra provider module). */\n password: string;\n /**\n * Virtual host **name** — e.g. `'wonder-todos'`, with NO leading slash. This\n * is the value authored at `backingServices.rabbitmq.vhost` in\n * `wildo.infra.<envName>.config.ts` and the same name the infra provider\n * passes to `ensureVhost()` (`PUT /api/vhosts/{name}`), so the string that\n * names the vhost on the broker is the string that appears here.\n *\n * Omit it — or pass {@link DEFAULT_RABBITMQ_VHOST} — to connect to the broker\n * default vhost.\n */\n vhost?: string;\n}\n\n/**\n * Assemble the AMQP connection URL for a broker + vhost + credential triple.\n *\n * This is the SINGLE owner of AMQP URL assembly across the monorepo. It exists\n * because the URL was previously built ad-hoc at three call sites with three\n * different conventions, two of which were wrong in the same way — they\n * interpolated the vhost directly after the port with no separator:\n *\n * ```ts\n * `amqp://${user}:${pass}@${host}:${port}${vhost || '/'}` // ← the old, broken form\n * ```\n *\n * That form only ever worked because the `'/'` fallback doubles as the URI path\n * separator, so the default case accidentally produced a well-formed URL with an\n * empty path. The moment a real vhost was threaded through it produced\n * `amqp://…@localhost:5672wonder-todos` — a malformed authority that fails to\n * connect. A silent misconfiguration (every app quietly sharing the default\n * vhost) was therefore load-bearing for the URL builder not crashing, which is\n * why the two defects had to be fixed together.\n *\n * The encoding rules, per the AMQP URI spec (RFC 3986 userinfo + path):\n *\n * - **Userinfo is percent-encoded.** Minted passwords are random and may contain\n * `@`, `:` or `/`, any of which would otherwise terminate the userinfo or\n * authority early and silently retarget the connection.\n * - **The path separator is unconditional.** The `/` after the port is always\n * emitted; it is URI syntax, never vhost data.\n * - **An EMPTY path means the default vhost.** So both an omitted vhost and the\n * literal default-vhost name `'/'` collapse to `amqp://host:port/`. This is\n * byte-for-byte what the previous builders emitted for the default case, so\n * consolidating cannot regress a currently-connected deployment.\n * - **A named vhost is percent-encoded** into exactly one path segment, so a\n * vhost containing `/` encodes to `%2F` and addresses one vhost rather than\n * splitting into a bogus second segment.\n *\n * @example\n * buildRabbitMQConnectionUrl({ host: 'localhost', port: 5672, username: 'wildo', password: 'pw' });\n * // → 'amqp://wildo:pw@localhost:5672/' (default vhost)\n *\n * buildRabbitMQConnectionUrl({ host: 'localhost', port: 5672, username: 'wildo', password: 'pw', vhost: 'wonder-todos' });\n * // → 'amqp://wildo:pw@localhost:5672/wonder-todos' (per-app vhost)\n */\nexport function buildRabbitMQConnectionUrl(parts: RabbitMQConnectionUrlParts): string {\n const { host, port, username, password, vhost } = parts;\n\n // An empty path addresses the broker default vhost. Encoding the literal name\n // `'/'` as `%2F` would ALSO address it, but emitting the empty path keeps this\n // builder's default-case output identical to the pre-consolidation builders.\n const vhostPath =\n !vhost || vhost === DEFAULT_RABBITMQ_VHOST ? '' : encodeURIComponent(vhost);\n\n return `amqp://${encodeURIComponent(username)}:${encodeURIComponent(password)}@${host}:${port}/${vhostPath}`;\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search availability, separate from hit count, permissions and context budgets.
|
|
3
|
+
* Shared by the engine result and application response schemas so projections cannot silently
|
|
4
|
+
* rename a failure into a healthy empty result. No provider/database error text belongs here.
|
|
5
|
+
*/
|
|
6
|
+
export declare enum RagRetrievalSearchStatus {
|
|
7
|
+
/** All requested search arms completed; zero hits is a valid search outcome. */
|
|
8
|
+
HEALTHY = "healthy",
|
|
9
|
+
/** Some requested arms or resource stores were unavailable; at least one arm completed. */
|
|
10
|
+
DEGRADED = "degraded",
|
|
11
|
+
/** No usable search result: execution failed or every requested arm was unavailable. */
|
|
12
|
+
FAILED = "failed",
|
|
13
|
+
/** No admitted corpus or no searchable query; does not establish absence of knowledge. */
|
|
14
|
+
NOT_RUN = "not-run"
|
|
15
|
+
}
|
|
16
|
+
/** Query-vector preparation, independent of the search store's actual arm participation. */
|
|
17
|
+
export declare enum RagRetrievalEmbeddingStatus {
|
|
18
|
+
/** A query vector was produced; this does not certify vector-index readiness. */
|
|
19
|
+
GENERATED = "generated",
|
|
20
|
+
/** No embeddings provider is configured. Healthy lexical-only retrieval is supported. */
|
|
21
|
+
NOT_CONFIGURED = "not-configured",
|
|
22
|
+
/** A configured provider or its binding failed; lexical retrieval may still succeed. */
|
|
23
|
+
FAILED = "failed",
|
|
24
|
+
/** No admitted corpus required query-vector preparation. */
|
|
25
|
+
NOT_REQUESTED = "not-requested"
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=rag-retrieval-health.shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-retrieval-health.shared.d.ts","sourceRoot":"","sources":["../../../../src/rag/rag-retrieval-health.shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,wBAAwB;IAClC,gFAAgF;IAChF,OAAO,YAAY;IACnB,2FAA2F;IAC3F,QAAQ,aAAa;IACrB,wFAAwF;IACxF,MAAM,WAAW;IACjB,0FAA0F;IAC1F,OAAO,YAAY;CACpB;AAED,4FAA4F;AAC5F,oBAAY,2BAA2B;IACrC,iFAAiF;IACjF,SAAS,cAAc;IACvB,yFAAyF;IACzF,cAAc,mBAAmB;IACjC,wFAAwF;IACxF,MAAM,WAAW;IACjB,4DAA4D;IAC5D,aAAa,kBAAkB;CAChC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search availability, separate from hit count, permissions and context budgets.
|
|
3
|
+
* Shared by the engine result and application response schemas so projections cannot silently
|
|
4
|
+
* rename a failure into a healthy empty result. No provider/database error text belongs here.
|
|
5
|
+
*/
|
|
6
|
+
export var RagRetrievalSearchStatus;
|
|
7
|
+
(function (RagRetrievalSearchStatus) {
|
|
8
|
+
/** All requested search arms completed; zero hits is a valid search outcome. */
|
|
9
|
+
RagRetrievalSearchStatus["HEALTHY"] = "healthy";
|
|
10
|
+
/** Some requested arms or resource stores were unavailable; at least one arm completed. */
|
|
11
|
+
RagRetrievalSearchStatus["DEGRADED"] = "degraded";
|
|
12
|
+
/** No usable search result: execution failed or every requested arm was unavailable. */
|
|
13
|
+
RagRetrievalSearchStatus["FAILED"] = "failed";
|
|
14
|
+
/** No admitted corpus or no searchable query; does not establish absence of knowledge. */
|
|
15
|
+
RagRetrievalSearchStatus["NOT_RUN"] = "not-run";
|
|
16
|
+
})(RagRetrievalSearchStatus || (RagRetrievalSearchStatus = {}));
|
|
17
|
+
/** Query-vector preparation, independent of the search store's actual arm participation. */
|
|
18
|
+
export var RagRetrievalEmbeddingStatus;
|
|
19
|
+
(function (RagRetrievalEmbeddingStatus) {
|
|
20
|
+
/** A query vector was produced; this does not certify vector-index readiness. */
|
|
21
|
+
RagRetrievalEmbeddingStatus["GENERATED"] = "generated";
|
|
22
|
+
/** No embeddings provider is configured. Healthy lexical-only retrieval is supported. */
|
|
23
|
+
RagRetrievalEmbeddingStatus["NOT_CONFIGURED"] = "not-configured";
|
|
24
|
+
/** A configured provider or its binding failed; lexical retrieval may still succeed. */
|
|
25
|
+
RagRetrievalEmbeddingStatus["FAILED"] = "failed";
|
|
26
|
+
/** No admitted corpus required query-vector preparation. */
|
|
27
|
+
RagRetrievalEmbeddingStatus["NOT_REQUESTED"] = "not-requested";
|
|
28
|
+
})(RagRetrievalEmbeddingStatus || (RagRetrievalEmbeddingStatus = {}));
|
|
29
|
+
//# sourceMappingURL=rag-retrieval-health.shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-retrieval-health.shared.js","sourceRoot":"","sources":["../../../../src/rag/rag-retrieval-health.shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,wBASX;AATD,WAAY,wBAAwB;IAClC,gFAAgF;IAChF,+CAAmB,CAAA;IACnB,2FAA2F;IAC3F,iDAAqB,CAAA;IACrB,wFAAwF;IACxF,6CAAiB,CAAA;IACjB,0FAA0F;IAC1F,+CAAmB,CAAA;AACrB,CAAC,EATW,wBAAwB,KAAxB,wBAAwB,QASnC;AAED,4FAA4F;AAC5F,MAAM,CAAN,IAAY,2BASX;AATD,WAAY,2BAA2B;IACrC,iFAAiF;IACjF,sDAAuB,CAAA;IACvB,yFAAyF;IACzF,gEAAiC,CAAA;IACjC,wFAAwF;IACxF,gDAAiB,CAAA;IACjB,4DAA4D;IAC5D,8DAA+B,CAAA;AACjC,CAAC,EATW,2BAA2B,KAA3B,2BAA2B,QAStC","sourcesContent":["/**\n * Search availability, separate from hit count, permissions and context budgets.\n * Shared by the engine result and application response schemas so projections cannot silently\n * rename a failure into a healthy empty result. No provider/database error text belongs here.\n */\nexport enum RagRetrievalSearchStatus {\n /** All requested search arms completed; zero hits is a valid search outcome. */\n HEALTHY = 'healthy',\n /** Some requested arms or resource stores were unavailable; at least one arm completed. */\n DEGRADED = 'degraded',\n /** No usable search result: execution failed or every requested arm was unavailable. */\n FAILED = 'failed',\n /** No admitted corpus or no searchable query; does not establish absence of knowledge. */\n NOT_RUN = 'not-run',\n}\n\n/** Query-vector preparation, independent of the search store's actual arm participation. */\nexport enum RagRetrievalEmbeddingStatus {\n /** A query vector was produced; this does not certify vector-index readiness. */\n GENERATED = 'generated',\n /** No embeddings provider is configured. Healthy lexical-only retrieval is supported. */\n NOT_CONFIGURED = 'not-configured',\n /** A configured provider or its binding failed; lexical retrieval may still succeed. */\n FAILED = 'failed',\n /** No admitted corpus required query-vector preparation. */\n NOT_REQUESTED = 'not-requested',\n}\n"]}
|
|
@@ -58,6 +58,12 @@ export declare const WildoHeaderKeys: {
|
|
|
58
58
|
*/
|
|
59
59
|
readonly CLIENT_INSTANCE_ID: "x-client-instance-id";
|
|
60
60
|
readonly REAUTH_TOKEN: "x-reauth-token";
|
|
61
|
+
/**
|
|
62
|
+
* The caller's identity for ONE intended mutation, so a retry receives the first request's outcome instead of running
|
|
63
|
+
* again. Taken only by an operation variant that declares `idempotencyKey`; see `idempotency-key.shared.ts` for the
|
|
64
|
+
* value syntax, the bounds and the refusals. Standard name, not `x-`-prefixed: it is the IETF httpapi draft's header.
|
|
65
|
+
*/
|
|
66
|
+
readonly IDEMPOTENCY_KEY: "idempotency-key";
|
|
61
67
|
readonly AUTH_SESSION_ID: "x-auth-session-id";
|
|
62
68
|
readonly ANONYMOUS_SESSION_INIT: "x-anonymous-session-init";
|
|
63
69
|
readonly ANONYMOUS_SESSION: "x-anonymous-session";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-keys.shared.d.ts","sourceRoot":"","sources":["../../../../src/requests/header-keys.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;IAqC1B;;;;;;;;;;;OAWG;;;;;;;;;;;IAyBH;;;;;OAKG
|
|
1
|
+
{"version":3,"file":"header-keys.shared.d.ts","sourceRoot":"","sources":["../../../../src/requests/header-keys.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;IAqC1B;;;;;;;;;;;OAWG;;;;;;;;;;;IAyBH;;;;;OAKG;;;IAOH;;;;OAIG;;;;;;;;;;;;;;CAoCK,CAAC"}
|
|
@@ -78,6 +78,13 @@ export const WildoHeaderKeys = {
|
|
|
78
78
|
CLIENT_INSTANCE_ID: 'x-client-instance-id',
|
|
79
79
|
// ── Step-up re-authentication ──────────────────────────────────────
|
|
80
80
|
REAUTH_TOKEN: 'x-reauth-token',
|
|
81
|
+
// ── Request idempotency ────────────────────────────────────────────
|
|
82
|
+
/**
|
|
83
|
+
* The caller's identity for ONE intended mutation, so a retry receives the first request's outcome instead of running
|
|
84
|
+
* again. Taken only by an operation variant that declares `idempotencyKey`; see `idempotency-key.shared.ts` for the
|
|
85
|
+
* value syntax, the bounds and the refusals. Standard name, not `x-`-prefixed: it is the IETF httpapi draft's header.
|
|
86
|
+
*/
|
|
87
|
+
IDEMPOTENCY_KEY: 'idempotency-key',
|
|
81
88
|
// ── MFA enrollment ─────────────────────────────────────────────────
|
|
82
89
|
AUTH_SESSION_ID: 'x-auth-session-id',
|
|
83
90
|
// ── Anonymous sessions (W7.3a) ─────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-keys.shared.js","sourceRoot":"","sources":["../../../../src/requests/header-keys.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,sEAAsE;IACtE,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,IAAI,EAAE,MAAM;IAEZ,uEAAuE;IACvE,eAAe,EAAE,iBAAiB;IAElC,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,gEAAgE;IAChE,sCAAsC;IACtC,oEAAoE;IACpE,mBAAmB,EAAE,2BAA2B;IAEhD,sEAAsE;IACtE,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAElC,sEAAsE;IACtE,eAAe,EAAE,mBAAmB;IACpC,OAAO,EAAE,WAAW;IACpB,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,oBAAoB;IAEtC;;;;;;;;;;;OAWG;IACH,uBAAuB,EAAE,iCAAiC;IAE1D,sEAAsE;IACtE,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAEhC,sEAAsE;IACtE,wFAAwF;IACxF,wFAAwF;IACxF,iFAAiF;IACjF,gFAAgF;IAChF,cAAc,EAAE,kBAAkB;IAElC,sEAAsE;IACtE,gBAAgB,EAAE,mBAAmB;IACrC,oBAAoB,EAAE,uBAAuB;IAC7C,gBAAgB,EAAE,mBAAmB;IAErC,sEAAsE;IACtE,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,eAAe;IAE5B,sEAAsE;IACtE,qBAAqB,EAAE,yBAAyB;IAChD;;;;;OAKG;IACH,kBAAkB,EAAE,sBAAsB;IAE1C,sEAAsE;IACtE,YAAY,EAAE,gBAAgB;IAE9B,sEAAsE;IACtE,eAAe,EAAE,mBAAmB;IAEpC,sEAAsE;IACtE,sBAAsB,EAAE,0BAA0B;IAClD,iBAAiB,EAAE,qBAAqB;IACxC,uBAAuB,EAAE,2BAA2B;IAEpD,sEAAsE;IACtE,oEAAoE;IACpE,+DAA+D;IAC/D,oEAAoE;IACpE,mEAAmE;IACnE,yCAAyC;IACzC,oEAAoE;IACpE,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,oCAAoC;IACpC,YAAY,EAAE,gBAAgB;IAE9B,sEAAsE;IACtE,gBAAgB,EAAE,oBAAoB;IACtC,yBAAyB,EAAE,6BAA6B;IAExD,uEAAuE;IACvE,aAAa,EAAE,eAAe;IAE9B,sEAAsE;IACtE,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,kBAAkB;IAClC,OAAO,EAAE,WAAW;CACZ,CAAC","sourcesContent":["/**\n * Canonical HTTP header keys for the entire Wildo platform.\n *\n * Single source of truth — imported by backend, frontend, platform, and CLI.\n * All values are lowercase (HTTP/2 canonical form). Express normalizes\n * incoming headers to lowercase automatically, so these work for both\n * reading (req.headers[key]) and writing (res.setHeader(key, value)).\n */\nexport const WildoHeaderKeys = {\n // ── Standard HTTP ──────────────────────────────────────────────────\n AUTHORIZATION: 'authorization',\n CONTENT_TYPE: 'content-type',\n CONTENT_LENGTH: 'content-length',\n ACCEPT: 'accept',\n USER_AGENT: 'user-agent',\n ETAG: 'etag',\n IF_MATCH: 'if-match',\n LAST_MODIFIED: 'last-modified',\n CACHE_CONTROL: 'cache-control',\n ORIGIN: 'origin',\n LOCATION: 'location',\n WWW_AUTHENTICATE: 'www-authenticate',\n HOST: 'host',\n\n // ── SIEM webhook (HMAC signature) ───────────────────────────────────\n X_SIGNATURE_256: 'x-signature-256',\n\n // ── M2M outbound webhook (JWT signature) ────────────────────────────\n // Carries the compact-serialized JWT (header.payload.signature) signed\n // with `JwtPrivateKeys.APPLICATION_WEBHOOK`. Embeds `bodyHash` (sha256\n // hex of the POST body) as a claim so consumers can verify both\n // identity AND payload integrity. See\n // `notifications/webhooks/outbound/` in saas-backend-lib (Phase 3).\n X_WEBHOOK_SIGNATURE: 'x-wildo-webhook-signature',\n\n // ── Service identity ───────────────────────────────────────────────\n SERVICE_ID: 'x-service-id',\n APPLICATION_ID: 'x-application-id',\n\n // ── Authentication ─────────────────────────────────────────────────\n PLATFORM_SECRET: 'x-platform-secret',\n API_KEY: 'x-api-key',\n ORGANIZATION_ID: 'x-organization-id',\n LIFECYCLE_SECRET: 'x-lifecycle-secret',\n\n /**\n * A short-lived attestation, MINTED BY apps-manager, that the bearer is one\n * named runtime principal (`minion:<name>`) of one application.\n *\n * A separate header from {@link WildoHeaderKeys.AUTHORIZATION} on purpose. The\n * bearer is not a platform service and must not present itself through\n * `SERVICE_ID`, and it is not the application backend either — an application\n * JWT is signed with a key EVERY runtime of that application holds, so a claim\n * carried there could name any sibling. This header's token is signed by\n * apps-manager, which is the only party that learns the principal from the\n * secret PRESENTED rather than from anything the caller asserts.\n */\n RUNTIME_PRINCIPAL_TOKEN: 'x-wildo-runtime-principal-token',\n\n // ── Target application (cross-app operations) ──────────────────────\n TARGET_APP_SLUG: 'x-target-app-slug',\n TARGET_APP_ID: 'x-target-app-id',\n\n // ── Observability ──────────────────────────────────────────────────\n // The canonical per-request identifier carried across every service hop. The receiver's\n // `setupRequestContext` ingests it into the request-scoped ALS frame, so the downstream\n // request's EC, logs and audit all share one correlationId. (Replaced the former\n // `x-request-uuid`, which was set on the platform channel but never read back.)\n CORRELATION_ID: 'x-correlation-id',\n\n // ── Rate limiting (response) ───────────────────────────────────────\n RATE_LIMIT_LIMIT: 'x-ratelimit-limit',\n RATE_LIMIT_REMAINING: 'x-ratelimit-remaining',\n RATE_LIMIT_RESET: 'x-ratelimit-reset',\n\n // ── File transfer (gateway) ────────────────────────────────────────\n FILE_ID: 'x-file-id',\n STORAGE_KEY: 'x-storage-key',\n\n // ── Frontend originator ────────────────────────────────────────────\n FRONTEND_SERVICE_NAME: 'x-frontend-service-name',\n /**\n * Which browser/device INSTALL issued the request. Sent ONLY when the application authored a\n * non-`DISABLED` `compliance.clientInstanceIdScope`, and INGESTED only under that same policy —\n * the backend fails closed, so an unopted application records nothing even if a client sends it.\n * See `ClientInstanceIdScope` for the privacy reasoning.\n */\n CLIENT_INSTANCE_ID: 'x-client-instance-id',\n\n // ── Step-up re-authentication ──────────────────────────────────────\n REAUTH_TOKEN: 'x-reauth-token',\n\n // ── MFA enrollment ─────────────────────────────────────────────────\n AUTH_SESSION_ID: 'x-auth-session-id',\n\n // ── Anonymous sessions (W7.3a) ─────────────────────────────────────\n ANONYMOUS_SESSION_INIT: 'x-anonymous-session-init',\n ANONYMOUS_SESSION: 'x-anonymous-session',\n ANONYMOUS_SESSION_TOKEN: 'x-anonymous-session-token',\n\n // ── Marketing site first-touch attribution (Phase 0.5, Q-D=β) ──────\n // Sent by the marketing-site bootstrap on the very first request to\n // the anonymous-session-init endpoint. Carries the path of the\n // landing page (e.g. `/pricing`, `/blog/post-slug`) — distinct from\n // `req.path` because the session-init endpoint URL is itself not a\n // marketing landing page. Stored ONCE on\n // `AnonymousUser.marketingMetadata.landingPath` (first-touch only).\n // Carried in the engine CORS `allowedHeaders` floor (framework-universal),\n // since it travels with `x-anonymous-session-init` on the same preflighted\n // session-init request — see `engineAllowedHeaders` in saas-backend-lib's\n // `http-server.backend.service.ts`.\n LANDING_PATH: 'x-landing-path',\n\n // ── Consumable tokens (W7.3b) ──────────────────────────────────────\n CONSUMABLE_TOKEN: 'x-consumable-token',\n CONSUMABLE_TOKEN_CONSUMED: 'x-consumable-token-consumed',\n\n // ── CRDT time synchronization ───────────────────────────────────────\n X_SERVER_TIME: 'x-server-time',\n\n // ── Proxy headers ──────────────────────────────────────────────────\n FORWARDED_FOR: 'x-forwarded-for',\n FORWARDED_PROTO: 'x-forwarded-proto',\n FORWARDED_HOST: 'x-forwarded-host',\n REAL_IP: 'x-real-ip',\n} as const;\n"]}
|
|
1
|
+
{"version":3,"file":"header-keys.shared.js","sourceRoot":"","sources":["../../../../src/requests/header-keys.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,sEAAsE;IACtE,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,IAAI,EAAE,MAAM;IAEZ,uEAAuE;IACvE,eAAe,EAAE,iBAAiB;IAElC,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,gEAAgE;IAChE,sCAAsC;IACtC,oEAAoE;IACpE,mBAAmB,EAAE,2BAA2B;IAEhD,sEAAsE;IACtE,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAElC,sEAAsE;IACtE,eAAe,EAAE,mBAAmB;IACpC,OAAO,EAAE,WAAW;IACpB,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,oBAAoB;IAEtC;;;;;;;;;;;OAWG;IACH,uBAAuB,EAAE,iCAAiC;IAE1D,sEAAsE;IACtE,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAEhC,sEAAsE;IACtE,wFAAwF;IACxF,wFAAwF;IACxF,iFAAiF;IACjF,gFAAgF;IAChF,cAAc,EAAE,kBAAkB;IAElC,sEAAsE;IACtE,gBAAgB,EAAE,mBAAmB;IACrC,oBAAoB,EAAE,uBAAuB;IAC7C,gBAAgB,EAAE,mBAAmB;IAErC,sEAAsE;IACtE,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,eAAe;IAE5B,sEAAsE;IACtE,qBAAqB,EAAE,yBAAyB;IAChD;;;;;OAKG;IACH,kBAAkB,EAAE,sBAAsB;IAE1C,sEAAsE;IACtE,YAAY,EAAE,gBAAgB;IAE9B,sEAAsE;IACtE;;;;OAIG;IACH,eAAe,EAAE,iBAAiB;IAElC,sEAAsE;IACtE,eAAe,EAAE,mBAAmB;IAEpC,sEAAsE;IACtE,sBAAsB,EAAE,0BAA0B;IAClD,iBAAiB,EAAE,qBAAqB;IACxC,uBAAuB,EAAE,2BAA2B;IAEpD,sEAAsE;IACtE,oEAAoE;IACpE,+DAA+D;IAC/D,oEAAoE;IACpE,mEAAmE;IACnE,yCAAyC;IACzC,oEAAoE;IACpE,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,oCAAoC;IACpC,YAAY,EAAE,gBAAgB;IAE9B,sEAAsE;IACtE,gBAAgB,EAAE,oBAAoB;IACtC,yBAAyB,EAAE,6BAA6B;IAExD,uEAAuE;IACvE,aAAa,EAAE,eAAe;IAE9B,sEAAsE;IACtE,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,kBAAkB;IAClC,OAAO,EAAE,WAAW;CACZ,CAAC","sourcesContent":["/**\n * Canonical HTTP header keys for the entire Wildo platform.\n *\n * Single source of truth — imported by backend, frontend, platform, and CLI.\n * All values are lowercase (HTTP/2 canonical form). Express normalizes\n * incoming headers to lowercase automatically, so these work for both\n * reading (req.headers[key]) and writing (res.setHeader(key, value)).\n */\nexport const WildoHeaderKeys = {\n // ── Standard HTTP ──────────────────────────────────────────────────\n AUTHORIZATION: 'authorization',\n CONTENT_TYPE: 'content-type',\n CONTENT_LENGTH: 'content-length',\n ACCEPT: 'accept',\n USER_AGENT: 'user-agent',\n ETAG: 'etag',\n IF_MATCH: 'if-match',\n LAST_MODIFIED: 'last-modified',\n CACHE_CONTROL: 'cache-control',\n ORIGIN: 'origin',\n LOCATION: 'location',\n WWW_AUTHENTICATE: 'www-authenticate',\n HOST: 'host',\n\n // ── SIEM webhook (HMAC signature) ───────────────────────────────────\n X_SIGNATURE_256: 'x-signature-256',\n\n // ── M2M outbound webhook (JWT signature) ────────────────────────────\n // Carries the compact-serialized JWT (header.payload.signature) signed\n // with `JwtPrivateKeys.APPLICATION_WEBHOOK`. Embeds `bodyHash` (sha256\n // hex of the POST body) as a claim so consumers can verify both\n // identity AND payload integrity. See\n // `notifications/webhooks/outbound/` in saas-backend-lib (Phase 3).\n X_WEBHOOK_SIGNATURE: 'x-wildo-webhook-signature',\n\n // ── Service identity ───────────────────────────────────────────────\n SERVICE_ID: 'x-service-id',\n APPLICATION_ID: 'x-application-id',\n\n // ── Authentication ─────────────────────────────────────────────────\n PLATFORM_SECRET: 'x-platform-secret',\n API_KEY: 'x-api-key',\n ORGANIZATION_ID: 'x-organization-id',\n LIFECYCLE_SECRET: 'x-lifecycle-secret',\n\n /**\n * A short-lived attestation, MINTED BY apps-manager, that the bearer is one\n * named runtime principal (`minion:<name>`) of one application.\n *\n * A separate header from {@link WildoHeaderKeys.AUTHORIZATION} on purpose. The\n * bearer is not a platform service and must not present itself through\n * `SERVICE_ID`, and it is not the application backend either — an application\n * JWT is signed with a key EVERY runtime of that application holds, so a claim\n * carried there could name any sibling. This header's token is signed by\n * apps-manager, which is the only party that learns the principal from the\n * secret PRESENTED rather than from anything the caller asserts.\n */\n RUNTIME_PRINCIPAL_TOKEN: 'x-wildo-runtime-principal-token',\n\n // ── Target application (cross-app operations) ──────────────────────\n TARGET_APP_SLUG: 'x-target-app-slug',\n TARGET_APP_ID: 'x-target-app-id',\n\n // ── Observability ──────────────────────────────────────────────────\n // The canonical per-request identifier carried across every service hop. The receiver's\n // `setupRequestContext` ingests it into the request-scoped ALS frame, so the downstream\n // request's EC, logs and audit all share one correlationId. (Replaced the former\n // `x-request-uuid`, which was set on the platform channel but never read back.)\n CORRELATION_ID: 'x-correlation-id',\n\n // ── Rate limiting (response) ───────────────────────────────────────\n RATE_LIMIT_LIMIT: 'x-ratelimit-limit',\n RATE_LIMIT_REMAINING: 'x-ratelimit-remaining',\n RATE_LIMIT_RESET: 'x-ratelimit-reset',\n\n // ── File transfer (gateway) ────────────────────────────────────────\n FILE_ID: 'x-file-id',\n STORAGE_KEY: 'x-storage-key',\n\n // ── Frontend originator ────────────────────────────────────────────\n FRONTEND_SERVICE_NAME: 'x-frontend-service-name',\n /**\n * Which browser/device INSTALL issued the request. Sent ONLY when the application authored a\n * non-`DISABLED` `compliance.clientInstanceIdScope`, and INGESTED only under that same policy —\n * the backend fails closed, so an unopted application records nothing even if a client sends it.\n * See `ClientInstanceIdScope` for the privacy reasoning.\n */\n CLIENT_INSTANCE_ID: 'x-client-instance-id',\n\n // ── Step-up re-authentication ──────────────────────────────────────\n REAUTH_TOKEN: 'x-reauth-token',\n\n // ── Request idempotency ────────────────────────────────────────────\n /**\n * The caller's identity for ONE intended mutation, so a retry receives the first request's outcome instead of running\n * again. Taken only by an operation variant that declares `idempotencyKey`; see `idempotency-key.shared.ts` for the\n * value syntax, the bounds and the refusals. Standard name, not `x-`-prefixed: it is the IETF httpapi draft's header.\n */\n IDEMPOTENCY_KEY: 'idempotency-key',\n\n // ── MFA enrollment ─────────────────────────────────────────────────\n AUTH_SESSION_ID: 'x-auth-session-id',\n\n // ── Anonymous sessions (W7.3a) ─────────────────────────────────────\n ANONYMOUS_SESSION_INIT: 'x-anonymous-session-init',\n ANONYMOUS_SESSION: 'x-anonymous-session',\n ANONYMOUS_SESSION_TOKEN: 'x-anonymous-session-token',\n\n // ── Marketing site first-touch attribution (Phase 0.5, Q-D=β) ──────\n // Sent by the marketing-site bootstrap on the very first request to\n // the anonymous-session-init endpoint. Carries the path of the\n // landing page (e.g. `/pricing`, `/blog/post-slug`) — distinct from\n // `req.path` because the session-init endpoint URL is itself not a\n // marketing landing page. Stored ONCE on\n // `AnonymousUser.marketingMetadata.landingPath` (first-touch only).\n // Carried in the engine CORS `allowedHeaders` floor (framework-universal),\n // since it travels with `x-anonymous-session-init` on the same preflighted\n // session-init request — see `engineAllowedHeaders` in saas-backend-lib's\n // `http-server.backend.service.ts`.\n LANDING_PATH: 'x-landing-path',\n\n // ── Consumable tokens (W7.3b) ──────────────────────────────────────\n CONSUMABLE_TOKEN: 'x-consumable-token',\n CONSUMABLE_TOKEN_CONSUMED: 'x-consumable-token-consumed',\n\n // ── CRDT time synchronization ───────────────────────────────────────\n X_SERVER_TIME: 'x-server-time',\n\n // ── Proxy headers ──────────────────────────────────────────────────\n FORWARDED_FOR: 'x-forwarded-for',\n FORWARDED_PROTO: 'x-forwarded-proto',\n FORWARDED_HOST: 'x-forwarded-host',\n REAL_IP: 'x-real-ip',\n} as const;\n"]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `Idempotency-Key` request header: its vocabulary, its bounds and its one parser (#535).
|
|
3
|
+
*
|
|
4
|
+
* A caller that sends the same key again is asking for the outcome of the FIRST request, not for a second execution. An
|
|
5
|
+
* operation variant declares whether it takes the header ({@link ResourceOperationIdempotencyKeyRequirement}); the
|
|
6
|
+
* framework parses and bounds the value here, refuses a malformed or undeclared one, and hands the key to the operation's
|
|
7
|
+
* implementation, which owns what "the same request" means for its effects (a billing mutation, for example, replays the
|
|
8
|
+
* committed change and refuses the same key sent with a different request).
|
|
9
|
+
*
|
|
10
|
+
* Shared by the backend controller that reads the header, the frontend client that writes it and the OpenAPI projection
|
|
11
|
+
* that documents it, so the three cannot disagree about what a key is.
|
|
12
|
+
*
|
|
13
|
+
* spec-cite: draft-ietf-httpapi-idempotency-key-header-07 (2025-10-15), https://datatracker.ietf.org/doc/html/draft-ietf-httpapi-idempotency-key-header
|
|
14
|
+
* — the header name, its String value, and the 400/409/422 outcomes are taken from that draft; the wording here is this
|
|
15
|
+
* repository's own.
|
|
16
|
+
*/
|
|
17
|
+
/** Whether an operation variant takes the `Idempotency-Key` request header. Absent on a variant: it takes none. */
|
|
18
|
+
export declare enum ResourceOperationIdempotencyKeyRequirement {
|
|
19
|
+
/**
|
|
20
|
+
* The header is honored when a caller sends it, and a request without it runs unkeyed. For an operation whose effect
|
|
21
|
+
* converges when repeated (cancelling, resuming), so an unkeyed retry is safe even though it is not deduplicated.
|
|
22
|
+
*/
|
|
23
|
+
ACCEPTED = "accepted",
|
|
24
|
+
/**
|
|
25
|
+
* A request without the header is refused with 400 before anything runs. For an operation whose repeat is a second,
|
|
26
|
+
* different effect (adding an add-on twice adds two), where an unkeyed retry is exactly the duplicate the key prevents.
|
|
27
|
+
*/
|
|
28
|
+
REQUIRED = "required"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Longest key accepted, in characters. A key is stored as part of an operation's admission identity, which also carries
|
|
32
|
+
* the operation name, inside a 255-character column; 200 leaves room for that prefix. A UUID is 36.
|
|
33
|
+
*/
|
|
34
|
+
export declare const IDEMPOTENCY_KEY_MAX_LENGTH = 200;
|
|
35
|
+
/** Why the framework refused a request's `Idempotency-Key`, carried as the client-branchable `error.code` of a 400. */
|
|
36
|
+
export declare enum IdempotencyKeyRefusalCode {
|
|
37
|
+
/** The operation requires the header and the request did not send one. */
|
|
38
|
+
REQUIRED = "idempotency_key_required",
|
|
39
|
+
/** The header is present but is not a String of 1 to {@link IDEMPOTENCY_KEY_MAX_LENGTH} printable ASCII characters. */
|
|
40
|
+
MALFORMED = "idempotency_key_malformed",
|
|
41
|
+
/**
|
|
42
|
+
* The header was sent to a MUTATION that does not take one. Refused rather than ignored: a caller who sent a key believes
|
|
43
|
+
* a retry is deduplicated, and silently ignoring it would let that retry run twice. A read-shaped operation ignores an
|
|
44
|
+
* undeclared key instead, because repeating a read is harmless.
|
|
45
|
+
*/
|
|
46
|
+
NOT_ACCEPTED = "idempotency_key_not_accepted"
|
|
47
|
+
}
|
|
48
|
+
/** What one reading of the header found. */
|
|
49
|
+
export declare enum IdempotencyKeyHeaderOutcome {
|
|
50
|
+
ABSENT = "absent",
|
|
51
|
+
KEY = "key",
|
|
52
|
+
MALFORMED = "malformed"
|
|
53
|
+
}
|
|
54
|
+
export type IdempotencyKeyHeaderParse = {
|
|
55
|
+
outcome: IdempotencyKeyHeaderOutcome.ABSENT;
|
|
56
|
+
} | {
|
|
57
|
+
outcome: IdempotencyKeyHeaderOutcome.KEY;
|
|
58
|
+
key: string;
|
|
59
|
+
} | {
|
|
60
|
+
outcome: IdempotencyKeyHeaderOutcome.MALFORMED;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Read one request's `Idempotency-Key` header value.
|
|
64
|
+
*
|
|
65
|
+
* Accepts the draft's String form (`"8e03978e-40d5-43e8-bc93-6894a57f9324"`, printable ASCII, `\"` and `\\` the only
|
|
66
|
+
* escapes) and, for clients that send it unquoted, a bare token. Anything else is MALFORMED, never trimmed into a key:
|
|
67
|
+
*
|
|
68
|
+
* - an empty value (the header was sent, so the caller meant something);
|
|
69
|
+
* - a repeated header, which Node joins with `, ` and which could otherwise be read as one key made of two;
|
|
70
|
+
* - a control or non-ASCII character, which would reach logs and a stored admission identity;
|
|
71
|
+
* - a key longer than {@link IDEMPOTENCY_KEY_MAX_LENGTH}.
|
|
72
|
+
*/
|
|
73
|
+
export declare function parseIdempotencyKeyHeader(raw: string | readonly string[] | undefined): IdempotencyKeyHeaderParse;
|
|
74
|
+
/** Write a key as the header's String form, the inverse of {@link parseIdempotencyKeyHeader}. */
|
|
75
|
+
export declare function formatIdempotencyKeyHeader(key: string): string;
|
|
76
|
+
//# sourceMappingURL=idempotency-key.shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency-key.shared.d.ts","sourceRoot":"","sources":["../../../../src/requests/idempotency-key.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,mHAAmH;AACnH,oBAAY,0CAA0C;IACpD;;;OAGG;IACH,QAAQ,aAAa;IACrB;;;OAGG;IACH,QAAQ,aAAa;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,uHAAuH;AACvH,oBAAY,yBAAyB;IACnC,0EAA0E;IAC1E,QAAQ,6BAA6B;IACrC,uHAAuH;IACvH,SAAS,8BAA8B;IACvC;;;;OAIG;IACH,YAAY,iCAAiC;CAC9C;AAED,4CAA4C;AAC5C,oBAAY,2BAA2B;IACrC,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,OAAO,EAAE,2BAA2B,CAAC,MAAM,CAAA;CAAE,GAC/C;IAAE,OAAO,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAA;CAAE,CAAC;AAKvD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,yBAAyB,CA6BhH;AAED,iGAAiG;AACjG,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9D"}
|