@wildo-ai/saas-models 1.1.1 → 1.1.3
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/applications-context.schemas.d.ts +16 -10
- package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js +4 -3
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +36 -0
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.js +8 -1
- package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +0 -4
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.js +59 -17
- package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts +77 -21
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js +85 -23
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts +5 -5
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +39 -0
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts +6 -6
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.js +8 -4
- package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +35 -0
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.js +8 -3
- package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
- package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.schemas.js +7 -1
- package/dist/esm/billing/price.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js +52 -11
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js +7 -3
- package/dist/esm/billing/product.shared.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +2 -2
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js +54 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts +4 -4
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.js +6 -2
- package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.js +39 -0
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.d.ts +11 -7
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +29 -6
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +69 -2
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js +20 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +85 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +157 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +35 -2
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +23 -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 +56 -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 +541 -20
- 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 +605 -23
- 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 +96 -3
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts +49 -0
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js +124 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +11 -3
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +11 -3
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +94 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +211 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +67 -12
- 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 +95 -8
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +17 -0
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js +27 -4
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts +89 -16
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js +101 -15
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js +12 -5
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +21 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.js +20 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +9 -5
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.js +29 -0
- package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +8 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.js +29 -0
- package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +95 -17
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js +86 -8
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +12 -12
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +33 -0
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.js +32 -0
- package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +40 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +40 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +57 -11
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +109 -64
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +200 -19
- 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 +15 -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 +32 -7
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +84 -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 +59 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +61 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +97 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +41 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -0
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +148 -2
- 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 +56 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +9 -31
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +8 -5
- 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 +9 -4
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +338 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +332 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +178 -9
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js +181 -9
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +7 -5
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js +7 -5
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts +40 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js +80 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -0
- package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.js +7 -1
- package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
- package/dist/esm/features/feature-builders.shared.d.ts +32 -0
- package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-builders.shared.js +32 -0
- package/dist/esm/features/feature-builders.shared.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 +48 -0
- package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts +156 -0
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -0
- package/dist/esm/files/file-upload-grant.shared.schemas.js +175 -0
- package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -0
- package/dist/esm/files/files.shared.schemas.d.ts +52 -4
- package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.schemas.js +55 -4
- package/dist/esm/files/files.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js +33 -0
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js +6 -2
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js +53 -0
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts +54 -5
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +6 -6
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +0 -3
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.js +0 -5
- package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js +43 -0
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +14 -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 +48 -6
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js +41 -0
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts +0 -7
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js +23 -13
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +19 -0
- 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 +33 -0
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts +14 -9
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +14 -9
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +3 -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.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +128 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +142 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -3
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +1 -4
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts +0 -16
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js +1 -17
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +3 -3
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js +3 -3
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +2 -8
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +4 -15
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js +51 -0
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.js +8 -2
- package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.js +1 -0
- package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js +51 -0
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js +28 -3
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +9 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js +51 -0
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts +46 -0
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js +67 -4
- package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +356 -52
- 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 +166 -39
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +11 -2
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts +15 -0
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.js +15 -0
- package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts +70 -0
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -0
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js +71 -0
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js.map +1 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +1 -0
- 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 +19 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +30 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +65 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts +6 -4
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.js +6 -4
- package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.d.ts +167 -5
- package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.js +191 -6
- package/dist/esm/notifications/notification-badges.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 +36 -0
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts +107 -0
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js +149 -1
- package/dist/esm/notifications/notifications.shared.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 +44 -0
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js +15 -4
- package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js +22 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +26 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js +25 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +25 -0
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js +42 -17
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +3 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +35 -12
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/public-runtime/index.d.ts +49 -2
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js +48 -1
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +6 -5
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js +23 -5
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +16 -3
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +16 -3
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts +137 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.js +1201 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts +67 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js +78 -0
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts +11 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js +11 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts +86 -4
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +138 -0
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/collection-query-parameters.shared.d.ts +22 -0
- package/dist/esm/resources/collection-query-parameters.shared.d.ts.map +1 -0
- package/dist/esm/resources/collection-query-parameters.shared.js +22 -0
- package/dist/esm/resources/collection-query-parameters.shared.js.map +1 -0
- package/dist/esm/resources/resources-config.shared.factory.d.ts +1 -0
- package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.js +189 -31
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +395 -92
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js +109 -20
- 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 +97 -5
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.js +15 -0
- package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts +37 -0
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js +51 -0
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts +11 -2
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js +34 -3
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts +51 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.js +53 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -0
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +21 -6
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.d.ts +16 -2
- package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.js +19 -5
- package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js +11 -0
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts +25 -0
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +38 -0
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +38 -0
- 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 +4 -11
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +0 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +141 -5
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js +147 -3
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts +17 -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 +16 -0
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts +28 -0
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts.map +1 -0
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js +28 -0
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js.map +1 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js +11 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +15 -0
- 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 +21 -4
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts +21 -0
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js +21 -0
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -0
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +61 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +208 -6
- 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 +37 -27
- 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 +134 -12
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +0 -6
- 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 +17 -8
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +70 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +45 -8
- 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 +56 -10
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +16 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js +16 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts +54 -0
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.js +59 -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 +31 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +198 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +31 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +191 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +250 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +486 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -0
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +4 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +29 -0
- 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 +4 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +29 -0
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +67 -0
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +44 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js +35 -0
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts +13 -0
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js +31 -4
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +34 -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.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.js +7 -4
- package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.js +37 -0
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.js +17 -2
- package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js +36 -0
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.js +15 -5
- package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +5 -5
- 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 +53 -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 +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 +62 -0
- 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 +5 -5
- 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 +53 -0
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js +62 -0
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.js +33 -3
- 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 +17 -1
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.js +136 -5
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts +62 -12
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +79 -23
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -6
- package/dist/esm/.builder.pid +0 -9
|
@@ -526,6 +526,41 @@ export const WS_FlowsActorsMessagePayloadSchema = z.object({
|
|
|
526
526
|
/** True on the terminal event of a streamed message (`content` is the full text). */
|
|
527
527
|
isFinal: z.boolean().optional(),
|
|
528
528
|
});
|
|
529
|
+
/**
|
|
530
|
+
* The approval announcement that is ACTUALLY sent, carried in the `data` bag of a
|
|
531
|
+
* `FLOWS_ACTORS_MESSAGE` of type `PROGRESS`.
|
|
532
|
+
*
|
|
533
|
+
* It is a named schema rather than a shape both ends open-code, because the `data` bag is
|
|
534
|
+
* `z.record(z.string(), z.unknown())` — so nothing typed the announcement, and the browser
|
|
535
|
+
* listened on `FLOWS_ACTORS_APPROVAL_REQUEST` instead, an event **nothing has ever emitted**.
|
|
536
|
+
* The result: `pendingApproval` was never set, no shipped screen could observe a paused turn,
|
|
537
|
+
* and `resourceServerInstanceRef` — which the server sends precisely so a decision can echo it —
|
|
538
|
+
* was discarded, leaving an approval raised on a NAMED agent instance unresumable (#528).
|
|
539
|
+
*
|
|
540
|
+
* Producer: `persistApprovalSuspension`. Consumer: `FlowsActorsContext`.
|
|
541
|
+
*/
|
|
542
|
+
export const WS_FlowsActorsApprovalAnnouncementDataSchema = z.object({
|
|
543
|
+
/** Discriminator. The `data` bag carries other kinds of payload on other messages. */
|
|
544
|
+
approvalRequested: z.literal(true),
|
|
545
|
+
approvalId: z.string(),
|
|
546
|
+
/** The tool call being gated. */
|
|
547
|
+
toolName: z.string(),
|
|
548
|
+
/**
|
|
549
|
+
* The tool call's ARGUMENTS — the structured thing a person is actually being asked to approve.
|
|
550
|
+
* Loose here because the shape belongs to the tool, not to the transport; a surface that renders
|
|
551
|
+
* these gets their schema from the tool declaration.
|
|
552
|
+
*/
|
|
553
|
+
toolArgs: z.record(z.string(), z.unknown()).optional(),
|
|
554
|
+
requestedAt: z.string(),
|
|
555
|
+
/** When the pause lapses. Written since #465; it reaches a client only through this block. */
|
|
556
|
+
expiresAt: z.string().optional(),
|
|
557
|
+
/**
|
|
558
|
+
* The isolation axis the DECISION must carry back, sent unconditionally — including when it is
|
|
559
|
+
* the default sentinel — so a client echoes one field rather than branching on whether the value
|
|
560
|
+
* is meaningful.
|
|
561
|
+
*/
|
|
562
|
+
resourceServerInstanceRef: z.string(),
|
|
563
|
+
});
|
|
529
564
|
/** Human approval request (server → client) */
|
|
530
565
|
export const WS_FlowsActorsApprovalRequestPayloadSchema = z.object({
|
|
531
566
|
systemRef: z.string(),
|
|
@@ -722,6 +757,109 @@ export function buildResourceRoomName(resourceType, resourceId) {
|
|
|
722
757
|
export function buildScopeRoomName(resourceType, scopeKey, scopeId) {
|
|
723
758
|
return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${scopeKey}:${scopeId}`;
|
|
724
759
|
}
|
|
760
|
+
/**
|
|
761
|
+
* The scope keys a resource room can be qualified by that the FRAMEWORK owns.
|
|
762
|
+
*
|
|
763
|
+
* Closed, and named because each member carries a different meaning that a bare string cannot: `app`
|
|
764
|
+
* scopes a resource to the whole application, `user` to one principal's own rows, `org` to a tenant.
|
|
765
|
+
* A resource can additionally be scoped by a PARENT RESOURCE, and those keys are genuinely open —
|
|
766
|
+
* they are derived from the application's own resource names — so they stay strings.
|
|
767
|
+
*/
|
|
768
|
+
export var ResourceScopeRoomKey;
|
|
769
|
+
(function (ResourceScopeRoomKey) {
|
|
770
|
+
/**
|
|
771
|
+
* The whole application.
|
|
772
|
+
*
|
|
773
|
+
* **`'app'`, while the APPLICATION resource's field identifier is `applicationId`** — and that
|
|
774
|
+
* mismatch is load-bearing rather than sloppy, so it is stated here instead of being "tidied".
|
|
775
|
+
*
|
|
776
|
+
* `mapScopeKeyToResourceType` on the server resolves a scope key by searching the registry for a
|
|
777
|
+
* resource whose field identifier is `<scopeKey>Id`. Renaming this member to `'application'` would
|
|
778
|
+
* make that search succeed and route APPLICATION scope through the generic PARENT-scope branch,
|
|
779
|
+
* which authorizes READ on the `applications` row — a row `ORG_MEMBER` may read, while ten of the
|
|
780
|
+
* eleven APPLICATION-scoped resource configs require `APP_ADMIN_SUPER_ADMIN`. The rename would
|
|
781
|
+
* therefore hand every org member notification streams naming rows of SSO connections, SIEM
|
|
782
|
+
* configuration and webhook configs (issue #247).
|
|
783
|
+
*
|
|
784
|
+
* APPLICATION scope has its own branch in `verifyScopeAccess` that authorizes the SUBSCRIBED
|
|
785
|
+
* resource instead, because a single constant discriminates nothing and so cannot stand in for
|
|
786
|
+
* authorization the way a tenant or a parent row does.
|
|
787
|
+
*/
|
|
788
|
+
ResourceScopeRoomKey["APPLICATION"] = "app";
|
|
789
|
+
/** One principal's own rows. */
|
|
790
|
+
ResourceScopeRoomKey["USER"] = "user";
|
|
791
|
+
/** One tenant. */
|
|
792
|
+
ResourceScopeRoomKey["ORGANIZATION"] = "org";
|
|
793
|
+
})(ResourceScopeRoomKey || (ResourceScopeRoomKey = {}));
|
|
794
|
+
/**
|
|
795
|
+
* Which scope rooms a resource operation's rows belong to.
|
|
796
|
+
*
|
|
797
|
+
* ## Why this lives in the SHARED models rather than on the backend
|
|
798
|
+
*
|
|
799
|
+
* Both ends need the same answer and for opposite reasons: the backend emits a list/cache-refresh
|
|
800
|
+
* notification INTO these rooms after a mutation, and a client that caches a read has to be IN them
|
|
801
|
+
* to hear it. Two implementations of one rule would agree only until one side gained a case — the
|
|
802
|
+
* shape this repository refuses everywhere else — and the failure would be silent, because a client
|
|
803
|
+
* subscribed to the wrong room does not error, it simply never hears that its cache is stale.
|
|
804
|
+
*
|
|
805
|
+
* Ported verbatim from the notifications dispatcher, quirks included, because moving code must not
|
|
806
|
+
* change which rooms are emitted to. Two of those quirks are worth naming so the next reader does not
|
|
807
|
+
* "fix" them into a behaviour change:
|
|
808
|
+
*
|
|
809
|
+
* - the parent-scope branch tests `key.endsWith('Id') && !key.includes('Parent')` with a CAPITAL P,
|
|
810
|
+
* so `myParentId` is excluded while `parentTodoListId` is not;
|
|
811
|
+
* - `organizationId` enters that branch and is then skipped by the inner test, having already been
|
|
812
|
+
* pushed above.
|
|
813
|
+
*/
|
|
814
|
+
export function deriveResourceScopeRoomQualifiers(contextResourceIdentifiers, primaryScope) {
|
|
815
|
+
const scopes = [];
|
|
816
|
+
const seenScopes = new Set();
|
|
817
|
+
const pushScope = (scopeKey, scopeId) => {
|
|
818
|
+
if (!scopeId) {
|
|
819
|
+
return;
|
|
820
|
+
}
|
|
821
|
+
const dedupeKey = `${scopeKey}:${scopeId}`;
|
|
822
|
+
if (seenScopes.has(dedupeKey)) {
|
|
823
|
+
return;
|
|
824
|
+
}
|
|
825
|
+
seenScopes.add(dedupeKey);
|
|
826
|
+
scopes.push({ scopeKey, scopeId });
|
|
827
|
+
};
|
|
828
|
+
if (primaryScope === ResourcePrimaryScope.APPLICATION && contextResourceIdentifiers.applicationId) {
|
|
829
|
+
pushScope(ResourceScopeRoomKey.APPLICATION, contextResourceIdentifiers.applicationId);
|
|
830
|
+
}
|
|
831
|
+
if (primaryScope === ResourcePrimaryScope.USER_SELF && contextResourceIdentifiers.userId) {
|
|
832
|
+
pushScope(ResourceScopeRoomKey.USER, contextResourceIdentifiers.userId);
|
|
833
|
+
}
|
|
834
|
+
if (contextResourceIdentifiers.organizationId) {
|
|
835
|
+
pushScope(ResourceScopeRoomKey.ORGANIZATION, contextResourceIdentifiers.organizationId);
|
|
836
|
+
}
|
|
837
|
+
for (const [key, value] of Object.entries(contextResourceIdentifiers)) {
|
|
838
|
+
if (key === 'organizationId' || (key.endsWith('Id') && !key.includes('Parent'))) {
|
|
839
|
+
const scopeKey = key.replace(/Id$/, '').toLowerCase();
|
|
840
|
+
/*
|
|
841
|
+
* `organization` and `application` are SKIPPED because the dedicated branches above already
|
|
842
|
+
* emitted their rooms under the keys the server actually knows — `org` and `app`.
|
|
843
|
+
*
|
|
844
|
+
* Stripping `Id` yields the FIELD's name, not the room's: `applicationId` becomes
|
|
845
|
+
* `application`, and `ResourceScopeRoomKey.APPLICATION` is `'app'`. That divergence is
|
|
846
|
+
* deliberate and documented on the enum, so the generic loop cannot be allowed to invent the
|
|
847
|
+
* long form beside the short one.
|
|
848
|
+
*
|
|
849
|
+
* It was inert for as long as no caller put an `applicationId` into this map. The moment one
|
|
850
|
+
* did (issue #283, so a client could name its own APPLICATION room), every such read claimed a
|
|
851
|
+
* FIFTH room the server refuses — measured live:
|
|
852
|
+
* `resource:workbenchDomainResources:application:… -> success: false`. A refused room is not
|
|
853
|
+
* merely wasted: the read cache's `covers()` requires EVERY room confirmed, so one permanently
|
|
854
|
+
* unconfirmable room disabled the cache outright for every APPLICATION-scoped resource.
|
|
855
|
+
*/
|
|
856
|
+
if (scopeKey !== 'organization' && scopeKey !== 'application' && value) {
|
|
857
|
+
pushScope(scopeKey, value);
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
return scopes;
|
|
862
|
+
}
|
|
725
863
|
/**
|
|
726
864
|
* Parse a resource room name into its components
|
|
727
865
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.shared.schemas.js","sourceRoot":"","sources":["../../../../src/requests/websocket.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { DataMode } from '../resources/resources-config.shared.schemas';\nimport { FrontendDisplayHintsSchema } from '../notifications/notifications.shared.schemas';\nimport { ValueMomentRole, ValueMomentScope } from '../config/analytics-value-moments.shared.schemas';\nimport { OnboardingStatus } from '../config/frontend/onboarding.shared.schemas';\nimport { GuidanceFlowScope, GuidanceRenderMode } from '../guidance/guidance-flow.shared.schemas';\nimport { ProgressionScope, MilestoneRewardType } from '../guidance/milestone-definition.shared.schemas';\nimport { LifecycleStage, LifecycleScope } from '../guidance/lifecycle-state.shared.schemas';\nimport { ResourceOperationVariantType } from '../resources/resources.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\n\n// =====================================================\n// WebSocket Event Types (Core Framework Events)\n// =====================================================\n\n/**\n * Core WebSocket events defined by the engine.\n * Custom events use the RESOURCE_CUSTOM type with eventName field.\n */\nexport enum CoreWebSocketEvent {\n // === Room Management Events (client → server) ===\n RESOURCE_SUBSCRIBE = 'resource:subscribe',\n RESOURCE_UNSUBSCRIBE = 'resource:unsubscribe',\n RESOURCE_SUBSCRIBED = 'resource:subscribed', // Server confirmation\n RESOURCE_UNSUBSCRIBED = 'resource:unsubscribed', // Server confirmation\n\n // === Target-Based Notification Events (server → client, via identity rooms) ===\n RESOURCE_NOTIFICATION = 'resource:notification',\n USER_NOTIFICATION = 'user:notification', // Direct user notification (not tied to resource operation)\n BADGE_UPDATE = 'badge:update',\n BADGE_GET = 'badge:get',\n BADGE_GET_ALL = 'badge:get-all',\n\n // === Resource Room Events (bidirectional, via resource rooms) ===\n RESOURCE_UPDATED = 'resource:updated',\n RESOURCE_DELETED = 'resource:deleted',\n RESOURCE_EDITING_START = 'resource:editing:start',\n RESOURCE_EDITING_END = 'resource:editing:end',\n RESOURCE_EDITING_STARTED = 'resource:editing:started', // Server confirmation\n RESOURCE_EDITING_ERROR = 'resource:editing:error',\n RESOURCE_LOCKED = 'resource:locked',\n RESOURCE_UNLOCKED = 'resource:unlocked',\n RESOURCE_CUSTOM = 'resource:custom',\n RESOURCE_CUSTOM_ERROR = 'resource:custom:error',\n\n // === FlowsActors Events (bidirectional) ===\n FLOWS_ACTORS_START = 'flows-actors:start',\n FLOWS_ACTORS_STARTED = 'flows-actors:started',\n FLOWS_ACTORS_MESSAGE = 'flows-actors:message',\n FLOWS_ACTORS_APPROVAL_REQUEST = 'flows-actors:approval-request',\n FLOWS_ACTORS_APPROVAL_RESPONSE = 'flows-actors:approval-response',\n FLOWS_ACTORS_STATUS_UPDATE = 'flows-actors:status-update',\n FLOWS_ACTORS_COMPLETED = 'flows-actors:completed',\n FLOWS_ACTORS_ERROR = 'flows-actors:error',\n\n // === Billing Events (server → client, invalidation triggers) ===\n BILLING_STATUS_CHANGED = 'billing:status_changed',\n BILLING_SUBSCRIPTION_UPDATED = 'billing:subscription_updated',\n BILLING_ACCOUNT_CHANGED = 'billing:account_changed',\n BILLING_USAGE_UPDATED = 'billing:usage_updated',\n BILLING_CREDIT_POOL_UPDATED = 'billing:credit_pool_updated',\n BILLING_FEATURES_UPDATED = 'billing:features_updated',\n\n // === Analytics Events ===\n ANALYTICS_MOMENT_ACHIEVED = 'analytics:moment-achieved',\n\n // === Guidance Events ===\n GUIDANCE_STATE_CHANGED = 'guidance:state-changed',\n\n // === Progression Events ===\n MILESTONE_ACHIEVED = 'progression:milestone-achieved',\n /**\n * Emitted after a milestone-triggering operation increments a scope's\n * `operationCounts` — even when NO milestone was achieved. Lets the frontend\n * advance in-progress milestone bars live (e.g. 8/10 → 9/10) instead of only\n * on achievement or a page reload.\n */\n PROGRESSION_UPDATED = 'progression:updated',\n\n // === Lifecycle Events ===\n LIFECYCLE_STAGE_CHANGED = 'lifecycle:stage-changed',\n\n // === System Events ===\n AUTH_REFRESH = 'auth:refresh',\n ORGANIZATION_SWITCH = 'organization:switch',\n SYSTEM_TOKEN_REFRESHED = 'system:token-refreshed',\n SYSTEM_ERROR = 'system:error',\n}\n\n/**\n * Machine-readable codes attached to a Socket.IO handshake rejection.\n *\n * A rejecting server-side auth middleware calls `next(err)`; Socket.IO forwards\n * the error's `data` field verbatim to the client's `connect_error` handler as\n * `err.data`. Emitting a stable code there lets the client react to WHY the\n * handshake was rejected WITHOUT matching on the human-readable error message\n * (which is localisation- and refactor-fragile).\n *\n * `AUTHENTICATION_FAILED` specifically flags an access-token problem the client\n * can self-heal: the frontend re-runs its token-renewal handler and reconnects\n * with a fresh token. This is what keeps a backgrounded / unfocused tab's socket\n * alive across access-token expiry, when no HTTP traffic is flowing to trigger a\n * reactive refresh (background real-time jobs keep delivering instead of stalling\n * until the user refocuses the window).\n */\nexport enum CoreWebSocketConnectionErrorCode {\n AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED',\n}\n\nexport enum ResourceAction {\n CREATED = 'created',\n UPDATED = 'updated',\n DELETED = 'deleted',\n}\n\nexport const ResourceActionSchema = z.union([z.enum(ResourceAction), z.string()]);\n\nexport enum WebSocketResourceDeliveryTarget {\n RESOURCE_ROOM_SYNC = 'resource-room-sync',\n RESOURCE_ROOM_NOTIFICATION = 'resource-room-notification',\n SCOPE_ROOM_NOTIFICATION = 'scope-room-notification',\n}\n\nexport const WebSocketResourceDeliveryTargetSchema = z.enum(WebSocketResourceDeliveryTarget);\n\n/**\n * Union type for WebSocket event names (core + custom string events)\n */\nexport type WebSocketEventName = CoreWebSocketEvent | `custom:${string}`;\n\n// =====================================================\n// Common Schemas (reusable across payloads)\n// =====================================================\n\nexport const ContextResourceIdentifiersSchema = z.record(z.string(), z.string());\nexport type ContextResourceIdentifiers = z.infer<typeof ContextResourceIdentifiersSchema>;\n\nconst WebSocketTimestampInputSchema = z.union([\n z.date(),\n z.string().datetime({ offset: true }),\n]);\nconst WebSocketTimestampSchema = WebSocketTimestampInputSchema.pipe(z.coerce.date());\nconst WebSocketOptionalTimestampSchema = WebSocketTimestampSchema.optional();\n\n\n// =====================================================\n// Room Management Payloads (client → server)\n// =====================================================\n\nconst WS_ResourceSubscribePayloadBaseSchema = z.object({\n resourceType: z.string().min(1),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n});\n\n/** Subscribe to a specific resource room. */\nconst WS_ResourceSubscribeSinglePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.string().min(1),\n scopeKey: z.undefined().optional(),\n scopeId: z.undefined().optional(),\n});\n\n/** Subscribe to a scoped collection room. */\nconst WS_ResourceSubscribeScopePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.undefined().optional(),\n scopeKey: z.string().min(1),\n scopeId: z.string().min(1),\n});\n\n/** Subscribe to a resource room - either single-resource or scoped collection. */\nexport const WS_ResourceSubscribePayloadSchema = z.union([\n WS_ResourceSubscribeSinglePayloadSchema,\n WS_ResourceSubscribeScopePayloadSchema,\n]);\nexport type WS_ResourceSubscribePayload = z.infer<typeof WS_ResourceSubscribePayloadSchema>;\n\n/** Server confirmation of subscription */\nexport const WS_ResourceSubscribedPayloadSchema = z.object({\n roomName: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n /** List of user IDs currently editing this resource (only for single resource subscriptions) */\n editingUsers: z.array(z.string()).optional(),\n});\nexport type WS_ResourceSubscribedPayload = z.infer<typeof WS_ResourceSubscribedPayloadSchema>;\n\n// =====================================================\n// Notification Payloads (server → client, target-based)\n// =====================================================\n\n/**\n * Notification level enum for typed notifications\n */\nexport enum NotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport const NotificationLevelSchema = z.enum(NotificationLevel);\n\n/** Resource notification via identity rooms (org, role, user) */\nexport const WS_ResourceNotificationPayloadSchema = z.object({\n // Operation path fields (for EventBus matching)\n resourceType: z.string(),\n operationIdentifier: z.string(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().default(false),\n isBulkOperation: z.boolean().default(false),\n variantKey: z.string().optional(),\n\n // Context for scoped matching\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(),\n\n // Notification data\n action: ResourceActionSchema,\n /** Explicit notification level (overrides action-based default) */\n notificationLevel: NotificationLevelSchema.optional(),\n affectedIds: z.array(z.string()),\n notificationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Frontend display hints (only populated for FRONT_END_SUCCESS channel).\n * Contains optional celebration mode and next-step suggestion.\n * Backend passes these through without interpreting them — the frontend\n * reads them to decide rendering (toast vs overlay vs confetti, with or without CTA).\n */\n frontendDisplayHints: FrontendDisplayHintsSchema.optional(),\n});\nexport type WS_ResourceNotificationPayload = z.infer<typeof WS_ResourceNotificationPayloadSchema>;\n\n/** Badge count update */\nexport const WS_BadgeUpdatePayloadSchema = z.object({\n badgeReference: z.string(),\n badgeCount: z.number().int().min(0),\n organizationId: z.string().optional(),\n});\nexport type WS_BadgeUpdatePayload = z.infer<typeof WS_BadgeUpdatePayloadSchema>;\n\n/**\n * Display target enum for user notifications\n */\nexport enum NotificationDisplayTarget {\n TOAST = 'toast',\n CENTER = 'center',\n BOTH = 'both',\n}\n\nexport const NotificationDisplayTargetSchema = z.enum(NotificationDisplayTarget);\n\n/**\n * Direct user notification (not tied to resource operation)\n * Used for arbitrary backend-initiated notifications like:\n * - \"Your export is ready\"\n * - \"Payment received\"\n * - \"System maintenance scheduled\"\n */\nexport const WS_UserNotificationPayloadSchema = z.object({\n /** Notification level (info, success, warning, error) */\n notificationLevel: NotificationLevelSchema,\n /** i18n identifier for message lookup (FrontendNotificationCustomMessageRefs) */\n identifier: z.string().optional(),\n /** Direct message (fallback if identifier not found or not provided) */\n message: z.string().optional(),\n /** Optional notification title */\n title: z.string().optional(),\n /** Additional context data */\n data: z.record(z.string(), z.unknown()).optional(),\n /** Where to display the notification */\n displayTarget: NotificationDisplayTargetSchema.default(NotificationDisplayTarget.BOTH),\n /** Organization context (if notification is org-scoped) */\n organizationId: z.string().optional(),\n /** Timestamp */\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_UserNotificationPayload = z.infer<typeof WS_UserNotificationPayloadSchema>;\n\n// =====================================================\n// Analytics Payloads (server → client)\n// =====================================================\n\n/** Analytics moment achievement notification */\nexport const WS_AnalyticsMomentAchievedPayloadSchema = z.object({\n momentIdentifier: z.string(),\n role: z.enum(ValueMomentRole),\n scope: z.enum(ValueMomentScope),\n scopeEntityId: z.string(),\n achievedAt: WebSocketTimestampSchema,\n triggerSource: z.enum(['frontend', 'backend'] as const),\n});\nexport type WS_AnalyticsMomentAchievedPayload = z.infer<typeof WS_AnalyticsMomentAchievedPayloadSchema>;\n\n// =====================================================\n// Guidance Event Payloads\n// =====================================================\n\n/** Guidance state changed event — pushed by backend or frontend for real-time sync */\nexport const GuidanceRealtimeStatusSchema = z.union([\n z.literal(OnboardingStatus.IN_PROGRESS),\n z.literal(OnboardingStatus.COMPLETED),\n z.literal(OnboardingStatus.DISMISSED),\n]);\n\n/** Guidance state changed event — only statuses broadcast through the realtime bridge. */\nexport const WS_GuidanceStateChangedPayloadSchema = z.object({\n flowRef: z.string(),\n status: GuidanceRealtimeStatusSchema,\n elementRef: z.string().optional(),\n triggerSource: z.enum(['frontend', 'backend'] as const),\n /** Which scope this event pertains to — determines how frontend routes state updates */\n scope: z.enum(GuidanceFlowScope),\n renderMode: z.enum(GuidanceRenderMode).optional(),\n});\nexport type WS_GuidanceStateChangedPayload = z.infer<typeof WS_GuidanceStateChangedPayloadSchema>;\n\n// =====================================================\n// Progression Event Payloads\n// =====================================================\n\n/** Milestone achieved event — pushed by backend when a milestone condition is met */\nexport const WS_MilestoneAchievedPayloadSchema = z.object({\n milestoneRef: z.string(),\n category: z.string(),\n points: z.number().int().optional(),\n /** Which scope this milestone belongs to — determines how frontend routes state updates */\n scope: z.enum(ProgressionScope),\n reward: z.object({\n type: z.enum(MilestoneRewardType),\n featureRef: z.string().optional(),\n guidanceFlowRef: z.string().optional(),\n celebrationLevel: z.enum(['low', 'medium', 'high']).optional(),\n }),\n /** Phase 5 integration: lifecycle transition triggered by this milestone */\n lifecycleTransition: z.object({\n from: z.string(),\n to: z.string(),\n }).optional(),\n /** Timestamp of achievement */\n achievedAt: WebSocketTimestampSchema,\n /** Updated total points (post-achievement) */\n totalPoints: z.number().int(),\n});\nexport type WS_MilestoneAchievedPayload = z.infer<typeof WS_MilestoneAchievedPayloadSchema>;\n\n/**\n * Progression progress event — pushed by backend after a milestone-triggering\n * operation increments the scope's `operationCounts`, regardless of whether a\n * milestone was achieved. Carries the authoritative post-increment counts so\n * the frontend can advance in-progress bars without a refetch (the backend\n * evaluation is fire-and-forget, so the frontend cannot re-read counts\n * race-free on its own).\n */\nexport const WS_ProgressionUpdatedPayloadSchema = z.object({\n /** Which scope's progression state changed. */\n scope: z.enum(ProgressionScope),\n /** Full post-increment operation-count map for the scope (`{ 'todos:create': 9 }`). */\n operationCounts: z.record(z.string(), z.number().int()),\n /** Current total points for the scope (unchanged unless a milestone also fired). */\n totalPoints: z.number().int(),\n /** When the increment was applied. */\n updatedAt: WebSocketTimestampSchema,\n});\nexport type WS_ProgressionUpdatedPayload = z.infer<typeof WS_ProgressionUpdatedPayloadSchema>;\n\n// =====================================================\n// Lifecycle Event Payloads\n// =====================================================\n\n/** Lifecycle stage changed event — pushed by backend when a lifecycle transition occurs */\nexport const WS_LifecycleStageChangedPayloadSchema = z.object({\n /** Previous stage before transition */\n previousStage: z.enum(LifecycleStage),\n /** New stage after transition */\n newStage: z.enum(LifecycleStage),\n /** Which scope this lifecycle state belongs to */\n scope: z.enum(LifecycleScope),\n /** What triggered the transition */\n trigger: z.string().optional(),\n /** When the transition occurred */\n changedAt: WebSocketTimestampSchema,\n /** Activation progress snapshot (for SIGNED_UP → ACTIVATED tracking) */\n activationCriteriaMet: z.record(z.string(), z.boolean()).optional(),\n});\nexport type WS_LifecycleStageChangedPayload = z.infer<typeof WS_LifecycleStageChangedPayloadSchema>;\n\n// =====================================================\n// CRDT Field Metadata (shared between backend + frontend)\n// =====================================================\n\n/**\n * Per-field CRDT metadata: server-authoritative timestamp + last editor.\n * `meta` is an extensibility slot for future per-field metadata (e.g. merge strategy hints,\n * conflict resolution context) without requiring a schema migration.\n */\nexport const FieldMetaEntrySchema = z.object({\n ts: z.number(),\n by: z.string(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\nexport type FieldMetaEntry = z.infer<typeof FieldMetaEntrySchema>;\n\nexport const FieldMetaMapSchema = z.record(z.string(), FieldMetaEntrySchema);\nexport type FieldMetaMap = z.infer<typeof FieldMetaMapSchema>;\n\n// =====================================================\n// Resource Room Payloads (path-independent collaboration)\n// =====================================================\n\nconst ResourceUpdateSyncActionSchema = z.union([\n z.literal(ResourceAction.CREATED),\n z.literal(ResourceAction.UPDATED),\n]);\n\nconst WS_ResourceEventCommonPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n affectedIds: z.array(z.string()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\n\nconst WS_ResourceUpdateNotificationPayloadCommonSchema = WS_ResourceEventCommonPayloadSchema.extend({\n affectedIds: z.array(z.string()).min(1),\n action: ResourceActionSchema,\n operationIdentifier: z.string().optional(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number().optional(),\n resourceData: z.unknown().optional(),\n fieldMeta: FieldMetaMapSchema.optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\n/** Notification-grade resource update event delivered to scope rooms. */\nexport const WS_ScopeRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION),\n});\nexport type WS_ScopeRoomUpdateNotificationPayload = z.infer<typeof WS_ScopeRoomUpdateNotificationPayloadSchema>;\n\n/** Notification-grade resource update event delivered to resource rooms. */\nexport const WS_ResourceRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION),\n});\nexport type WS_ResourceRoomUpdateNotificationPayload = z.infer<typeof WS_ResourceRoomUpdateNotificationPayloadSchema>;\n\nexport const WS_ResourceUpdateNotificationPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n]);\nexport type WS_ResourceUpdateNotificationPayload = z.infer<typeof WS_ResourceUpdateNotificationPayloadSchema>;\n\n/** Synchronization-grade resource update event (resource rooms, RMM replay). */\nexport const WS_ResourceSyncUpdatedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceUpdateSyncActionSchema,\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number(),\n resourceData: z.record(z.string(), z.unknown()),\n fieldMeta: FieldMetaMapSchema.optional(),\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceSyncUpdatedPayload = z.infer<typeof WS_ResourceSyncUpdatedPayloadSchema>;\n\n/** Update events can be either notification-grade or sync-grade, distinguished explicitly. */\nexport const WS_ResourceUpdatedPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n WS_ResourceSyncUpdatedPayloadSchema,\n]);\nexport type WS_ResourceUpdatedPayload = z.infer<typeof WS_ResourceUpdatedPayloadSchema>;\n\n/** Resource deleted event for resource rooms. */\nexport const WS_ResourceDeletedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: z.literal(ResourceAction.DELETED),\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceDeletedPayload = z.infer<typeof WS_ResourceDeletedPayloadSchema>;\n\n/** Lightweight resource-room state payload for lock/unlock style events. */\nexport const WS_ResourceRoomStatePayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceActionSchema.optional(),\n operationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceRoomStatePayload = z.infer<typeof WS_ResourceRoomStatePayloadSchema>;\n\n/**\n * Editing start/end payload\n * - Incoming: contextResourceIdentifiers REQUIRED for UPDATE authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceEditingPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketOptionalTimestampSchema,\n reason: z.enum(['manual', 'disconnect', 'timeout', 'auth_refresh', 'organization_switch']).optional(), // For editing:end\n});\nexport type WS_ResourceEditingPayload = z.infer<typeof WS_ResourceEditingPayloadSchema>;\n\n/** Editing confirmation/error */\nexport const WS_ResourceEditingResultPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_ResourceEditingResultPayload = z.infer<typeof WS_ResourceEditingResultPayloadSchema>;\n\n/**\n * Custom collaboration event\n * - Incoming: contextResourceIdentifiers REQUIRED for READ authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceCustomEventPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n eventName: z.string().min(1), // Custom event name (e.g., 'cursor:move', 'comment:add')\n data: z.unknown().optional(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n includeSelf: z.boolean().optional(), // Only for outgoing\n timestamp: WebSocketOptionalTimestampSchema,\n // Phase 7.1: Optional resource data for custom events with resource context\n // When included, will be validated against appropriate DTO based on dataMode.\n resourceData: z.unknown().optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceCustomEventPayload = z.infer<typeof WS_ResourceCustomEventPayloadSchema>;\n\n/** Error response for custom events */\nexport const WS_ResourceCustomErrorPayloadSchema = z.object({\n eventName: z.string(),\n error: z.string(),\n});\nexport type WS_ResourceCustomErrorPayload = z.infer<typeof WS_ResourceCustomErrorPayloadSchema>;\n\n// =====================================================\n// Badge Request/Response Payloads\n// =====================================================\n\n/** Badge get request (client → server) */\nexport const WS_BadgeGetRequestSchema = z.object({\n identifier: z.string(),\n scope: z.string(),\n scopeId: z.string(),\n});\n\nexport type WS_BadgeGetRequest = z.infer<typeof WS_BadgeGetRequestSchema>;\n\n/** Badge get-all request (client → server) */\nexport const WS_BadgeGetAllRequestSchema = z.object({\n scope: z.string(),\n scopeId: z.string(),\n});\nexport type WS_BadgeGetAllRequest = z.infer<typeof WS_BadgeGetAllRequestSchema>;\n\n/** Badge get-all response (server → client) */\nexport const WS_BadgeGetAllResponseSchema = z.array(z.object({\n identifier: z.string(),\n count: z.number().min(0),\n}));\nexport type WS_BadgeGetAllResponse = z.infer<typeof WS_BadgeGetAllResponseSchema>;\n\n// =====================================================\n// FlowsActors Payloads (bidirectional)\n// =====================================================\n\n/** Start a FlowActorSystem execution (client → server) */\nexport const WS_FlowsActorsStartPayloadSchema = z.object({\n systemRef: z.string().min(1),\n executionId: z.string().optional(), // Server generates if not provided\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n initialInput: z.record(z.string(), z.unknown()).optional(),\n});\nexport type WS_FlowsActorsStartPayload = z.infer<typeof WS_FlowsActorsStartPayloadSchema>;\n\n/** Confirmation of FlowActorSystem start (server → client) */\nexport const WS_FlowsActorsStartedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_FlowsActorsStartedPayload = z.infer<typeof WS_FlowsActorsStartedPayloadSchema>;\n\n/** Message from agent/flow (server → client) */\nexport const WS_FlowsActorsMessagePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n messageType: z.enum(['text', 'markdown', 'progress', 'data']),\n content: z.string(),\n data: z.record(z.string(), z.unknown()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Correlates streamed token deltas to a single logical message. When present,\n * consecutive `messageId`-sharing events belong to the same assistant turn:\n * non-final events (`isFinal !== true`) carry an incremental delta to APPEND to\n * that message's content; the final event (`isFinal === true`) carries the FULL\n * assembled content as the authoritative value. When absent, the event is a\n * standalone message (legacy/one-shot behavior — append a new entry).\n */\n messageId: z.string().optional(),\n /** True on the terminal event of a streamed message (`content` is the full text). */\n isFinal: z.boolean().optional(),\n});\nexport type WS_FlowsActorsMessagePayload = z.infer<typeof WS_FlowsActorsMessagePayloadSchema>;\n\n/** Human approval request (server → client) */\nexport const WS_FlowsActorsApprovalRequestPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n actionDescription: z.string(),\n riskLevel: z.enum(['low', 'medium', 'high', 'critical']),\n requiredRoles: z.array(z.string()).optional(),\n expiresAt: WebSocketOptionalTimestampSchema,\n});\n\nexport type WS_FlowsActorsApprovalRequestPayload = z.infer<typeof WS_FlowsActorsApprovalRequestPayloadSchema>;\n\n/** Human approval response (client → server) */\nexport const WS_FlowsActorsApprovalResponsePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n approved: z.boolean(),\n comment: z.string().optional(),\n /**\n * The agent instance the paused conversation belongs to — ECHOED from the approval REQUEST.\n *\n * A conversation is isolated by owner FK, machine credential AND agent instance, so a resume that\n * omits this axis is filtered against the DEFAULT instance sentinel. An approval raised on a NAMED\n * A2A agent instance therefore matched no row and the decision was dropped silently — logged as\n * \"no pending approval matches\" and returned, with the turn left paused forever.\n *\n * Optional because the in-app conversational plane runs on the default instance and has nothing to\n * echo; absent means default, which is the value those executions were written with.\n */\n resourceServerInstanceRef: z.string().optional(),\n});\nexport type WS_FlowsActorsApprovalResponsePayload = z.infer<typeof WS_FlowsActorsApprovalResponsePayloadSchema>;\n\n/** Status update during execution (server → client) */\nexport const WS_FlowsActorsStatusUpdatePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n status: z.string(),\n progress: z.number().min(0).max(100).optional(),\n currentStep: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_FlowsActorsStatusUpdatePayload = z.infer<typeof WS_FlowsActorsStatusUpdatePayloadSchema>;\n\n/** Execution completed (server → client) */\nexport const WS_FlowsActorsCompletedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n result: z.record(z.string(), z.unknown()).optional(),\n duration: z.number().optional(), // in ms\n});\nexport type WS_FlowsActorsCompletedPayload = z.infer<typeof WS_FlowsActorsCompletedPayloadSchema>;\n\n/** Execution error (server → client) */\nexport const WS_FlowsActorsErrorPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n errorCode: z.string(),\n errorMessage: z.string(),\n recoverable: z.boolean().default(false),\n});\nexport type WS_FlowsActorsErrorPayload = z.infer<typeof WS_FlowsActorsErrorPayloadSchema>;\n\n// =====================================================\n// System Payloads\n// =====================================================\n\nexport const WS_AuthRefreshPayloadSchema = z.object({\n token: z.string(),\n});\nexport type WS_AuthRefreshPayload = z.infer<typeof WS_AuthRefreshPayloadSchema>;\n\nexport const WS_SystemTokenRefreshedPayloadSchema = z.object({\n success: z.literal(true),\n});\nexport type WS_SystemTokenRefreshedPayload = z.infer<typeof WS_SystemTokenRefreshedPayloadSchema>;\n\nexport const WS_OrganizationSwitchPayloadSchema = z.object({\n organizationId: z.string(),\n previousOrganizationId: z.string().optional(),\n});\nexport type WS_OrganizationSwitchPayload = z.infer<typeof WS_OrganizationSwitchPayloadSchema>;\n\nexport const WS_SystemErrorPayloadSchema = z.object({\n code: z.string(),\n message: z.string(),\n details: z.unknown().optional(),\n});\nexport type WS_SystemErrorPayload = z.infer<typeof WS_SystemErrorPayloadSchema>;\n\n// =====================================================\n// Billing Payloads (server → client, invalidation triggers)\n// =====================================================\n\nexport const WS_BillingEventPayloadSchema = z.object({\n scopeType: z.enum(ResourcePrimaryScope),\n scopeEntityId: z.string(),\n billingAccountId: z.string(),\n});\n export type WS_BillingEventPayload = z.infer<typeof WS_BillingEventPayloadSchema>;\n\n// =====================================================\n// Event-to-Schema Map (for validation)\n// =====================================================\n\nexport const WebSocketEventSchemas = {\n // Room management\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n\n // Notifications\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayloadSchema,\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayloadSchema,\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayloadSchema,\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequestSchema,\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequestSchema,\n\n // Resource room events\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayloadSchema,\n\n // FlowsActors\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayloadSchema,\n\n // Billing\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayloadSchema,\n\n // Analytics\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayloadSchema,\n\n // Guidance\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayloadSchema,\n\n // Progression\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayloadSchema,\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayloadSchema,\n\n // Lifecycle\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayloadSchema,\n\n // System\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayloadSchema,\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayloadSchema,\n} as const;\n\n// =====================================================\n// Typed Payload Map (for TypeScript inference)\n// =====================================================\n\nexport type WebSocketEventPayloads = {\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayload;\n\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayload;\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayload;\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayload;\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequest;\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequest;\n\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayload;\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayload;\n\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayload;\n\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayload;\n\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayload;\n\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayload;\n\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayload;\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayload;\n\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayload;\n\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayload;\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayload;\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayload;\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayload;\n};\n\n// =====================================================\n// Room Naming Utilities\n// =====================================================\n\n/**\n * WebSocket room name prefixes for different room types.\n * These prefixes are used to create room names for Socket.IO.\n */\nexport enum WebSocketRoomPrefix {\n /** User-specific room: user:{userId} */\n USER = 'user',\n /** Organization room: org:{organizationId} */\n ORGANIZATION = 'org',\n /** Organization role room: org:{organizationId}:role:{role} */\n ORGANIZATION_ROLE = 'role',\n /** Application-level role room: app:role:{role} */\n APP_ROLE = 'app:role',\n /** Resource room: resource:{resourceType}:{resourceId} */\n RESOURCE = 'resource',\n /** Public room for unauthenticated users */\n PUBLIC = 'public',\n}\n\n/**\n * Build a user room name\n */\nexport function buildUserRoomName(userId: string): string {\n return `${WebSocketRoomPrefix.USER}:${userId}`;\n}\n\n/**\n * Build an organization room name\n */\nexport function buildOrganizationRoomName(organizationId: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}`;\n}\n\n/**\n * Build an organization role room name\n */\nexport function buildOrganizationRoleRoomName(organizationId: string, role: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}:${WebSocketRoomPrefix.ORGANIZATION_ROLE}:${role}`;\n}\n\n/**\n * Build an application-level role room name\n */\nexport function buildAppRoleRoomName(role: string): string {\n return `${WebSocketRoomPrefix.APP_ROLE}:${role}`;\n}\n\n/**\n * Build a resource room name\n */\nexport function buildResourceRoomName(resourceType: string, resourceId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${resourceId}`;\n}\n\n/**\n * Build a scope room name for collection subscriptions\n */\nexport function buildScopeRoomName(resourceType: string, scopeKey: string, scopeId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${scopeKey}:${scopeId}`;\n}\n\n/**\n * Parse a resource room name into its components\n */\nexport function parseResourceRoomName(roomName: string): {\n resourceType: string;\n resourceId?: string;\n scopeKey?: string;\n scopeId?: string;\n} | null {\n const parts = roomName.split(':');\n if (parts.length < 3 || parts[0] !== WebSocketRoomPrefix.RESOURCE) return null;\n\n if (parts.length === 3) {\n return { resourceType: parts[1], resourceId: parts[2] };\n } else if (parts.length === 4) {\n return { resourceType: parts[1], scopeKey: parts[2], scopeId: parts[3] };\n }\n return null;\n}\n\n/**\n * Extract organization ID from an organization room name\n */\nexport function parseOrganizationRoomName(roomName: string): string | null {\n if (roomName.startsWith(`${WebSocketRoomPrefix.ORGANIZATION}:`)) {\n // Handle both org:{orgId} and org:{orgId}:role:{role}\n const parts = roomName.split(':');\n return parts[1] || null;\n }\n return null;\n}\n\n// =====================================================\n// Validation Helpers\n// =====================================================\n\n/**\n * Validate an incoming WebSocket event payload\n */\nexport function validateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown {\n const schema = WebSocketEventSchemas[event];\n return schema.parse(payload) as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown;\n}\n\n/**\n * Safe validation (returns result instead of throwing)\n */\nexport function safeValidateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): { success: true; data: E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown } | { success: false; error: z.ZodError } {\n const schema = WebSocketEventSchemas[event];\n const result = schema.safeParse(payload);\n if (result.success) {\n return { success: true, data: result.data as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown };\n }\n return { success: false, error: result.error };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"websocket.shared.schemas.js","sourceRoot":"","sources":["../../../../src/requests/websocket.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { DataMode } from '../resources/resources-config.shared.schemas';\nimport { FrontendDisplayHintsSchema } from '../notifications/notifications.shared.schemas';\nimport { ValueMomentRole, ValueMomentScope } from '../config/analytics-value-moments.shared.schemas';\nimport { OnboardingStatus } from '../config/frontend/onboarding.shared.schemas';\nimport { GuidanceFlowScope, GuidanceRenderMode } from '../guidance/guidance-flow.shared.schemas';\nimport { ProgressionScope, MilestoneRewardType } from '../guidance/milestone-definition.shared.schemas';\nimport { LifecycleStage, LifecycleScope } from '../guidance/lifecycle-state.shared.schemas';\nimport { ResourceOperationVariantType } from '../resources/resources.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\n\n// =====================================================\n// WebSocket Event Types (Core Framework Events)\n// =====================================================\n\n/**\n * Core WebSocket events defined by the engine.\n * Custom events use the RESOURCE_CUSTOM type with eventName field.\n */\nexport enum CoreWebSocketEvent {\n // === Room Management Events (client → server) ===\n RESOURCE_SUBSCRIBE = 'resource:subscribe',\n RESOURCE_UNSUBSCRIBE = 'resource:unsubscribe',\n RESOURCE_SUBSCRIBED = 'resource:subscribed', // Server confirmation\n RESOURCE_UNSUBSCRIBED = 'resource:unsubscribed', // Server confirmation\n\n // === Target-Based Notification Events (server → client, via identity rooms) ===\n RESOURCE_NOTIFICATION = 'resource:notification',\n USER_NOTIFICATION = 'user:notification', // Direct user notification (not tied to resource operation)\n BADGE_UPDATE = 'badge:update',\n BADGE_GET = 'badge:get',\n BADGE_GET_ALL = 'badge:get-all',\n\n // === Resource Room Events (bidirectional, via resource rooms) ===\n RESOURCE_UPDATED = 'resource:updated',\n RESOURCE_DELETED = 'resource:deleted',\n RESOURCE_EDITING_START = 'resource:editing:start',\n RESOURCE_EDITING_END = 'resource:editing:end',\n RESOURCE_EDITING_STARTED = 'resource:editing:started', // Server confirmation\n RESOURCE_EDITING_ERROR = 'resource:editing:error',\n RESOURCE_LOCKED = 'resource:locked',\n RESOURCE_UNLOCKED = 'resource:unlocked',\n RESOURCE_CUSTOM = 'resource:custom',\n RESOURCE_CUSTOM_ERROR = 'resource:custom:error',\n\n // === FlowsActors Events (bidirectional) ===\n FLOWS_ACTORS_START = 'flows-actors:start',\n FLOWS_ACTORS_STARTED = 'flows-actors:started',\n FLOWS_ACTORS_MESSAGE = 'flows-actors:message',\n FLOWS_ACTORS_APPROVAL_REQUEST = 'flows-actors:approval-request',\n FLOWS_ACTORS_APPROVAL_RESPONSE = 'flows-actors:approval-response',\n FLOWS_ACTORS_STATUS_UPDATE = 'flows-actors:status-update',\n FLOWS_ACTORS_COMPLETED = 'flows-actors:completed',\n FLOWS_ACTORS_ERROR = 'flows-actors:error',\n\n // === Billing Events (server → client, invalidation triggers) ===\n BILLING_STATUS_CHANGED = 'billing:status_changed',\n BILLING_SUBSCRIPTION_UPDATED = 'billing:subscription_updated',\n BILLING_ACCOUNT_CHANGED = 'billing:account_changed',\n BILLING_USAGE_UPDATED = 'billing:usage_updated',\n BILLING_CREDIT_POOL_UPDATED = 'billing:credit_pool_updated',\n BILLING_FEATURES_UPDATED = 'billing:features_updated',\n\n // === Analytics Events ===\n ANALYTICS_MOMENT_ACHIEVED = 'analytics:moment-achieved',\n\n // === Guidance Events ===\n GUIDANCE_STATE_CHANGED = 'guidance:state-changed',\n\n // === Progression Events ===\n MILESTONE_ACHIEVED = 'progression:milestone-achieved',\n /**\n * Emitted after a milestone-triggering operation increments a scope's\n * `operationCounts` — even when NO milestone was achieved. Lets the frontend\n * advance in-progress milestone bars live (e.g. 8/10 → 9/10) instead of only\n * on achievement or a page reload.\n */\n PROGRESSION_UPDATED = 'progression:updated',\n\n // === Lifecycle Events ===\n LIFECYCLE_STAGE_CHANGED = 'lifecycle:stage-changed',\n\n // === System Events ===\n AUTH_REFRESH = 'auth:refresh',\n ORGANIZATION_SWITCH = 'organization:switch',\n SYSTEM_TOKEN_REFRESHED = 'system:token-refreshed',\n SYSTEM_ERROR = 'system:error',\n}\n\n/**\n * Machine-readable codes attached to a Socket.IO handshake rejection.\n *\n * A rejecting server-side auth middleware calls `next(err)`; Socket.IO forwards\n * the error's `data` field verbatim to the client's `connect_error` handler as\n * `err.data`. Emitting a stable code there lets the client react to WHY the\n * handshake was rejected WITHOUT matching on the human-readable error message\n * (which is localisation- and refactor-fragile).\n *\n * `AUTHENTICATION_FAILED` specifically flags an access-token problem the client\n * can self-heal: the frontend re-runs its token-renewal handler and reconnects\n * with a fresh token. This is what keeps a backgrounded / unfocused tab's socket\n * alive across access-token expiry, when no HTTP traffic is flowing to trigger a\n * reactive refresh (background real-time jobs keep delivering instead of stalling\n * until the user refocuses the window).\n */\nexport enum CoreWebSocketConnectionErrorCode {\n AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED',\n}\n\nexport enum ResourceAction {\n CREATED = 'created',\n UPDATED = 'updated',\n DELETED = 'deleted',\n}\n\nexport const ResourceActionSchema = z.union([z.enum(ResourceAction), z.string()]);\n\nexport enum WebSocketResourceDeliveryTarget {\n RESOURCE_ROOM_SYNC = 'resource-room-sync',\n RESOURCE_ROOM_NOTIFICATION = 'resource-room-notification',\n SCOPE_ROOM_NOTIFICATION = 'scope-room-notification',\n}\n\nexport const WebSocketResourceDeliveryTargetSchema = z.enum(WebSocketResourceDeliveryTarget);\n\n/**\n * Union type for WebSocket event names (core + custom string events)\n */\nexport type WebSocketEventName = CoreWebSocketEvent | `custom:${string}`;\n\n// =====================================================\n// Common Schemas (reusable across payloads)\n// =====================================================\n\nexport const ContextResourceIdentifiersSchema = z.record(z.string(), z.string());\nexport type ContextResourceIdentifiers = z.infer<typeof ContextResourceIdentifiersSchema>;\n\nconst WebSocketTimestampInputSchema = z.union([\n z.date(),\n z.string().datetime({ offset: true }),\n]);\nconst WebSocketTimestampSchema = WebSocketTimestampInputSchema.pipe(z.coerce.date());\nconst WebSocketOptionalTimestampSchema = WebSocketTimestampSchema.optional();\n\n\n// =====================================================\n// Room Management Payloads (client → server)\n// =====================================================\n\nconst WS_ResourceSubscribePayloadBaseSchema = z.object({\n resourceType: z.string().min(1),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n});\n\n/** Subscribe to a specific resource room. */\nconst WS_ResourceSubscribeSinglePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.string().min(1),\n scopeKey: z.undefined().optional(),\n scopeId: z.undefined().optional(),\n});\n\n/** Subscribe to a scoped collection room. */\nconst WS_ResourceSubscribeScopePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.undefined().optional(),\n scopeKey: z.string().min(1),\n scopeId: z.string().min(1),\n});\n\n/** Subscribe to a resource room - either single-resource or scoped collection. */\nexport const WS_ResourceSubscribePayloadSchema = z.union([\n WS_ResourceSubscribeSinglePayloadSchema,\n WS_ResourceSubscribeScopePayloadSchema,\n]);\nexport type WS_ResourceSubscribePayload = z.infer<typeof WS_ResourceSubscribePayloadSchema>;\n\n/** Server confirmation of subscription */\nexport const WS_ResourceSubscribedPayloadSchema = z.object({\n roomName: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n /** List of user IDs currently editing this resource (only for single resource subscriptions) */\n editingUsers: z.array(z.string()).optional(),\n});\nexport type WS_ResourceSubscribedPayload = z.infer<typeof WS_ResourceSubscribedPayloadSchema>;\n\n// =====================================================\n// Notification Payloads (server → client, target-based)\n// =====================================================\n\n/**\n * Notification level enum for typed notifications\n */\nexport enum NotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport const NotificationLevelSchema = z.enum(NotificationLevel);\n\n/** Resource notification via identity rooms (org, role, user) */\nexport const WS_ResourceNotificationPayloadSchema = z.object({\n // Operation path fields (for EventBus matching)\n resourceType: z.string(),\n operationIdentifier: z.string(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().default(false),\n isBulkOperation: z.boolean().default(false),\n variantKey: z.string().optional(),\n\n // Context for scoped matching\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(),\n\n // Notification data\n action: ResourceActionSchema,\n /** Explicit notification level (overrides action-based default) */\n notificationLevel: NotificationLevelSchema.optional(),\n affectedIds: z.array(z.string()),\n notificationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Frontend display hints (only populated for FRONT_END_SUCCESS channel).\n * Contains optional celebration mode and next-step suggestion.\n * Backend passes these through without interpreting them — the frontend\n * reads them to decide rendering (toast vs overlay vs confetti, with or without CTA).\n */\n frontendDisplayHints: FrontendDisplayHintsSchema.optional(),\n});\nexport type WS_ResourceNotificationPayload = z.infer<typeof WS_ResourceNotificationPayloadSchema>;\n\n/** Badge count update */\nexport const WS_BadgeUpdatePayloadSchema = z.object({\n badgeReference: z.string(),\n badgeCount: z.number().int().min(0),\n organizationId: z.string().optional(),\n});\nexport type WS_BadgeUpdatePayload = z.infer<typeof WS_BadgeUpdatePayloadSchema>;\n\n/**\n * Display target enum for user notifications\n */\nexport enum NotificationDisplayTarget {\n TOAST = 'toast',\n CENTER = 'center',\n BOTH = 'both',\n}\n\nexport const NotificationDisplayTargetSchema = z.enum(NotificationDisplayTarget);\n\n/**\n * Direct user notification (not tied to resource operation)\n * Used for arbitrary backend-initiated notifications like:\n * - \"Your export is ready\"\n * - \"Payment received\"\n * - \"System maintenance scheduled\"\n */\nexport const WS_UserNotificationPayloadSchema = z.object({\n /** Notification level (info, success, warning, error) */\n notificationLevel: NotificationLevelSchema,\n /** i18n identifier for message lookup (FrontendNotificationCustomMessageRefs) */\n identifier: z.string().optional(),\n /** Direct message (fallback if identifier not found or not provided) */\n message: z.string().optional(),\n /** Optional notification title */\n title: z.string().optional(),\n /** Additional context data */\n data: z.record(z.string(), z.unknown()).optional(),\n /** Where to display the notification */\n displayTarget: NotificationDisplayTargetSchema.default(NotificationDisplayTarget.BOTH),\n /** Organization context (if notification is org-scoped) */\n organizationId: z.string().optional(),\n /** Timestamp */\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_UserNotificationPayload = z.infer<typeof WS_UserNotificationPayloadSchema>;\n\n// =====================================================\n// Analytics Payloads (server → client)\n// =====================================================\n\n/** Analytics moment achievement notification */\nexport const WS_AnalyticsMomentAchievedPayloadSchema = z.object({\n momentIdentifier: z.string(),\n role: z.enum(ValueMomentRole),\n scope: z.enum(ValueMomentScope),\n scopeEntityId: z.string(),\n achievedAt: WebSocketTimestampSchema,\n triggerSource: z.enum(['frontend', 'backend'] as const),\n});\nexport type WS_AnalyticsMomentAchievedPayload = z.infer<typeof WS_AnalyticsMomentAchievedPayloadSchema>;\n\n// =====================================================\n// Guidance Event Payloads\n// =====================================================\n\n/** Guidance state changed event — pushed by backend or frontend for real-time sync */\nexport const GuidanceRealtimeStatusSchema = z.union([\n z.literal(OnboardingStatus.IN_PROGRESS),\n z.literal(OnboardingStatus.COMPLETED),\n z.literal(OnboardingStatus.DISMISSED),\n]);\n\n/** Guidance state changed event — only statuses broadcast through the realtime bridge. */\nexport const WS_GuidanceStateChangedPayloadSchema = z.object({\n flowRef: z.string(),\n status: GuidanceRealtimeStatusSchema,\n elementRef: z.string().optional(),\n triggerSource: z.enum(['frontend', 'backend'] as const),\n /** Which scope this event pertains to — determines how frontend routes state updates */\n scope: z.enum(GuidanceFlowScope),\n renderMode: z.enum(GuidanceRenderMode).optional(),\n});\nexport type WS_GuidanceStateChangedPayload = z.infer<typeof WS_GuidanceStateChangedPayloadSchema>;\n\n// =====================================================\n// Progression Event Payloads\n// =====================================================\n\n/** Milestone achieved event — pushed by backend when a milestone condition is met */\nexport const WS_MilestoneAchievedPayloadSchema = z.object({\n milestoneRef: z.string(),\n category: z.string(),\n points: z.number().int().optional(),\n /** Which scope this milestone belongs to — determines how frontend routes state updates */\n scope: z.enum(ProgressionScope),\n reward: z.object({\n type: z.enum(MilestoneRewardType),\n featureRef: z.string().optional(),\n guidanceFlowRef: z.string().optional(),\n celebrationLevel: z.enum(['low', 'medium', 'high']).optional(),\n }),\n /** Phase 5 integration: lifecycle transition triggered by this milestone */\n lifecycleTransition: z.object({\n from: z.string(),\n to: z.string(),\n }).optional(),\n /** Timestamp of achievement */\n achievedAt: WebSocketTimestampSchema,\n /** Updated total points (post-achievement) */\n totalPoints: z.number().int(),\n});\nexport type WS_MilestoneAchievedPayload = z.infer<typeof WS_MilestoneAchievedPayloadSchema>;\n\n/**\n * Progression progress event — pushed by backend after a milestone-triggering\n * operation increments the scope's `operationCounts`, regardless of whether a\n * milestone was achieved. Carries the authoritative post-increment counts so\n * the frontend can advance in-progress bars without a refetch (the backend\n * evaluation is fire-and-forget, so the frontend cannot re-read counts\n * race-free on its own).\n */\nexport const WS_ProgressionUpdatedPayloadSchema = z.object({\n /** Which scope's progression state changed. */\n scope: z.enum(ProgressionScope),\n /** Full post-increment operation-count map for the scope (`{ 'todos:create': 9 }`). */\n operationCounts: z.record(z.string(), z.number().int()),\n /** Current total points for the scope (unchanged unless a milestone also fired). */\n totalPoints: z.number().int(),\n /** When the increment was applied. */\n updatedAt: WebSocketTimestampSchema,\n});\nexport type WS_ProgressionUpdatedPayload = z.infer<typeof WS_ProgressionUpdatedPayloadSchema>;\n\n// =====================================================\n// Lifecycle Event Payloads\n// =====================================================\n\n/** Lifecycle stage changed event — pushed by backend when a lifecycle transition occurs */\nexport const WS_LifecycleStageChangedPayloadSchema = z.object({\n /** Previous stage before transition */\n previousStage: z.enum(LifecycleStage),\n /** New stage after transition */\n newStage: z.enum(LifecycleStage),\n /** Which scope this lifecycle state belongs to */\n scope: z.enum(LifecycleScope),\n /** What triggered the transition */\n trigger: z.string().optional(),\n /** When the transition occurred */\n changedAt: WebSocketTimestampSchema,\n /** Activation progress snapshot (for SIGNED_UP → ACTIVATED tracking) */\n activationCriteriaMet: z.record(z.string(), z.boolean()).optional(),\n});\nexport type WS_LifecycleStageChangedPayload = z.infer<typeof WS_LifecycleStageChangedPayloadSchema>;\n\n// =====================================================\n// CRDT Field Metadata (shared between backend + frontend)\n// =====================================================\n\n/**\n * Per-field CRDT metadata: server-authoritative timestamp + last editor.\n * `meta` is an extensibility slot for future per-field metadata (e.g. merge strategy hints,\n * conflict resolution context) without requiring a schema migration.\n */\nexport const FieldMetaEntrySchema = z.object({\n ts: z.number(),\n by: z.string(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\nexport type FieldMetaEntry = z.infer<typeof FieldMetaEntrySchema>;\n\nexport const FieldMetaMapSchema = z.record(z.string(), FieldMetaEntrySchema);\nexport type FieldMetaMap = z.infer<typeof FieldMetaMapSchema>;\n\n// =====================================================\n// Resource Room Payloads (path-independent collaboration)\n// =====================================================\n\nconst ResourceUpdateSyncActionSchema = z.union([\n z.literal(ResourceAction.CREATED),\n z.literal(ResourceAction.UPDATED),\n]);\n\nconst WS_ResourceEventCommonPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n affectedIds: z.array(z.string()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\n\nconst WS_ResourceUpdateNotificationPayloadCommonSchema = WS_ResourceEventCommonPayloadSchema.extend({\n affectedIds: z.array(z.string()).min(1),\n action: ResourceActionSchema,\n operationIdentifier: z.string().optional(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number().optional(),\n resourceData: z.unknown().optional(),\n fieldMeta: FieldMetaMapSchema.optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\n/** Notification-grade resource update event delivered to scope rooms. */\nexport const WS_ScopeRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION),\n});\nexport type WS_ScopeRoomUpdateNotificationPayload = z.infer<typeof WS_ScopeRoomUpdateNotificationPayloadSchema>;\n\n/** Notification-grade resource update event delivered to resource rooms. */\nexport const WS_ResourceRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION),\n});\nexport type WS_ResourceRoomUpdateNotificationPayload = z.infer<typeof WS_ResourceRoomUpdateNotificationPayloadSchema>;\n\nexport const WS_ResourceUpdateNotificationPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n]);\nexport type WS_ResourceUpdateNotificationPayload = z.infer<typeof WS_ResourceUpdateNotificationPayloadSchema>;\n\n/** Synchronization-grade resource update event (resource rooms, RMM replay). */\nexport const WS_ResourceSyncUpdatedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceUpdateSyncActionSchema,\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number(),\n resourceData: z.record(z.string(), z.unknown()),\n fieldMeta: FieldMetaMapSchema.optional(),\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceSyncUpdatedPayload = z.infer<typeof WS_ResourceSyncUpdatedPayloadSchema>;\n\n/** Update events can be either notification-grade or sync-grade, distinguished explicitly. */\nexport const WS_ResourceUpdatedPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n WS_ResourceSyncUpdatedPayloadSchema,\n]);\nexport type WS_ResourceUpdatedPayload = z.infer<typeof WS_ResourceUpdatedPayloadSchema>;\n\n/** Resource deleted event for resource rooms. */\nexport const WS_ResourceDeletedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: z.literal(ResourceAction.DELETED),\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceDeletedPayload = z.infer<typeof WS_ResourceDeletedPayloadSchema>;\n\n/** Lightweight resource-room state payload for lock/unlock style events. */\nexport const WS_ResourceRoomStatePayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceActionSchema.optional(),\n operationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceRoomStatePayload = z.infer<typeof WS_ResourceRoomStatePayloadSchema>;\n\n/**\n * Editing start/end payload\n * - Incoming: contextResourceIdentifiers REQUIRED for UPDATE authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceEditingPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketOptionalTimestampSchema,\n reason: z.enum(['manual', 'disconnect', 'timeout', 'auth_refresh', 'organization_switch']).optional(), // For editing:end\n});\nexport type WS_ResourceEditingPayload = z.infer<typeof WS_ResourceEditingPayloadSchema>;\n\n/** Editing confirmation/error */\nexport const WS_ResourceEditingResultPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_ResourceEditingResultPayload = z.infer<typeof WS_ResourceEditingResultPayloadSchema>;\n\n/**\n * Custom collaboration event\n * - Incoming: contextResourceIdentifiers REQUIRED for READ authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceCustomEventPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n eventName: z.string().min(1), // Custom event name (e.g., 'cursor:move', 'comment:add')\n data: z.unknown().optional(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n includeSelf: z.boolean().optional(), // Only for outgoing\n timestamp: WebSocketOptionalTimestampSchema,\n // Phase 7.1: Optional resource data for custom events with resource context\n // When included, will be validated against appropriate DTO based on dataMode.\n resourceData: z.unknown().optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceCustomEventPayload = z.infer<typeof WS_ResourceCustomEventPayloadSchema>;\n\n/** Error response for custom events */\nexport const WS_ResourceCustomErrorPayloadSchema = z.object({\n eventName: z.string(),\n error: z.string(),\n});\nexport type WS_ResourceCustomErrorPayload = z.infer<typeof WS_ResourceCustomErrorPayloadSchema>;\n\n// =====================================================\n// Badge Request/Response Payloads\n// =====================================================\n\n/** Badge get request (client → server) */\nexport const WS_BadgeGetRequestSchema = z.object({\n identifier: z.string(),\n scope: z.string(),\n scopeId: z.string(),\n});\n\nexport type WS_BadgeGetRequest = z.infer<typeof WS_BadgeGetRequestSchema>;\n\n/** Badge get-all request (client → server) */\nexport const WS_BadgeGetAllRequestSchema = z.object({\n scope: z.string(),\n scopeId: z.string(),\n});\nexport type WS_BadgeGetAllRequest = z.infer<typeof WS_BadgeGetAllRequestSchema>;\n\n/** Badge get-all response (server → client) */\nexport const WS_BadgeGetAllResponseSchema = z.array(z.object({\n identifier: z.string(),\n count: z.number().min(0),\n}));\nexport type WS_BadgeGetAllResponse = z.infer<typeof WS_BadgeGetAllResponseSchema>;\n\n// =====================================================\n// FlowsActors Payloads (bidirectional)\n// =====================================================\n\n/** Start a FlowActorSystem execution (client → server) */\nexport const WS_FlowsActorsStartPayloadSchema = z.object({\n systemRef: z.string().min(1),\n executionId: z.string().optional(), // Server generates if not provided\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n initialInput: z.record(z.string(), z.unknown()).optional(),\n});\nexport type WS_FlowsActorsStartPayload = z.infer<typeof WS_FlowsActorsStartPayloadSchema>;\n\n/** Confirmation of FlowActorSystem start (server → client) */\nexport const WS_FlowsActorsStartedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_FlowsActorsStartedPayload = z.infer<typeof WS_FlowsActorsStartedPayloadSchema>;\n\n/** Message from agent/flow (server → client) */\nexport const WS_FlowsActorsMessagePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n messageType: z.enum(['text', 'markdown', 'progress', 'data']),\n content: z.string(),\n data: z.record(z.string(), z.unknown()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Correlates streamed token deltas to a single logical message. When present,\n * consecutive `messageId`-sharing events belong to the same assistant turn:\n * non-final events (`isFinal !== true`) carry an incremental delta to APPEND to\n * that message's content; the final event (`isFinal === true`) carries the FULL\n * assembled content as the authoritative value. When absent, the event is a\n * standalone message (legacy/one-shot behavior — append a new entry).\n */\n messageId: z.string().optional(),\n /** True on the terminal event of a streamed message (`content` is the full text). */\n isFinal: z.boolean().optional(),\n});\nexport type WS_FlowsActorsMessagePayload = z.infer<typeof WS_FlowsActorsMessagePayloadSchema>;\n\n/**\n * The approval announcement that is ACTUALLY sent, carried in the `data` bag of a\n * `FLOWS_ACTORS_MESSAGE` of type `PROGRESS`.\n *\n * It is a named schema rather than a shape both ends open-code, because the `data` bag is\n * `z.record(z.string(), z.unknown())` — so nothing typed the announcement, and the browser\n * listened on `FLOWS_ACTORS_APPROVAL_REQUEST` instead, an event **nothing has ever emitted**.\n * The result: `pendingApproval` was never set, no shipped screen could observe a paused turn,\n * and `resourceServerInstanceRef` — which the server sends precisely so a decision can echo it —\n * was discarded, leaving an approval raised on a NAMED agent instance unresumable (#528).\n *\n * Producer: `persistApprovalSuspension`. Consumer: `FlowsActorsContext`.\n */\nexport const WS_FlowsActorsApprovalAnnouncementDataSchema = z.object({\n /** Discriminator. The `data` bag carries other kinds of payload on other messages. */\n approvalRequested: z.literal(true),\n approvalId: z.string(),\n /** The tool call being gated. */\n toolName: z.string(),\n /**\n * The tool call's ARGUMENTS — the structured thing a person is actually being asked to approve.\n * Loose here because the shape belongs to the tool, not to the transport; a surface that renders\n * these gets their schema from the tool declaration.\n */\n toolArgs: z.record(z.string(), z.unknown()).optional(),\n requestedAt: z.string(),\n /** When the pause lapses. Written since #465; it reaches a client only through this block. */\n expiresAt: z.string().optional(),\n /**\n * The isolation axis the DECISION must carry back, sent unconditionally — including when it is\n * the default sentinel — so a client echoes one field rather than branching on whether the value\n * is meaningful.\n */\n resourceServerInstanceRef: z.string(),\n});\nexport type WS_FlowsActorsApprovalAnnouncementData = z.infer<typeof WS_FlowsActorsApprovalAnnouncementDataSchema>;\n\n/** Human approval request (server → client) */\nexport const WS_FlowsActorsApprovalRequestPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n actionDescription: z.string(),\n riskLevel: z.enum(['low', 'medium', 'high', 'critical']),\n requiredRoles: z.array(z.string()).optional(),\n expiresAt: WebSocketOptionalTimestampSchema,\n});\n\nexport type WS_FlowsActorsApprovalRequestPayload = z.infer<typeof WS_FlowsActorsApprovalRequestPayloadSchema>;\n\n/** Human approval response (client → server) */\nexport const WS_FlowsActorsApprovalResponsePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n approved: z.boolean(),\n comment: z.string().optional(),\n /**\n * The agent instance the paused conversation belongs to — ECHOED from the approval REQUEST.\n *\n * A conversation is isolated by owner FK, machine credential AND agent instance, so a resume that\n * omits this axis is filtered against the DEFAULT instance sentinel. An approval raised on a NAMED\n * A2A agent instance therefore matched no row and the decision was dropped silently — logged as\n * \"no pending approval matches\" and returned, with the turn left paused forever.\n *\n * Optional because the in-app conversational plane runs on the default instance and has nothing to\n * echo; absent means default, which is the value those executions were written with.\n */\n resourceServerInstanceRef: z.string().optional(),\n});\nexport type WS_FlowsActorsApprovalResponsePayload = z.infer<typeof WS_FlowsActorsApprovalResponsePayloadSchema>;\n\n/** Status update during execution (server → client) */\nexport const WS_FlowsActorsStatusUpdatePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n status: z.string(),\n progress: z.number().min(0).max(100).optional(),\n currentStep: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_FlowsActorsStatusUpdatePayload = z.infer<typeof WS_FlowsActorsStatusUpdatePayloadSchema>;\n\n/** Execution completed (server → client) */\nexport const WS_FlowsActorsCompletedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n result: z.record(z.string(), z.unknown()).optional(),\n duration: z.number().optional(), // in ms\n});\nexport type WS_FlowsActorsCompletedPayload = z.infer<typeof WS_FlowsActorsCompletedPayloadSchema>;\n\n/** Execution error (server → client) */\nexport const WS_FlowsActorsErrorPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n errorCode: z.string(),\n errorMessage: z.string(),\n recoverable: z.boolean().default(false),\n});\nexport type WS_FlowsActorsErrorPayload = z.infer<typeof WS_FlowsActorsErrorPayloadSchema>;\n\n// =====================================================\n// System Payloads\n// =====================================================\n\nexport const WS_AuthRefreshPayloadSchema = z.object({\n token: z.string(),\n});\nexport type WS_AuthRefreshPayload = z.infer<typeof WS_AuthRefreshPayloadSchema>;\n\nexport const WS_SystemTokenRefreshedPayloadSchema = z.object({\n success: z.literal(true),\n});\nexport type WS_SystemTokenRefreshedPayload = z.infer<typeof WS_SystemTokenRefreshedPayloadSchema>;\n\nexport const WS_OrganizationSwitchPayloadSchema = z.object({\n organizationId: z.string(),\n previousOrganizationId: z.string().optional(),\n});\nexport type WS_OrganizationSwitchPayload = z.infer<typeof WS_OrganizationSwitchPayloadSchema>;\n\nexport const WS_SystemErrorPayloadSchema = z.object({\n code: z.string(),\n message: z.string(),\n details: z.unknown().optional(),\n});\nexport type WS_SystemErrorPayload = z.infer<typeof WS_SystemErrorPayloadSchema>;\n\n// =====================================================\n// Billing Payloads (server → client, invalidation triggers)\n// =====================================================\n\nexport const WS_BillingEventPayloadSchema = z.object({\n scopeType: z.enum(ResourcePrimaryScope),\n scopeEntityId: z.string(),\n billingAccountId: z.string(),\n});\n export type WS_BillingEventPayload = z.infer<typeof WS_BillingEventPayloadSchema>;\n\n// =====================================================\n// Event-to-Schema Map (for validation)\n// =====================================================\n\nexport const WebSocketEventSchemas = {\n // Room management\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n\n // Notifications\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayloadSchema,\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayloadSchema,\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayloadSchema,\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequestSchema,\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequestSchema,\n\n // Resource room events\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayloadSchema,\n\n // FlowsActors\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayloadSchema,\n\n // Billing\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayloadSchema,\n\n // Analytics\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayloadSchema,\n\n // Guidance\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayloadSchema,\n\n // Progression\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayloadSchema,\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayloadSchema,\n\n // Lifecycle\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayloadSchema,\n\n // System\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayloadSchema,\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayloadSchema,\n} as const;\n\n// =====================================================\n// Typed Payload Map (for TypeScript inference)\n// =====================================================\n\nexport type WebSocketEventPayloads = {\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayload;\n\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayload;\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayload;\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayload;\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequest;\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequest;\n\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayload;\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayload;\n\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayload;\n\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayload;\n\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayload;\n\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayload;\n\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayload;\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayload;\n\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayload;\n\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayload;\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayload;\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayload;\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayload;\n};\n\n// =====================================================\n// Room Naming Utilities\n// =====================================================\n\n/**\n * WebSocket room name prefixes for different room types.\n * These prefixes are used to create room names for Socket.IO.\n */\nexport enum WebSocketRoomPrefix {\n /** User-specific room: user:{userId} */\n USER = 'user',\n /** Organization room: org:{organizationId} */\n ORGANIZATION = 'org',\n /** Organization role room: org:{organizationId}:role:{role} */\n ORGANIZATION_ROLE = 'role',\n /** Application-level role room: app:role:{role} */\n APP_ROLE = 'app:role',\n /** Resource room: resource:{resourceType}:{resourceId} */\n RESOURCE = 'resource',\n /** Public room for unauthenticated users */\n PUBLIC = 'public',\n}\n\n/**\n * Build a user room name\n */\nexport function buildUserRoomName(userId: string): string {\n return `${WebSocketRoomPrefix.USER}:${userId}`;\n}\n\n/**\n * Build an organization room name\n */\nexport function buildOrganizationRoomName(organizationId: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}`;\n}\n\n/**\n * Build an organization role room name\n */\nexport function buildOrganizationRoleRoomName(organizationId: string, role: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}:${WebSocketRoomPrefix.ORGANIZATION_ROLE}:${role}`;\n}\n\n/**\n * Build an application-level role room name\n */\nexport function buildAppRoleRoomName(role: string): string {\n return `${WebSocketRoomPrefix.APP_ROLE}:${role}`;\n}\n\n/**\n * Build a resource room name\n */\nexport function buildResourceRoomName(resourceType: string, resourceId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${resourceId}`;\n}\n\n/**\n * Build a scope room name for collection subscriptions\n */\nexport function buildScopeRoomName(resourceType: string, scopeKey: string, scopeId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${scopeKey}:${scopeId}`;\n}\n\n/**\n * The scope keys a resource room can be qualified by that the FRAMEWORK owns.\n *\n * Closed, and named because each member carries a different meaning that a bare string cannot: `app`\n * scopes a resource to the whole application, `user` to one principal's own rows, `org` to a tenant.\n * A resource can additionally be scoped by a PARENT RESOURCE, and those keys are genuinely open —\n * they are derived from the application's own resource names — so they stay strings.\n */\nexport enum ResourceScopeRoomKey {\n /**\n * The whole application.\n *\n * **`'app'`, while the APPLICATION resource's field identifier is `applicationId`** — and that\n * mismatch is load-bearing rather than sloppy, so it is stated here instead of being \"tidied\".\n *\n * `mapScopeKeyToResourceType` on the server resolves a scope key by searching the registry for a\n * resource whose field identifier is `<scopeKey>Id`. Renaming this member to `'application'` would\n * make that search succeed and route APPLICATION scope through the generic PARENT-scope branch,\n * which authorizes READ on the `applications` row — a row `ORG_MEMBER` may read, while ten of the\n * eleven APPLICATION-scoped resource configs require `APP_ADMIN_SUPER_ADMIN`. The rename would\n * therefore hand every org member notification streams naming rows of SSO connections, SIEM\n * configuration and webhook configs (issue #247).\n *\n * APPLICATION scope has its own branch in `verifyScopeAccess` that authorizes the SUBSCRIBED\n * resource instead, because a single constant discriminates nothing and so cannot stand in for\n * authorization the way a tenant or a parent row does.\n */\n APPLICATION = 'app',\n /** One principal's own rows. */\n USER = 'user',\n /** One tenant. */\n ORGANIZATION = 'org',\n}\n\n/** One scope a resource room can be qualified by. */\nexport interface ResourceScopeRoomQualifier {\n readonly scopeKey: string;\n readonly scopeId: string;\n}\n\n/**\n * Which scope rooms a resource operation's rows belong to.\n *\n * ## Why this lives in the SHARED models rather than on the backend\n *\n * Both ends need the same answer and for opposite reasons: the backend emits a list/cache-refresh\n * notification INTO these rooms after a mutation, and a client that caches a read has to be IN them\n * to hear it. Two implementations of one rule would agree only until one side gained a case — the\n * shape this repository refuses everywhere else — and the failure would be silent, because a client\n * subscribed to the wrong room does not error, it simply never hears that its cache is stale.\n *\n * Ported verbatim from the notifications dispatcher, quirks included, because moving code must not\n * change which rooms are emitted to. Two of those quirks are worth naming so the next reader does not\n * \"fix\" them into a behaviour change:\n *\n * - the parent-scope branch tests `key.endsWith('Id') && !key.includes('Parent')` with a CAPITAL P,\n * so `myParentId` is excluded while `parentTodoListId` is not;\n * - `organizationId` enters that branch and is then skipped by the inner test, having already been\n * pushed above.\n */\nexport function deriveResourceScopeRoomQualifiers(\n contextResourceIdentifiers: Record<string, string>,\n primaryScope: ResourcePrimaryScope,\n): ResourceScopeRoomQualifier[] {\n const scopes: ResourceScopeRoomQualifier[] = [];\n const seenScopes = new Set<string>();\n const pushScope = (scopeKey: string, scopeId: string | undefined): void => {\n if (!scopeId) {\n return;\n }\n const dedupeKey = `${scopeKey}:${scopeId}`;\n if (seenScopes.has(dedupeKey)) {\n return;\n }\n seenScopes.add(dedupeKey);\n scopes.push({ scopeKey, scopeId });\n };\n\n if (primaryScope === ResourcePrimaryScope.APPLICATION && contextResourceIdentifiers.applicationId) {\n pushScope(ResourceScopeRoomKey.APPLICATION, contextResourceIdentifiers.applicationId);\n }\n\n if (primaryScope === ResourcePrimaryScope.USER_SELF && contextResourceIdentifiers.userId) {\n pushScope(ResourceScopeRoomKey.USER, contextResourceIdentifiers.userId);\n }\n\n if (contextResourceIdentifiers.organizationId) {\n pushScope(ResourceScopeRoomKey.ORGANIZATION, contextResourceIdentifiers.organizationId);\n }\n\n for (const [key, value] of Object.entries(contextResourceIdentifiers)) {\n if (key === 'organizationId' || (key.endsWith('Id') && !key.includes('Parent'))) {\n const scopeKey = key.replace(/Id$/, '').toLowerCase();\n /*\n * `organization` and `application` are SKIPPED because the dedicated branches above already\n * emitted their rooms under the keys the server actually knows — `org` and `app`.\n *\n * Stripping `Id` yields the FIELD's name, not the room's: `applicationId` becomes\n * `application`, and `ResourceScopeRoomKey.APPLICATION` is `'app'`. That divergence is\n * deliberate and documented on the enum, so the generic loop cannot be allowed to invent the\n * long form beside the short one.\n *\n * It was inert for as long as no caller put an `applicationId` into this map. The moment one\n * did (issue #283, so a client could name its own APPLICATION room), every such read claimed a\n * FIFTH room the server refuses — measured live:\n * `resource:workbenchDomainResources:application:… -> success: false`. A refused room is not\n * merely wasted: the read cache's `covers()` requires EVERY room confirmed, so one permanently\n * unconfirmable room disabled the cache outright for every APPLICATION-scoped resource.\n */\n if (scopeKey !== 'organization' && scopeKey !== 'application' && value) {\n pushScope(scopeKey, value);\n }\n }\n }\n\n return scopes;\n}\n\n/**\n * Parse a resource room name into its components\n */\nexport function parseResourceRoomName(roomName: string): {\n resourceType: string;\n resourceId?: string;\n scopeKey?: string;\n scopeId?: string;\n} | null {\n const parts = roomName.split(':');\n if (parts.length < 3 || parts[0] !== WebSocketRoomPrefix.RESOURCE) return null;\n\n if (parts.length === 3) {\n return { resourceType: parts[1], resourceId: parts[2] };\n } else if (parts.length === 4) {\n return { resourceType: parts[1], scopeKey: parts[2], scopeId: parts[3] };\n }\n return null;\n}\n\n/**\n * Extract organization ID from an organization room name\n */\nexport function parseOrganizationRoomName(roomName: string): string | null {\n if (roomName.startsWith(`${WebSocketRoomPrefix.ORGANIZATION}:`)) {\n // Handle both org:{orgId} and org:{orgId}:role:{role}\n const parts = roomName.split(':');\n return parts[1] || null;\n }\n return null;\n}\n\n// =====================================================\n// Validation Helpers\n// =====================================================\n\n/**\n * Validate an incoming WebSocket event payload\n */\nexport function validateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown {\n const schema = WebSocketEventSchemas[event];\n return schema.parse(payload) as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown;\n}\n\n/**\n * Safe validation (returns result instead of throwing)\n */\nexport function safeValidateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): { success: true; data: E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown } | { success: false; error: z.ZodError } {\n const schema = WebSocketEventSchemas[event];\n const result = schema.safeParse(payload);\n if (result.success) {\n return { success: true, data: result.data as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown };\n }\n return { success: false, error: result.error };\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query-string parameter names every LIST and SEARCH operation understands.
|
|
3
|
+
*
|
|
4
|
+
* One named source for the collection wire vocabulary: the resource controller
|
|
5
|
+
* reads these names off the request, the OpenAPI generator declares them as
|
|
6
|
+
* parameters, and the technical documentation projects them into the REST
|
|
7
|
+
* conventions page. Filter fields are per-resource and are not listed here;
|
|
8
|
+
* date-range filters use bracket notation (`createdAt[startDate]=<ISO>`).
|
|
9
|
+
*/
|
|
10
|
+
export declare const COLLECTION_QUERY_PARAMETERS: {
|
|
11
|
+
/** 1-based page number. */
|
|
12
|
+
readonly page: "page";
|
|
13
|
+
/** Items per page, bounded by the operation's ceiling. */
|
|
14
|
+
readonly limit: "limit";
|
|
15
|
+
/** Comma-separated `field:asc` / `field:desc` pairs, highest priority first. */
|
|
16
|
+
readonly sort: "sort";
|
|
17
|
+
/** Free-text search term on SEARCH operations. */
|
|
18
|
+
readonly search: "q";
|
|
19
|
+
/** Accepted alias of `search` for callers that post a structured search body. */
|
|
20
|
+
readonly searchAlias: "searchQuery";
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=collection-query-parameters.shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-query-parameters.shared.d.ts","sourceRoot":"","sources":["../../../../src/resources/collection-query-parameters.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;IACtC,2BAA2B;;IAE3B,0DAA0D;;IAE1D,gFAAgF;;IAEhF,kDAAkD;;IAElD,iFAAiF;;CAEzE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query-string parameter names every LIST and SEARCH operation understands.
|
|
3
|
+
*
|
|
4
|
+
* One named source for the collection wire vocabulary: the resource controller
|
|
5
|
+
* reads these names off the request, the OpenAPI generator declares them as
|
|
6
|
+
* parameters, and the technical documentation projects them into the REST
|
|
7
|
+
* conventions page. Filter fields are per-resource and are not listed here;
|
|
8
|
+
* date-range filters use bracket notation (`createdAt[startDate]=<ISO>`).
|
|
9
|
+
*/
|
|
10
|
+
export const COLLECTION_QUERY_PARAMETERS = {
|
|
11
|
+
/** 1-based page number. */
|
|
12
|
+
page: 'page',
|
|
13
|
+
/** Items per page, bounded by the operation's ceiling. */
|
|
14
|
+
limit: 'limit',
|
|
15
|
+
/** Comma-separated `field:asc` / `field:desc` pairs, highest priority first. */
|
|
16
|
+
sort: 'sort',
|
|
17
|
+
/** Free-text search term on SEARCH operations. */
|
|
18
|
+
search: 'q',
|
|
19
|
+
/** Accepted alias of `search` for callers that post a structured search body. */
|
|
20
|
+
searchAlias: 'searchQuery',
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=collection-query-parameters.shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-query-parameters.shared.js","sourceRoot":"","sources":["../../../../src/resources/collection-query-parameters.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,2BAA2B;IAC3B,IAAI,EAAE,MAAM;IACZ,0DAA0D;IAC1D,KAAK,EAAE,OAAO;IACd,gFAAgF;IAChF,IAAI,EAAE,MAAM;IACZ,kDAAkD;IAClD,MAAM,EAAE,GAAG;IACX,iFAAiF;IACjF,WAAW,EAAE,aAAa;CAClB,CAAC","sourcesContent":["/**\n * Query-string parameter names every LIST and SEARCH operation understands.\n *\n * One named source for the collection wire vocabulary: the resource controller\n * reads these names off the request, the OpenAPI generator declares them as\n * parameters, and the technical documentation projects them into the REST\n * conventions page. Filter fields are per-resource and are not listed here;\n * date-range filters use bracket notation (`createdAt[startDate]=<ISO>`).\n */\nexport const COLLECTION_QUERY_PARAMETERS = {\n /** 1-based page number. */\n page: 'page',\n /** Items per page, bounded by the operation's ceiling. */\n limit: 'limit',\n /** Comma-separated `field:asc` / `field:desc` pairs, highest priority first. */\n sort: 'sort',\n /** Free-text search term on SEARCH operations. */\n search: 'q',\n /** Accepted alias of `search` for callers that post a structured search body. */\n searchAlias: 'searchQuery',\n} as const;\n"]}
|
|
@@ -9,6 +9,7 @@ import { type AnyResourceConfiguration, ResourceConfiguration, ResourceConfigura
|
|
|
9
9
|
import { CoreResourceOperation, ResourceType } from './resources.shared.core.definitions';
|
|
10
10
|
import { ResourceRelationship } from './resources.shared.schemas';
|
|
11
11
|
export declare function reconcileGeneratedRelationshipBulkOperations(resourceConfigurations: Record<string, AnyResourceConfiguration>, allResourceRelationships: ResourceRelationship[], allResourceFieldIdentifiers: Partial<Record<ResourceType, string>> | Record<string, string>): void;
|
|
12
|
+
/** @wildo_source:part:end saas.models.resource-config.system-managed-fields */
|
|
12
13
|
/**
|
|
13
14
|
* Build a CREATE request DTO from the main schema using decorators.
|
|
14
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources-config.shared.factory.d.ts","sourceRoot":"","sources":["../../../../src/resources/resources-config.shared.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EAEZ,gBAAgB,EAoBjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"resources-config.shared.factory.d.ts","sourceRoot":"","sources":["../../../../src/resources/resources-config.shared.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EAEZ,gBAAgB,EAoBjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6CxB,OAAO,EAEL,KAAK,wBAAwB,EAU7B,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;AA6OpC,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;AA8bD,+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;AA6ED;;;;;;;;;;;;;;;;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,CAuF/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,CAq8D/E"}
|