@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
|
@@ -29,7 +29,7 @@ export var ChildLifecycleMode;
|
|
|
29
29
|
/**
|
|
30
30
|
* What happens to a child when its parent is deleted — the STRATEGY axis, ORTHOGONAL to
|
|
31
31
|
* `ChildLifecycleMode` (which is the sync/async TIMING axis). Kept separate deliberately: strategy
|
|
32
|
-
* (delete
|
|
32
|
+
* (delete, scrub-and-keep, or refuse) and timing (immediate vs lazy) are independent concerns.
|
|
33
33
|
*/
|
|
34
34
|
export var ChildLifecycleStrategy;
|
|
35
35
|
(function (ChildLifecycleStrategy) {
|
|
@@ -43,6 +43,34 @@ export var ChildLifecycleStrategy;
|
|
|
43
43
|
* ⚠️ NOT the anonymous-user concept — reuse of that mechanism, never its name.
|
|
44
44
|
*/
|
|
45
45
|
ChildLifecycleStrategy["IMPERSONALIZE_AND_RETAIN"] = "impersonalize_and_retain";
|
|
46
|
+
/**
|
|
47
|
+
* Refuse the parent's delete while any child row still names it: the RESTRICT posture. Nothing is
|
|
48
|
+
* torn down. The children are not the parent's to remove, so whoever deletes the parent must first
|
|
49
|
+
* move or remove them (an org-unit subtree, the financial records a billing account maps back to
|
|
50
|
+
* its provider customer).
|
|
51
|
+
*
|
|
52
|
+
* The service tier enforces it BEFORE the parent delete writes anything, on a single DELETE and on
|
|
53
|
+
* DELETE_MANY alike, and refuses with 409 `RESOURCE_HAS_DEPENDENTS`, whose context names every
|
|
54
|
+
* blocking edge. A DELETE cascade whose depth budget reaches such an edge refuses in that frame the
|
|
55
|
+
* same way, so a cascade cannot delete a row that a direct delete of it would be refused.
|
|
56
|
+
*
|
|
57
|
+
* `mode` and `maxDepth` do not apply: there is no teardown to time or to recurse into. Existence is
|
|
58
|
+
* probed with one repository READ on the edge's foreign key, so the child must declare READ; boot
|
|
59
|
+
* refuses the edge otherwise (`validateCompositionCascadeDeletability`). A retention-governed child is
|
|
60
|
+
* probed a SECOND time for impersonalized-and-retained rows, which the first read cannot see: they still
|
|
61
|
+
* name the parent, so they still block, and the refusal names the edge without the hidden row's id (#1168). On a self-edge (a tree) the probe
|
|
62
|
+
* instead scans the FK children with the framework's internal scan read and excludes every row the same
|
|
63
|
+
* operation deletes, the deleted row itself included; READ stays the only operation boot requires.
|
|
64
|
+
*
|
|
65
|
+
* The check reads the DELETED resource's own edges. A cascade that removes rows through the raw
|
|
66
|
+
* repository consults their edges only when its depth budget reaches them, which is why a tenant
|
|
67
|
+
* purge (ORGANIZATIONS → ORGANIZATION_UNITS at `maxDepth: 1`) still removes a whole org chart. A
|
|
68
|
+
* subject erasure scrubs its subject in place rather than deleting it, so it meets the refusal only
|
|
69
|
+
* below a dependent it deletes, where it refuses like a cascade frame
|
|
70
|
+
* (`SubjectErasureDisposition.RESTRICTED_BY_DECLARATION`). On a self-edge, rows deleted by the same
|
|
71
|
+
* operation are not counted as blocking children, so a subtree deleted together is admitted.
|
|
72
|
+
*/
|
|
73
|
+
ChildLifecycleStrategy["REFUSE_WHILE_CHILDREN_EXIST"] = "refuse_while_children_exist";
|
|
46
74
|
})(ChildLifecycleStrategy || (ChildLifecycleStrategy = {}));
|
|
47
75
|
// =============================================================================
|
|
48
76
|
// NESTED MUTATION MODE (Convenience Enum)
|
|
@@ -76,7 +104,10 @@ export { CascadeDirection } from './resources.shared.core.definitions.js';
|
|
|
76
104
|
* is not modelled; for that, use a custom service implementation.
|
|
77
105
|
*/
|
|
78
106
|
export const ChildLifecycleOnDeleteConfigSchema = z.object({
|
|
79
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Whether this edge governs the parent's delete: the cascade fires, or, for
|
|
109
|
+
* `REFUSE_WHILE_CHILDREN_EXIST`, the delete is refused while children exist. See `strategy`.
|
|
110
|
+
*/
|
|
80
111
|
enabled: z.boolean().default(false),
|
|
81
112
|
/**
|
|
82
113
|
* Execution TIMING (orthogonal to `strategy`):
|
|
@@ -86,11 +117,47 @@ export const ChildLifecycleOnDeleteConfigSchema = z.object({
|
|
|
86
117
|
mode: z.enum(ChildLifecycleMode).default(ChildLifecycleMode.IMMEDIATE),
|
|
87
118
|
/**
|
|
88
119
|
* What to do with the children — the STRATEGY axis (orthogonal to `mode`):
|
|
89
|
-
* - DELETE
|
|
120
|
+
* - DELETE: hard-delete the child rows
|
|
90
121
|
* - IMPERSONALIZE_AND_RETAIN: scrub-and-keep (retention-governed children — see `ChildLifecycleStrategy`)
|
|
91
|
-
*
|
|
122
|
+
* - REFUSE_WHILE_CHILDREN_EXIST: tears nothing down — the parent's delete is refused while children
|
|
123
|
+
* exist, and `mode` / `maxDepth` do not apply.
|
|
124
|
+
*
|
|
125
|
+
* ⚠️ v1: `IMPERSONALIZE_AND_RETAIN` is supported only with `mode: IMMEDIATE` (async impersonalization
|
|
126
|
+
* is pending).
|
|
127
|
+
*
|
|
128
|
+
* ## OPTIONAL WITH NO SCHEMA DEFAULT, deliberately (#1279)
|
|
129
|
+
*
|
|
130
|
+
* This carried `.default(ChildLifecycleStrategy.DELETE)` until 2026-09-17, and that default is what
|
|
131
|
+
* produced #1279. A schema default makes SILENCE and a DECISION indistinguishable after parse: every
|
|
132
|
+
* edge came back carrying `strategy: 'delete'` as an own property whether or not a human had ever
|
|
133
|
+
* considered the question, and no consumer could tell the two apart.
|
|
134
|
+
*
|
|
135
|
+
* That mattered because this field has TWO readers asking DIFFERENT questions:
|
|
136
|
+
*
|
|
137
|
+
* | reader | question | what absence means |
|
|
138
|
+
* |---|---|---|
|
|
139
|
+
* | the delete cascade | the parent row is being DELETED — what happens to the children? | DELETE, and that is the right default: a composition child whose parent is gone has no owner |
|
|
140
|
+
* | subject erasure | the subject demanded ERASURE — the parent row is SCRUBBED AND KEPT, so what happens to the children? | **nothing — the author has not answered**, and the child's own `retentionPolicy` is the declaration that speaks to erasure |
|
|
141
|
+
*
|
|
142
|
+
* With the default in place the erasure read a manufactured `DELETE` as the author's erasure answer
|
|
143
|
+
* and deleted rows whose own resource declared `retentionPolicy: RETAIN_AND_IMPERSONALIZE` — a
|
|
144
|
+
* declaration the config factory refuses unless it is paired with a `dataSubjectPolicy`, i.e. the most
|
|
145
|
+
* deliberate statement in the privacy surface. Measured 2026-09-17 across `engine/`, `platform/` and
|
|
146
|
+
* `examples/`: of 79 authored `onParentDelete` blocks, 57 were silent, and **28 of 28** edges where a
|
|
147
|
+
* retain-declaring resource was nevertheless erased by DELETE reached that outcome through this
|
|
148
|
+
* default. Not one author had written `strategy: DELETE` for such a resource.
|
|
149
|
+
*
|
|
150
|
+
* So absence is now INFORMATION, and each reader supplies its own meaning:
|
|
151
|
+
* - a cascade reader calls {@link resolveChildLifecycleTeardownStrategy}, the ONE named source of the
|
|
152
|
+
* `DELETE`-on-absence rule, instead of re-deriving `?? DELETE` at each site;
|
|
153
|
+
* - the erasure reader (`classifySubjectErasureDisposition`) reads this field RAW, so it can tell an
|
|
154
|
+
* authored `DELETE` — which genuinely contradicts a retain policy and is refused — from silence,
|
|
155
|
+
* which simply lets the child's `retentionPolicy` answer.
|
|
156
|
+
*
|
|
157
|
+
* Do NOT reintroduce a default here to "simplify" a call site. The default is not missing; it has
|
|
158
|
+
* been moved to the reader that is entitled to it.
|
|
92
159
|
*/
|
|
93
|
-
strategy: z.enum(ChildLifecycleStrategy).
|
|
160
|
+
strategy: z.enum(ChildLifecycleStrategy).optional(),
|
|
94
161
|
/**
|
|
95
162
|
* Maximum depth for cascading delete (prevents infinite loops).
|
|
96
163
|
* - 1: Delete direct children only
|
|
@@ -106,6 +173,31 @@ export const ChildLifecycleOnDeleteConfigSchema = z.object({
|
|
|
106
173
|
*/
|
|
107
174
|
maxDepth: z.number().int().min(1).max(3).default(1),
|
|
108
175
|
});
|
|
176
|
+
/**
|
|
177
|
+
* The teardown strategy a DELETE CASCADE must apply to an edge — the ONE named source of the
|
|
178
|
+
* "silence means DELETE" rule (#1279).
|
|
179
|
+
*
|
|
180
|
+
* `strategy` deliberately carries no schema default (see its JSDoc above), so absence reaches every
|
|
181
|
+
* consumer intact. For the cascade, absence resolving to `DELETE` is correct and always was: a
|
|
182
|
+
* composition child whose parent row is being removed has no owner left, and hard-delete is what the
|
|
183
|
+
* engine has always done. This function exists so that rule lives in ONE place instead of being
|
|
184
|
+
* re-derived as `?? ChildLifecycleStrategy.DELETE` at each cascade site — five such sites existed when
|
|
185
|
+
* the default was removed, and a sixth that forgot would have silently changed a cascade's behaviour.
|
|
186
|
+
*
|
|
187
|
+
* ⚠️ **Subject erasure must NOT call this.** An erasure does not delete the parent; it scrubs the row
|
|
188
|
+
* and keeps it, so "the parent is gone" — the premise that makes `DELETE` the right answer here — is
|
|
189
|
+
* false there. `classifySubjectErasureDisposition` reads `strategy` raw precisely so it can distinguish
|
|
190
|
+
* an authored `DELETE` from an unanswered question, which is the whole of #1279.
|
|
191
|
+
*
|
|
192
|
+
* @param onParentDelete - the authored teardown block, or undefined when the edge declares none.
|
|
193
|
+
* @returns the strategy the cascade applies, or undefined when the edge declares no teardown at all
|
|
194
|
+
* (a caller with no block has nothing to tear down, and must not be handed a `DELETE`).
|
|
195
|
+
*/
|
|
196
|
+
export function resolveChildLifecycleTeardownStrategy(onParentDelete) {
|
|
197
|
+
if (!onParentDelete)
|
|
198
|
+
return undefined;
|
|
199
|
+
return onParentDelete.strategy ?? ChildLifecycleStrategy.DELETE;
|
|
200
|
+
}
|
|
109
201
|
/**
|
|
110
202
|
* Seed timing for `onParentCreate` — DEDICATED to the create side so it never
|
|
111
203
|
* borrows `ChildLifecycleMode`, whose `IMMEDIATE` means *atomic / in-transaction*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-operations.shared.schemas.js","sourceRoot":"","sources":["../../../../src/resources/child-operations.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Child Operations Shared Schemas\n *\n * Defines how child resources are handled in parent operations.\n * Consolidates lifecycle (cascade delete) and nested (aggregated DTOs) configurations\n * onto the ResourceRelationship level.\n *\n * Design Principles:\n * - \"childOperations\" handles BACKEND processing of child resources\n * - \"display\" handles FRONTEND presentation (separate from childOperations)\n * - Labels are handled by the i18n mechanism (not configured here)\n */\n\nimport { z } from 'zod';\nimport { DataMode } from './resources-config.shared.schemas';\nimport { CoreResourceOperation, CascadeDirection } from './resources.shared.core.definitions';\n\n// =============================================================================\n// LIFECYCLE ENUMS\n// =============================================================================\n\n/**\n * Execution mode for lifecycle operations on children.\n * Determines whether child operations happen synchronously or asynchronously.\n */\nexport enum ChildLifecycleMode {\n /** Synchronous execution in same transaction - consistency guaranteed */\n IMMEDIATE = 'immediate',\n /** Asynchronous execution via queue - eventual consistency, better performance */\n LAZY = 'lazy',\n}\n\n/**\n * What happens to a child when its parent is deleted — the STRATEGY axis, ORTHOGONAL to\n * `ChildLifecycleMode` (which is the sync/async TIMING axis). Kept separate deliberately: strategy\n * (delete vs scrub-and-keep) and timing (immediate vs lazy) are independent concerns.\n */\nexport enum ChildLifecycleStrategy {\n /** Hard-delete the child row — the default; today's cascade behavior. */\n DELETE = 'delete',\n /**\n * Impersonalize-and-retain the child: scrub its personal fields IN PLACE (per each field's\n * `.impersonalizeWith()` treatment) and KEEP the row, flipping `retentionStatus` to RETAINED — for a\n * retention-governed child that must survive its parent's erasure for a legal/audit obligation\n * (GDPR Art.17(3)(b)). Requires the child to opt into `retentionPolicy` + support UPDATE_MANY.\n * ⚠️ NOT the anonymous-user concept — reuse of that mechanism, never its name.\n */\n IMPERSONALIZE_AND_RETAIN = 'impersonalize_and_retain',\n}\n\n// =============================================================================\n// NESTED MUTATION MODE (Convenience Enum)\n// =============================================================================\n\n/**\n * Nested mutation operations allowed for children via parent request.\n * This is a convenience enum for quick configuration; the full schema\n * uses separate boolean flags (allowCreate, allowUpdate, allowDelete).\n */\nexport enum ChildNestedMutationMode {\n /** Children can only be created via parent */\n CREATE_ONLY = 'create_only',\n /** Children can be created or updated via parent */\n CREATE_UPDATE = 'create_update',\n /** Children can be created, updated, or deleted via parent */\n FULL = 'full',\n}\n\n// =============================================================================\n// DISPLAY ENUMS (Relationship display configuration)\n// =============================================================================\n\nexport { CascadeDirection } from './resources.shared.core.definitions';\n\n// =============================================================================\n// LIFECYCLE CONFIGURATION SCHEMAS\n// =============================================================================\n\n/**\n * Configuration for lifecycle cascade when parent is deleted.\n *\n * NOTE: `onParentDelete` (this) and `onParentCreate` (eager composition-child\n * seeding, below) are the engine-level lifecycle operations. `onParentUpdate`\n * is not modelled; for that, use a custom service implementation.\n */\nexport const ChildLifecycleOnDeleteConfigSchema = z.object({\n /** Whether children are handled when the parent is deleted (the cascade fires — see `strategy` for what it does). */\n enabled: z.boolean().default(false),\n\n /**\n * Execution TIMING (orthogonal to `strategy`):\n * - IMMEDIATE: Sync in same transaction (consistency guaranteed)\n * - LAZY: Async via queue (eventual consistency, better performance)\n */\n mode: z.enum(ChildLifecycleMode).default(ChildLifecycleMode.IMMEDIATE),\n\n /**\n * What to do with the children — the STRATEGY axis (orthogonal to `mode`):\n * - DELETE (default): hard-delete the child rows (today's behavior)\n * - IMPERSONALIZE_AND_RETAIN: scrub-and-keep (retention-governed children — see `ChildLifecycleStrategy`)\n * ⚠️ v1: `IMPERSONALIZE_AND_RETAIN` is supported only with `mode: IMMEDIATE` (async impersonalization is pending).\n */\n strategy: z.enum(ChildLifecycleStrategy).default(ChildLifecycleStrategy.DELETE),\n\n /**\n * Maximum depth for cascading delete (prevents infinite loops).\n * - 1: Delete direct children only\n * - 2: Delete children and grandchildren\n *\n * ⚠️ STRATEGY-DEPENDENT. This budget governs the DELETE cascade's descent. Under\n * `IMPERSONALIZE_AND_RETAIN` it has no effect on THIS edge: v1 scrubs the direct children only and\n * never recurses (a retained child is not deleted, so its own children keep a valid parent and are\n * left alone by design — the whole-subtree scrub belongs to direct subject-erasure, not to a\n * parent-delete cascade). It still matters on a DELETE edge ABOVE a retain edge: that is the budget\n * that lets the cascade reach the retain edge at all, and each edge reached applies its OWN strategy.\n * @default 1\n */\n maxDepth: z.number().int().min(1).max(3).default(1),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildLifecycleOnDeleteConfig = z.input<typeof ChildLifecycleOnDeleteConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildLifecycleOnDeleteConfig_Parsed = z.infer<typeof ChildLifecycleOnDeleteConfigSchema>;\n\n/**\n * Context handed to an `onParentCreate.initialData.override` function at seed\n * time. Kept structurally-typed (no backend `ExecutionContext` import) so this\n * `_core` shared schema stays backend-free — mirrors the `userIdsSelector`\n * convention on `UserNotificationDefinition`. The backend seeding handler\n * populates the concrete values at runtime.\n */\nexport interface CompositionCreateContext {\n /** The parent row that was just created (the composition \"whole\"). */\n parentObject: Record<string, unknown>;\n /** The resource type of the parent. */\n parentResourceType: string;\n /** Initiator identity of the create, when request-triggered. */\n initiatorIds: { userId?: string; organizationId?: string; applicationId?: string };\n /**\n * The original create input, when the parent-create path threads it (e.g. a\n * registration payload carrying a profile's first/last name that does not\n * live on the parent row). Absent for pure-defaults children.\n */\n requestInput?: Record<string, unknown>;\n}\n\n/**\n * Seed timing for `onParentCreate` — DEDICATED to the create side so it never\n * borrows `ChildLifecycleMode`, whose `IMMEDIATE` means *atomic / in-transaction*\n * on the `onParentDelete` cascade. The create seed runs AFTER the parent commits,\n * so a shared enum would be a footgun (the same token would imply divergent\n * consistency guarantees on the two hooks).\n */\nexport enum CompositionSeedMode {\n /**\n * Sync seed in the post-create hook, right after the parent row has committed —\n * \"immediately after\", NOT atomic. A failed seed never rolls back the parent;\n * an absent 1:1 child self-heals via the omit-empty-1:1 context-embed.\n */\n POST_COMMIT = 'post_commit',\n\n // ── Reserved modes: DELIBERATELY not built (this is a design record, not a TODO) ──\n //\n // `POST_COMMIT` is the ONLY implemented mode, and it is what every current\n // eager-seed adopter needs — they are all 1-per-parent settings/state/profile\n // rows for which post-commit sync + omit-empty-1:1 self-heal is exactly right.\n // The two modes below are documented here for the record but are intentionally\n // NOT shipped, and they are comments (not enum values) ON PURPOSE: the type then\n // cannot offer an unimplemented mode, so no app developer can select one and hit\n // a runtime surprise.\n //\n // Why reserved rather than built (framework-mindset: a mode with no consumer\n // carries no semantic weight — building it is speculative generality):\n //\n // • ATOMIC — seed INSIDE the parent's transaction (via the nested-`onCreate`\n // path) so an absent child can never be observed. NOT built because (a) no\n // adopter needs atomicity (the post-commit window is already covered by the\n // omit-empty-1:1 read), and (b) the only available implementation route\n // BYPASSES Guard-1 (`systemAccessPolicy.create` fail-closed) + Guard-4\n // (privileged-write audit) — so shipping it now would add a mode that is\n // LESS safe than the default, for zero users. The interesting part (keeping\n // the guards while inside the txn) is unsolved and should be the design work\n // WHEN a concrete child genuinely requires atomic seeding.\n //\n // • DEFERRED — async seed via a queue, for high-volume children. NOT built\n // because no current composition is high-volume (settings rows are one per\n // parent). Add it when a real high-volume seed appears, shaped by that need.\n //\n // Rule of thumb: implement a new mode only when the FIRST concrete consumer\n // arrives, so the design is driven by the real requirement rather than a guess.\n}\n\n/**\n * Configuration for eagerly SEEDING a composition child when its parent is\n * created — the creation half of the composition lifecycle, symmetric with\n * {@link ChildLifecycleOnDeleteConfigSchema}.\n *\n * Semantics: a `RelationshipNature.COMPOSITION` child is a part that co-exists\n * with its whole. When `enabled`, the framework auto-creates the child at\n * parent-create time from the child schema's CREATE-DTO defaults, optionally\n * overlaid by `initialData.override(ctx)` for children whose seed data is\n * derived (e.g. a profile's first/last name from the registration payload).\n *\n * The seed is written through the trusted-system-write seam\n * (`SystemAccessBackendService.createAsSystem`), so the child resource MUST\n * opt into `systemAccessPolicy.create` (fail-closed) — see the composition\n * `onParentCreate` lifecycle plan.\n */\nexport const ChildLifecycleOnCreateConfigSchema = z.object({\n /** Whether the child is eagerly seeded when the parent is created. */\n enabled: z.boolean().default(false),\n\n /**\n * Seed timing — see {@link CompositionSeedMode}. `POST_COMMIT` (the only\n * implemented mode) seeds synchronously AFTER the parent commits; it is NOT\n * atomic. Deliberately a dedicated enum, not `ChildLifecycleMode` — on the\n * delete cascade `IMMEDIATE` is atomic/in-transaction, which would be a false\n * promise here.\n */\n mode: z.enum(CompositionSeedMode).default(CompositionSeedMode.POST_COMMIT),\n\n /**\n * Maximum recursion depth when a seeded child is itself a composition parent\n * (prevents unbounded parent → child → grandchild seeding). The seed re-enters\n * the create path, so this MUST be honoured by the runtime re-entrancy guard.\n * @default 1\n */\n maxDepth: z.number().int().min(1).max(3).default(1),\n\n /**\n * Optional seed-data strategy. The base seed is always the child's CREATE-DTO\n * defaults; `override(ctx)` supplies or overlays fields that cannot be\n * defaulted (e.g. a profile's first/last name derived from\n * {@link CompositionCreateContext.requestInput}). It returns a partial child\n * CREATE input, merged over the defaults before the system-create.\n *\n * Returning `undefined` DECLINES the seed for this particular parent-create:\n * the runtime skips the child cleanly (no create attempt, no swallowed\n * validation failure). This is how an input-derived child opts out when the\n * required input is absent — e.g. `USER_PROFILES` is seeded from the\n * registration/SSO/SCIM name payload, but the org-admin INVITE create carries\n * no name (the invitee supplies it later at acceptance), so the override\n * returns `undefined` there and the invitation-acceptance flow owns that write.\n *\n * Typed via `z.custom` because a runtime function is not JSON-serializable —\n * mirrors the `userIdsSelector` convention on `UserNotificationDefinition`.\n */\n initialData: z.object({\n override: z.custom<(ctx: CompositionCreateContext) => Record<string, unknown> | undefined>(\n (val) => typeof val === 'function',\n ).optional(),\n }).optional(),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildLifecycleOnCreateConfig = z.input<typeof ChildLifecycleOnCreateConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildLifecycleOnCreateConfig_Parsed = z.infer<typeof ChildLifecycleOnCreateConfigSchema>;\n\n/**\n * Lifecycle configuration wrapper: `onParentDelete` (cascade) + `onParentCreate`\n * (eager composition-child seeding).\n */\nexport const ChildLifecycleConfigSchema = z.object({\n /** Configuration for deleting children when parent is deleted */\n onParentDelete: ChildLifecycleOnDeleteConfigSchema.optional(),\n /** Configuration for eagerly seeding a composition child when parent is created */\n onParentCreate: ChildLifecycleOnCreateConfigSchema.optional(),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildLifecycleConfig = z.input<typeof ChildLifecycleConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildLifecycleConfig_Parsed = z.infer<typeof ChildLifecycleConfigSchema>;\n\n// =============================================================================\n// NESTED READ CONFIGURATION SCHEMA\n// =============================================================================\n\n/**\n * Configuration for nested read operations (related resources in response).\n *\n * IMPORTANT: Uses existing DataMode enum (RAW, SUMMARY, CONTEXT).\n * If this config is not present, related resources are NOT included in responses.\n *\n * WORKS FOR ALL CARDINALITIES:\n * - 1:N (Parent → Children): Returns array of children\n * - 1:1 (Parent ↔ Child): Returns single child object\n * - N:N (Resource ↔ Resource): Returns array via junction table\n * - N:1 (Child → Parent): Returns single parent object (less common, use isSummaryField populate)\n *\n * RELATIONSHIP TO DataMode REQUEST PARAM:\n * - Client can request DataMode.CONTEXT to get full context (parents + children via contextPolicy)\n * - nested.onRead provides a RELATIONSHIP-LEVEL default for always including related resources\n * - They work together: nested.onRead config + DataMode request param\n */\nexport const ChildNestedReadConfigSchema = z.object({\n /**\n * Data mode for related resources in READ response.\n * Uses existing DataMode enum: RAW, SUMMARY, CONTEXT\n *\n * - RAW: All stored fields, no population of their FKs\n * - SUMMARY: Summary fields, populate their isSummaryField({ populate: true }) FKs\n * - CONTEXT: Full context with their contextPolicy applied (can include grandchildren)\n *\n * @required - presence of this config enables nested resources\n */\n dataMode: z.enum(DataMode),\n\n /**\n * Enable nested resources in LIST/SUMMARY responses.\n * By default, LIST returns parent summaries only (no nested resources).\n * Set to true to include nested resources in LIST responses.\n *\n * ⚠️ Performance consideration: Enabling this on high-volume lists can be expensive.\n *\n * @default false\n */\n enabledOnList: z.boolean().default(false),\n\n /**\n * Data mode for resources when included in LIST responses.\n * Only applies when enabledOnList is true.\n * Typically SUMMARY for performance.\n *\n * @default SUMMARY\n */\n listDataMode: z.enum(DataMode).default(DataMode.SUMMARY),\n\n /**\n * Maximum number of items to include.\n * - For 1:N and N:N: Limits array size\n * - For 1:1: Ignored (always returns single object or null)\n */\n maxItems: z.number().int().min(0).optional(),\n\n /**\n * Sort order for related resources.\n * Uses standard sort syntax: 'fieldName' or '-fieldName' for descending.\n * - For 1:N and N:N: Applied to array\n * - For 1:1: Ignored\n */\n sortBy: z.string().optional(),\n\n /**\n * Maximum depth for nested traversal (prevents infinite loops).\n * 0 = no nesting, 1 = direct related only, 2 = related + their related\n * @default 1\n */\n maxDepth: z.number().int().min(0).max(3).default(1),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildNestedReadConfig = z.input<typeof ChildNestedReadConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildNestedReadConfig_Parsed = z.infer<typeof ChildNestedReadConfigSchema>;\n\n// =============================================================================\n// NESTED MUTATION CONFIGURATION SCHEMA\n// =============================================================================\n\n/**\n * Configuration for nested mutation operations (create/update/delete children via parent).\n *\n * When enabled, the parent's request DTO will include a field for child data:\n * - 1:N relationships: Array field (e.g., `tasks: [...]`)\n * - 1:1 relationships: Object field (e.g., `profile: {...}`)\n *\n * Processing logic:\n * - Children without _id are treated as creates (if allowCreate)\n * - Children with _id are treated as updates (if allowUpdate)\n * - Children listed in `_{field}ToDelete` array are deleted (if allowDelete)\n *\n * Nested field names follow ResourcesConfigNamingUtils conventions:\n * - taskId → task (1:1) or tasks (1:N)\n * - createdByUserId → createdByUser\n *\n * Created/updated children are ALWAYS included in the response.\n */\nexport const ChildNestedMutationConfigSchema = z.object({\n /** Whether children can be created in parent request */\n allowCreate: z.boolean().default(false),\n\n /** Whether existing children can be updated in parent request */\n allowUpdate: z.boolean().default(false),\n\n /**\n * Whether children can be deleted in parent request.\n * Use separate field `_{nestedField}ToDelete: string[]` to specify IDs to delete.\n * Example: `_tasksToDelete: ['task-123', 'task-456']`\n */\n allowDelete: z.boolean().default(false),\n\n /**\n * Maximum depth for nested mutations (prevents infinite loops).\n * 1 = direct children only, 2 = children can have grandchildren\n * @default 1\n */\n maxDepth: z.number().int().min(0).max(2).default(1),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildNestedMutationConfig = z.input<typeof ChildNestedMutationConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildNestedMutationConfig_Parsed = z.infer<typeof ChildNestedMutationConfigSchema>;\n\n// =============================================================================\n// NESTED OPERATIONS COMBINED SCHEMA\n// =============================================================================\n\n/**\n * Combined nested operations configuration.\n */\nexport const ChildNestedOperationsConfigSchema = z.object({\n /** How children appear in parent READ response */\n onRead: ChildNestedReadConfigSchema.optional(),\n\n /** What mutations allowed in parent UPDATE request */\n onUpdate: ChildNestedMutationConfigSchema.optional(),\n\n /** What child creations allowed in parent CREATE request */\n onCreate: ChildNestedMutationConfigSchema.optional(),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildNestedOperationsConfig = z.input<typeof ChildNestedOperationsConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildNestedOperationsConfig_Parsed = z.infer<typeof ChildNestedOperationsConfigSchema>;\n\n// =============================================================================\n// UNIFIED CHILD OPERATIONS CONFIGURATION\n// =============================================================================\n\n/**\n * Complete child operations configuration for a resource relationship.\n * Handles BACKEND concerns: lifecycle cascade and nested DTO aggregation.\n *\n * Frontend display is configured separately via `display` on the relationship.\n */\nexport const ChildOperationsConfigSchema = z.object({\n // --- LIFECYCLE ---\n /**\n * Automatic side effects on children when parent operations occur:\n * `onParentDelete` (cascade) and `onParentCreate` (eager composition-child seeding).\n */\n lifecycle: ChildLifecycleConfigSchema.optional(),\n\n // --- NESTED OPERATIONS ---\n /**\n * Configuration for including children in parent DTOs.\n * Enables aggregated CRUD operations (create/update parent with children).\n */\n nested: ChildNestedOperationsConfigSchema.optional(),\n});\n\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildOperationsConfig = z.input<typeof ChildOperationsConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildOperationsConfig_Parsed = z.infer<typeof ChildOperationsConfigSchema>;\n\n// =============================================================================\n// RELATIONSHIP DISCRIMINATOR (for Discriminated Unions)\n// =============================================================================\n\n/**\n * Static discriminator filter for conditional relationships.\n *\n * When set on a relationship, the relationship only applies when the PARENT\n * resource's `discriminatorField` has a value matching one of the specified `values`.\n *\n * This is the \"simple case\" of conditional relationships — a pure field+values match.\n * For more complex logic (cross-field checks, computed conditions), use the\n * `condition` function on `ResourceRelationship` instead.\n *\n * ## Runtime Evaluation\n *\n * All runtime evaluation sites now delegate to the shared\n * `Resources_SharedUtils.isRelationshipActiveForParent()` helper, which uses\n * `String()` coercion on the field value before matching because this schema\n * defines `values` as `string[]` but the field may be a number or enum at\n * runtime.\n *\n * ## Design Note\n *\n * The discriminator is evaluated against the PARENT resource, never the child.\n * It answers the question: \"Given this parent's current state, should this\n * parent→child relationship be active?\" For example, a TODO with\n * `recurringType = 'ONE_TIME'` should NOT show recurring occurrences.\n *\n * @example Recurring todos have occurrences, one-time todos don't:\n * ```typescript\n * createResourcesRelationship(TODOS, TODOS_RECURRING_OCCURRENCES, ONE, MANY, {\n * discriminator: {\n * discriminatorField: 'recurringType',\n * values: ['RECURRING']\n * }\n * })\n * ```\n */\nexport const ResourceRelationshipDiscriminatorSchema = z.object({\n /** The discriminator field name on the parent resource to evaluate */\n discriminatorField: z.string(),\n\n /**\n * Values for which this relationship is active.\n * Comparison uses `String()` coercion: `values.includes(String(parentResource[discriminatorField]))`.\n */\n values: z.array(z.string()).min(1),\n});\n\nexport type ResourceRelationshipDiscriminator = z.infer<typeof ResourceRelationshipDiscriminatorSchema>;\n\n// =============================================================================\n// FRONTEND DISPLAY CONFIGURATION (on Relationship) — v3 re-exports\n// =============================================================================\n\n\n"]}
|
|
1
|
+
{"version":3,"file":"child-operations.shared.schemas.js","sourceRoot":"","sources":["../../../../src/resources/child-operations.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAG7D,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,yEAAyE;IACzE,6CAAuB,CAAA;IACvB,kFAAkF;IAClF,mCAAa,CAAA;AACf,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,sBAuCX;AAvCD,WAAY,sBAAsB;IAChC,yEAAyE;IACzE,2CAAiB,CAAA;IACjB;;;;;;OAMG;IACH,+EAAqD,CAAA;IACrD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,qFAA2D,CAAA;AAC7D,CAAC,EAvCW,sBAAsB,KAAtB,sBAAsB,QAuCjC;AAED,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IACjC,8CAA8C;IAC9C,sDAA2B,CAAA;IAC3B,oDAAoD;IACpD,0DAA+B,CAAA;IAC/B,8DAA8D;IAC9D,wCAAa,CAAA;AACf,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC;AAED,gFAAgF;AAChF,qDAAqD;AACrD,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD;;;OAGG;IACH,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEnC;;;;OAIG;IACH,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC;IAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAEnD;;;;;;;;;;;;OAYG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACpD,CAAC,CAAC;AAOH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qCAAqC,CACnD,cAAiF;IAEjF,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,cAAc,CAAC,QAAQ,IAAI,sBAAsB,CAAC,MAAM,CAAC;AAClE,CAAC;AAwBD;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,mBAqCX;AArCD,WAAY,mBAAmB;IAC7B;;;;OAIG;IACH,kDAA2B,CAAA;IAE3B,qFAAqF;IACrF,EAAE;IACF,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,iFAAiF;IACjF,iFAAiF;IACjF,sBAAsB;IACtB,EAAE;IACF,6EAA6E;IAC7E,uEAAuE;IACvE,EAAE;IACF,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,+EAA+E;IAC/E,gFAAgF;IAChF,8DAA8D;IAC9D,EAAE;IACF,4EAA4E;IAC5E,8EAA8E;IAC9E,gFAAgF;IAChF,EAAE;IACF,4EAA4E;IAC5E,gFAAgF;AAClF,CAAC,EArCW,mBAAmB,KAAnB,mBAAmB,QAqC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEnC;;;;;;OAMG;IACH,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,CAAC;IAE1E;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnD;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAChB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CACnC,CAAC,QAAQ,EAAE;KACb,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAOH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,iEAAiE;IACjE,cAAc,EAAE,kCAAkC,CAAC,QAAQ,EAAE;IAC7D,mFAAmF;IACnF,cAAc,EAAE,kCAAkC,CAAC,QAAQ,EAAE;CAC9D,CAAC,CAAC;AAOH,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD;;;;;;;;;OASG;IACH,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAE1B;;;;;;;;OAQG;IACH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEzC;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAExD;;;;OAIG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAE5C;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B;;;;OAIG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACpD,CAAC,CAAC;AAOH,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,wDAAwD;IACxD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEvC,iEAAiE;IACjE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEvC;;;;OAIG;IACH,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACpD,CAAC,CAAC;AAOH,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,kDAAkD;IAClD,MAAM,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IAE9C,sDAAsD;IACtD,QAAQ,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IAEpD,4DAA4D;IAC5D,QAAQ,EAAE,+BAA+B,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AAOH,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,oBAAoB;IACpB;;;OAGG;IACH,SAAS,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IAEhD,4BAA4B;IAC5B;;;OAGG;IACH,MAAM,EAAE,iCAAiC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AAQH,gFAAgF;AAChF,wDAAwD;AACxD,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9D,sEAAsE;IACtE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAE9B;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACnC,CAAC,CAAC;AAIH,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF","sourcesContent":["/**\n * Child Operations Shared Schemas\n *\n * Defines how child resources are handled in parent operations.\n * Consolidates lifecycle (cascade delete) and nested (aggregated DTOs) configurations\n * onto the ResourceRelationship level.\n *\n * Design Principles:\n * - \"childOperations\" handles BACKEND processing of child resources\n * - \"display\" handles FRONTEND presentation (separate from childOperations)\n * - Labels are handled by the i18n mechanism (not configured here)\n */\n\nimport { z } from 'zod';\nimport { DataMode } from './resources-config.shared.schemas';\nimport { CoreResourceOperation, CascadeDirection } from './resources.shared.core.definitions';\n\n// =============================================================================\n// LIFECYCLE ENUMS\n// =============================================================================\n\n/**\n * Execution mode for lifecycle operations on children.\n * Determines whether child operations happen synchronously or asynchronously.\n */\nexport enum ChildLifecycleMode {\n /** Synchronous execution in same transaction - consistency guaranteed */\n IMMEDIATE = 'immediate',\n /** Asynchronous execution via queue - eventual consistency, better performance */\n LAZY = 'lazy',\n}\n\n/**\n * What happens to a child when its parent is deleted — the STRATEGY axis, ORTHOGONAL to\n * `ChildLifecycleMode` (which is the sync/async TIMING axis). Kept separate deliberately: strategy\n * (delete, scrub-and-keep, or refuse) and timing (immediate vs lazy) are independent concerns.\n */\nexport enum ChildLifecycleStrategy {\n /** Hard-delete the child row — the default; today's cascade behavior. */\n DELETE = 'delete',\n /**\n * Impersonalize-and-retain the child: scrub its personal fields IN PLACE (per each field's\n * `.impersonalizeWith()` treatment) and KEEP the row, flipping `retentionStatus` to RETAINED — for a\n * retention-governed child that must survive its parent's erasure for a legal/audit obligation\n * (GDPR Art.17(3)(b)). Requires the child to opt into `retentionPolicy` + support UPDATE_MANY.\n * ⚠️ NOT the anonymous-user concept — reuse of that mechanism, never its name.\n */\n IMPERSONALIZE_AND_RETAIN = 'impersonalize_and_retain',\n /**\n * Refuse the parent's delete while any child row still names it: the RESTRICT posture. Nothing is\n * torn down. The children are not the parent's to remove, so whoever deletes the parent must first\n * move or remove them (an org-unit subtree, the financial records a billing account maps back to\n * its provider customer).\n *\n * The service tier enforces it BEFORE the parent delete writes anything, on a single DELETE and on\n * DELETE_MANY alike, and refuses with 409 `RESOURCE_HAS_DEPENDENTS`, whose context names every\n * blocking edge. A DELETE cascade whose depth budget reaches such an edge refuses in that frame the\n * same way, so a cascade cannot delete a row that a direct delete of it would be refused.\n *\n * `mode` and `maxDepth` do not apply: there is no teardown to time or to recurse into. Existence is\n * probed with one repository READ on the edge's foreign key, so the child must declare READ; boot\n * refuses the edge otherwise (`validateCompositionCascadeDeletability`). A retention-governed child is\n * probed a SECOND time for impersonalized-and-retained rows, which the first read cannot see: they still\n * name the parent, so they still block, and the refusal names the edge without the hidden row's id (#1168). On a self-edge (a tree) the probe\n * instead scans the FK children with the framework's internal scan read and excludes every row the same\n * operation deletes, the deleted row itself included; READ stays the only operation boot requires.\n *\n * The check reads the DELETED resource's own edges. A cascade that removes rows through the raw\n * repository consults their edges only when its depth budget reaches them, which is why a tenant\n * purge (ORGANIZATIONS → ORGANIZATION_UNITS at `maxDepth: 1`) still removes a whole org chart. A\n * subject erasure scrubs its subject in place rather than deleting it, so it meets the refusal only\n * below a dependent it deletes, where it refuses like a cascade frame\n * (`SubjectErasureDisposition.RESTRICTED_BY_DECLARATION`). On a self-edge, rows deleted by the same\n * operation are not counted as blocking children, so a subtree deleted together is admitted.\n */\n REFUSE_WHILE_CHILDREN_EXIST = 'refuse_while_children_exist',\n}\n\n// =============================================================================\n// NESTED MUTATION MODE (Convenience Enum)\n// =============================================================================\n\n/**\n * Nested mutation operations allowed for children via parent request.\n * This is a convenience enum for quick configuration; the full schema\n * uses separate boolean flags (allowCreate, allowUpdate, allowDelete).\n */\nexport enum ChildNestedMutationMode {\n /** Children can only be created via parent */\n CREATE_ONLY = 'create_only',\n /** Children can be created or updated via parent */\n CREATE_UPDATE = 'create_update',\n /** Children can be created, updated, or deleted via parent */\n FULL = 'full',\n}\n\n// =============================================================================\n// DISPLAY ENUMS (Relationship display configuration)\n// =============================================================================\n\nexport { CascadeDirection } from './resources.shared.core.definitions';\n\n// =============================================================================\n// LIFECYCLE CONFIGURATION SCHEMAS\n// =============================================================================\n\n/**\n * Configuration for lifecycle cascade when parent is deleted.\n *\n * NOTE: `onParentDelete` (this) and `onParentCreate` (eager composition-child\n * seeding, below) are the engine-level lifecycle operations. `onParentUpdate`\n * is not modelled; for that, use a custom service implementation.\n */\nexport const ChildLifecycleOnDeleteConfigSchema = z.object({\n /**\n * Whether this edge governs the parent's delete: the cascade fires, or, for\n * `REFUSE_WHILE_CHILDREN_EXIST`, the delete is refused while children exist. See `strategy`.\n */\n enabled: z.boolean().default(false),\n\n /**\n * Execution TIMING (orthogonal to `strategy`):\n * - IMMEDIATE: Sync in same transaction (consistency guaranteed)\n * - LAZY: Async via queue (eventual consistency, better performance)\n */\n mode: z.enum(ChildLifecycleMode).default(ChildLifecycleMode.IMMEDIATE),\n\n /**\n * What to do with the children — the STRATEGY axis (orthogonal to `mode`):\n * - DELETE: hard-delete the child rows\n * - IMPERSONALIZE_AND_RETAIN: scrub-and-keep (retention-governed children — see `ChildLifecycleStrategy`)\n * - REFUSE_WHILE_CHILDREN_EXIST: tears nothing down — the parent's delete is refused while children\n * exist, and `mode` / `maxDepth` do not apply.\n *\n * ⚠️ v1: `IMPERSONALIZE_AND_RETAIN` is supported only with `mode: IMMEDIATE` (async impersonalization\n * is pending).\n *\n * ## OPTIONAL WITH NO SCHEMA DEFAULT, deliberately (#1279)\n *\n * This carried `.default(ChildLifecycleStrategy.DELETE)` until 2026-09-17, and that default is what\n * produced #1279. A schema default makes SILENCE and a DECISION indistinguishable after parse: every\n * edge came back carrying `strategy: 'delete'` as an own property whether or not a human had ever\n * considered the question, and no consumer could tell the two apart.\n *\n * That mattered because this field has TWO readers asking DIFFERENT questions:\n *\n * | reader | question | what absence means |\n * |---|---|---|\n * | the delete cascade | the parent row is being DELETED — what happens to the children? | DELETE, and that is the right default: a composition child whose parent is gone has no owner |\n * | subject erasure | the subject demanded ERASURE — the parent row is SCRUBBED AND KEPT, so what happens to the children? | **nothing — the author has not answered**, and the child's own `retentionPolicy` is the declaration that speaks to erasure |\n *\n * With the default in place the erasure read a manufactured `DELETE` as the author's erasure answer\n * and deleted rows whose own resource declared `retentionPolicy: RETAIN_AND_IMPERSONALIZE` — a\n * declaration the config factory refuses unless it is paired with a `dataSubjectPolicy`, i.e. the most\n * deliberate statement in the privacy surface. Measured 2026-09-17 across `engine/`, `platform/` and\n * `examples/`: of 79 authored `onParentDelete` blocks, 57 were silent, and **28 of 28** edges where a\n * retain-declaring resource was nevertheless erased by DELETE reached that outcome through this\n * default. Not one author had written `strategy: DELETE` for such a resource.\n *\n * So absence is now INFORMATION, and each reader supplies its own meaning:\n * - a cascade reader calls {@link resolveChildLifecycleTeardownStrategy}, the ONE named source of the\n * `DELETE`-on-absence rule, instead of re-deriving `?? DELETE` at each site;\n * - the erasure reader (`classifySubjectErasureDisposition`) reads this field RAW, so it can tell an\n * authored `DELETE` — which genuinely contradicts a retain policy and is refused — from silence,\n * which simply lets the child's `retentionPolicy` answer.\n *\n * Do NOT reintroduce a default here to \"simplify\" a call site. The default is not missing; it has\n * been moved to the reader that is entitled to it.\n */\n strategy: z.enum(ChildLifecycleStrategy).optional(),\n\n /**\n * Maximum depth for cascading delete (prevents infinite loops).\n * - 1: Delete direct children only\n * - 2: Delete children and grandchildren\n *\n * ⚠️ STRATEGY-DEPENDENT. This budget governs the DELETE cascade's descent. Under\n * `IMPERSONALIZE_AND_RETAIN` it has no effect on THIS edge: v1 scrubs the direct children only and\n * never recurses (a retained child is not deleted, so its own children keep a valid parent and are\n * left alone by design — the whole-subtree scrub belongs to direct subject-erasure, not to a\n * parent-delete cascade). It still matters on a DELETE edge ABOVE a retain edge: that is the budget\n * that lets the cascade reach the retain edge at all, and each edge reached applies its OWN strategy.\n * @default 1\n */\n maxDepth: z.number().int().min(1).max(3).default(1),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildLifecycleOnDeleteConfig = z.input<typeof ChildLifecycleOnDeleteConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildLifecycleOnDeleteConfig_Parsed = z.infer<typeof ChildLifecycleOnDeleteConfigSchema>;\n\n/**\n * The teardown strategy a DELETE CASCADE must apply to an edge — the ONE named source of the\n * \"silence means DELETE\" rule (#1279).\n *\n * `strategy` deliberately carries no schema default (see its JSDoc above), so absence reaches every\n * consumer intact. For the cascade, absence resolving to `DELETE` is correct and always was: a\n * composition child whose parent row is being removed has no owner left, and hard-delete is what the\n * engine has always done. This function exists so that rule lives in ONE place instead of being\n * re-derived as `?? ChildLifecycleStrategy.DELETE` at each cascade site — five such sites existed when\n * the default was removed, and a sixth that forgot would have silently changed a cascade's behaviour.\n *\n * ⚠️ **Subject erasure must NOT call this.** An erasure does not delete the parent; it scrubs the row\n * and keeps it, so \"the parent is gone\" — the premise that makes `DELETE` the right answer here — is\n * false there. `classifySubjectErasureDisposition` reads `strategy` raw precisely so it can distinguish\n * an authored `DELETE` from an unanswered question, which is the whole of #1279.\n *\n * @param onParentDelete - the authored teardown block, or undefined when the edge declares none.\n * @returns the strategy the cascade applies, or undefined when the edge declares no teardown at all\n * (a caller with no block has nothing to tear down, and must not be handed a `DELETE`).\n */\nexport function resolveChildLifecycleTeardownStrategy(\n onParentDelete: { readonly strategy?: ChildLifecycleStrategy } | undefined | null,\n): ChildLifecycleStrategy | undefined {\n if (!onParentDelete) return undefined;\n return onParentDelete.strategy ?? ChildLifecycleStrategy.DELETE;\n}\n\n/**\n * Context handed to an `onParentCreate.initialData.override` function at seed\n * time. Kept structurally-typed (no backend `ExecutionContext` import) so this\n * `_core` shared schema stays backend-free — mirrors the `userIdsSelector`\n * convention on `UserNotificationDefinition`. The backend seeding handler\n * populates the concrete values at runtime.\n */\nexport interface CompositionCreateContext {\n /** The parent row that was just created (the composition \"whole\"). */\n parentObject: Record<string, unknown>;\n /** The resource type of the parent. */\n parentResourceType: string;\n /** Initiator identity of the create, when request-triggered. */\n initiatorIds: { userId?: string; organizationId?: string; applicationId?: string };\n /**\n * The original create input, when the parent-create path threads it (e.g. a\n * registration payload carrying a profile's first/last name that does not\n * live on the parent row). Absent for pure-defaults children.\n */\n requestInput?: Record<string, unknown>;\n}\n\n/**\n * Seed timing for `onParentCreate` — DEDICATED to the create side so it never\n * borrows `ChildLifecycleMode`, whose `IMMEDIATE` means *atomic / in-transaction*\n * on the `onParentDelete` cascade. The create seed runs AFTER the parent commits,\n * so a shared enum would be a footgun (the same token would imply divergent\n * consistency guarantees on the two hooks).\n */\nexport enum CompositionSeedMode {\n /**\n * Sync seed in the post-create hook, right after the parent row has committed —\n * \"immediately after\", NOT atomic. A failed seed never rolls back the parent;\n * an absent 1:1 child self-heals via the omit-empty-1:1 context-embed.\n */\n POST_COMMIT = 'post_commit',\n\n // ── Reserved modes: DELIBERATELY not built (this is a design record, not a TODO) ──\n //\n // `POST_COMMIT` is the ONLY implemented mode, and it is what every current\n // eager-seed adopter needs — they are all 1-per-parent settings/state/profile\n // rows for which post-commit sync + omit-empty-1:1 self-heal is exactly right.\n // The two modes below are documented here for the record but are intentionally\n // NOT shipped, and they are comments (not enum values) ON PURPOSE: the type then\n // cannot offer an unimplemented mode, so no app developer can select one and hit\n // a runtime surprise.\n //\n // Why reserved rather than built (framework-mindset: a mode with no consumer\n // carries no semantic weight — building it is speculative generality):\n //\n // • ATOMIC — seed INSIDE the parent's transaction (via the nested-`onCreate`\n // path) so an absent child can never be observed. NOT built because (a) no\n // adopter needs atomicity (the post-commit window is already covered by the\n // omit-empty-1:1 read), and (b) the only available implementation route\n // BYPASSES Guard-1 (`systemAccessPolicy.create` fail-closed) + Guard-4\n // (privileged-write audit) — so shipping it now would add a mode that is\n // LESS safe than the default, for zero users. The interesting part (keeping\n // the guards while inside the txn) is unsolved and should be the design work\n // WHEN a concrete child genuinely requires atomic seeding.\n //\n // • DEFERRED — async seed via a queue, for high-volume children. NOT built\n // because no current composition is high-volume (settings rows are one per\n // parent). Add it when a real high-volume seed appears, shaped by that need.\n //\n // Rule of thumb: implement a new mode only when the FIRST concrete consumer\n // arrives, so the design is driven by the real requirement rather than a guess.\n}\n\n/**\n * Configuration for eagerly SEEDING a composition child when its parent is\n * created — the creation half of the composition lifecycle, symmetric with\n * {@link ChildLifecycleOnDeleteConfigSchema}.\n *\n * Semantics: a `RelationshipNature.COMPOSITION` child is a part that co-exists\n * with its whole. When `enabled`, the framework auto-creates the child at\n * parent-create time from the child schema's CREATE-DTO defaults, optionally\n * overlaid by `initialData.override(ctx)` for children whose seed data is\n * derived (e.g. a profile's first/last name from the registration payload).\n *\n * The seed is written through the trusted-system-write seam\n * (`SystemAccessBackendService.createAsSystem`), so the child resource MUST\n * opt into `systemAccessPolicy.create` (fail-closed) — see the composition\n * `onParentCreate` lifecycle plan.\n */\nexport const ChildLifecycleOnCreateConfigSchema = z.object({\n /** Whether the child is eagerly seeded when the parent is created. */\n enabled: z.boolean().default(false),\n\n /**\n * Seed timing — see {@link CompositionSeedMode}. `POST_COMMIT` (the only\n * implemented mode) seeds synchronously AFTER the parent commits; it is NOT\n * atomic. Deliberately a dedicated enum, not `ChildLifecycleMode` — on the\n * delete cascade `IMMEDIATE` is atomic/in-transaction, which would be a false\n * promise here.\n */\n mode: z.enum(CompositionSeedMode).default(CompositionSeedMode.POST_COMMIT),\n\n /**\n * Maximum recursion depth when a seeded child is itself a composition parent\n * (prevents unbounded parent → child → grandchild seeding). The seed re-enters\n * the create path, so this MUST be honoured by the runtime re-entrancy guard.\n * @default 1\n */\n maxDepth: z.number().int().min(1).max(3).default(1),\n\n /**\n * Optional seed-data strategy. The base seed is always the child's CREATE-DTO\n * defaults; `override(ctx)` supplies or overlays fields that cannot be\n * defaulted (e.g. a profile's first/last name derived from\n * {@link CompositionCreateContext.requestInput}). It returns a partial child\n * CREATE input, merged over the defaults before the system-create.\n *\n * Returning `undefined` DECLINES the seed for this particular parent-create:\n * the runtime skips the child cleanly (no create attempt, no swallowed\n * validation failure). This is how an input-derived child opts out when the\n * required input is absent — e.g. `USER_PROFILES` is seeded from the\n * registration/SSO/SCIM name payload, but the org-admin INVITE create carries\n * no name (the invitee supplies it later at acceptance), so the override\n * returns `undefined` there and the invitation-acceptance flow owns that write.\n *\n * Typed via `z.custom` because a runtime function is not JSON-serializable —\n * mirrors the `userIdsSelector` convention on `UserNotificationDefinition`.\n */\n initialData: z.object({\n override: z.custom<(ctx: CompositionCreateContext) => Record<string, unknown> | undefined>(\n (val) => typeof val === 'function',\n ).optional(),\n }).optional(),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildLifecycleOnCreateConfig = z.input<typeof ChildLifecycleOnCreateConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildLifecycleOnCreateConfig_Parsed = z.infer<typeof ChildLifecycleOnCreateConfigSchema>;\n\n/**\n * Lifecycle configuration wrapper: `onParentDelete` (cascade) + `onParentCreate`\n * (eager composition-child seeding).\n */\nexport const ChildLifecycleConfigSchema = z.object({\n /** Configuration for deleting children when parent is deleted */\n onParentDelete: ChildLifecycleOnDeleteConfigSchema.optional(),\n /** Configuration for eagerly seeding a composition child when parent is created */\n onParentCreate: ChildLifecycleOnCreateConfigSchema.optional(),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildLifecycleConfig = z.input<typeof ChildLifecycleConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildLifecycleConfig_Parsed = z.infer<typeof ChildLifecycleConfigSchema>;\n\n// =============================================================================\n// NESTED READ CONFIGURATION SCHEMA\n// =============================================================================\n\n/**\n * Configuration for nested read operations (related resources in response).\n *\n * IMPORTANT: Uses existing DataMode enum (RAW, SUMMARY, CONTEXT).\n * If this config is not present, related resources are NOT included in responses.\n *\n * WORKS FOR ALL CARDINALITIES:\n * - 1:N (Parent → Children): Returns array of children\n * - 1:1 (Parent ↔ Child): Returns single child object\n * - N:N (Resource ↔ Resource): Returns array via junction table\n * - N:1 (Child → Parent): Returns single parent object (less common, use isSummaryField populate)\n *\n * RELATIONSHIP TO DataMode REQUEST PARAM:\n * - Client can request DataMode.CONTEXT to get full context (parents + children via contextPolicy)\n * - nested.onRead provides a RELATIONSHIP-LEVEL default for always including related resources\n * - They work together: nested.onRead config + DataMode request param\n */\nexport const ChildNestedReadConfigSchema = z.object({\n /**\n * Data mode for related resources in READ response.\n * Uses existing DataMode enum: RAW, SUMMARY, CONTEXT\n *\n * - RAW: All stored fields, no population of their FKs\n * - SUMMARY: Summary fields, populate their isSummaryField({ populate: true }) FKs\n * - CONTEXT: Full context with their contextPolicy applied (can include grandchildren)\n *\n * @required - presence of this config enables nested resources\n */\n dataMode: z.enum(DataMode),\n\n /**\n * Enable nested resources in LIST/SUMMARY responses.\n * By default, LIST returns parent summaries only (no nested resources).\n * Set to true to include nested resources in LIST responses.\n *\n * ⚠️ Performance consideration: Enabling this on high-volume lists can be expensive.\n *\n * @default false\n */\n enabledOnList: z.boolean().default(false),\n\n /**\n * Data mode for resources when included in LIST responses.\n * Only applies when enabledOnList is true.\n * Typically SUMMARY for performance.\n *\n * @default SUMMARY\n */\n listDataMode: z.enum(DataMode).default(DataMode.SUMMARY),\n\n /**\n * Maximum number of items to include.\n * - For 1:N and N:N: Limits array size\n * - For 1:1: Ignored (always returns single object or null)\n */\n maxItems: z.number().int().min(0).optional(),\n\n /**\n * Sort order for related resources.\n * Uses standard sort syntax: 'fieldName' or '-fieldName' for descending.\n * - For 1:N and N:N: Applied to array\n * - For 1:1: Ignored\n */\n sortBy: z.string().optional(),\n\n /**\n * Maximum depth for nested traversal (prevents infinite loops).\n * 0 = no nesting, 1 = direct related only, 2 = related + their related\n * @default 1\n */\n maxDepth: z.number().int().min(0).max(3).default(1),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildNestedReadConfig = z.input<typeof ChildNestedReadConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildNestedReadConfig_Parsed = z.infer<typeof ChildNestedReadConfigSchema>;\n\n// =============================================================================\n// NESTED MUTATION CONFIGURATION SCHEMA\n// =============================================================================\n\n/**\n * Configuration for nested mutation operations (create/update/delete children via parent).\n *\n * When enabled, the parent's request DTO will include a field for child data:\n * - 1:N relationships: Array field (e.g., `tasks: [...]`)\n * - 1:1 relationships: Object field (e.g., `profile: {...}`)\n *\n * Processing logic:\n * - Children without _id are treated as creates (if allowCreate)\n * - Children with _id are treated as updates (if allowUpdate)\n * - Children listed in `_{field}ToDelete` array are deleted (if allowDelete)\n *\n * Nested field names follow ResourcesConfigNamingUtils conventions:\n * - taskId → task (1:1) or tasks (1:N)\n * - createdByUserId → createdByUser\n *\n * Created/updated children are ALWAYS included in the response.\n */\nexport const ChildNestedMutationConfigSchema = z.object({\n /** Whether children can be created in parent request */\n allowCreate: z.boolean().default(false),\n\n /** Whether existing children can be updated in parent request */\n allowUpdate: z.boolean().default(false),\n\n /**\n * Whether children can be deleted in parent request.\n * Use separate field `_{nestedField}ToDelete: string[]` to specify IDs to delete.\n * Example: `_tasksToDelete: ['task-123', 'task-456']`\n */\n allowDelete: z.boolean().default(false),\n\n /**\n * Maximum depth for nested mutations (prevents infinite loops).\n * 1 = direct children only, 2 = children can have grandchildren\n * @default 1\n */\n maxDepth: z.number().int().min(0).max(2).default(1),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildNestedMutationConfig = z.input<typeof ChildNestedMutationConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildNestedMutationConfig_Parsed = z.infer<typeof ChildNestedMutationConfigSchema>;\n\n// =============================================================================\n// NESTED OPERATIONS COMBINED SCHEMA\n// =============================================================================\n\n/**\n * Combined nested operations configuration.\n */\nexport const ChildNestedOperationsConfigSchema = z.object({\n /** How children appear in parent READ response */\n onRead: ChildNestedReadConfigSchema.optional(),\n\n /** What mutations allowed in parent UPDATE request */\n onUpdate: ChildNestedMutationConfigSchema.optional(),\n\n /** What child creations allowed in parent CREATE request */\n onCreate: ChildNestedMutationConfigSchema.optional(),\n});\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildNestedOperationsConfig = z.input<typeof ChildNestedOperationsConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildNestedOperationsConfig_Parsed = z.infer<typeof ChildNestedOperationsConfigSchema>;\n\n// =============================================================================\n// UNIFIED CHILD OPERATIONS CONFIGURATION\n// =============================================================================\n\n/**\n * Complete child operations configuration for a resource relationship.\n * Handles BACKEND concerns: lifecycle cascade and nested DTO aggregation.\n *\n * Frontend display is configured separately via `display` on the relationship.\n */\nexport const ChildOperationsConfigSchema = z.object({\n // --- LIFECYCLE ---\n /**\n * Automatic side effects on children when parent operations occur:\n * `onParentDelete` (cascade) and `onParentCreate` (eager composition-child seeding).\n */\n lifecycle: ChildLifecycleConfigSchema.optional(),\n\n // --- NESTED OPERATIONS ---\n /**\n * Configuration for including children in parent DTOs.\n * Enables aggregated CRUD operations (create/update parent with children).\n */\n nested: ChildNestedOperationsConfigSchema.optional(),\n});\n\n\n/** Input type - what users provide (defaults are optional) */\nexport type ChildOperationsConfig = z.input<typeof ChildOperationsConfigSchema>;\n/** Output type - what you get after parsing (all fields present) */\nexport type ChildOperationsConfig_Parsed = z.infer<typeof ChildOperationsConfigSchema>;\n\n// =============================================================================\n// RELATIONSHIP DISCRIMINATOR (for Discriminated Unions)\n// =============================================================================\n\n/**\n * Static discriminator filter for conditional relationships.\n *\n * When set on a relationship, the relationship only applies when the PARENT\n * resource's `discriminatorField` has a value matching one of the specified `values`.\n *\n * This is the \"simple case\" of conditional relationships — a pure field+values match.\n * For more complex logic (cross-field checks, computed conditions), use the\n * `condition` function on `ResourceRelationship` instead.\n *\n * ## Runtime Evaluation\n *\n * All runtime evaluation sites now delegate to the shared\n * `Resources_SharedUtils.isRelationshipActiveForParent()` helper, which uses\n * `String()` coercion on the field value before matching because this schema\n * defines `values` as `string[]` but the field may be a number or enum at\n * runtime.\n *\n * ## Design Note\n *\n * The discriminator is evaluated against the PARENT resource, never the child.\n * It answers the question: \"Given this parent's current state, should this\n * parent→child relationship be active?\" For example, a TODO with\n * `recurringType = 'ONE_TIME'` should NOT show recurring occurrences.\n *\n * @example Recurring todos have occurrences, one-time todos don't:\n * ```typescript\n * createResourcesRelationship(TODOS, TODOS_RECURRING_OCCURRENCES, ONE, MANY, {\n * discriminator: {\n * discriminatorField: 'recurringType',\n * values: ['RECURRING']\n * }\n * })\n * ```\n */\nexport const ResourceRelationshipDiscriminatorSchema = z.object({\n /** The discriminator field name on the parent resource to evaluate */\n discriminatorField: z.string(),\n\n /**\n * Values for which this relationship is active.\n * Comparison uses `String()` coercion: `values.includes(String(parentResource[discriminatorField]))`.\n */\n values: z.array(z.string()).min(1),\n});\n\nexport type ResourceRelationshipDiscriminator = z.infer<typeof ResourceRelationshipDiscriminatorSchema>;\n\n// =============================================================================\n// FRONTEND DISPLAY CONFIGURATION (on Relationship) — v3 re-exports\n// =============================================================================\n\n\n"]}
|
|
@@ -45,6 +45,8 @@ export interface ContextPolicy_OperationOverride {
|
|
|
45
45
|
objectMode?: ContextPolicy_ObjectMode;
|
|
46
46
|
/** Override access rights mode for this operation */
|
|
47
47
|
accessRightsMode?: ContextPolicy_AccessRightsMode;
|
|
48
|
+
/** Override the 1:many child cap for this operation. See {@link RelationshipContextPolicy.limit}. */
|
|
49
|
+
limit?: number;
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* Context policy for a relationship.
|
|
@@ -120,6 +122,21 @@ export interface RelationshipContextPolicy {
|
|
|
120
122
|
* @default USER_FILTERED
|
|
121
123
|
*/
|
|
122
124
|
accessRightsMode?: ContextPolicy_AccessRightsMode;
|
|
125
|
+
/**
|
|
126
|
+
* The most rows a 1:MANY child relationship embeds in a context response — the NEWEST, by the
|
|
127
|
+
* child's own list sort (its first declared `sortFields` entry, else `createdAt` descending).
|
|
128
|
+
* Ignored for parents and for 1:1 children, which embed one row by construction.
|
|
129
|
+
*
|
|
130
|
+
* A context read used to embed EVERY child row — measured 2026-09-10, an organization context read
|
|
131
|
+
* serialised all 143 of its audit rows (#583) — so the cost of declaring a child on the context
|
|
132
|
+
* surface grew with the tenant's history. The cap makes that cost bounded by construction.
|
|
133
|
+
*
|
|
134
|
+
* The embedded array cannot say it was truncated: it is a convenience projection of the graph, not
|
|
135
|
+
* a listing. A consumer that needs the complete set pages the child resource's own LIST.
|
|
136
|
+
* Maximum 100, the repository's own page ceiling.
|
|
137
|
+
* @default 20
|
|
138
|
+
*/
|
|
139
|
+
limit?: number;
|
|
123
140
|
/**
|
|
124
141
|
* Per-operation overrides.
|
|
125
142
|
* Allows different context behavior for specific operations.
|
|
@@ -142,6 +159,7 @@ export declare const ContextPolicy_OperationOverrideSchema: z.ZodObject<{
|
|
|
142
159
|
depth: z.ZodOptional<z.ZodNumber>;
|
|
143
160
|
objectMode: z.ZodOptional<z.ZodEnum<typeof ContextPolicy_ObjectMode>>;
|
|
144
161
|
accessRightsMode: z.ZodOptional<z.ZodEnum<typeof ContextPolicy_AccessRightsMode>>;
|
|
162
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
145
163
|
}, z.core.$strip>;
|
|
146
164
|
export type ContextPolicy_OperationOverrideType = z.infer<typeof ContextPolicy_OperationOverrideSchema>;
|
|
147
165
|
export declare const RelationshipContextPolicySchema: z.ZodObject<{
|
|
@@ -149,11 +167,13 @@ export declare const RelationshipContextPolicySchema: z.ZodObject<{
|
|
|
149
167
|
depth: z.ZodOptional<z.ZodNumber>;
|
|
150
168
|
objectMode: z.ZodOptional<z.ZodEnum<typeof ContextPolicy_ObjectMode>>;
|
|
151
169
|
accessRightsMode: z.ZodOptional<z.ZodEnum<typeof ContextPolicy_AccessRightsMode>>;
|
|
170
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
152
171
|
operationOverrides: z.ZodOptional<z.ZodRecord<z.ZodEnum<typeof CoreResourceOperation> & z.core.$partial, z.ZodObject<{
|
|
153
172
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
154
173
|
depth: z.ZodOptional<z.ZodNumber>;
|
|
155
174
|
objectMode: z.ZodOptional<z.ZodEnum<typeof ContextPolicy_ObjectMode>>;
|
|
156
175
|
accessRightsMode: z.ZodOptional<z.ZodEnum<typeof ContextPolicy_AccessRightsMode>>;
|
|
176
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
157
177
|
}, z.core.$strip>>>;
|
|
158
178
|
}, z.core.$strip>;
|
|
159
179
|
//# sourceMappingURL=context-policy.shared.schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-policy.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/resources/context-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E;;;GAGG;AACH,oBAAY,wBAAwB;IAClC,oDAAoD;IACpD,IAAI,SAAS;IACb,iEAAiE;IACjE,OAAO,YAAY;IACnB,wDAAwD;IACxD,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,oBAAY,8BAA8B;IACxC,2DAA2D;IAC3D,GAAG,QAAQ;IACX,qDAAqD;IACrD,aAAa,kBAAkB;IAC/B,sDAAsD;IACtD,cAAc,mBAAmB;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"context-policy.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/resources/context-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E;;;GAGG;AACH,oBAAY,wBAAwB;IAClC,oDAAoD;IACpD,IAAI,SAAS;IACb,iEAAiE;IACjE,OAAO,YAAY;IACnB,wDAAwD;IACxD,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,oBAAY,8BAA8B;IACxC,2DAA2D;IAC3D,GAAG,QAAQ;IACX,qDAAqD;IACrD,aAAa,kBAAkB;IAC/B,sDAAsD;IACtD,cAAc,mBAAmB;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAClD,qGAAqG;IACrG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,wBAAwB,CAAC;IAEtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAElD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CACjC,qBAAqB,EACrB,+BAA+B,CAChC,CAAC,CAAC;CACJ;AAMD;;;GAGG;AACH,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CACxD,IAAI,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAOtD,CAAC;AAMF,eAAO,MAAM,qCAAqC;;;;;;iBAMhD,CAAC;AACH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAExG,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;iBAU1C,CAAC"}
|
|
@@ -49,6 +49,7 @@ export const DEFAULT_RELATIONSHIP_CONTEXT_POLICY = {
|
|
|
49
49
|
depth: 1,
|
|
50
50
|
objectMode: ContextPolicy_ObjectMode.SUMMARY,
|
|
51
51
|
accessRightsMode: ContextPolicy_AccessRightsMode.USER_FILTERED,
|
|
52
|
+
limit: 20,
|
|
52
53
|
};
|
|
53
54
|
// =============================================================================
|
|
54
55
|
// ZOD SCHEMAS (for validation)
|
|
@@ -58,12 +59,14 @@ export const ContextPolicy_OperationOverrideSchema = z.object({
|
|
|
58
59
|
depth: z.number().int().min(0).max(3).optional(),
|
|
59
60
|
objectMode: z.enum(ContextPolicy_ObjectMode).optional(),
|
|
60
61
|
accessRightsMode: z.enum(ContextPolicy_AccessRightsMode).optional(),
|
|
62
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
61
63
|
});
|
|
62
64
|
export const RelationshipContextPolicySchema = z.object({
|
|
63
65
|
enabled: z.boolean().optional(),
|
|
64
66
|
depth: z.number().int().min(0).max(3).optional(),
|
|
65
67
|
objectMode: z.enum(ContextPolicy_ObjectMode).optional(),
|
|
66
68
|
accessRightsMode: z.enum(ContextPolicy_AccessRightsMode).optional(),
|
|
69
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
67
70
|
operationOverrides: z.partialRecord(z.enum(CoreResourceOperation), ContextPolicy_OperationOverrideSchema).optional(),
|
|
68
71
|
});
|
|
69
72
|
//# sourceMappingURL=context-policy.shared.schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-policy.shared.schemas.js","sourceRoot":"","sources":["../../../../src/resources/context-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,oDAAoD;IACpD,yCAAa,CAAA;IACb,iEAAiE;IACjE,+CAAmB,CAAA;IACnB,wDAAwD;IACxD,+CAAmB,CAAA;AACrB,CAAC,EAPW,wBAAwB,KAAxB,wBAAwB,QAOnC;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,8BAOX;AAPD,WAAY,8BAA8B;IACxC,2DAA2D;IAC3D,6CAAW,CAAA;IACX,qDAAqD;IACrD,iEAA+B,CAAA;IAC/B,sDAAsD;IACtD,mEAAiC,CAAA;AACnC,CAAC,EAPW,8BAA8B,KAA9B,8BAA8B,QAOzC;
|
|
1
|
+
{"version":3,"file":"context-policy.shared.schemas.js","sourceRoot":"","sources":["../../../../src/resources/context-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,oDAAoD;IACpD,yCAAa,CAAA;IACb,iEAAiE;IACjE,+CAAmB,CAAA;IACnB,wDAAwD;IACxD,+CAAmB,CAAA;AACrB,CAAC,EAPW,wBAAwB,KAAxB,wBAAwB,QAOnC;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,8BAOX;AAPD,WAAY,8BAA8B;IACxC,2DAA2D;IAC3D,6CAAW,CAAA;IACX,qDAAqD;IACrD,iEAA+B,CAAA;IAC/B,sDAAsD;IACtD,mEAAiC,CAAA;AACnC,CAAC,EAPW,8BAA8B,KAA9B,8BAA8B,QAOzC;AAqID,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAE5C;IACF,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,wBAAwB,CAAC,OAAO;IAC5C,gBAAgB,EAAE,8BAA8B,CAAC,aAAa;IAC9D,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;IACvD,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;IACvD,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,kBAAkB,EAAE,CAAC,CAAC,aAAa,CACjC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAC7B,qCAAqC,CACtC,CAAC,QAAQ,EAAE;CACb,CAAC,CAAC","sourcesContent":["/**\n * Context Policy Shared Schemas\n * \n * Defines how related resources are fetched when traversing relationships.\n * Used by ResourceContextBackendService to determine fetch behavior.\n * \n * Design Principle: \"Decorators describe structure. Relationships describe traversal.\"\n */\n\nimport { z } from 'zod';\nimport { CoreResourceOperation } from './resources.shared.core.definitions';\n\n// =============================================================================\n// ENUMS\n// =============================================================================\n\n/**\n * Object mode for relationship data in context.\n * Determines what level of detail is fetched for related resources.\n */\nexport enum ContextPolicy_ObjectMode {\n /** Include complete resource object (all fields) */\n FULL = 'FULL',\n /** Include only fields marked with isSummaryField() decorator */\n SUMMARY = 'SUMMARY',\n /** Include only the ID reference - no database fetch */\n ID_ONLY = 'ID_ONLY',\n}\n\n/**\n * Access rights mode for context relationships.\n * Determines how user permissions filter related resources.\n */\nexport enum ContextPolicy_AccessRightsMode {\n /** Include all resources regardless of user permissions */\n ALL = 'ALL',\n /** Only include resources user has read access to */\n USER_FILTERED = 'USER_FILTERED',\n /** Only include resources user has write access to */\n WRITE_FILTERED = 'WRITE_FILTERED',\n}\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Per-operation context policy override.\n * Allows different context behavior for READ vs LIST vs CREATE, etc.\n */\nexport interface ContextPolicy_OperationOverride {\n /** Override enabled state for this operation */\n enabled?: boolean;\n /** Override depth for this operation */\n depth?: number;\n /** Override object mode for this operation */\n objectMode?: ContextPolicy_ObjectMode;\n /** Override access rights mode for this operation */\n accessRightsMode?: ContextPolicy_AccessRightsMode;\n /** Override the 1:many child cap for this operation. See {@link RelationshipContextPolicy.limit}. */\n limit?: number;\n}\n\n/**\n * Context policy for a relationship.\n * Defines how related resources are fetched when traversing this relationship.\n * \n * @example Basic usage - uses all defaults\n * ```typescript\n * contextPolicy: {} // enabled=true, depth=1, objectMode=SUMMARY\n * ```\n * \n * @example Disable context for security (credentials, secrets, API keys)\n * ```typescript\n * contextPolicy: { enabled: false }\n * ```\n * \n * @example Full data on READ, summary on LIST (1:1 profile/preferences)\n * ```typescript\n * contextPolicy: {\n * objectMode: ContextPolicy_ObjectMode.SUMMARY,\n * operationOverrides: {\n * [CoreResourceOperation.READ]: { objectMode: ContextPolicy_ObjectMode.FULL }\n * }\n * }\n * ```\n * \n * @example Disable on LIST/SEARCH for performance (high-cardinality relationships)\n * ```typescript\n * contextPolicy: {\n * operationOverrides: {\n * [CoreResourceOperation.LIST]: { enabled: false },\n * [CoreResourceOperation.SEARCH]: { enabled: false }\n * }\n * }\n * ```\n * \n * @example Self-referencing relationships (prevent infinite loops)\n * ```typescript\n * contextPolicy: {\n * objectMode: ContextPolicy_ObjectMode.ID_ONLY,\n * depth: 1\n * }\n * ```\n */\nexport interface RelationshipContextPolicy {\n /**\n * Whether context fetching is enabled for this relationship.\n * Set to false to completely skip fetching related resources.\n * @default true\n */\n enabled?: boolean;\n\n /**\n * Depth of traversal through this relationship.\n * - 0: Don't fetch (same as enabled: false)\n * - 1: Fetch direct relationship only (default)\n * - 2: Fetch related resource AND its direct relationships\n * - 3: Maximum allowed depth (use with caution)\n * \n * Higher depths have exponential performance implications.\n * @default 1\n */\n depth?: number;\n\n /**\n * What data to include from the related resource.\n * - FULL: Complete resource object (all fields)\n * - SUMMARY: Only fields marked with isSummaryField() decorator\n * - ID_ONLY: Just the ID reference, no actual fetch\n * @default SUMMARY\n */\n objectMode?: ContextPolicy_ObjectMode;\n\n /**\n * Access rights filtering for the related resource.\n * Controls whether user permissions affect what's returned.\n * @default USER_FILTERED\n */\n accessRightsMode?: ContextPolicy_AccessRightsMode;\n\n /**\n * The most rows a 1:MANY child relationship embeds in a context response — the NEWEST, by the\n * child's own list sort (its first declared `sortFields` entry, else `createdAt` descending).\n * Ignored for parents and for 1:1 children, which embed one row by construction.\n *\n * A context read used to embed EVERY child row — measured 2026-09-10, an organization context read\n * serialised all 143 of its audit rows (#583) — so the cost of declaring a child on the context\n * surface grew with the tenant's history. The cap makes that cost bounded by construction.\n *\n * The embedded array cannot say it was truncated: it is a convenience projection of the graph, not\n * a listing. A consumer that needs the complete set pages the child resource's own LIST.\n * Maximum 100, the repository's own page ceiling.\n * @default 20\n */\n limit?: number;\n\n /**\n * Per-operation overrides.\n * Allows different context behavior for specific operations.\n * Keys are limited to `CoreResourceOperation` values.\n * \n * Common patterns:\n * - Disable on LIST/SEARCH for performance\n * - Use FULL on READ for detail views\n * - Disable on CREATE for validation-only\n */\n operationOverrides?: Partial<Record<\n CoreResourceOperation,\n ContextPolicy_OperationOverride\n >>;\n}\n\n// =============================================================================\n// DEFAULTS\n// =============================================================================\n\n/**\n * Default context policy when not specified on relationship.\n * Conservative defaults optimized for common use cases.\n */\nexport const DEFAULT_RELATIONSHIP_CONTEXT_POLICY: Required<\n Omit<RelationshipContextPolicy, 'operationOverrides'>\n> = {\n enabled: true,\n depth: 1,\n objectMode: ContextPolicy_ObjectMode.SUMMARY,\n accessRightsMode: ContextPolicy_AccessRightsMode.USER_FILTERED,\n limit: 20,\n};\n\n// =============================================================================\n// ZOD SCHEMAS (for validation)\n// =============================================================================\n\nexport const ContextPolicy_OperationOverrideSchema = z.object({\n enabled: z.boolean().optional(),\n depth: z.number().int().min(0).max(3).optional(),\n objectMode: z.enum(ContextPolicy_ObjectMode).optional(),\n accessRightsMode: z.enum(ContextPolicy_AccessRightsMode).optional(),\n limit: z.number().int().min(1).max(100).optional(),\n});\nexport type ContextPolicy_OperationOverrideType = z.infer<typeof ContextPolicy_OperationOverrideSchema>;\n\nexport const RelationshipContextPolicySchema = z.object({\n enabled: z.boolean().optional(),\n depth: z.number().int().min(0).max(3).optional(),\n objectMode: z.enum(ContextPolicy_ObjectMode).optional(),\n accessRightsMode: z.enum(ContextPolicy_AccessRightsMode).optional(),\n limit: z.number().int().min(1).max(100).optional(),\n operationOverrides: z.partialRecord(\n z.enum(CoreResourceOperation),\n ContextPolicy_OperationOverrideSchema\n ).optional(),\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources-config.shared.factory.d.ts","sourceRoot":"","sources":["../../../../src/resources/resources-config.shared.factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resources-config.shared.factory.d.ts","sourceRoot":"","sources":["../../../../src/resources/resources-config.shared.factory.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EAEZ,gBAAgB,EAqBjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmDxB,OAAO,EAEL,KAAK,wBAAwB,EAe7B,qBAAqB,EAKrB,uCAAuC,EAKvC,gCAAgC,EAQjC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAwD,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChJ,OAAO,EAUL,oBAAoB,EAarB,MAAM,4BAA4B,CAAC;AAwSpC,wBAAgB,4CAA4C,CAC1D,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAChE,wBAAwB,EAAE,oBAAoB,EAAE,EAChD,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1F,IAAI,CA0BN;AA4eD,+EAA+E;AAI/E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC1D,UAAU,EAAE,CAAC,EACb,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,CAAC,CAAC,UAAU,CA4Cd;AA8ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACrD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,EACb,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,GACzB,CAAC,CAAC,UAAU,CAqBd;AA4sBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sCAAsC,CACpD,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,EAClE,WAAW,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,EACjD,MAAM,EAAE;IACR,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;OAUG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC,GAAG,gCAAgC,CAAC,aAAa,EAAE,WAAW,CAAC,CA6F/D;AA4GD;;;;GAIG;AACH,wBAAgB,0CAA0C,CACxD,oBAAoB,SAAS,YAAY,GAAG,SAAS,EACrD,kBAAkB,SAAS,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,EACrE,WAAW,SAAS,CAAC,CAAC,UAAU,EAChC,MAAM,EAAE,uCAAuC,CAC/C,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CACtD,GAAG,qBAAqB,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAy8E/E"}
|