@wildo-ai/saas-models 1.1.2 → 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 +14 -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-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 +3 -3
- 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 +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js +15 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.d.ts +7 -3
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +22 -3
- 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-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 +480 -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 +547 -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 +82 -3
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +31 -30
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +98 -3
- package/dist/esm/compliance/privacy/operating-jurisdictions.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 +82 -29
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js +95 -29
- 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 +7 -5
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.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/errors/errors.custom-message-ref.shared.definitions.d.ts +28 -0
- 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 +28 -0
- 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 +45 -12
- 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 +103 -58
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +176 -15
- 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 -5
- 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 +83 -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 +5 -28
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +4 -2
- 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/files/file-upload-grant.shared.schemas.d.ts +14 -2
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.js +44 -5
- package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.schemas.d.ts +15 -8
- package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.schemas.js +15 -8
- package/dist/esm/files/files.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +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.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 +40 -3
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +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.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/progression-state.shared.resources-config.schemas.d.ts +8 -0
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts +46 -0
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js +49 -0
- 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 +320 -50
- 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 +137 -36
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +9 -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/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/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-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 +18 -3
- 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 +6 -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 +27 -4
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +35 -0
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- 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 +105 -20
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +254 -72
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.js +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-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 +84 -5
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js +83 -3
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- 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/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.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +27 -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 +52 -7
- 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 +45 -8
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.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 +6 -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 +31 -0
- package/dist/esm/security/oauth-clients/oauth-clients.shared.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 +24 -3
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +4 -4
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +4 -4
- 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 +43 -12
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +38 -7
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { EngineCapability } from './engine-capabilities.shared.schemas.js';
|
|
2
2
|
/**
|
|
3
|
+
* @wildo_source:part:start saas.models.providers.capability-resolution-mode facet:layer:shared facet:audience:app-developer
|
|
4
|
+
*
|
|
3
5
|
* How the engine resolves the provider(s) fulfilling an `EngineCapability`
|
|
4
6
|
* when more than one is declared for the same scope.
|
|
5
7
|
*
|
|
@@ -13,9 +15,19 @@ import { EngineCapability } from './engine-capabilities.shared.schemas.js';
|
|
|
13
15
|
export var EngineCapabilityResolutionMode;
|
|
14
16
|
(function (EngineCapabilityResolutionMode) {
|
|
15
17
|
/**
|
|
16
|
-
* Exactly one active provider
|
|
17
|
-
*
|
|
18
|
-
*
|
|
18
|
+
* Exactly one active provider: `selection.<capability>.primary`. The default for every capability
|
|
19
|
+
* (billing, email, observability, …), and a request is served by that one provider.
|
|
20
|
+
*
|
|
21
|
+
* ⚠️ `whenUnavailable` is NOT a failover list, and the field was renamed from `fallbacks` on
|
|
22
|
+
* 2026-09-08 precisely because that name promised one. It names ORDERED SUBSTITUTES for a
|
|
23
|
+
* primary that is not AVAILABLE at resolution time — undeclared in the scope, disabled, or
|
|
24
|
+
* unconfigured — and it decides which provider ends up first in the resolved list. Nothing
|
|
25
|
+
* retries a second provider when a call to the first one FAILS: the send raises the primary's
|
|
26
|
+
* error and stops.
|
|
27
|
+
*
|
|
28
|
+
* So do not read a declared `whenUnavailable` entry as redundancy, and do not size an
|
|
29
|
+
* availability argument on it. An application that wants call-time failover builds it at its own
|
|
30
|
+
* call site, per capability — a deliberate framework boundary, not an omission.
|
|
19
31
|
*/
|
|
20
32
|
EngineCapabilityResolutionMode["SELECT_ONE"] = "SELECT_ONE";
|
|
21
33
|
/**
|
|
@@ -26,6 +38,7 @@ export var EngineCapabilityResolutionMode;
|
|
|
26
38
|
*/
|
|
27
39
|
EngineCapabilityResolutionMode["FAN_OUT"] = "FAN_OUT";
|
|
28
40
|
})(EngineCapabilityResolutionMode || (EngineCapabilityResolutionMode = {}));
|
|
41
|
+
/** @wildo_source:part:end saas.models.providers.capability-resolution-mode */
|
|
29
42
|
/**
|
|
30
43
|
* The DECLARED resolution mode for EVERY engine capability. Exhaustive by
|
|
31
44
|
* construction: because this is a `Record<EngineCapability, …>`, adding a new
|
|
@@ -37,13 +50,27 @@ export var EngineCapabilityResolutionMode;
|
|
|
37
50
|
*
|
|
38
51
|
* Only `COMPLIANCE_AUDIT_TRAIL` is `FAN_OUT` today (audit events are additive —
|
|
39
52
|
* every declared destination receives every event). Everything else is
|
|
40
|
-
* `SELECT_ONE
|
|
53
|
+
* `SELECT_ONE`: one active provider, and no failover to a second one.
|
|
41
54
|
*/
|
|
42
55
|
const ENGINE_CAPABILITY_RESOLUTION_MODE = {
|
|
43
56
|
[EngineCapability.COMPLIANCE_AUDIT_TRAIL]: EngineCapabilityResolutionMode.FAN_OUT,
|
|
57
|
+
/**
|
|
58
|
+
* NOMINAL for the two ACTIVATION capabilities below, and worth stating because the next reader
|
|
59
|
+
* will otherwise ask the right question. `BILLING_PAYMENTS` was withdrawn from the enum on
|
|
60
|
+
* 2026-09-09 for being classified `SELECT_ONE` with no provider capability able to fill it —
|
|
61
|
+
* "select one of zero candidates" is not a resolution mode. `ORGANIZATIONS` and `MULTI_LANGUAGE`
|
|
62
|
+
* have no provider capability either, so why do they stand?
|
|
63
|
+
*
|
|
64
|
+
* Because nothing ever RESOLVES them. They are engine-implemented activations (multi-tenancy, the
|
|
65
|
+
* i18n pipeline): an application enables them, the engine serves them, and no code path asks this
|
|
66
|
+
* record which provider fulfills them — where the withdrawn slot's whole purpose was to be
|
|
67
|
+
* resolved and it could not be. Their absence from `PROVIDER_CAPABILITY_TO_ENGINE_CAPABILITY` is a
|
|
68
|
+
* DECLARATION (`ENGINE_CAPABILITIES_WITH_NO_PROVIDER_CAPABILITY`), not a gap, and the row here
|
|
69
|
+
* exists only because this record is total over the enum by construction — which is the property
|
|
70
|
+
* that makes a genuinely resolvable new capability impossible to leave unclassified.
|
|
71
|
+
*/
|
|
44
72
|
[EngineCapability.ORGANIZATIONS]: EngineCapabilityResolutionMode.SELECT_ONE,
|
|
45
73
|
[EngineCapability.BILLING]: EngineCapabilityResolutionMode.SELECT_ONE,
|
|
46
|
-
[EngineCapability.BILLING_PAYMENTS]: EngineCapabilityResolutionMode.SELECT_ONE,
|
|
47
74
|
[EngineCapability.MULTI_LANGUAGE]: EngineCapabilityResolutionMode.SELECT_ONE,
|
|
48
75
|
[EngineCapability.EMAIL_TRANSACTIONAL]: EngineCapabilityResolutionMode.SELECT_ONE,
|
|
49
76
|
[EngineCapability.EMAIL_MARKETING]: EngineCapabilityResolutionMode.SELECT_ONE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-capability-resolution-mode.shared.js","sourceRoot":"","sources":["../../../../src/external-providers/engine-capability-resolution-mode.shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE
|
|
1
|
+
{"version":3,"file":"engine-capability-resolution-mode.shared.js","sourceRoot":"","sources":["../../../../src/external-providers/engine-capability-resolution-mode.shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,8BAwBX;AAxBD,WAAY,8BAA8B;IACxC;;;;;;;;;;;;;;OAcG;IACH,2DAAyB,CAAA;IACzB;;;;;OAKG;IACH,qDAAmB,CAAA;AACrB,CAAC,EAxBW,8BAA8B,KAA9B,8BAA8B,QAwBzC;AACD,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,iCAAiC,GAA6D;IAClG,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,OAAO;IAEjF;;;;;;;;;;;;;;OAcG;IACH,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAC3E,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACrE,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAC5E,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACjF,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAC7E,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACjE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACpE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACjF,8FAA8F;IAC9F,8FAA8F;IAC9F,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAC3E,4FAA4F;IAC5F,6FAA6F;IAC7F,2FAA2F;IAC3F,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACpF,0FAA0F;IAC1F,4FAA4F;IAC5F,4FAA4F;IAC5F,oBAAoB;IACpB,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAC7E,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACvF,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACxF,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAC/E,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC,UAAU;CACtF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,iCAAiC,CAC/C,UAA4B;IAE5B,OAAO,iCAAiC,CAAC,UAAU,CAAC,CAAC;AACvD,CAAC","sourcesContent":["import { EngineCapability } from './engine-capabilities.shared.schemas';\n\n/**\n * @wildo_source:part:start saas.models.providers.capability-resolution-mode facet:layer:shared facet:audience:app-developer\n *\n * How the engine resolves the provider(s) fulfilling an `EngineCapability`\n * when more than one is declared for the same scope.\n *\n * This is a FIRST-CLASS, declared property of a capability — NOT an implicit\n * per-consumer convention. A reader can tell whether a capability picks one\n * provider or writes to all of them; a new capability author declares it\n * here; and both the runtime registry resolver and the `defineSaaSProviders`\n * config validators branch on it (so a `FAN_OUT` capability is validated by\n * DECLARATION and never keyed off `selection`).\n */\nexport enum EngineCapabilityResolutionMode {\n /**\n * Exactly one active provider: `selection.<capability>.primary`. The default for every capability\n * (billing, email, observability, …), and a request is served by that one provider.\n *\n * ⚠️ `whenUnavailable` is NOT a failover list, and the field was renamed from `fallbacks` on\n * 2026-09-08 precisely because that name promised one. It names ORDERED SUBSTITUTES for a\n * primary that is not AVAILABLE at resolution time — undeclared in the scope, disabled, or\n * unconfigured — and it decides which provider ends up first in the resolved list. Nothing\n * retries a second provider when a call to the first one FAILS: the send raises the primary's\n * error and stops.\n *\n * So do not read a declared `whenUnavailable` entry as redundancy, and do not size an\n * availability argument on it. An application that wants call-time failover builds it at its own\n * call site, per capability — a deliberate framework boundary, not an omission.\n */\n SELECT_ONE = 'SELECT_ONE',\n /**\n * ALL declared providers are active simultaneously — every one receives\n * every emission (no primary, no failover). For sinks whose nature is\n * additive rather than substitutable: `COMPLIANCE_AUDIT_TRAIL` writes each\n * audit event to every configured destination.\n */\n FAN_OUT = 'FAN_OUT',\n}\n/** @wildo_source:part:end saas.models.providers.capability-resolution-mode */\n\n/**\n * The DECLARED resolution mode for EVERY engine capability. Exhaustive by\n * construction: because this is a `Record<EngineCapability, …>`, adding a new\n * member to the `EngineCapability` enum WITHOUT classifying it here is a COMPILE\n * error. That is deliberate — a bare \"default to SELECT_ONE\" would let a future\n * additive/fan-out capability silently collapse to single-provider resolution\n * (dropping emissions to every non-primary destination) just because its author\n * forgot a one-line edit. The compiler now forces the decision.\n *\n * Only `COMPLIANCE_AUDIT_TRAIL` is `FAN_OUT` today (audit events are additive —\n * every declared destination receives every event). Everything else is\n * `SELECT_ONE`: one active provider, and no failover to a second one.\n */\nconst ENGINE_CAPABILITY_RESOLUTION_MODE: Record<EngineCapability, EngineCapabilityResolutionMode> = {\n [EngineCapability.COMPLIANCE_AUDIT_TRAIL]: EngineCapabilityResolutionMode.FAN_OUT,\n\n /**\n * NOMINAL for the two ACTIVATION capabilities below, and worth stating because the next reader\n * will otherwise ask the right question. `BILLING_PAYMENTS` was withdrawn from the enum on\n * 2026-09-09 for being classified `SELECT_ONE` with no provider capability able to fill it —\n * \"select one of zero candidates\" is not a resolution mode. `ORGANIZATIONS` and `MULTI_LANGUAGE`\n * have no provider capability either, so why do they stand?\n *\n * Because nothing ever RESOLVES them. They are engine-implemented activations (multi-tenancy, the\n * i18n pipeline): an application enables them, the engine serves them, and no code path asks this\n * record which provider fulfills them — where the withdrawn slot's whole purpose was to be\n * resolved and it could not be. Their absence from `PROVIDER_CAPABILITY_TO_ENGINE_CAPABILITY` is a\n * DECLARATION (`ENGINE_CAPABILITIES_WITH_NO_PROVIDER_CAPABILITY`), not a gap, and the row here\n * exists only because this record is total over the enum by construction — which is the property\n * that makes a genuinely resolvable new capability impossible to leave unclassified.\n */\n [EngineCapability.ORGANIZATIONS]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.BILLING]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.MULTI_LANGUAGE]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.EMAIL_TRANSACTIONAL]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.EMAIL_MARKETING]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.SMS]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.AI_LLM]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.AI_IMAGE_GENERATION]: EngineCapabilityResolutionMode.SELECT_ONE,\n // Embeddings are substitutable, not additive: one provider serves a vector space, and writing\n // the same chunk through two providers would produce two incompatible spaces, not redundancy.\n [EngineCapability.AI_EMBEDDINGS]: EngineCapabilityResolutionMode.SELECT_ONE,\n // Extraction is substitutable, not additive: one provider reads a document, and running the\n // same bytes through two OCR services would produce two divergent transcriptions of one page\n // with no principled way to merge them — plus a second egress of the same private content.\n [EngineCapability.AI_DOCUMENT_EXTRACTION]: EngineCapabilityResolutionMode.SELECT_ONE,\n // One agent per task, and emphatically not fan-out: two coding agents given the same task\n // against the same worktree do not produce redundancy, they produce a merge conflict nobody\n // asked for — and the change attribution that follows a run could no longer say which agent\n // wrote which file.\n [EngineCapability.AI_CODING_AGENT]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.FRONTEND_ERROR_MONITORING]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.FRONTEND_PRODUCT_ANALYTICS]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.LLM_OBSERVABILITY]: EngineCapabilityResolutionMode.SELECT_ONE,\n [EngineCapability.OBSERVABILITY_TELEMETRY]: EngineCapabilityResolutionMode.SELECT_ONE,\n};\n\n/**\n * The declared resolution mode for an engine capability. A TOTAL lookup — every\n * capability is explicitly classified in `ENGINE_CAPABILITY_RESOLUTION_MODE`\n * (no silent default).\n *\n * Consumers: the runtime registry (`ExternalProvidersRegistryBackendService`\n * — `FAN_OUT` uses the full provider list, `SELECT_ONE` uses the primary) and\n * the `defineSaaSProviders` validators (a `FAN_OUT` capability is validated by\n * declaration and rejects a `selection` entry).\n */\nexport function getEngineCapabilityResolutionMode(\n capability: EngineCapability,\n): EngineCapabilityResolutionMode {\n return ENGINE_CAPABILITY_RESOLUTION_MODE[capability];\n}\n"]}
|
|
@@ -5,6 +5,17 @@ export declare const FrontendAppBootstrapPayloadSchema: z.ZodObject<{
|
|
|
5
5
|
providers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6
6
|
metadata: z.ZodObject<{
|
|
7
7
|
ref: z.ZodString;
|
|
8
|
+
packageName: z.ZodString;
|
|
9
|
+
tier: z.ZodEnum<typeof import("./provider-metadata.shared.schemas").ProviderTier>;
|
|
10
|
+
vendor: z.ZodString;
|
|
11
|
+
origin: z.ZodObject<{
|
|
12
|
+
kind: z.ZodEnum<typeof import("./provider-metadata.shared.schemas").ProviderOriginKind>;
|
|
13
|
+
catalogue: z.ZodOptional<z.ZodObject<{
|
|
14
|
+
source: z.ZodEnum<typeof import("./provider-metadata.shared.schemas").ProviderCatalogueSource>;
|
|
15
|
+
sourceRef: z.ZodString;
|
|
16
|
+
sourceVersion: z.ZodString;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
}, z.core.$strip>;
|
|
8
19
|
displayNameLabelKey: z.ZodOptional<z.ZodString>;
|
|
9
20
|
displayName: z.ZodOptional<z.ZodString>;
|
|
10
21
|
iconRef: z.ZodOptional<z.ZodString>;
|
|
@@ -12,7 +23,33 @@ export declare const FrontendAppBootstrapPayloadSchema: z.ZodObject<{
|
|
|
12
23
|
providerCapabilities: z.ZodArray<z.ZodString>;
|
|
13
24
|
protocols: z.ZodArray<z.ZodString>;
|
|
14
25
|
publicConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
15
|
-
|
|
26
|
+
csp: z.ZodOptional<z.ZodObject<{
|
|
27
|
+
scriptOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
28
|
+
connectOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
29
|
+
frameOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
30
|
+
imgOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
31
|
+
styleOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
32
|
+
fontOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
33
|
+
derivedOrigins: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
34
|
+
publicConfigKey: z.ZodString;
|
|
35
|
+
bucket: z.ZodEnum<typeof import("./provider-frontend-surface.shared.schemas").ProviderFrontendCspOriginBucket>;
|
|
36
|
+
}, z.core.$strict>>>;
|
|
37
|
+
}, z.core.$strict>>;
|
|
38
|
+
sdk: z.ZodOptional<z.ZodObject<{
|
|
39
|
+
packageName: z.ZodString;
|
|
40
|
+
versionRange: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strict>>;
|
|
42
|
+
scripts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
43
|
+
src: z.ZodString;
|
|
44
|
+
integrity: z.ZodOptional<z.ZodString>;
|
|
45
|
+
crossOrigin: z.ZodOptional<z.ZodEnum<typeof import("./provider-frontend-surface.shared.schemas").ProviderFrontendScriptCrossOrigin>>;
|
|
46
|
+
async: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
defer: z.ZodOptional<z.ZodBoolean>;
|
|
48
|
+
}, z.core.$strict>>>;
|
|
49
|
+
components: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
50
|
+
selectionDelivery: z.ZodOptional<z.ZodEnum<typeof import("./provider-frontend-surface.shared.schemas").ProviderFrontendSelectionDelivery>>;
|
|
51
|
+
}, z.core.$strict>>>;
|
|
52
|
+
}, z.core.$loose>>>;
|
|
16
53
|
}, z.core.$strip>;
|
|
17
54
|
}, z.core.$strip>;
|
|
18
55
|
export type FrontendAppBootstrapPayload = z.infer<typeof FrontendAppBootstrapPayloadSchema>;
|
|
@@ -157,6 +194,11 @@ export declare const AppConfiguration_FrontendBootstrapResponse_Schema: z.ZodObj
|
|
|
157
194
|
requireSpecialChars: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
158
195
|
expiryDays: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
159
196
|
}, z.core.$strip>>;
|
|
197
|
+
stepUpAuth: z.ZodOptional<z.ZodObject<{
|
|
198
|
+
enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
199
|
+
maxAgeSeconds: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
200
|
+
methods: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodEnum<typeof import("..").AuthMethod>>>>;
|
|
201
|
+
}, z.core.$strip>>;
|
|
160
202
|
}, z.core.$strip>>;
|
|
161
203
|
scimProvisioning: z.ZodOptional<z.ZodObject<{
|
|
162
204
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -176,10 +218,6 @@ export declare const AppConfiguration_FrontendBootstrapResponse_Schema: z.ZodObj
|
|
|
176
218
|
billing: z.ZodOptional<z.ZodObject<{
|
|
177
219
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
178
220
|
providerRef: z.ZodOptional<z.ZodString>;
|
|
179
|
-
webhooks: z.ZodOptional<z.ZodObject<{
|
|
180
|
-
path: z.ZodDefault<z.ZodString>;
|
|
181
|
-
signingSecretRef: z.ZodOptional<z.ZodString>;
|
|
182
|
-
}, z.core.$strip>>;
|
|
183
221
|
defaultCurrency: z.ZodDefault<z.ZodUnion<[z.ZodEnum<typeof import("@wildo-ai/zod-decorators").AvailableCurrency>, z.ZodString]>>;
|
|
184
222
|
supportedCurrencies: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodEnum<typeof import("@wildo-ai/zod-decorators").AvailableCurrency>, z.ZodString]>>>;
|
|
185
223
|
tax: z.ZodDefault<z.ZodObject<{
|
|
@@ -198,7 +236,7 @@ export declare const AppConfiguration_FrontendBootstrapResponse_Schema: z.ZodObj
|
|
|
198
236
|
defaultTrialDays: z.ZodDefault<z.ZodNumber>;
|
|
199
237
|
paymentGracePeriodDays: z.ZodDefault<z.ZodNumber>;
|
|
200
238
|
maxPaymentRetries: z.ZodDefault<z.ZodNumber>;
|
|
201
|
-
defaultProration: z.ZodDefault<z.ZodEnum<typeof import("
|
|
239
|
+
defaultProration: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").ProrationBehavior>>;
|
|
202
240
|
defaultCancellation: z.ZodDefault<z.ZodEnum<typeof import("..").BillingTiming>>;
|
|
203
241
|
}, z.core.$strip>>;
|
|
204
242
|
}, z.core.$strip>>;
|
|
@@ -301,11 +339,23 @@ export declare const AppConfiguration_FrontendBootstrapResponse_Schema: z.ZodObj
|
|
|
301
339
|
}, z.core.$strip>>;
|
|
302
340
|
auditTrail: z.ZodOptional<z.ZodObject<{
|
|
303
341
|
archiveAfterDays: z.ZodOptional<z.ZodNumber>;
|
|
342
|
+
allowPrivateNetworkSiemCollectors: z.ZodOptional<z.ZodBoolean>;
|
|
304
343
|
}, z.core.$strip>>;
|
|
305
344
|
frontendProviders: z.ZodObject<{
|
|
306
345
|
providers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
307
346
|
metadata: z.ZodObject<{
|
|
308
347
|
ref: z.ZodString;
|
|
348
|
+
packageName: z.ZodString;
|
|
349
|
+
tier: z.ZodEnum<typeof import("./provider-metadata.shared.schemas").ProviderTier>;
|
|
350
|
+
vendor: z.ZodString;
|
|
351
|
+
origin: z.ZodObject<{
|
|
352
|
+
kind: z.ZodEnum<typeof import("./provider-metadata.shared.schemas").ProviderOriginKind>;
|
|
353
|
+
catalogue: z.ZodOptional<z.ZodObject<{
|
|
354
|
+
source: z.ZodEnum<typeof import("./provider-metadata.shared.schemas").ProviderCatalogueSource>;
|
|
355
|
+
sourceRef: z.ZodString;
|
|
356
|
+
sourceVersion: z.ZodString;
|
|
357
|
+
}, z.core.$strip>>;
|
|
358
|
+
}, z.core.$strip>;
|
|
309
359
|
displayNameLabelKey: z.ZodOptional<z.ZodString>;
|
|
310
360
|
displayName: z.ZodOptional<z.ZodString>;
|
|
311
361
|
iconRef: z.ZodOptional<z.ZodString>;
|
|
@@ -313,7 +363,33 @@ export declare const AppConfiguration_FrontendBootstrapResponse_Schema: z.ZodObj
|
|
|
313
363
|
providerCapabilities: z.ZodArray<z.ZodString>;
|
|
314
364
|
protocols: z.ZodArray<z.ZodString>;
|
|
315
365
|
publicConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
316
|
-
|
|
366
|
+
csp: z.ZodOptional<z.ZodObject<{
|
|
367
|
+
scriptOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
368
|
+
connectOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
369
|
+
frameOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
370
|
+
imgOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
371
|
+
styleOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
372
|
+
fontOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
373
|
+
derivedOrigins: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
374
|
+
publicConfigKey: z.ZodString;
|
|
375
|
+
bucket: z.ZodEnum<typeof import("./provider-frontend-surface.shared.schemas").ProviderFrontendCspOriginBucket>;
|
|
376
|
+
}, z.core.$strict>>>;
|
|
377
|
+
}, z.core.$strict>>;
|
|
378
|
+
sdk: z.ZodOptional<z.ZodObject<{
|
|
379
|
+
packageName: z.ZodString;
|
|
380
|
+
versionRange: z.ZodOptional<z.ZodString>;
|
|
381
|
+
}, z.core.$strict>>;
|
|
382
|
+
scripts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
383
|
+
src: z.ZodString;
|
|
384
|
+
integrity: z.ZodOptional<z.ZodString>;
|
|
385
|
+
crossOrigin: z.ZodOptional<z.ZodEnum<typeof import("./provider-frontend-surface.shared.schemas").ProviderFrontendScriptCrossOrigin>>;
|
|
386
|
+
async: z.ZodOptional<z.ZodBoolean>;
|
|
387
|
+
defer: z.ZodOptional<z.ZodBoolean>;
|
|
388
|
+
}, z.core.$strict>>>;
|
|
389
|
+
components: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
390
|
+
selectionDelivery: z.ZodOptional<z.ZodEnum<typeof import("./provider-frontend-surface.shared.schemas").ProviderFrontendSelectionDelivery>>;
|
|
391
|
+
}, z.core.$strict>>>;
|
|
392
|
+
}, z.core.$loose>>>;
|
|
317
393
|
}, z.core.$strip>;
|
|
318
394
|
}, z.core.$strip>;
|
|
319
395
|
export type AppConfiguration_FrontendBootstrapResponse = z.infer<typeof AppConfiguration_FrontendBootstrapResponse_Schema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-bootstrap.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/frontend-bootstrap.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,0CAA0C,CAAC;AAGlD,eAAO,MAAM,iCAAiC
|
|
1
|
+
{"version":3,"file":"frontend-bootstrap.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/frontend-bootstrap.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,0CAA0C,CAAC;AAGlD,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;;GAKG;AACH,eAAO,MAAM,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG1D,CAAC;AACL,MAAM,MAAM,0CAA0C,GAAG,CAAC,CAAC,KAAK,CAC9D,OAAO,iDAAiD,CACzD,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The public-config shape a BUILT-IN frontend capability expects, as a named
|
|
3
|
+
* schema rather than a convention.
|
|
4
|
+
*
|
|
5
|
+
* ## Why the capability owns this and not each provider
|
|
6
|
+
*
|
|
7
|
+
* `publicConfig` is `Record<string, unknown>`, so every consuming site was
|
|
8
|
+
* reading it by hand — `typeof x === 'number' ? x : undefined`, an array filter
|
|
9
|
+
* for strings, a Mb-to-bytes multiplication — and a renamed key produced
|
|
10
|
+
* `undefined` and a silently wrong picker rather than an error. The keys were a
|
|
11
|
+
* convention nobody had written down, which is the whole defect: three ad-hoc
|
|
12
|
+
* readers agreeing by luck.
|
|
13
|
+
*
|
|
14
|
+
* What a FILE PICKER's constraints mean is framework knowledge — the framework
|
|
15
|
+
* is what applies them to its own file fields — so the shape belongs to the
|
|
16
|
+
* CAPABILITY. A provider is free to carry its own keys beside these (a client
|
|
17
|
+
* id, an app key); it is not free to invent a different spelling of the ones
|
|
18
|
+
* the framework reads, and now it cannot.
|
|
19
|
+
*
|
|
20
|
+
* A provider declaring `publicConfigSchema` should EXTEND the schema for the
|
|
21
|
+
* capability it claims, so hydration validates the framework's fields and its
|
|
22
|
+
* own in one pass.
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
/**
|
|
26
|
+
* Constraints a `FRONTEND_FILE_PICKER` provider may contribute.
|
|
27
|
+
*
|
|
28
|
+
* Every field is optional: a provider that constrains nothing is legitimate,
|
|
29
|
+
* and the field's own Zod file metadata always wins anyway — a provider only
|
|
30
|
+
* fills the gaps the schema left open.
|
|
31
|
+
*
|
|
32
|
+
* LOOSE, because a provider's own keys live in the same object and must survive
|
|
33
|
+
* a parse that is only looking for these.
|
|
34
|
+
*/
|
|
35
|
+
export declare const FrontendFilePickerPublicConfigSchema: z.ZodObject<{
|
|
36
|
+
/**
|
|
37
|
+
* MIME types the picker can return.
|
|
38
|
+
*
|
|
39
|
+
* An EMPTY list is normalized to absent, and that is behaviour rather than
|
|
40
|
+
* decoration: the framework turns this into an `accept=` attribute, and an
|
|
41
|
+
* empty `accept=""` does not mean "anything" — it means the file dialog
|
|
42
|
+
* offers nothing. A provider that declares no types is unconstrained, so the
|
|
43
|
+
* normalization happens here, once, instead of at each reader that would have
|
|
44
|
+
* to remember it.
|
|
45
|
+
*/
|
|
46
|
+
acceptedMimeTypes: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[], string[]>>;
|
|
47
|
+
/**
|
|
48
|
+
* Largest file the picker will hand back, in MEGABYTES.
|
|
49
|
+
*
|
|
50
|
+
* The unit is in the name because the framework's own constraint is in BYTES
|
|
51
|
+
* and the conversion is the kind of thing that is wrong by a factor of 1024²
|
|
52
|
+
* exactly once, silently, in production.
|
|
53
|
+
*/
|
|
54
|
+
maxFileSizeMb: z.ZodOptional<z.ZodNumber>;
|
|
55
|
+
/** How many files one selection may return. Applies only to a `multiple` field. */
|
|
56
|
+
maxSelectionCount: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
}, z.core.$loose>;
|
|
58
|
+
export type FrontendFilePickerPublicConfig = z.infer<typeof FrontendFilePickerPublicConfigSchema>;
|
|
59
|
+
//# sourceMappingURL=frontend-capability-public-config.shared.schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-capability-public-config.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/frontend-capability-public-config.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;GASG;AACH,eAAO,MAAM,oCAAoC;IAC/C;;;;;;;;;OASG;;IAKH;;;;;;OAMG;;IAEH,mFAAmF;;iBAEnF,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The public-config shape a BUILT-IN frontend capability expects, as a named
|
|
3
|
+
* schema rather than a convention.
|
|
4
|
+
*
|
|
5
|
+
* ## Why the capability owns this and not each provider
|
|
6
|
+
*
|
|
7
|
+
* `publicConfig` is `Record<string, unknown>`, so every consuming site was
|
|
8
|
+
* reading it by hand — `typeof x === 'number' ? x : undefined`, an array filter
|
|
9
|
+
* for strings, a Mb-to-bytes multiplication — and a renamed key produced
|
|
10
|
+
* `undefined` and a silently wrong picker rather than an error. The keys were a
|
|
11
|
+
* convention nobody had written down, which is the whole defect: three ad-hoc
|
|
12
|
+
* readers agreeing by luck.
|
|
13
|
+
*
|
|
14
|
+
* What a FILE PICKER's constraints mean is framework knowledge — the framework
|
|
15
|
+
* is what applies them to its own file fields — so the shape belongs to the
|
|
16
|
+
* CAPABILITY. A provider is free to carry its own keys beside these (a client
|
|
17
|
+
* id, an app key); it is not free to invent a different spelling of the ones
|
|
18
|
+
* the framework reads, and now it cannot.
|
|
19
|
+
*
|
|
20
|
+
* A provider declaring `publicConfigSchema` should EXTEND the schema for the
|
|
21
|
+
* capability it claims, so hydration validates the framework's fields and its
|
|
22
|
+
* own in one pass.
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
/**
|
|
26
|
+
* Constraints a `FRONTEND_FILE_PICKER` provider may contribute.
|
|
27
|
+
*
|
|
28
|
+
* Every field is optional: a provider that constrains nothing is legitimate,
|
|
29
|
+
* and the field's own Zod file metadata always wins anyway — a provider only
|
|
30
|
+
* fills the gaps the schema left open.
|
|
31
|
+
*
|
|
32
|
+
* LOOSE, because a provider's own keys live in the same object and must survive
|
|
33
|
+
* a parse that is only looking for these.
|
|
34
|
+
*/
|
|
35
|
+
export const FrontendFilePickerPublicConfigSchema = z.looseObject({
|
|
36
|
+
/**
|
|
37
|
+
* MIME types the picker can return.
|
|
38
|
+
*
|
|
39
|
+
* An EMPTY list is normalized to absent, and that is behaviour rather than
|
|
40
|
+
* decoration: the framework turns this into an `accept=` attribute, and an
|
|
41
|
+
* empty `accept=""` does not mean "anything" — it means the file dialog
|
|
42
|
+
* offers nothing. A provider that declares no types is unconstrained, so the
|
|
43
|
+
* normalization happens here, once, instead of at each reader that would have
|
|
44
|
+
* to remember it.
|
|
45
|
+
*/
|
|
46
|
+
acceptedMimeTypes: z
|
|
47
|
+
.array(z.string().min(1))
|
|
48
|
+
.optional()
|
|
49
|
+
.transform((types) => (types !== undefined && types.length > 0 ? types : undefined)),
|
|
50
|
+
/**
|
|
51
|
+
* Largest file the picker will hand back, in MEGABYTES.
|
|
52
|
+
*
|
|
53
|
+
* The unit is in the name because the framework's own constraint is in BYTES
|
|
54
|
+
* and the conversion is the kind of thing that is wrong by a factor of 1024²
|
|
55
|
+
* exactly once, silently, in production.
|
|
56
|
+
*/
|
|
57
|
+
maxFileSizeMb: z.number().positive().optional(),
|
|
58
|
+
/** How many files one selection may return. Applies only to a `multiple` field. */
|
|
59
|
+
maxSelectionCount: z.number().int().positive().optional(),
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=frontend-capability-public-config.shared.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-capability-public-config.shared.schemas.js","sourceRoot":"","sources":["../../../../src/external-providers/frontend-capability-public-config.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,WAAW,CAAC;IAChE;;;;;;;;;OASG;IACH,iBAAiB,EAAE,CAAC;SACjB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtF;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,mFAAmF;IACnF,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC","sourcesContent":["/**\n * The public-config shape a BUILT-IN frontend capability expects, as a named\n * schema rather than a convention.\n *\n * ## Why the capability owns this and not each provider\n *\n * `publicConfig` is `Record<string, unknown>`, so every consuming site was\n * reading it by hand — `typeof x === 'number' ? x : undefined`, an array filter\n * for strings, a Mb-to-bytes multiplication — and a renamed key produced\n * `undefined` and a silently wrong picker rather than an error. The keys were a\n * convention nobody had written down, which is the whole defect: three ad-hoc\n * readers agreeing by luck.\n *\n * What a FILE PICKER's constraints mean is framework knowledge — the framework\n * is what applies them to its own file fields — so the shape belongs to the\n * CAPABILITY. A provider is free to carry its own keys beside these (a client\n * id, an app key); it is not free to invent a different spelling of the ones\n * the framework reads, and now it cannot.\n *\n * A provider declaring `publicConfigSchema` should EXTEND the schema for the\n * capability it claims, so hydration validates the framework's fields and its\n * own in one pass.\n */\n\nimport { z } from 'zod';\n\n/**\n * Constraints a `FRONTEND_FILE_PICKER` provider may contribute.\n *\n * Every field is optional: a provider that constrains nothing is legitimate,\n * and the field's own Zod file metadata always wins anyway — a provider only\n * fills the gaps the schema left open.\n *\n * LOOSE, because a provider's own keys live in the same object and must survive\n * a parse that is only looking for these.\n */\nexport const FrontendFilePickerPublicConfigSchema = z.looseObject({\n /**\n * MIME types the picker can return.\n *\n * An EMPTY list is normalized to absent, and that is behaviour rather than\n * decoration: the framework turns this into an `accept=` attribute, and an\n * empty `accept=\"\"` does not mean \"anything\" — it means the file dialog\n * offers nothing. A provider that declares no types is unconstrained, so the\n * normalization happens here, once, instead of at each reader that would have\n * to remember it.\n */\n acceptedMimeTypes: z\n .array(z.string().min(1))\n .optional()\n .transform((types) => (types !== undefined && types.length > 0 ? types : undefined)),\n /**\n * Largest file the picker will hand back, in MEGABYTES.\n *\n * The unit is in the name because the framework's own constraint is in BYTES\n * and the conversion is the kind of thing that is wrong by a factor of 1024²\n * exactly once, silently, in production.\n */\n maxFileSizeMb: z.number().positive().optional(),\n /** How many files one selection may return. Applies only to a `multiple` field. */\n maxSelectionCount: z.number().int().positive().optional(),\n});\nexport type FrontendFilePickerPublicConfig = z.infer<typeof FrontendFilePickerPublicConfigSchema>;\n"]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The RUNTIME contract a built-in frontend capability expects of whichever
|
|
3
|
+
* provider fills it — the code-half sibling of
|
|
4
|
+
* `frontend-capability-public-config.shared.schemas.ts`, which owns the data half.
|
|
5
|
+
*
|
|
6
|
+
* ## Why the capability owns the shape, and not the framework's call site
|
|
7
|
+
*
|
|
8
|
+
* `ProviderFrontendSdkActivation.handle` is `unknown` on purpose: the provider
|
|
9
|
+
* package must not know any vendor's type, and "a consumer that needs one narrows
|
|
10
|
+
* it at the point where it also knows which provider it asked for."
|
|
11
|
+
*
|
|
12
|
+
* That reasoning holds for a picker, where the surface really did ask for Drive.
|
|
13
|
+
* It inverts for an OBSERVABILITY capability: the framework reports a crash without
|
|
14
|
+
* knowing — and without wanting to know — whether Sentry, Rollbar or a self-hosted
|
|
15
|
+
* collector is listening. Narrowing at the call site would mean a `switch` over
|
|
16
|
+
* vendors inside the engine, which is precisely what the capability model exists to
|
|
17
|
+
* prevent.
|
|
18
|
+
*
|
|
19
|
+
* So the CAPABILITY declares the interface, the PROVIDER adapts its vendor to it,
|
|
20
|
+
* and the framework calls one method it owns the definition of.
|
|
21
|
+
*
|
|
22
|
+
* ## Bundle-safe by construction
|
|
23
|
+
*
|
|
24
|
+
* Pure types. No Zod, no decorators, no imports at all — this seam is reachable from
|
|
25
|
+
* `@wildo-ai/saas-models/public-runtime`, which exists so a browser bundle can take
|
|
26
|
+
* a handful of atoms without the decorator-bound schema graph.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* One crash, as the framework describes it to whichever provider is listening.
|
|
30
|
+
*
|
|
31
|
+
* ## What is in it, and why that is the whole list
|
|
32
|
+
*
|
|
33
|
+
* `name`, `message`, `stack` and `componentStack` are exactly what
|
|
34
|
+
* `ErrorsBuilderFrontendService.buildReactError` already assembles on every caught
|
|
35
|
+
* crash. Nothing new is collected to fill this shape; what changes is only that the
|
|
36
|
+
* report can now leave the browser.
|
|
37
|
+
*
|
|
38
|
+
* **`message` is sent as authored, and that is a decision rather than an oversight.**
|
|
39
|
+
* It is the field most likely to carry user content — `new Error(\`Invalid value:
|
|
40
|
+
* ${input}\`)` — and it is also the field without which a crash report is close to
|
|
41
|
+
* useless. Every mainstream crash reporter sends the exception message and scrubs by
|
|
42
|
+
* KEY rather than by free-text inspection, because a scrubber over prose either
|
|
43
|
+
* destroys the diagnostic or gives false assurance. An application that cannot accept
|
|
44
|
+
* that should not declare `FRONTEND_ERROR_MONITORING`.
|
|
45
|
+
*
|
|
46
|
+
* ## What is deliberately NOT in it
|
|
47
|
+
*
|
|
48
|
+
* No user identity, no session or organisation id, no request or form payload, and no
|
|
49
|
+
* resource content. A crash report is a diagnostic about CODE; attributing it to a
|
|
50
|
+
* PERSON is a separate decision an application would have to take deliberately, and
|
|
51
|
+
* there is no field here through which it could happen by accident.
|
|
52
|
+
*/
|
|
53
|
+
export interface FrontendCrashReport {
|
|
54
|
+
/** The error's class name — `TypeError`, `WildoFrontendError`. */
|
|
55
|
+
readonly name: string;
|
|
56
|
+
/** The error's own message, unmodified. See the note above before changing this. */
|
|
57
|
+
readonly message: string;
|
|
58
|
+
/** The JavaScript stack, when the runtime produced one. */
|
|
59
|
+
readonly stack?: string;
|
|
60
|
+
/**
|
|
61
|
+
* React's component stack for a crash a boundary caught. Component NAMES only —
|
|
62
|
+
* no props, no state — so it says which screen broke without saying what was on it.
|
|
63
|
+
*/
|
|
64
|
+
readonly componentStack?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Framework classification, flattened to strings at this boundary.
|
|
67
|
+
*
|
|
68
|
+
* String-valued on purpose: the closed vocabularies it carries (`ErrorType`,
|
|
69
|
+
* `ErrorSeverity`) live in the heavy schema graph that this bundle-safe seam must
|
|
70
|
+
* not pull in, and every mainstream vendor models exactly this as string tags. The
|
|
71
|
+
* BRIDGE reads the real enums and stringifies here, so the vocabulary still has one
|
|
72
|
+
* named runtime source and only its serialization is local to this contract.
|
|
73
|
+
*/
|
|
74
|
+
readonly tags?: Readonly<Record<string, string>>;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* What the framework calls on a `FRONTEND_ERROR_MONITORING` provider's activated
|
|
78
|
+
* handle.
|
|
79
|
+
*
|
|
80
|
+
* Synchronous and returning nothing, deliberately. Reporting a crash must never
|
|
81
|
+
* become something a crashing surface has to await or handle: a vendor SDK queues and
|
|
82
|
+
* flushes on its own schedule, and a rejected promise here would be a second error
|
|
83
|
+
* raised from inside the first one's handler.
|
|
84
|
+
*/
|
|
85
|
+
export interface FrontendErrorMonitoringSink {
|
|
86
|
+
reportCrash(report: FrontendCrashReport): void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Whether an activated SDK handle can receive crash reports.
|
|
90
|
+
*
|
|
91
|
+
* A provider may declare `FRONTEND_ERROR_MONITORING` and return a bare vendor
|
|
92
|
+
* namespace that does not implement this contract — a mistake no type can catch,
|
|
93
|
+
* because `handle` is `unknown` by design. Checked at the seam so the failure is a
|
|
94
|
+
* reported diagnostic rather than a `TypeError` thrown while handling a crash.
|
|
95
|
+
*/
|
|
96
|
+
export declare function isFrontendErrorMonitoringSink(handle: unknown): handle is FrontendErrorMonitoringSink;
|
|
97
|
+
//# sourceMappingURL=frontend-capability-runtime.shared.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-capability-runtime.shared.types.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/frontend-capability-runtime.shared.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAChD;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,2BAA2B,CAMpG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The RUNTIME contract a built-in frontend capability expects of whichever
|
|
3
|
+
* provider fills it — the code-half sibling of
|
|
4
|
+
* `frontend-capability-public-config.shared.schemas.ts`, which owns the data half.
|
|
5
|
+
*
|
|
6
|
+
* ## Why the capability owns the shape, and not the framework's call site
|
|
7
|
+
*
|
|
8
|
+
* `ProviderFrontendSdkActivation.handle` is `unknown` on purpose: the provider
|
|
9
|
+
* package must not know any vendor's type, and "a consumer that needs one narrows
|
|
10
|
+
* it at the point where it also knows which provider it asked for."
|
|
11
|
+
*
|
|
12
|
+
* That reasoning holds for a picker, where the surface really did ask for Drive.
|
|
13
|
+
* It inverts for an OBSERVABILITY capability: the framework reports a crash without
|
|
14
|
+
* knowing — and without wanting to know — whether Sentry, Rollbar or a self-hosted
|
|
15
|
+
* collector is listening. Narrowing at the call site would mean a `switch` over
|
|
16
|
+
* vendors inside the engine, which is precisely what the capability model exists to
|
|
17
|
+
* prevent.
|
|
18
|
+
*
|
|
19
|
+
* So the CAPABILITY declares the interface, the PROVIDER adapts its vendor to it,
|
|
20
|
+
* and the framework calls one method it owns the definition of.
|
|
21
|
+
*
|
|
22
|
+
* ## Bundle-safe by construction
|
|
23
|
+
*
|
|
24
|
+
* Pure types. No Zod, no decorators, no imports at all — this seam is reachable from
|
|
25
|
+
* `@wildo-ai/saas-models/public-runtime`, which exists so a browser bundle can take
|
|
26
|
+
* a handful of atoms without the decorator-bound schema graph.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* Whether an activated SDK handle can receive crash reports.
|
|
30
|
+
*
|
|
31
|
+
* A provider may declare `FRONTEND_ERROR_MONITORING` and return a bare vendor
|
|
32
|
+
* namespace that does not implement this contract — a mistake no type can catch,
|
|
33
|
+
* because `handle` is `unknown` by design. Checked at the seam so the failure is a
|
|
34
|
+
* reported diagnostic rather than a `TypeError` thrown while handling a crash.
|
|
35
|
+
*/
|
|
36
|
+
export function isFrontendErrorMonitoringSink(handle) {
|
|
37
|
+
return (typeof handle === 'object'
|
|
38
|
+
&& handle !== null
|
|
39
|
+
&& typeof handle.reportCrash === 'function');
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=frontend-capability-runtime.shared.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-capability-runtime.shared.types.js","sourceRoot":"","sources":["../../../../src/external-providers/frontend-capability-runtime.shared.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAgEH;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAe;IAC3D,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;WACvB,MAAM,KAAK,IAAI;WACf,OAAQ,MAAsC,CAAC,WAAW,KAAK,UAAU,CAC7E,CAAC;AACJ,CAAC","sourcesContent":["/**\n * The RUNTIME contract a built-in frontend capability expects of whichever\n * provider fills it — the code-half sibling of\n * `frontend-capability-public-config.shared.schemas.ts`, which owns the data half.\n *\n * ## Why the capability owns the shape, and not the framework's call site\n *\n * `ProviderFrontendSdkActivation.handle` is `unknown` on purpose: the provider\n * package must not know any vendor's type, and \"a consumer that needs one narrows\n * it at the point where it also knows which provider it asked for.\"\n *\n * That reasoning holds for a picker, where the surface really did ask for Drive.\n * It inverts for an OBSERVABILITY capability: the framework reports a crash without\n * knowing — and without wanting to know — whether Sentry, Rollbar or a self-hosted\n * collector is listening. Narrowing at the call site would mean a `switch` over\n * vendors inside the engine, which is precisely what the capability model exists to\n * prevent.\n *\n * So the CAPABILITY declares the interface, the PROVIDER adapts its vendor to it,\n * and the framework calls one method it owns the definition of.\n *\n * ## Bundle-safe by construction\n *\n * Pure types. No Zod, no decorators, no imports at all — this seam is reachable from\n * `@wildo-ai/saas-models/public-runtime`, which exists so a browser bundle can take\n * a handful of atoms without the decorator-bound schema graph.\n */\n\n/**\n * One crash, as the framework describes it to whichever provider is listening.\n *\n * ## What is in it, and why that is the whole list\n *\n * `name`, `message`, `stack` and `componentStack` are exactly what\n * `ErrorsBuilderFrontendService.buildReactError` already assembles on every caught\n * crash. Nothing new is collected to fill this shape; what changes is only that the\n * report can now leave the browser.\n *\n * **`message` is sent as authored, and that is a decision rather than an oversight.**\n * It is the field most likely to carry user content — `new Error(\\`Invalid value:\n * ${input}\\`)` — and it is also the field without which a crash report is close to\n * useless. Every mainstream crash reporter sends the exception message and scrubs by\n * KEY rather than by free-text inspection, because a scrubber over prose either\n * destroys the diagnostic or gives false assurance. An application that cannot accept\n * that should not declare `FRONTEND_ERROR_MONITORING`.\n *\n * ## What is deliberately NOT in it\n *\n * No user identity, no session or organisation id, no request or form payload, and no\n * resource content. A crash report is a diagnostic about CODE; attributing it to a\n * PERSON is a separate decision an application would have to take deliberately, and\n * there is no field here through which it could happen by accident.\n */\nexport interface FrontendCrashReport {\n /** The error's class name — `TypeError`, `WildoFrontendError`. */\n readonly name: string;\n /** The error's own message, unmodified. See the note above before changing this. */\n readonly message: string;\n /** The JavaScript stack, when the runtime produced one. */\n readonly stack?: string;\n /**\n * React's component stack for a crash a boundary caught. Component NAMES only —\n * no props, no state — so it says which screen broke without saying what was on it.\n */\n readonly componentStack?: string;\n /**\n * Framework classification, flattened to strings at this boundary.\n *\n * String-valued on purpose: the closed vocabularies it carries (`ErrorType`,\n * `ErrorSeverity`) live in the heavy schema graph that this bundle-safe seam must\n * not pull in, and every mainstream vendor models exactly this as string tags. The\n * BRIDGE reads the real enums and stringifies here, so the vocabulary still has one\n * named runtime source and only its serialization is local to this contract.\n */\n readonly tags?: Readonly<Record<string, string>>;\n}\n\n/**\n * What the framework calls on a `FRONTEND_ERROR_MONITORING` provider's activated\n * handle.\n *\n * Synchronous and returning nothing, deliberately. Reporting a crash must never\n * become something a crashing surface has to await or handle: a vendor SDK queues and\n * flushes on its own schedule, and a rejected promise here would be a second error\n * raised from inside the first one's handler.\n */\nexport interface FrontendErrorMonitoringSink {\n reportCrash(report: FrontendCrashReport): void;\n}\n\n/**\n * Whether an activated SDK handle can receive crash reports.\n *\n * A provider may declare `FRONTEND_ERROR_MONITORING` and return a bare vendor\n * namespace that does not implement this contract — a mistake no type can catch,\n * because `handle` is `unknown` by design. Checked at the seam so the failure is a\n * reported diagnostic rather than a `TypeError` thrown while handling a crash.\n */\nexport function isFrontendErrorMonitoringSink(handle: unknown): handle is FrontendErrorMonitoringSink {\n return (\n typeof handle === 'object'\n && handle !== null\n && typeof (handle as FrontendErrorMonitoringSink).reportCrash === 'function'\n );\n}\n"]}
|