@wildo-ai/saas-frontend-lib 1.1.9 → 1.1.11
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/companion-exports.d.ts +2 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/companion-exports.js +2 -1
- package/dist/esm/companion-exports.js.map +1 -1
- package/dist/esm/components/actions/action-bar.d.ts +45 -1
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js +84 -0
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/actions/button.d.ts +22 -0
- package/dist/esm/components/actions/button.d.ts.map +1 -1
- package/dist/esm/components/actions/button.js +45 -0
- package/dist/esm/components/actions/button.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts +109 -0
- package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/chat/conversation-thread.js +22 -0
- package/dist/esm/components/ai-elements/chat/conversation-thread.js.map +1 -0
- package/dist/esm/components/ai-elements/decision/approval.d.ts +103 -7
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.d.ts +6 -0
- package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts +60 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.js +26 -0
- package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.d.ts +39 -4
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.js +18 -0
- package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts +6 -0
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +29 -8
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts +17 -0
- package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts.map +1 -0
- package/dist/esm/components/app/AppLayout_DecisionInbox.js +24 -0
- package/dist/esm/components/app/AppLayout_DecisionInbox.js.map +1 -0
- package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_MainContainer.js +3 -0
- package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts +18 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.js +8 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.js.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts +3 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js +38 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts +15 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.js +219 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.js.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts +3 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js +49 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js.map +1 -0
- package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.js +3 -2
- package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.labels.js +2 -2
- package/dist/esm/components/auth/Auth_Invitation.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.js +40 -7
- package/dist/esm/components/auth/Auth_Main.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.labels.js +9 -0
- package/dist/esm/components/auth/Auth_Main.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.js +3 -2
- package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.labels.js +2 -2
- package/dist/esm/components/auth/Auth_PasswordLost.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.js +8 -1
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.labels.js +2 -2
- package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js +3 -3
- package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +94 -6
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +21 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js +16 -13
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js +3 -3
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js.map +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js +3 -4
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts +11 -0
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts.map +1 -0
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js +25 -0
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js.map +1 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts +39 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts.map +1 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js +45 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js.map +1 -0
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js +1 -1
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js +2 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.js +21 -35
- package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +98 -70
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +48 -8
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +3 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js +30 -4
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js +45 -94
- package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +14 -8
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +41 -3
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js +49 -5
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/SummaryContext.d.ts +2 -2
- package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.d.ts +22 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.js +29 -0
- package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
- package/dist/esm/components/data-display/badge.d.ts +9 -0
- package/dist/esm/components/data-display/badge.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +14 -2
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +42 -12
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts +10 -0
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts.map +1 -0
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js +18 -0
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts +38 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.js +30 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.js.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts +22 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.js +52 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.js.map +1 -0
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts +4 -0
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
- package/dist/esm/components/data-display/display-layout-template.utils.d.ts +18 -0
- package/dist/esm/components/data-display/display-layout-template.utils.d.ts.map +1 -0
- package/dist/esm/components/data-display/display-layout-template.utils.js +18 -0
- package/dist/esm/components/data-display/display-layout-template.utils.js.map +1 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts +44 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts.map +1 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.js +61 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.js.map +1 -0
- package/dist/esm/components/data-display/empty-value-mark.d.ts +31 -0
- package/dist/esm/components/data-display/empty-value-mark.d.ts.map +1 -0
- package/dist/esm/components/data-display/empty-value-mark.js +49 -0
- package/dist/esm/components/data-display/empty-value-mark.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +3 -2
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +4 -4
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +6 -3
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +22 -12
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +2 -2
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -1
- package/dist/esm/components/data-display/reference-display-target.d.ts +98 -0
- package/dist/esm/components/data-display/reference-display-target.d.ts.map +1 -0
- package/dist/esm/components/data-display/reference-display-target.js +154 -0
- package/dist/esm/components/data-display/reference-display-target.js.map +1 -0
- package/dist/esm/components/data-display/summary-value-naming.context.d.ts +15 -0
- package/dist/esm/components/data-display/summary-value-naming.context.d.ts.map +1 -0
- package/dist/esm/components/data-display/summary-value-naming.context.js +18 -0
- package/dist/esm/components/data-display/summary-value-naming.context.js.map +1 -0
- package/dist/esm/components/data-display/tone-marker.d.ts +38 -0
- package/dist/esm/components/data-display/tone-marker.d.ts.map +1 -0
- package/dist/esm/components/data-display/tone-marker.js +56 -0
- package/dist/esm/components/data-display/tone-marker.js.map +1 -0
- package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
- package/dist/esm/components/data-display/useFileActivation.js +2 -9
- package/dist/esm/components/data-display/useFileActivation.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.js +12 -4
- package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts +8 -0
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts +0 -5
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.js +5 -17
- package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -1
- package/dist/esm/components/flows-actors/actor.d.ts +21 -4
- package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.js +114 -192
- package/dist/esm/components/flows-actors/actor.js.map +1 -1
- package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.labels.js +5 -10
- package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.js +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/approval-modification-refusal.utils.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js +1 -0
- package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts +26 -16
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +208 -70
- package/dist/esm/components/flows-actors/approval.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.js +67 -22
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.js +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.d.ts +19 -7
- package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.js +55 -41
- package/dist/esm/components/flows-actors/execution-plan.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.labels.js +25 -8
- package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-usage.d.ts +69 -0
- package/dist/esm/components/flows-actors/execution-usage.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/execution-usage.js +189 -0
- package/dist/esm/components/flows-actors/execution-usage.js.map +1 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.d.ts +3 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.js +27 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.js.map +1 -0
- package/dist/esm/components/flows-actors/flow-execution.d.ts +23 -6
- package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.js +56 -208
- package/dist/esm/components/flows-actors/flow-execution.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.labels.js +3 -10
- package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.d.ts +54 -21
- package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.js +80 -6
- package/dist/esm/components/flows-actors/flow-node-badges.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.labels.js +0 -8
- package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-step-visuals.d.ts +31 -0
- package/dist/esm/components/flows-actors/flow-step-visuals.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/flow-step-visuals.js +98 -0
- package/dist/esm/components/flows-actors/flow-step-visuals.js.map +1 -0
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts +18 -19
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js +18 -19
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts +27 -42
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js +28 -43
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts +15 -10
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.js +16 -42
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
- package/dist/esm/components/flows-actors/graph-viewer.d.ts +112 -0
- package/dist/esm/components/flows-actors/graph-viewer.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.js +431 -0
- package/dist/esm/components/flows-actors/graph-viewer.js.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts +3 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.js +67 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.js.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.d.ts +16 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.js +18 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.js.map +1 -0
- package/dist/esm/components/flows-actors/human-decision-form.d.ts +57 -0
- package/dist/esm/components/flows-actors/human-decision-form.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/human-decision-form.js +128 -0
- package/dist/esm/components/flows-actors/human-decision-form.js.map +1 -0
- package/dist/esm/components/flows-actors/system-catalog.d.ts +6 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js +22 -20
- package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.js +3 -2
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.d.ts +17 -3
- package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.js +32 -25
- package/dist/esm/components/flows-actors/task-detail.js.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.js +3 -2
- package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts +2 -0
- package/dist/esm/components/form/Form.d.ts.map +1 -1
- package/dist/esm/components/form/Form.js +4 -0
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +16 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +101 -21
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.d.ts +19 -2
- package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.js +40 -6
- package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.d.ts +22 -1
- package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.js +53 -0
- package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +127 -53
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.js +12 -10
- package/dist/esm/components/form/automated/FormFieldComposite.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldRecord.js +16 -7
- package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.d.ts +27 -0
- package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.js +0 -48
- package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +4 -3
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +616 -149
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +105 -5
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.js +225 -6
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts +59 -0
- package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts.map +1 -0
- package/dist/esm/components/form/automated/bulk-field-clear-context.js +77 -0
- package/dist/esm/components/form/automated/bulk-field-clear-context.js.map +1 -0
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts +1 -1
- package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts +19 -0
- package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts.map +1 -0
- package/dist/esm/components/form/automated/unplaced-request-fields.context.js +13 -0
- package/dist/esm/components/form/automated/unplaced-request-fields.context.js.map +1 -0
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts +7 -0
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.js +10 -2
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
- package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts +16 -0
- package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts.map +1 -0
- package/dist/esm/components/form/automated/useReferenceRecordLabels.js +66 -0
- package/dist/esm/components/form/automated/useReferenceRecordLabels.js.map +1 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts +18 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts.map +1 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.js +107 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.js.map +1 -0
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts +7 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js +6 -3
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts +11 -0
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts +21 -0
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts +9 -0
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts +9 -0
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts +1 -0
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.d.ts +10 -0
- package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts +14 -10
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.js +14 -6
- package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js +7 -3
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/controls/string/chips-input.d.ts +65 -0
- package/dist/esm/components/form/controls/string/chips-input.d.ts.map +1 -0
- package/dist/esm/components/form/controls/string/chips-input.js +9 -0
- package/dist/esm/components/form/controls/string/chips-input.js.map +1 -0
- package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.js +7 -5
- package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.js +2 -2
- package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.js +2 -2
- package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.labels.js +1 -1
- package/dist/esm/components/form/fields/form-field-code.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.js +16 -11
- package/dist/esm/components/form/fields/form-field-date.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.js +10 -5
- package/dist/esm/components/form/fields/form-field-datetime.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.js +5 -7
- package/dist/esm/components/form/fields/form-field-duration.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.labels.js +8 -2
- package/dist/esm/components/form/fields/form-field-duration.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.js +31 -31
- package/dist/esm/components/form/fields/form-field-enum.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.js +13 -12
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +6 -6
- package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.js +5 -4
- package/dist/esm/components/form/fields/form-field-money.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.labels.js +8 -2
- package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.js +2 -2
- package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.js +2 -2
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.js +7 -2
- package/dist/esm/components/form/fields/form-field-range-date.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.js +5 -2
- package/dist/esm/components/form/fields/form-field-range-datetime.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.js +6 -19
- package/dist/esm/components/form/fields/form-field-range-money.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.labels.js +8 -2
- package/dist/esm/components/form/fields/form-field-range-money.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.js +2 -2
- package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.js +2 -2
- package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-resource-reference.d.ts +56 -0
- package/dist/esm/components/form/fields/form-field-resource-reference.d.ts.map +1 -0
- package/dist/esm/components/form/fields/form-field-resource-reference.js +51 -0
- package/dist/esm/components/form/fields/form-field-resource-reference.js.map +1 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +36 -6
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string-organization-role.js +30 -11
- package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.d.ts +5 -0
- package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.js +9 -7
- package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.js +6 -3
- package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
- package/dist/esm/components/form/fields/themed-native-select.d.ts +29 -0
- package/dist/esm/components/form/fields/themed-native-select.d.ts.map +1 -0
- package/dist/esm/components/form/fields/themed-native-select.js +36 -0
- package/dist/esm/components/form/fields/themed-native-select.js.map +1 -0
- package/dist/esm/components/form/form-context.d.ts +11 -0
- package/dist/esm/components/form/form-context.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.js +11 -0
- package/dist/esm/components/form/form-context.js.map +1 -1
- package/dist/esm/components/form/form-context.utils.d.ts +2 -0
- package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.utils.js +6 -2
- package/dist/esm/components/form/form-context.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js +17 -15
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/field-reveal.d.ts +41 -0
- package/dist/esm/components/form/validation-errors/field-reveal.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/field-reveal.js +108 -0
- package/dist/esm/components/form/validation-errors/field-reveal.js.map +1 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts +3 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.js +37 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.js.map +1 -0
- package/dist/esm/components/form/validation-errors/getFieldError.d.ts +6 -0
- package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/getFieldError.js +9 -2
- package/dist/esm/components/form/validation-errors/getFieldError.js.map +1 -1
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts +8 -1
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js +46 -3
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.js +8 -3
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts +32 -0
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js +60 -0
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js.map +1 -0
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +10 -0
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +12 -3
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts +7 -0
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts +6 -0
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.js.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +11 -28
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts +46 -0
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.js +165 -0
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.js.map +1 -0
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +8 -3
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +41 -20
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts +1 -2
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js +1 -15
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts +32 -0
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js +91 -0
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js.map +1 -0
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js +3 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts +18 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +66 -9
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts +15 -10
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js +89 -12
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js +2 -2
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts +39 -0
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts.map +1 -0
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.js +21 -0
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.js.map +1 -0
- package/dist/esm/components/resources/CollectionSelectionControls.d.ts +4 -3
- package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionControls.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts +7 -2
- package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.js +38 -14
- package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts +4 -4
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.js +20 -13
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts +4 -3
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +40 -6
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +65 -23
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js +73 -10
- package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.labels.js +5 -0
- package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts +18 -0
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +57 -48
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +7 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.js +3 -4
- package/dist/esm/components/resources/ResourceLayout_Create.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.labels.js +10 -0
- package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts +5 -3
- package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.js +4 -3
- package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts +8 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js +83 -11
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts +5 -8
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.js +68 -19
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js +150 -44
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.js +62 -40
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js +68 -70
- package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.js +4 -10
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts +8 -9
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.js +67 -25
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js +8 -8
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts +8 -2
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.js +12 -7
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js +11 -6
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts +2 -0
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js +23 -5
- package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +5 -3
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +18 -7
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts +56 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.js +184 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.js.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts +3 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js +106 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js +55 -42
- package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.labels.js +0 -6
- package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts +8 -0
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +2 -3
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SortControl.js +3 -2
- package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts +29 -5
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +123 -41
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.d.ts +6 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.js +9 -7
- package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.d.ts +37 -15
- package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.js +37 -15
- package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
- package/dist/esm/components/resources/collection-selection-bar-density.d.ts +113 -0
- package/dist/esm/components/resources/collection-selection-bar-density.d.ts.map +1 -0
- package/dist/esm/components/resources/collection-selection-bar-density.js +175 -0
- package/dist/esm/components/resources/collection-selection-bar-density.js.map +1 -0
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts +2 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js +14 -2
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +61 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js +151 -15
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts +11 -0
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js +13 -0
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts +24 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js +47 -3
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts +35 -0
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts.map +1 -0
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js +36 -0
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js.map +1 -0
- package/dist/esm/components/resources/resource-header-geometry.d.ts +19 -0
- package/dist/esm/components/resources/resource-header-geometry.d.ts.map +1 -0
- package/dist/esm/components/resources/resource-header-geometry.js +19 -0
- package/dist/esm/components/resources/resource-header-geometry.js.map +1 -0
- package/dist/esm/components/resources/resourceLayout.utils.d.ts +28 -2
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js +45 -12
- package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.js +10 -0
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts +20 -4
- package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.js +19 -2
- package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FieldTiles.d.ts +48 -0
- package/dist/esm/components/resources/skeleton/FieldTiles.d.ts.map +1 -0
- package/dist/esm/components/resources/skeleton/FieldTiles.js +51 -0
- package/dist/esm/components/resources/skeleton/FieldTiles.js.map +1 -0
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js +2 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.js +5 -2
- package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts +77 -14
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js +98 -25
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts +7 -0
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js +9 -3
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts +3 -3
- package/dist/esm/components/resources/skeleton/SummaryLayout.js +3 -3
- package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +7 -5
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js +176 -65
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts +9 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.js +7 -0
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js +9 -5
- package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.js +31 -2
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +176 -61
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js +14 -7
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js +18 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +8 -0
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +3 -0
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +48 -17
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.js +226 -74
- package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.labels.js +2 -3
- package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
- package/dist/esm/components/sections/content-section.d.ts +2 -2
- package/dist/esm/components/sections/content-section.js.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.d.ts +19 -0
- package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.js +24 -0
- package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
- package/dist/esm/components/sections/section-legend-voice.context.d.ts +19 -0
- package/dist/esm/components/sections/section-legend-voice.context.d.ts.map +1 -0
- package/dist/esm/components/sections/section-legend-voice.context.js +21 -0
- package/dist/esm/components/sections/section-legend-voice.context.js.map +1 -0
- package/dist/esm/components/sections/section-legend-voice.d.ts +41 -0
- package/dist/esm/components/sections/section-legend-voice.d.ts.map +1 -0
- package/dist/esm/components/sections/section-legend-voice.js +67 -0
- package/dist/esm/components/sections/section-legend-voice.js.map +1 -0
- package/dist/esm/components/sections/stepper.d.ts +14 -0
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.js.map +1 -1
- package/dist/esm/components/sections/surface.d.ts.map +1 -1
- package/dist/esm/components/sections/surface.js +10 -2
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts +39 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js +187 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js +34 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +8 -8
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts +43 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js +142 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js +62 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +25 -8
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +275 -71
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +91 -14
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts +13 -8
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js +95 -23
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +25 -2
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts +67 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js +177 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js +45 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts +35 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js +137 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js +38 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js.map +1 -0
- package/dist/esm/components/settings/SettingsHub.d.ts +3 -3
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +98 -48
- package/dist/esm/components/settings/SettingsHub.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.labels.js +2 -0
- package/dist/esm/components/settings/SettingsHub.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js +21 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +24 -5
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.js +67 -9
- package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.js +3 -3
- package/dist/esm/components/views/chart-view/ChartView.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-export.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-export.utils.js +2 -9
- package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts +1 -0
- package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.js +10 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts +8 -6
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.js +10 -8
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js +2 -2
- package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts +6 -0
- package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts +3 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js +4 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts +0 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js +24 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts +29 -0
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts.map +1 -0
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js +104 -0
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js.map +1 -0
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts +16 -5
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js +219 -230
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts +5 -0
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js +15 -13
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts +13 -0
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts.map +1 -0
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js +44 -0
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js.map +1 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +6 -2
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +64 -9
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.d.ts +11 -1
- package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.js +25 -0
- package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
- package/dist/esm/core/app-shell/shell-layout.d.ts +138 -0
- package/dist/esm/core/app-shell/shell-layout.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-layout.js +143 -0
- package/dist/esm/core/app-shell/shell-layout.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts +13 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js +49 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts +95 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js +316 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts +217 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js +197 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts +46 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js +139 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts +108 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js +423 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js.map +1 -0
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js +6 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.js +11 -4
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +18 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +26 -4
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js +3 -22
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts +19 -3
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js +100 -13
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts +67 -0
- package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts.map +1 -0
- package/dist/esm/core/automated-layout/summary-value-naming.utils.js +100 -0
- package/dist/esm/core/automated-layout/summary-value-naming.utils.js.map +1 -0
- package/dist/esm/core/billing/BillingContext.d.ts +0 -17
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +6 -1
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts +2 -0
- package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts.map +1 -0
- package/dist/esm/core/branding/OrganizationBrandingPublisher.js +78 -0
- package/dist/esm/core/branding/OrganizationBrandingPublisher.js.map +1 -0
- package/dist/esm/core/branding/useBrandIdentity.d.ts +21 -0
- package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandIdentity.js +31 -5
- package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.d.ts +5 -0
- package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.js +1 -0
- package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
- package/dist/esm/core/branding/useDisplayableImageUrl.d.ts +4 -0
- package/dist/esm/core/branding/useDisplayableImageUrl.d.ts.map +1 -0
- package/dist/esm/core/branding/useDisplayableImageUrl.js +66 -0
- package/dist/esm/core/branding/useDisplayableImageUrl.js.map +1 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts +2 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts.map +1 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.js +23 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.js.map +1 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts +16 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js +35 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js.map +1 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +8 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.js +34 -5
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.js +4 -0
- package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +36 -0
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js +29 -2
- package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +10 -16
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.js +10 -16
- package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +12 -8
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.js +10 -0
- package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.d.ts +2 -2
- package/dist/esm/core/config/config-merge-utilities.d.ts +31 -3
- package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.js +61 -7
- package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts +83 -0
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js +100 -0
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js.map +1 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts +69 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js +65 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js.map +1 -0
- package/dist/esm/core/config/engine-settings-destinations.d.ts +13 -1
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +588 -155
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.d.ts +17 -3
- package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.js +1 -1
- package/dist/esm/core/config/execution-view.schemas.js.map +1 -1
- package/dist/esm/core/config/flows-actors-view.schemas.d.ts +12 -2
- package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/flows-actors-view.schemas.js +13 -1
- package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts +12 -11
- package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.js +14 -13
- package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +77 -27
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +18 -13
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts +79 -0
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js +95 -0
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js.map +1 -0
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts +19 -7
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.js +45 -10
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts +2 -2
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js +38 -5
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +94 -10
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +40 -3
- package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/useSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/useSettingsHubConfig.js +4 -1
- package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts +2 -2
- package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.js +7 -8
- package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts +16 -2
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +64 -4
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.d.ts +4 -0
- package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.js +34 -0
- package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.d.ts +16 -23
- package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.js +26 -29
- package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js +71 -9
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.d.ts +0 -4
- package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.js +5 -8
- package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.d.ts +21 -10
- package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.js.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts +35 -0
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +44 -5
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
- package/dist/esm/core/events/EventBusContext.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts +13 -1
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +89 -22
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +68 -4
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +67 -3
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts +9 -0
- package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts.map +1 -0
- package/dist/esm/core/events/useNotificationPreferenceKinds.js +50 -0
- package/dist/esm/core/events/useNotificationPreferenceKinds.js.map +1 -0
- package/dist/esm/core/execution/useExecution.js +1 -1
- package/dist/esm/core/execution/useExecution.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js +4 -0
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +3 -3
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts +52 -0
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts.map +1 -0
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js +88 -0
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js.map +1 -0
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts +20 -2
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js +18 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +7 -5
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +9 -6
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -1
- package/dist/esm/core/features/FeaturesContext.d.ts +9 -1
- package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
- package/dist/esm/core/features/FeaturesContext.js +38 -12
- package/dist/esm/core/features/FeaturesContext.js.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.js +4 -0
- package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +90 -33
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +153 -100
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/conversation-history.model.d.ts +41 -0
- package/dist/esm/core/flows-actors/conversation-history.model.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/conversation-history.model.js +65 -0
- package/dist/esm/core/flows-actors/conversation-history.model.js.map +1 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.d.ts +144 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.js +315 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.js.map +1 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts +29 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js +67 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.layout.d.ts +77 -0
- package/dist/esm/core/flows-actors/graph-view.layout.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.layout.js +169 -0
- package/dist/esm/core/flows-actors/graph-view.layout.js.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.model.d.ts +245 -0
- package/dist/esm/core/flows-actors/graph-view.model.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.model.js +414 -0
- package/dist/esm/core/flows-actors/graph-view.model.js.map +1 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts +12 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js +20 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js.map +1 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +36 -11
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.js +114 -29
- package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.js +1 -2
- package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js +2 -2
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts +3 -9
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js +3 -15
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts +2 -2
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js +2 -2
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +52 -3
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +80 -7
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts +82 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js +121 -6
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts +3 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +3 -1
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.d.ts +38 -4
- package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.js +103 -63
- package/dist/esm/core/icons/IconRegistryBridge.js.map +1 -1
- package/dist/esm/core/icons/IconRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryContext.js +41 -0
- package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts +44 -0
- package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.js +46 -0
- package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +2 -2
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts +64 -20
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +82 -51
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +130 -23
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.d.ts +4 -0
- package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.js +17 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
- package/dist/esm/core/navigation/ZoneChromeContext.d.ts +80 -0
- package/dist/esm/core/navigation/ZoneChromeContext.d.ts.map +1 -0
- package/dist/esm/core/navigation/ZoneChromeContext.js +130 -0
- package/dist/esm/core/navigation/ZoneChromeContext.js.map +1 -0
- package/dist/esm/core/navigation/launcher-resolution.d.ts +102 -2
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +194 -9
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts +35 -5
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.js +147 -18
- package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.d.ts +44 -14
- package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.js +87 -19
- package/dist/esm/core/navigation/navigation-cascade.js.map +1 -1
- package/dist/esm/core/navigation/navigation-commit.d.ts +45 -0
- package/dist/esm/core/navigation/navigation-commit.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-commit.js +68 -0
- package/dist/esm/core/navigation/navigation-commit.js.map +1 -0
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts +54 -3
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.js +91 -3
- package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +3 -3
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +3 -3
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +95 -22
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +190 -63
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts +8 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts.map +1 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.js +27 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.js.map +1 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts +64 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts.map +1 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js +212 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js.map +1 -0
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.js +17 -2
- package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +1 -0
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +51 -67
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.js +17 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -1
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts +17 -0
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts.map +1 -0
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js +32 -0
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts +2 -1
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-collapse.js +2 -1
- package/dist/esm/core/navigation/zone-collapse.js.map +1 -1
- package/dist/esm/core/navigation/zone-entry-organization.d.ts +34 -0
- package/dist/esm/core/navigation/zone-entry-organization.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-entry-organization.js +77 -0
- package/dist/esm/core/navigation/zone-entry-organization.js.map +1 -0
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts +15 -0
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.js +24 -0
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
- package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts +74 -0
- package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts.map +1 -0
- package/dist/esm/core/requests/automatic-resend-safety.frontend.js +52 -0
- package/dist/esm/core/requests/automatic-resend-safety.frontend.js.map +1 -0
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js +31 -0
- package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +2 -0
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +162 -98
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +283 -157
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts +9 -13
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +45 -97
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +25 -5
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js +56 -11
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.js +1 -2
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts +14 -0
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js +29 -0
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts +23 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.js +26 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts +1 -1
- package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/collection-export-url.frontend.utils.js +34 -16
- package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts +54 -11
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js +131 -63
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts +58 -0
- package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/date-filter-window.frontend.utils.js +70 -0
- package/dist/esm/core/resources/date-filter-window.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/frontend-resource.utils.d.ts +146 -7
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js +194 -22
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts +18 -4
- package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.js +26 -6
- package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +95 -2
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js +126 -13
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts +45 -0
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js +46 -0
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts +46 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js +86 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js +5 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts +28 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.js +43 -3
- package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts +26 -0
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.js +37 -0
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +40 -8
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js +333 -73
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts +175 -65
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js +245 -75
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts +9 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.js +57 -22
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.js.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistry.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistry.js +1 -0
- package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts +3 -0
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js +94 -35
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/types.d.ts +58 -6
- package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/types.js +17 -0
- package/dist/esm/core/resources/rmm/types.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +43 -6
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +49 -6
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.js +2 -0
- package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +2 -0
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js +10 -3
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts +22 -0
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js +31 -0
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts +36 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js +88 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/useBulkJobProgress.d.ts +6 -0
- package/dist/esm/core/resources/useBulkJobProgress.d.ts.map +1 -1
- package/dist/esm/core/resources/useBulkJobProgress.js +1 -0
- package/dist/esm/core/resources/useBulkJobProgress.js.map +1 -1
- package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts +14 -0
- package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts.map +1 -0
- package/dist/esm/core/resources/useCollectionFilterPresetScope.js +29 -0
- package/dist/esm/core/resources/useCollectionFilterPresetScope.js.map +1 -0
- package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts +7 -6
- package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
- package/dist/esm/core/resources/useHostlessResourceNavigation.js +35 -21
- package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.js +25 -10
- package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -1
- package/dist/esm/core/resources/useRecordSharing.d.ts +58 -0
- package/dist/esm/core/resources/useRecordSharing.d.ts.map +1 -0
- package/dist/esm/core/resources/useRecordSharing.js +220 -0
- package/dist/esm/core/resources/useRecordSharing.js.map +1 -0
- package/dist/esm/core/resources/useResourceLabels.d.ts +4 -1
- package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceLabels.js +31 -32
- package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts +23 -4
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js +219 -51
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts +10 -1
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js +7 -2
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts +5 -5
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js +5 -4
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/resources/useResourceSelection.d.ts +6 -0
- package/dist/esm/core/resources/useResourceSelection.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceSelection.js.map +1 -1
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts +47 -0
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js +117 -4
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +5 -2
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts +10 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +17 -2
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +5 -0
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js +4 -2
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts +19 -3
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.js +23 -7
- package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +3 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.d.ts +7 -2
- package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.js +56 -10
- package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
- package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts +23 -0
- package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts.map +1 -0
- package/dist/esm/core/security/ApplicationRoleTablesContext.js +27 -0
- package/dist/esm/core/security/ApplicationRoleTablesContext.js.map +1 -0
- package/dist/esm/core/security/AuthSessionContext.d.ts +26 -8
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js +81 -17
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts +13 -0
- package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts.map +1 -0
- package/dist/esm/core/security/RouteOrganizationDecisionContext.js +12 -0
- package/dist/esm/core/security/RouteOrganizationDecisionContext.js.map +1 -0
- package/dist/esm/core/security/StepUpAuthContext.js +5 -5
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts +13 -0
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +272 -103
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts +1 -0
- package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.js +3 -2
- package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts +43 -0
- package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/security/effective-permissions.frontend.utils.js +73 -0
- package/dist/esm/core/security/effective-permissions.frontend.utils.js.map +1 -0
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +175 -5
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.js +147 -6
- package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.d.ts +17 -5
- package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.js +0 -5
- package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
- package/dist/esm/core/security/useApplicationRoleTables.d.ts +3 -0
- package/dist/esm/core/security/useApplicationRoleTables.d.ts.map +1 -0
- package/dist/esm/core/security/useApplicationRoleTables.js +11 -0
- package/dist/esm/core/security/useApplicationRoleTables.js.map +1 -0
- package/dist/esm/core/security/useRouteOrganizationAccess.d.ts +9 -0
- package/dist/esm/core/security/useRouteOrganizationAccess.d.ts.map +1 -1
- package/dist/esm/core/security/useRouteOrganizationAccess.js +31 -10
- package/dist/esm/core/security/useRouteOrganizationAccess.js.map +1 -1
- package/dist/esm/core/security/useRouteOrganizationFollow.d.ts +24 -0
- package/dist/esm/core/security/useRouteOrganizationFollow.d.ts.map +1 -0
- package/dist/esm/core/security/useRouteOrganizationFollow.js +76 -0
- package/dist/esm/core/security/useRouteOrganizationFollow.js.map +1 -0
- package/dist/esm/core/ui/UIContext.d.ts +25 -2
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js +49 -37
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/design-token.utils.d.ts +0 -11
- package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token.utils.js +51 -83
- package/dist/esm/core/ui/design-token.utils.js.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.js +151 -59
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/themes/focus-indicator.d.ts +221 -0
- package/dist/esm/core/ui/themes/focus-indicator.d.ts.map +1 -0
- package/dist/esm/core/ui/themes/focus-indicator.js +229 -0
- package/dist/esm/core/ui/themes/focus-indicator.js.map +1 -0
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +7 -0
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.js +1 -2
- package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +45 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tailwind/index.d.ts.map +1 -1
- package/dist/esm/tailwind/index.js +3 -0
- package/dist/esm/tailwind/index.js.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.js +6 -2
- package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -1
- package/dist/esm/testing/mock-builders.d.ts +13 -1
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +35 -1
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing/rmm-helpers.d.ts +5 -3
- package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
- package/dist/esm/testing/rmm-helpers.js +3 -0
- package/dist/esm/testing/rmm-helpers.js.map +1 -1
- package/dist/esm/testing/test-providers.d.ts.map +1 -1
- package/dist/esm/testing/test-providers.js +3 -0
- package/dist/esm/testing/test-providers.js.map +1 -1
- package/package.json +7 -6
- package/dist/esm/components/flows-actors/flow-node.d.ts +0 -28
- package/dist/esm/components/flows-actors/flow-node.d.ts.map +0 -1
- package/dist/esm/components/flows-actors/flow-node.js +0 -115
- package/dist/esm/components/flows-actors/flow-node.js.map +0 -1
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts +0 -30
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts.map +0 -1
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.js +0 -17
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources-repository.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/resources/resources-repository.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Resources Repository Frontend Service\n *\n * Central entry point for building the frontend resource registry. Orchestrates:\n * 1. Factory execution — core + custom resource configs are built from their factories\n * 2. Operation filtering — only API_CALL / API_CALL_WITH_CALLBACK variants are retained\n * 3. Preset overlay — `ResourceUIBehavior` adds UI-specific config (icons, layouts, etc.)\n * 4. Schema bridge — `z_clone` schema mutations propagate to auto-derived DTOs\n * 5. FK resolution map — fieldIdentifier → resourceType, enriched from relationships\n * 6. URL generation — `initiatorInfos` populated on URL-bearing operations\n * 7. FK validation — all `isForeignKey()` fields must resolve (dev: throws, prod: logs)\n */\n\nimport { WildoBackendHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client.frontend.service';\nimport { WildoBackendHttpClient_Resources } from '~wildo-frontend-lib/core/requests/wildo-http-client-resources.frontend.service';\nimport { FrontendView_ScopeMode } from '~wildo-frontend-lib/core/config/views-frontend.schemas';\nimport {\n listResourceOwnedViewReferences,\n} from '~wildo-frontend-lib/core/config/resource-owned-view-resolution.frontend.utils';\nimport { envLoader } from '~wildo-frontend-lib/core/runtime/env-variable-loader.frontend.service';\nimport type { OperationKey, RelationshipDisplayOverride } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport type { ResourceUIBehavior } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n FRONTEND_SCHEMA_KEY,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n AnyResourceConfiguration,\n ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES,\n ResourceConfiguration_InitializationFactory,\n ResourcePrimaryScope,\n ResourceRelationship,\n coreShared_ResourcesConfigurations_FactoryMap,\n coreSharedResourceRelationship,\n coreResourceShared_FieldIdentifier,\n coreResourceShared_FieldIdentifierPriority,\n ResourceOperationVariantType,\n ResourceOperationFrontendSurface,\n ResourcesConfigOperationsUrlsBuilderUtils,\n ResourcesConfigOperationsDtosBuilderUtils,\n ErrorType,\n ErrorCustomMessageReference,\n computeSubtreeMap,\n CoreResourceOperation,\n deriveRequestDto,\n ParentDisplay,\n RelationshipDisplayConfigSchema,\n reconcileGeneratedRelationshipBulkOperations,\n Resources_SharedUtils,\n ResourceRelationshipAccessScopeStrategy,\n coreNotificationBadgeDefinitions,\n findDuplicateRelationshipRegistrations, describeCaughtError } from '@wildo-ai/saas-models';\nimport type {\n ResourceConfiguration_ResourceRelationships,\n NotificationBadgeDefinition,\n} from '@wildo-ai/saas-models';\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n FrontendResourcesRegistry,\n ResourceCompositeViewsConfig,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n buildResourceCompositeViewTranslationRef,\n type InsertedCompositeDeclaration,\n} from '~wildo-frontend-lib/core/config/composite-view.schemas';\nimport type {\n InsertedExecutionDeclaration,\n ResourceExecutionViewsConfig,\n} from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport { getZodObjectShape, isForeignKeyField, getSchemaType, FieldSchemaType, unwrapSchema, getCustomFieldMetadata, addDecorators, ZodDecorator, ForeignKeyDisplayMode, getDiscriminatedPolymorphicForeignKey, SCHEMA_METADATA, getFileMetadata, getFieldUIDisplayConfig, declaredFileNatureCanDisplay, FileDisplayPresentation, FileActivationPolicy } from '@wildo-ai/zod-decorators';\nimport type { ForeignKeyUIParams, FileUIDisplayParams } from '@wildo-ai/zod-decorators';\nimport { sharedErrorBuilder } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { AutomatedLayoutFrontendUtils } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.utils';\nimport type { z } from 'zod';\n\n/**\n * Checks whether a requestDto was auto-derived from mainSchema by comparing\n * field object references. CREATE DTOs use direct field refs; UPDATE DTOs\n * wrap fields in `.optional()`. Returns `true` if at least one field shares\n * a reference with mainSchema — indicating the DTO was auto-generated by\n * `deriveRequestDto` and should be rebuilt when mainSchema is replaced.\n */\nfunction isDtoDerivedFromSchema(requestDto: z.ZodTypeAny, mainSchema: z.ZodTypeAny): boolean {\n try {\n const dtoShape = getZodObjectShape(requestDto);\n const mainShape = getZodObjectShape(mainSchema);\n return Object.entries(dtoShape).some(([key, field]) => {\n const mainField = mainShape[key];\n if (!mainField) return false;\n return field === mainField || unwrapSchema(field) === mainField;\n });\n } catch {\n return false;\n }\n}\n\n/**\n * Re-establishes the per-field UI-behavior `fields` decorators on an auto-derived\n * operation DTO — both the **display** DTOs (`responseDto` / `summaryDto` / `contextDto`)\n * and the **request** DTO (`requestDto`, the edit-form input schema) — after\n * `frontendSchema` replaces `mainSchema`.\n *\n * ## Why this exists — the reference-severance trap\n *\n * Resource UI-behavior `fields` (e.g. `sh.status.enumUI(...)`, `sh.checklist.arrayUI(...)`)\n * are applied by **mutating the shared schema shape field's metadata in place** at\n * module-evaluation time (see `resourceUIBehavior` → `applySingleDecorator`, which writes\n * back to `field[SCHEMA_METADATA]`). `frontendSchema` (attached via `FRONTEND_SCHEMA_KEY`)\n * therefore carries every `fields` decorator on its shape.\n *\n * Every operation DTO the frontend reads, however — the READ/LIST **display** schema\n * (`operation.responseDto` / `summaryDto` / `contextDto`) AND the edit-form input schema\n * (`operation.requestDto`) — is re-derived by the DTO builder, applying transforms (date\n * coercion, backend-only stripping, nested-children; and for `requestDto`, create/update\n * field pruning + `.optional()` PATCH wrapping) that **re-wrap** optional / array /\n * compound fields into fresh instances. A `fields` decorator only reached the DTO when the\n * DTO field happened to be the *same object reference* as the schema field — true for bare\n * non-optional scalars (e.g. `title`), false for any re-wrapped field (an OPTIONAL\n * `checklist` array, an optional/defaulted enum, …). That accidental reference-sharing\n * channel is fragile and silently dropped decorators on exactly the fields that depend on\n * them (inline-editable arrays, optional enum badges).\n *\n * The `requestDto` is NOT exempt: array fields are always rebuilt into a fresh `z.array(…)`\n * (`stripTemplatableFileFieldsRecursively` — the array branch has no \"unchanged element →\n * keep instance\" guard, unlike record/map/set), so an `arrayUI({ objectItemLayout })` on\n * the edit-form `checklist` was severed and the form fell back to the CARD item layout\n * while the overlaid READ view rendered ROW. Hence this overlay runs over `requestDto` too.\n * See `.claude/plans/array-element-authoring.md` Step 4.\n *\n * ## What it does\n *\n * For each field the DTO shares (by name) with `frontendSchema`, it syncs the DTO field's\n * decorator metadata to the authoritative post-`fields` schema field. UI decorators are\n * **pure metadata** (no Zod refinement), so the DTO's *parse* contract is unaffected —\n * for `responseDto`/`contextDto` (which validate incoming HTTP responses) date coercion,\n * backend-only absence and nested children all remain intact; for `requestDto` (which\n * validates edit-form input before submit) the create/update pruning and PATCH optionality\n * are equally untouched. Only symbol-keyed `[SCHEMA_METADATA]` is written.\n *\n * ## Discriminated-union DTOs\n *\n * Field resolution uses `getObjectLikeFieldShape` — the SAME resolver `getFieldSchema`\n * (and therefore `DisplayField`) uses — so it walks **discriminated-union** DTOs. The\n * default READ DTO of a polymorphic resource (e.g. todos, whose `recurringType` is a\n * `.isDiscriminator()`) is a `ZodDiscriminatedUnion`, for which the object-only\n * `getZodObjectShape` returns nothing — the original cause of this overlay silently\n * skipping the very resources that need it. The union merge keeps field instances by\n * reference, so mutating the resolved field's metadata is exactly what the display reads.\n *\n * Eligibility (auto-derived vs custom author-owned) is decided by the CALLER via the\n * operation's `hasCustomResponseDto` / `hasCustomRequestDto` flags — NOT by\n * `isDtoDerivedFromSchema`, which is both union-blind and unreliable once the DTO builder\n * clones field instances.\n *\n * Per-field guards retained here:\n * - Fields with no resource-schema counterpart are skipped.\n * - Fields whose DTO instance IS the decorated schema instance are skipped (already correct).\n * - Only fields whose authoritative metadata actually differs are written.\n *\n * @param dto - The operation DTO to overlay (no-op when undefined / not object-like).\n * @param frontendSchema - The `FRONTEND_SCHEMA_KEY` schema carrying `fields` decorators.\n */\nfunction overlayUiBehaviorFieldDecorators(\n dto: z.ZodTypeAny | undefined,\n frontendSchema: z.ZodTypeAny,\n): void {\n if (!dto) return;\n\n // Union-aware shape resolution — identical to `getFieldSchema`'s, so the field instances\n // we mutate are the very ones the display reads back (the union merge keeps references).\n // Returns undefined for non-object-like schemas (e.g. a `{ data, pagination }` LIST wrapper\n // exposes only `data`/`pagination`, which never match resource field names anyway).\n const dtoShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(dto, { commonOnly: false });\n const frontendShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(frontendSchema, { commonOnly: false });\n if (!dtoShape || !frontendShape) return;\n\n for (const [fieldName, dtoField] of Object.entries(dtoShape)) {\n const frontendField = frontendShape[fieldName];\n // Skip fields with no resource-schema counterpart, and the bare-scalar case where the\n // DTO field IS the decorated schema instance (decorators already present, nothing to do).\n if (!frontendField || !dtoField || dtoField === frontendField) continue;\n\n const frontendMeta = getCustomFieldMetadata(frontendField);\n if (Object.keys(frontendMeta).length === 0) continue;\n\n const dtoMeta = getCustomFieldMetadata(dtoField);\n // `frontendSchema` is the authoritative post-`fields` truth for every field of an\n // auto-derived DTO. Sync when the DTO field is missing a decorator key OR carries a\n // stale value for one (a re-wrapped clone made before the in-place `fields` mutation).\n const needsSync = Object.keys(frontendMeta).some(\n (key) => !(key in dtoMeta) || (dtoMeta as Record<string, unknown>)[key] !== (frontendMeta as Record<string, unknown>)[key],\n );\n if (!needsSync) continue;\n\n // Write the merged metadata onto the DTO field's read node. `getCustomFieldMetadata`\n // traverses wrappers, so seeding with `dtoMeta` (the DTO field's current effective\n // metadata) preserves anything the DTO build placed on a deeper node; the\n // frontendSchema field wins on overlap. Values are read-only display config shared\n // within the single owning resource — no deep clone required.\n // `as any` for the symbol-keyed metadata write — same idiom as `applySingleDecorator`.\n (dtoField as any)[SCHEMA_METADATA] = { ...dtoMeta, ...frontendMeta };\n }\n}\n\n/**\n * The decorators that make a field a REFERENCE — its identity as a foreign key and how its picker\n * reads — and nothing else. Named so the carry-over below cannot quietly grow into a general overlay.\n */\nconst REFERENCE_IDENTITY_DECORATORS = [ZodDecorator.IS_FOREIGN_KEY, ZodDecorator.FOREIGN_KEY_UI] as const;\n\n/**\n * Give a CUSTOM request DTO's field the reference identity of the resource field it names.\n *\n * ## Why this exists\n *\n * A custom operation's `requestDto` is authored by hand, and the natural spelling of \"assign this todo\n * to a user\" is `requestDto: z.object({ assignedToUserId: z.string().min(1) })` — the field the\n * operation writes, by its own name. That field reached every form as a bare STRING: the form decides\n * \"reference picker\" from the field's own `isForeignKey` decorator, and nothing put one there. So\n * Wonder Todos' \"Assign\" asked for a user by making the person type a raw id into a text box, while\n * the backend — which resolves the reference through the RELATIONSHIP that names `assignedToUserId`,\n * scope confinement and all — knew perfectly well what it was.\n *\n * The resource already declares the answer twice (the schema field is `.isForeignKey()`, and a\n * relationship names it as its `foreignKeyField`). Asking every author to restate it on every custom\n * operation that writes the field is a question the framework can derive, and a forgotten restatement\n * fails silently as a text box.\n *\n * ## Why ONLY the reference identity, and not the general overlay\n *\n * `overlayUiBehaviorDtoDecorators` deliberately skips custom request DTOs: a custom DTO is the\n * author's shape, and copying the resource field's whole metadata would drag STRUCTURAL decorators\n * across with it — `excludeFromUpdate` on the resource field would hide the very input the custom\n * operation exists to collect. Whether a field IS a reference is not that kind of fact: it is what the\n * value MEANS, and a custom operation that writes `assignedToUserId` writes the same kind of value.\n *\n * ## Guards\n *\n * - a field the author already declared a reference is left exactly as authored, `foreignKeyUI` too;\n * - the shapes must agree — a scalar id against a scalar foreign key, a list against a list — or the\n * two fields merely share a name;\n * - only metadata is written, so the DTO's parse contract is untouched (the same argument as the\n * general overlay's).\n *\n * Caveat, shared with the general overlay: the write lands on the author's field INSTANCE. A field\n * schema reused as a constant in some other DTO carries the reference identity there too — correct\n * whenever the reuse means the same value, which is the only reason to reuse a field schema.\n */\nfunction carryReferenceIdentityOntoCustomRequestDto(\n requestDto: z.ZodTypeAny | undefined,\n resourceSchema: z.ZodTypeAny | undefined,\n): void {\n if (!requestDto || !resourceSchema) return;\n const dtoShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(requestDto, { commonOnly: false });\n const resourceShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(resourceSchema, { commonOnly: false });\n if (!dtoShape || !resourceShape) return;\n\n for (const [fieldName, dtoField] of Object.entries(dtoShape)) {\n const resourceField = resourceShape[fieldName];\n if (!dtoField || !resourceField) continue;\n if (!isForeignKeyField(resourceField) || isForeignKeyField(dtoField)) continue;\n const dtoIsList = getSchemaType(dtoField) === FieldSchemaType.ARRAY;\n const resourceIsList = getSchemaType(resourceField) === FieldSchemaType.ARRAY;\n if (dtoIsList !== resourceIsList) continue;\n\n const resourceMeta = getCustomFieldMetadata(resourceField) as Record<string, unknown>;\n const carried: Record<string, unknown> = {};\n for (const key of REFERENCE_IDENTITY_DECORATORS) {\n if (key in resourceMeta) carried[key] = resourceMeta[key];\n }\n // `as any` for the symbol-keyed metadata write — same idiom as `overlayUiBehaviorFieldDecorators`.\n (dtoField as any)[SCHEMA_METADATA] = { ...getCustomFieldMetadata(dtoField), ...carried };\n }\n}\n\nexport class ResourcesRepositoryFrontendService {\n private registry: FrontendResourcesRegistry | null = null;\n private isInitialized = false;\n private resourcesHttpClient: WildoBackendHttpClient_Resources | null = null;\n\n constructor(\n private httpClient: WildoBackendHttpClient\n ) {}\n\n /**\n * Build a proper WildoError for resource configuration errors.\n * Uses the shared error builder (no circular dependency with FrontendResourceUtils).\n */\n private buildConfigurationError(\n customMessageReference: ErrorCustomMessageReference,\n context?: Record<string, any>\n ): Error {\n const wildoError = sharedErrorBuilder.buildWildoError_Frontend(\n ErrorType.CONFIGURATION,\n { customMessageReference, context }\n );\n const error = new Error(customMessageReference);\n (error as any).wildoError = wildoError;\n return error;\n }\n\n /**\n * Initialize the resource registry.\n *\n * ALL backend resources are included in the registry, but only API_CALL and\n * API_CALL_WITH_CALLBACK operation variants are retained — backend-only variants\n * (CRON_JOB, BATCH_JOB, INTERNAL_CALL, REPOSITORY_ONLY) are excluded.\n * The `resourceUIBehavior` overlays UI behavior (icons, sections, layouts, labels,\n * operation surfaces) on resources it covers. Resources without a preset entry\n * have no UI presence but remain API-callable.\n */\n public async initializeResources(\n customShared_ResourcesConfigurationsFactoryMap?: { [key: string]: ResourceConfiguration_InitializationFactory<any, any, any> },\n customShared_ResourceFieldIdentifier?: { [key: string]: string },\n customShared_ResourcesRelationships?: ResourceRelationship[],\n excludedResourceTypes?: ReadonlySet<string>,\n resourceUIBehavior?: ResourceUIBehavior,\n customNotificationBadgeDefinitions?: NotificationBadgeDefinition[],\n ): Promise<void> {\n if (this.isInitialized) {\n return;\n }\n\n try {\n const allResourceFieldIdentifiers: { [key: string]: string } = {\n ...customShared_ResourceFieldIdentifier,\n ...coreResourceShared_FieldIdentifier,\n };\n\n const assembledResourceRelationships: ResourceRelationship[] = [\n ...(customShared_ResourcesRelationships || []),\n ...coreSharedResourceRelationship,\n ];\n\n // ── DUPLICATE-EDGE GUARD (fail-closed, mirrors the backend registry) ─────\n //\n // This registry has only TWO sources, so it cannot reproduce the backend's\n // \"same list through two slots\" fold. It CAN still receive an intra-list\n // duplicate, because the app's shared relationship list is itself a\n // `modules.flatMap(...)` — a module registered twice, or two modules\n // declaring the same edge, lands the edge twice here. The frontend and\n // backend module registries are authored independently, so a frontend-only\n // duplicate is reachable.\n //\n // The frontend is where several of the non-benign consequences live: form\n // semantics throw in development (and silently lose the field in\n // production) on duplicate relationship-object field identity, quick-create\n // affordances and PARENT_CONTEXT_SINGLETON / complete-association addressing\n // modes are dropped by ambiguity checks, and a nested child section renders\n // twice with a duplicated React key. Fail closed at assembly instead, where\n // the message can name the edge.\n //\n // Checked pre-compilation on the AUTHORED declarations, for the same reason\n // the backend does: `ensureCompiledRelationships` may preserve pre-resolved\n // semantics on one copy and recompile the other.\n const duplicateRelationshipRegistrations = findDuplicateRelationshipRegistrations(\n assembledResourceRelationships,\n );\n if (duplicateRelationshipRegistrations.length > 0) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n {\n message:\n `${duplicateRelationshipRegistrations.length} relationship edge(s) registered more than once:\\n` +\n duplicateRelationshipRegistrations.map((duplicate) => ` • ${duplicate.message}`)\n .join('\\n'),\n duplicatedEdges: duplicateRelationshipRegistrations.map(\n (duplicate) =>\n `${String(duplicate.parentResourceType)} → ${String(duplicate.childResourceType)} (×${duplicate.occurrences})`,\n ),\n },\n );\n }\n\n let allResourceRelationships: ResourceRelationship[] = (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, assembledResourceRelationships, allResourceFieldIdentifiers);\n\n // Apply factory functions for custom shared resources configurations\n const customShared_ResourcesConfigurations: { [key: string]: AnyResourceConfiguration } = {};\n if (customShared_ResourcesConfigurationsFactoryMap && Object.keys(customShared_ResourcesConfigurationsFactoryMap).length > 0) {\n Object.entries(customShared_ResourcesConfigurationsFactoryMap).forEach(([resourceType, factory]) => {\n if (factory && typeof factory === 'function') {\n customShared_ResourcesConfigurations[resourceType] = factory(allResourceRelationships);\n }\n });\n }\n\n // Apply factory functions for core shared resources configurations\n const coreShared_ResourcesConfigurations: { [key: string]: AnyResourceConfiguration } = {};\n if (coreShared_ResourcesConfigurations_FactoryMap && Object.keys(coreShared_ResourcesConfigurations_FactoryMap).length > 0) {\n Object.entries(coreShared_ResourcesConfigurations_FactoryMap).forEach(([resourceType, factory]) => {\n if (factory && typeof factory === 'function') {\n coreShared_ResourcesConfigurations[resourceType] = factory(allResourceRelationships);\n }\n });\n }\n\n // Merge all resource configurations\n let allResourceConfigurations: { [key: string]: AnyResourceConfiguration } = {\n ...coreShared_ResourcesConfigurations,\n ...customShared_ResourcesConfigurations,\n };\n\n // ── Resource Exclusion ─────────────────────────────────────────\n // Generic mechanism: remove excluded resource types from all 3 layers\n // (configurations, relationships, field identifiers).\n // Used for billing-conditional resources when billing is disabled.\n //\n // The engine's own runtime floor is subtracted first and REFUSED loudly: see\n // `ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES` for why honouring such an exclusion breaks\n // authentication rather than a feature. Refusing here — at the one place exclusion is applied\n // — is what makes the floor unbypassable, instead of a rule each application must remember.\n const refusedExclusions: string[] = [...(excludedResourceTypes ?? [])].filter(\n (resourceType) => ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES.has(resourceType),\n );\n if (refusedExclusions.length > 0) {\n console.warn(\n `[ResourcesRepository] Refusing to exclude ${refusedExclusions.join(', ')}: the engine's own `\n + 'runtime reads these to restore an authenticated session, so honouring the exclusion would make '\n + 'login succeed and then immediately bounce back to the login form. They stay registered.',\n );\n }\n const effectiveExcludedResourceTypes: ReadonlySet<string> | undefined = refusedExclusions.length > 0\n ? new Set<string>(\n [...(excludedResourceTypes ?? [])].filter(\n (resourceType) => !ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES.has(resourceType),\n ),\n )\n : excludedResourceTypes;\n\n if (effectiveExcludedResourceTypes && effectiveExcludedResourceTypes.size > 0) {\n // Layer 1: Remove excluded resource configurations\n allResourceConfigurations = Object.fromEntries(\n Object.entries(allResourceConfigurations).filter(\n ([resourceType]) => !effectiveExcludedResourceTypes.has(resourceType)\n )\n );\n\n // Layer 2: Remove relationships that reference excluded types\n allResourceRelationships = allResourceRelationships.filter(\n (rel) => !effectiveExcludedResourceTypes.has(rel.resourceType1) && !effectiveExcludedResourceTypes.has(rel.resourceType2)\n );\n\n // Layer 3: Remove excluded field identifiers\n for (const resourceType of effectiveExcludedResourceTypes) {\n delete allResourceFieldIdentifiers[resourceType];\n }\n }\n\n this.normalizeResourceConfigurationRelationships(\n allResourceConfigurations,\n allResourceFieldIdentifiers,\n );\n\n const frontendResourceConfigurations = this.buildFrontendResourceConfigurations(\n allResourceConfigurations,\n allResourceFieldIdentifiers,\n resourceUIBehavior,\n );\n\n reconcileGeneratedRelationshipBulkOperations(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>,\n allResourceRelationships,\n allResourceFieldIdentifiers\n );\n\n ResourcesConfigOperationsDtosBuilderUtils.rebuildResourceConfigurationsOperationDtos(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>\n );\n\n // Re-apply ui-behavior `fields` decorators onto the freshly-rebuilt operation DTOs.\n // The rebuild above re-derives every DTO from each resource's (decorated) mainSchema\n // but re-wraps optional/array/compound fields into fresh instances — severing the\n // in-place `fields` metadata for exactly those fields (an OPTIONAL inline-editable\n // `checklist` array, an optional/defaulted enum badge, …). This restores them on every\n // DTO the frontend reads: the DISPLAY DTOs (responseDto/summaryDto/contextDto) the\n // read/list views resolve `ctx.schema` from, AND the edit-form requestDto (so\n // `objectItemLayout` and other array `fields` survive on the UPDATE/CREATE form).\n // MUST run after the rebuild, or it is silently discarded. See\n // `overlayUiBehaviorFieldDecorators` for the rationale.\n this.overlayUiBehaviorDtoDecorators(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>,\n resourceUIBehavior,\n );\n\n // A custom request DTO that names one of the resource's foreign keys collects a REFERENCE, and\n // must render as one (the searchable picker, not a text box). Every resource, preset or not:\n // the identity lives on the schema, not in the ui-behavior. See\n // `carryReferenceIdentityOntoCustomRequestDto`.\n this.carryReferenceIdentityOntoCustomRequestDtos(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>,\n );\n\n // Reverse map fieldIdentifier → REFERENCED resourceType — built by THE shared\n // implementation (Resources_SharedUtils.buildFieldIdentifierToResourceTypeMap).\n // This repository and the backend registry service used to carry hand-kept\n // copies of this logic; a semantic change to FK resolution now lands once.\n const fieldIdentifierToResourceType = Resources_SharedUtils.buildFieldIdentifierToResourceTypeMap({\n allResourceFieldIdentifiers,\n allResourceRelationships,\n getMainSchema: (resourceType) => frontendResourceConfigurations[resourceType]?.mainSchema as z.ZodTypeAny | undefined,\n fieldIdentifierPriority: coreResourceShared_FieldIdentifierPriority,\n onForeignKeyCollision: ({ foreignKeyField, existingType, referencedResourceType }) => {\n console.error(\n `[ResourcesRegistry] FK field \"${foreignKeyField}\" is reused by different holders ` +\n `referencing \"${existingType}\" and \"${referencedResourceType}\". ` +\n `Keeping \"${existingType}\". Use distinct foreignKeyField names to disambiguate.`,\n );\n },\n });\n\n // Derive the scope-required reference-search junctions (e.g. (users ←\n // organizations) via organizationMembers) — mirrors the backend registry\n // so the picker scopes its searches exactly how the backend filters +\n // authorizes them.\n const manyToManyScopeJunctions = Resources_SharedUtils.buildManyToManyScopeJunctionMap(\n allResourceRelationships,\n allResourceFieldIdentifiers,\n );\n\n // Create the frontend registry\n this.registry = {\n allResourceFieldIdentifiers: allResourceFieldIdentifiers,\n fieldIdentifierToResourceType: fieldIdentifierToResourceType,\n manyToManyScopeJunctions,\n // Framework-shipped badge definitions ∪ app-custom (threaded from the\n // frontend bootstrap's ApplicationInitializationConfig, R8).\n notificationBadgeDefinitions: [\n ...coreNotificationBadgeDefinitions,\n ...(customNotificationBadgeDefinitions ?? []),\n ],\n additionalUserNotificationDefinitions: [],\n resourceRelationships: allResourceRelationships,\n resourceConfigurations: frontendResourceConfigurations,\n subtreeMap: computeSubtreeMap(allResourceRelationships),\n };\n\n this.generateUrlsForApiCallOperations(frontendResourceConfigurations, allResourceFieldIdentifiers);\n\n // Create the resources HTTP client with the initialized registry\n this.resourcesHttpClient = new WildoBackendHttpClient_Resources(this.registry, {\n baseURL: this.httpClient.getBaseURL(),\n timeout: 30000,\n enableNetworkQueue: true\n });\n\n // Validate that all FK fields in registered schemas can be resolved.\n // This catches configuration errors early — before components try to render FK fields.\n this.validateForeignKeyResolution(frontendResourceConfigurations, fieldIdentifierToResourceType);\n this.validateResourceOwnedViewRefUniqueness(frontendResourceConfigurations);\n this.validateFileDisplayPolicyCoherence(frontendResourceConfigurations);\n\n this.isInitialized = true;\n } catch (error) {\n // If it's already a WildoError (from buildConfigurationError), re-throw as-is\n if ((error as any)?.wildoError) {\n throw error;\n }\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n { message: `Failed to initialize frontend resources: ${describeCaughtError(error)}` }\n );\n }\n }\n\n private normalizeResourceConfigurationRelationships(\n allResourceConfigurations: { [key: string]: AnyResourceConfiguration },\n allResourceFieldIdentifiers: Record<string, string>,\n ): void {\n for (const resourceConfig of Object.values(allResourceConfigurations)) {\n resourceConfig.resourceRelationships = {\n parentRelationships: (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, resourceConfig.resourceRelationships.parentRelationships, allResourceFieldIdentifiers),\n childRelationships: (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, resourceConfig.resourceRelationships.childRelationships, allResourceFieldIdentifiers),\n selfRelationships: (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, resourceConfig.resourceRelationships.selfRelationships, allResourceFieldIdentifiers),\n };\n }\n }\n\n /**\n * Run {@link carryReferenceIdentityOntoCustomRequestDto} over every author-owned request DTO of\n * every resource. The general overlay below skips these DTOs on purpose; this carries the one fact\n * it may not skip — which of their fields are references.\n */\n private carryReferenceIdentityOntoCustomRequestDtos(\n resourceConfigurations: Record<string, AnyResourceConfiguration>,\n ): void {\n for (const entry of Object.values(resourceConfigurations)) {\n for (const op of entry.operations ?? []) {\n if ((op as any).hasCustomRequestDto) {\n carryReferenceIdentityOntoCustomRequestDto((op as any).requestDto, (entry as any).mainSchema);\n }\n }\n }\n }\n\n /**\n * Re-applies ui-behavior `fields` decorators onto the rebuilt operation DTOs the frontend\n * reads — both the DISPLAY DTOs (`responseDto` / `summaryDto` / `contextDto`) and the\n * edit-form REQUEST DTO (`requestDto`).\n *\n * MUST run AFTER `rebuildResourceConfigurationsOperationDtos`: that rebuild's\n * `buildAllOperationDtos` pass re-derives every DTO from each resource's (decorated)\n * mainSchema, producing fresh field instances that lose the in-place `fields` metadata on\n * every re-wrapped (optional / array / compound) field. Running the overlay inside\n * `buildFrontendResourceConfigurations` would be silently discarded by that rebuild.\n *\n * Scoped to resources that declared a ui-behavior preset (every preset entry carries the\n * `FRONTEND_SCHEMA_KEY` decorated schema). The response/context overlay is gated by the\n * operation's `hasCustomResponseDto` flag and the request overlay by `hasCustomRequestDto`,\n * so author-owned custom DTOs are untouched. `summaryDto` is always a framework projection\n * of the resource schema.\n *\n * The `requestDto` leg matters because an `arrayUI({ objectItemLayout })` (and every other\n * array/compound `fields` decorator) is severed by the array-rebuild in the DTO builder;\n * without this leg the edit form loses ROW item layout and falls back to CARD while the\n * overlaid READ view renders ROW — an inconsistency between the two surfaces of the SAME\n * field. See `overlayUiBehaviorFieldDecorators` for per-field mechanics and parse-safety.\n */\n private overlayUiBehaviorDtoDecorators(\n resourceConfigurations: Record<string, AnyResourceConfiguration>,\n preset?: ResourceUIBehavior,\n ): void {\n if (!preset) return;\n for (const [resourceType, presetConfig] of Object.entries(preset)) {\n const frontendSchema = (presetConfig as Record<symbol, z.ZodTypeAny>)[FRONTEND_SCHEMA_KEY];\n if (!frontendSchema) continue;\n const entry = resourceConfigurations[resourceType];\n if (!entry?.operations) continue;\n for (const op of entry.operations) {\n if (!(op as any).hasCustomResponseDto) {\n overlayUiBehaviorFieldDecorators((op as any).responseDto, frontendSchema);\n overlayUiBehaviorFieldDecorators((op as any).contextDto, frontendSchema);\n }\n // The edit form (`ResourceAutomatedForm`) resolves its field schemas from\n // `requestDto`; the create/update DTO builder rebuilt its array/compound fields\n // fresh, so restore the `fields` decorators here for auto-derived request DTOs.\n if (!(op as any).hasCustomRequestDto) {\n overlayUiBehaviorFieldDecorators((op as any).requestDto, frontendSchema);\n }\n overlayUiBehaviorFieldDecorators((op as any).summaryDto, frontendSchema);\n }\n }\n }\n\n /**\n * Build the frontend resource configurations from backend configs with preset overlay.\n *\n * The registry contains ALL backend resources, but only API_CALL and\n * API_CALL_WITH_CALLBACK operation variants — backend-only variants (CRON_JOB,\n * BATCH_JOB, INTERNAL_CALL, REPOSITORY_ONLY) are excluded. The preset is a UI\n * addon that overlays frontend-specific config (icons, sections, layouts, labels,\n * operation surface selectors, etc.) on top of backend structural data.\n *\n * Every operation ends the build with an explicit frontend SURFACE\n * (`ResourceOperationFrontendSurface`) on its `operationFrontendConfig` — see\n * Step 2.5:\n * - **ADDRESSABLE** — preset `addressable()`; has a route/URL + action button\n * - **EMBEDDED** — preset `notAddressable()`; non-addressable view rendered within a host (overlay/composite/nested)\n * - **API_ONLY** — preset `apiOnly()`, the operation's `defaultFrontendPosture`,\n * or the default for any operation no preset surfaces; headless (callable via\n * httpClient, no UI). Read the surface via `isOperationAddressable()` /\n * `isOperationHeadless()`, never by config presence.\n */\n private buildFrontendResourceConfigurations(\n backendConfigurations: { [key: string]: AnyResourceConfiguration },\n allResourceFieldIdentifiers: Record<string, string>,\n preset?: ResourceUIBehavior,\n ): { [key: string]: AnyFrontendResourceConfiguration } {\n const result: { [key: string]: AnyFrontendResourceConfiguration } = {};\n\n // ── Step 1: Seed registry with all resources, retaining only frontend-callable operations.\n // Backend-only variants (CRON_JOB, BATCH_JOB, INTERNAL_CALL, REPOSITORY_ONLY) are\n // stripped here — they have no HTTP endpoint and no UI representation.\n for (const [resourceType, backendConfig] of Object.entries(backendConfigurations)) {\n result[resourceType] = {\n ...backendConfig,\n operations: (backendConfig.operations ?? [])\n .filter(op => op.variantType === ResourceOperationVariantType.API_CALL\n || op.variantType === ResourceOperationVariantType.API_CALL_WITH_CALLBACK)\n .map(op => ({\n ...op,\n operationFrontendConfig: undefined,\n })),\n frontendConfiguration: undefined,\n } as AnyFrontendResourceConfiguration;\n }\n\n // ── Step 2: Overlay preset (ResourceUIBehavior) onto seeded resources.\n // Each preset entry provides resource-level config (icon, sections, labels)\n // and per-operation frontend config (surface, views, tabs).\n if (preset) {\n for (const [resourceType, presetConfig] of Object.entries(preset)) {\n const entry = result[resourceType];\n if (!entry) {\n console.warn(\n `[ResourcesRegistry] Frontend preset references resource \"${resourceType}\" ` +\n `which has no backend configuration. Skipping.`\n );\n continue;\n }\n\n const {\n views: presetViews,\n relationshipOverrides,\n compositeViews: authoredCompositeViews,\n executionViews: authoredExecutionViews,\n ...resourceLevelConfig\n } = presetConfig;\n const frontendSchema = (presetConfig as any)[FRONTEND_SCHEMA_KEY];\n\n // Schema bridge for z_clone — when `resourceUIBehavior()` attached a DISTINCT cloned\n // schema (via FRONTEND_SCHEMA_KEY Symbol), replace mainSchema on the resource so the\n // operation-DTO rebuild (`rebuildResourceConfigurationsOperationDtos`, run from\n // `initialize` right after this method) derives every DTO from the DECORATED schema,\n // and rebuild the CREATE/UPDATE requestDto here too. Only DTOs auto-derived from the\n // original mainSchema are rebuilt — custom DTOs are left unchanged. (For the common\n // same-instance case — ui-behavior decorated the backend schema in place, e.g. Wonder\n // Todos — `frontendSchema === entry.mainSchema` already, so mainSchema is decorated\n // without replacement.)\n //\n // NOTE: the per-field `fields` decorator overlay does NOT live here. Every DTO\n // produced in this method is subsequently REBUILT from scratch by\n // `rebuildResourceConfigurationsOperationDtos` (its `buildAllOperationDtos` pass\n // re-wraps optional/array/compound fields into fresh instances), which would discard\n // any overlay applied now. The overlay therefore runs AFTER that rebuild — see\n // `overlayUiBehaviorDtoDecorators`, invoked from `initialize`.\n if (frontendSchema && frontendSchema !== entry.mainSchema) {\n const oldMainSchema = entry.mainSchema;\n (entry as any).mainSchema = frontendSchema;\n for (const op of entry.operations) {\n if (!(op as any).requestDto) continue;\n const effectiveOp = (op as any).resourceOperationLike\n ? String((op as any).resourceOperationLike)\n : String(op.operationIdentifier);\n if ((effectiveOp === CoreResourceOperation.CREATE || effectiveOp === CoreResourceOperation.UPDATE)\n && isDtoDerivedFromSchema((op as any).requestDto, oldMainSchema)) {\n (op as any).requestDto = deriveRequestDto(effectiveOp, frontendSchema, undefined);\n }\n }\n }\n\n // Apply resource-level config (icon, sections, labels, field addons, etc.)\n // `relationshipOverrides` is already destructured out — it's a build-time\n // directive consumed below, not stored on frontendConfiguration.\n const compiledCompositeViews = this.buildResourceCompositeViewDefinitions(\n resourceType,\n entry.resourcePrimaryScope ?? ResourcePrimaryScope.ORGANIZATIONS,\n authoredCompositeViews,\n );\n const compiledExecutionViews = this.buildResourceExecutionViewDefinitions(\n entry.resourcePrimaryScope ?? ResourcePrimaryScope.ORGANIZATIONS,\n authoredExecutionViews,\n );\n entry.frontendConfiguration = {\n ...resourceLevelConfig,\n ...(compiledCompositeViews.length > 0 && {\n compositeViews: compiledCompositeViews,\n }),\n ...(compiledExecutionViews.length > 0 && {\n executionViews: compiledExecutionViews,\n }),\n };\n\n // Apply per-operation frontend config — matches preset views keys\n // to registered API_CALL/API_CALL_WITH_CALLBACK operations. Authored\n // `iconOverride` rides along on `operationFrontendConfig`; the\n // `IconRegistryBridge` reads it from each operation at render time\n // and surfaces it into `CoreIconRegistry.operationResources`.\n if (presetViews) {\n for (const [operationKey, opConfig] of presetViews) {\n const matchedOp = this.findOperationByPresetKey(\n entry.operations as FrontendResourceConfiguration_Operation[],\n operationKey,\n );\n if (matchedOp) {\n matchedOp.operationFrontendConfig = opConfig;\n }\n }\n }\n // Apply relationship display overrides — clones affected relationships\n // to avoid mutating shared references across resource buckets.\n if (relationshipOverrides && relationshipOverrides.length > 0) {\n this.resolveRelationshipDisplayOverrides(\n resourceType,\n entry.resourceRelationships,\n relationshipOverrides,\n allResourceFieldIdentifiers,\n );\n }\n\n // Resource-level icon rides on `entry.frontendConfiguration.icon`\n // (spread above from `resourceLevelConfig`, which keeps every\n // `ResourceUIBehaviorConfig` field that isn't `views` / `relationshipOverrides`\n // / `compositeViews` / `executionViews`). The `IconRegistryBridge`\n // walks the registry and populates `CoreIconRegistry.resources` from\n // this field. No side-effecting registration call needed here.\n }\n }\n\n // ── Step 2.5: Resolve the frontend SURFACE for every operation.\n // After the preset overlay, any operation without an explicit surface falls\n // back to its backend-authored `defaultFrontendPosture`, else a per-kind default\n // (BULK ops → EMBEDDED so the bulk bar isn't emptied; else API_ONLY headless —\n // callable via httpClient, no UI). This makes the third tier an\n // explicit `surface` on every operation rather than an implicit `undefined`,\n // so the surface is auditable end-to-end (spec distillation, navigation,\n // action bars all read it via `isOperationAddressable()`/`isOperationHeadless()`).\n //\n // It also fail-closes the one illegal combination the `apiOnly()` factory\n // signature cannot catch on a hand-written literal: an API_ONLY operation must\n // carry NO view fields (a headless operation has no action button, layout,\n // icon, or custom view).\n for (const [resourceType, entry] of Object.entries(result)) {\n for (const op of entry.operations) {\n if (op.operationFrontendConfig === undefined) {\n // Default for an unsurfaced operation: its backend-authored\n // `defaultFrontendPosture`, else a per-kind default. BULK operations are\n // auto-generated (`DELETE_MANY`/`UPDATE_MANY` + generated relationship bulk\n // ops) and can NEVER be authored in a preset — preset `views` keys resolve\n // to the non-bulk variant — yet they DO render, in the bulk action bar. So\n // they default to EMBEDDED (a view rendered in a host), not API_ONLY;\n // otherwise the action-bar headless filter would empty the entire bulk bar.\n // Non-bulk unsurfaced operations default to API_ONLY (truly headless — no\n // preset gave them a view).\n op.operationFrontendConfig = {\n surface: op.defaultFrontendPosture\n ?? (op.isBulkOperation\n ? ResourceOperationFrontendSurface.EMBEDDED\n : ResourceOperationFrontendSurface.API_ONLY),\n };\n continue;\n }\n if (op.operationFrontendConfig.surface === ResourceOperationFrontendSurface.API_ONLY) {\n const cfg = op.operationFrontendConfig;\n const hasViewField =\n cfg.actionVisibility !== undefined ||\n cfg.actionPlacement !== undefined ||\n cfg.actionPresentation !== undefined ||\n cfg.actionVariant !== undefined ||\n cfg.customView !== undefined ||\n cfg.displayPresetOverride !== undefined ||\n (cfg.navigationOverrides?.length ?? 0) > 0 ||\n cfg.displayPriority !== undefined ||\n cfg.iconOverride !== undefined ||\n cfg.collectionDisplayConfig !== undefined ||\n cfg.hasDescription !== undefined;\n if (hasViewField) {\n throw new Error(\n `[ResourcesRegistry] Operation \"${String(op.operationIdentifier)}\" on resource ` +\n `\"${resourceType}\" declares surface API_ONLY (headless) but carries view-only ` +\n `frontend config (action/layout/icon/customView). A headless operation has no UI ` +\n `surface — drop the view fields, or change its surface to ADDRESSABLE/EMBEDDED.`\n );\n }\n }\n }\n }\n\n // ── Step 3: Derive FK field display from relationship parentDisplay.\n // For each resource's parentRelationships, set `foreignKeyUI.display`\n // on the FK schema field based on the relationship's `inChildView.parentDisplay`.\n // Only fills gaps — explicit `.foreignKeyUI()` on the schema field always wins.\n for (const [resourceType, entry] of Object.entries(result)) {\n this.deriveForeignKeyDisplayFromRelationships(\n resourceType,\n entry,\n allResourceFieldIdentifiers,\n );\n }\n\n console.info(\n `[ResourcesRegistry] Frontend registry built: ` +\n `${Object.keys(result).length} resource(s) total, ` +\n `${preset ? Object.keys(preset).length : 0} with UI behavior.`\n );\n\n return result;\n }\n\n\n private buildResourceCompositeViewDefinitions(\n resourceType: string,\n primaryScope: ResourcePrimaryScope,\n compositeViews: ResourceCompositeViewsConfig | undefined,\n ): InsertedCompositeDeclaration[] {\n if (!compositeViews) {\n return [];\n }\n\n return Object.entries(compositeViews).map(([ref, authoredView]) => ({\n ref,\n translationRef: buildResourceCompositeViewTranslationRef(resourceType, ref),\n scope: FrontendView_ScopeMode.RESOURCE,\n isAddressable: true,\n operationLike: authoredView.operationLike ?? CoreResourceOperation.READ,\n primaryScope,\n sectionRefs: authoredView.sectionRefs,\n viewComponent: authoredView.viewComponent,\n icon: authoredView.icon,\n }));\n }\n\n private buildResourceExecutionViewDefinitions(\n primaryScope: ResourcePrimaryScope,\n executionViews: ResourceExecutionViewsConfig | undefined,\n ): InsertedExecutionDeclaration[] {\n if (!executionViews) {\n return [];\n }\n\n return Object.entries(executionViews).map(([ref, executionView]) => ({\n ref,\n scope: FrontendView_ScopeMode.RESOURCE,\n isAddressable: executionView.isAddressable ?? true,\n primaryScope: executionView.primaryScope ?? primaryScope,\n parentResourcesRequirements: executionView.parentResourcesRequirements,\n additionalResourceRequirements: executionView.additionalResourceRequirements,\n anchor: executionView.anchor,\n surfaceInOperations: executionView.surfaceInOperations,\n participations: executionView.participations,\n viewComponent: executionView.viewComponent,\n requiredFeatures: executionView.requiredFeatures,\n // View-local i18n label declarations must survive the authoring→compiled\n // mapping: the companion labelling collector reads `executionView.labels`\n // off the compiled definition to generate\n // `views.execution.resources.<res>.<ref>.<labelRef>`. Dropping it here\n // (this map lists fields explicitly, it does not spread) silently strips\n // the whole custom-label set — the keys never reach generation.\n labels: executionView.labels,\n // Same survival requirement as `labels`: the IconRegistryBridge reads\n // `icon` off the compiled definition (`view-execution-{ref}` custom key).\n icon: executionView.icon,\n // Same again for the launcher presentation: `ResourceLayout_InsertedViews`\n // reads `launcher` off the COMPILED definition to decide which host slot\n // renders this view's entry point (and how). Dropped here, every view\n // would silently fall back to the framework default placement.\n launcher: executionView.launcher,\n }));\n }\n\n /**\n * Resolve relationship display overrides declared in the frontend preset.\n *\n * For each override entry, searches all three relationship buckets\n * (`parentRelationships`, `childRelationships`, `selfRelationships`) for\n * a match by target resource type (and optional FK field for disambiguation).\n *\n * **Shared reference safety**: Relationship objects are shared across different\n * resources' buckets (e.g., the same `ResourceRelationship` appears in parent A's\n * `childRelationships` and child B's `parentRelationships`). To prevent mutations\n * from leaking, matched relationships are **cloned** before display overrides are applied.\n */\n private resolveRelationshipDisplayOverrides(\n resourceType: string,\n relationships: ResourceConfiguration_ResourceRelationships,\n overrides: RelationshipDisplayOverride[],\n allResourceFieldIdentifiers: Record<string, string>,\n ): void {\n type BucketEntry = {\n bucket: ResourceRelationship[];\n index: number;\n rel: ResourceRelationship;\n bucketName: 'childRelationships' | 'parentRelationships' | 'selfRelationships';\n };\n\n for (const override of overrides) {\n const candidates: BucketEntry[] = [];\n\n // Search childRelationships: current resource is parent, target is child\n for (let i = 0; i < relationships.childRelationships.length; i++) {\n const rel = relationships.childRelationships[i];\n if (rel.resourceType2 === override.target) {\n candidates.push({ bucket: relationships.childRelationships, index: i, rel, bucketName: 'childRelationships' });\n }\n }\n\n // Search parentRelationships: current resource is child, target is parent\n for (let i = 0; i < relationships.parentRelationships.length; i++) {\n const rel = relationships.parentRelationships[i];\n if (rel.resourceType1 === override.target) {\n candidates.push({ bucket: relationships.parentRelationships, index: i, rel, bucketName: 'parentRelationships' });\n }\n }\n\n // Search selfRelationships: both sides are the same type\n for (let i = 0; i < relationships.selfRelationships.length; i++) {\n const rel = relationships.selfRelationships[i];\n if (rel.resourceType1 === override.target) {\n candidates.push({ bucket: relationships.selfRelationships, index: i, rel, bucketName: 'selfRelationships' });\n }\n }\n\n // Filter out STANDALONE candidates.\n //\n // STANDALONE relationships are pure structural metadata — they declare\n // primary-scope ownership or M:N expansion anchoring but are intentionally\n // OFF the URL surface (no nested route, no parent-context view). The\n // `RelationshipDisplayOverride` carries navigation / child-view / interaction,\n // `inParentNavigation`, `inChildView` — none of which apply to a\n // relationship that has no parent-context surface. Keeping STANDALONE\n // candidates in the disambiguation set produces spurious \"duplicate FK\"\n // warnings on registries where the user-facing M:N expansion peer→junction\n // edge coexists with a STANDALONE primary-scope anchor (canonical case:\n // ORGANIZATIONS → ORGANIZATION_MEMBERS).\n //\n // Self-relationships and OPTIONAL_CONTEXT/REQUIRES_CONTEXT relationships\n // are kept — they all have at least one URL/view surface the override\n // can attach to.\n if (candidates.length > 1) {\n const surfaced = candidates.filter(\n ({ rel }) => rel.accessScopeStrategy !== ResourceRelationshipAccessScopeStrategy.STANDALONE\n );\n if (surfaced.length > 0) {\n candidates.length = 0;\n candidates.push(...surfaced);\n }\n // If filtering would eliminate all candidates (every match is STANDALONE),\n // keep the originals and let the downstream warning paths handle it —\n // the override is meaningless but we still want a visible signal.\n }\n\n // Narrow by foreignKeyField if provided\n if (override.foreignKeyField && candidates.length > 0) {\n const fkFiltered = candidates.filter(({ rel }) => {\n const resolvedFk = Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(\n rel,\n allResourceFieldIdentifiers\n )?.fieldIdentifier;\n return resolvedFk === override.foreignKeyField;\n });\n candidates.length = 0;\n candidates.push(...fkFiltered);\n }\n\n // Outcome handling\n if (candidates.length === 0) {\n if (envLoader.isDevelopment()) {\n const availableRels = [\n ...relationships.childRelationships.map(r => `${r.resourceType2} (FK: ${Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(r, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'})`),\n ...relationships.parentRelationships.map(r => `${r.resourceType1} (FK: ${Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(r, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'})`),\n ...relationships.selfRelationships.map(r => `${r.resourceType1} (FK: ${Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(r, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'})`),\n ];\n console.warn(\n `[RelationshipDisplay] Resource \"${resourceType}\" has no relationship with \"${override.target}\"` +\n `${override.foreignKeyField ? ` (FK: ${override.foreignKeyField})` : ''}. ` +\n `Available relationships: [${availableRels.join(', ')}]. Override ignored.`\n );\n }\n continue;\n }\n\n if (candidates.length > 1 && !override.foreignKeyField) {\n if (envLoader.isDevelopment()) {\n const fkFields = candidates.map(({ rel }) =>\n Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(rel, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'\n );\n console.warn(\n `[RelationshipDisplay] Resource \"${resourceType}\" has ${candidates.length} relationships ` +\n `with \"${override.target}\" (FK fields: [${fkFields.join(', ')}]). ` +\n `Provide foreignKeyField to disambiguate. Override ignored.`\n );\n }\n continue;\n }\n\n if (candidates.length > 1 && override.foreignKeyField) {\n if (envLoader.isDevelopment()) {\n console.warn(\n `[RelationshipDisplay] Resource \"${resourceType}\" has ${candidates.length} relationships ` +\n `with \"${override.target}\" even after FK field \"${override.foreignKeyField}\" filtering. ` +\n `Applying to first match.`\n );\n }\n }\n\n // Apply override to the first (or only) match — clone to avoid shared reference mutation\n const { bucket, index, rel } = candidates[0];\n const cloned: ResourceRelationship = {\n ...rel,\n display: rel.display ? { ...rel.display } : undefined,\n };\n\n if (override.inParentNavigation) {\n cloned.display = {\n ...cloned.display,\n inParentNavigation: { ...cloned.display?.inParentNavigation, ...override.inParentNavigation },\n };\n }\n if (override.inChildView) {\n cloned.display = {\n ...cloned.display,\n inChildView: { ...cloned.display?.inChildView, ...override.inChildView },\n };\n }\n\n if (cloned.display) {\n cloned.display = RelationshipDisplayConfigSchema.parse(cloned.display);\n }\n\n bucket[index] = cloned;\n }\n }\n\n\n /**\n * Derive FK field display config from parent relationship declarations.\n *\n * For each `parentRelationship` on a resource, identifies the FK schema field\n * and sets `foreignKeyUI.display` metadata based on the relationship's\n * `inChildView.parentDisplay` value.\n *\n * Derivation rules (DD-2):\n * | parentDisplay | FK mode | FK linkable | Rationale |\n * |------------------|-----------|-------------|--------------------------------------|\n * | CONTEXT (default)| LABEL | true | Context header handles nav; FK = link|\n * | BREADCRUMB | LABEL | false | Breadcrumb handles nav; FK = text |\n * | BADGE | LABEL | false | Badge handles nav; FK = text |\n * | SUMMARY | SUMMARY | true | Both FK and structural show summary |\n * | NONE | ID | false | No parent reference; FK = raw ID |\n *\n * **Override priority**: Explicit `.foreignKeyUI()` on the schema field always wins.\n * The derivation only sets metadata when no `FOREIGN_KEY_UI` decorator exists.\n */\n private deriveForeignKeyDisplayFromRelationships(\n resourceType: string,\n entry: AnyFrontendResourceConfiguration,\n allResourceFieldIdentifiers: Record<string, string>,\n ): void {\n const { parentRelationships, selfRelationships } = entry.resourceRelationships;\n\n // Process both parentRelationships and selfRelationships (self-refs have parent direction too)\n const allParentRels = [...parentRelationships, ...selfRelationships];\n\n for (const rel of allParentRels) {\n // Self-references without explicit foreignKeyField would resolve to the\n // resource's own field identifier (= the PK), not the self-referencing FK.\n if (rel.resourceType1 === rel.resourceType2 && !rel.foreignKeyField) {\n continue;\n }\n\n // Determine the FK field name for this relationship\n const fkFieldName = Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(\n rel,\n allResourceFieldIdentifiers\n )?.fieldIdentifier;\n if (!fkFieldName) continue;\n\n // Find the FK field in the schema\n const shape = getZodObjectShape(entry.mainSchema);\n if (!shape) continue;\n\n const fieldSchema = shape[fkFieldName] as z.ZodTypeAny | undefined;\n if (!fieldSchema || !isForeignKeyField(fieldSchema)) continue;\n\n // Check if explicit .foreignKeyUI() is already set — explicit wins.\n // getCustomFieldMetadata traverses wrapper types (optional, nullable, etc.)\n // so it correctly finds metadata on the inner schema.\n const existingMetadata = getCustomFieldMetadata(fieldSchema);\n if (existingMetadata[ZodDecorator.FOREIGN_KEY_UI] !== undefined) continue;\n\n // Derive from parentDisplay (after override merge from Phase 1)\n const parentDisplay = rel.display?.inChildView?.parentDisplay ?? ParentDisplay.CONTEXT;\n\n let derivedMode: ForeignKeyDisplayMode;\n let derivedLinkable: boolean;\n\n switch (parentDisplay) {\n case ParentDisplay.CONTEXT:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = true;\n break;\n case ParentDisplay.BREADCRUMB:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = false;\n break;\n case ParentDisplay.BADGE:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = false;\n break;\n case ParentDisplay.SUMMARY:\n derivedMode = ForeignKeyDisplayMode.SUMMARY;\n derivedLinkable = true;\n break;\n case ParentDisplay.NONE:\n derivedMode = ForeignKeyDisplayMode.ID;\n derivedLinkable = false;\n break;\n default:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = true;\n break;\n }\n\n // Set FOREIGN_KEY_UI metadata on the schema field\n const derivedConfig: ForeignKeyUIParams = {\n display: {\n mode: derivedMode,\n linkable: derivedLinkable,\n },\n };\n\n // Write to the unwrapped inner schema to avoid shadowing existing decorators\n // on wrapper types (optional, nullable, etc.). addDecorators handles merge.\n const innerSchema = unwrapSchema(fieldSchema);\n addDecorators(innerSchema, [{ ref: ZodDecorator.FOREIGN_KEY_UI, params: derivedConfig }]);\n }\n }\n\n\n /**\n * Find an operation in the registry that matches a preset `OperationKey`.\n *\n * The `operations` array only contains API_CALL / API_CALL_WITH_CALLBACK variants\n * (filtered in `buildFrontendResourceConfigurations` step 1), so this method is\n * guaranteed to only match frontend-callable operations.\n *\n * Matching rules:\n * - `string` key → explicit default operation (`isOperationDefault === true`),\n * falling back to the no-variant-key shape only for older operation objects\n * that do not carry a default marker.\n * - `[string, string]` tuple → variant operation (`variantKey === key[1]`).\n */\n private findOperationByPresetKey(\n operations: FrontendResourceConfiguration_Operation[],\n key: OperationKey,\n ): FrontendResourceConfiguration_Operation | undefined {\n if (Array.isArray(key)) {\n const [opId, variantKey] = key;\n return operations.find(\n (op) => op.operationIdentifier === opId && op.variantKey === variantKey\n );\n }\n\n // String key — match the explicit default first. No-key fallback is only\n // for older/generated operation objects that predate `isOperationDefault`.\n const sameIdentifierOperations = operations.filter((op) => op.operationIdentifier === key);\n const explicitDefaultCandidates = sameIdentifierOperations.filter((op) => op.isOperationDefault === true);\n const candidates = explicitDefaultCandidates.length > 0\n ? explicitDefaultCandidates\n : sameIdentifierOperations.filter((op) => !op.variantKey);\n if (candidates.length === 0) return undefined;\n if (candidates.length === 1) return candidates[0];\n\n const nonBulkCandidates = candidates.filter((op) => op.isBulkOperation !== true);\n if (nonBulkCandidates.length === 1) {\n return nonBulkCandidates[0];\n }\n\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n {\n operationIdentifier: key,\n candidateVariants: candidates.map((op) => ({\n variantType: op.variantType,\n variantKey: op.variantKey,\n isOperationDefault: op.isOperationDefault,\n isBulkOperation: op.isBulkOperation,\n })),\n message: 'Frontend preset operation key resolves to multiple URL-bearing variants. Use an explicit [operationIdentifier, variantKey] tuple or make the default operation identity unique.',\n },\n );\n }\n\n /**\n * Generate URLs for API_CALL and API_CALL_WITH_CALLBACK operations.\n *\n * Populates `initiatorInfos` on each operation with the computed URL path,\n * HTTP verb, and path parameters. Called after the registry is seeded but\n * before the HTTP client is constructed (the client reads URLs from operations).\n */\n private generateUrlsForApiCallOperations(\n allResourceConfigurations: { [key: string]: AnyResourceConfiguration },\n allResourceFieldIdentifiers: Record<string, string>\n ): void {\n for (const [resourceType, resourceConfig] of Object.entries(allResourceConfigurations)) {\n try {\n ResourcesConfigOperationsUrlsBuilderUtils.updateOperationUrls(\n resourceConfig,\n allResourceFieldIdentifiers\n );\n } catch (error) {\n console.error(`Failed to generate URLs for resource type ${resourceType}:`, error);\n }\n }\n }\n\n /**\n * Get the full registry\n */\n public getResourcesRegistry(): FrontendResourcesRegistry {\n if (!this.isInitialized) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_RESOURCES_NOT_INITIALIZED,\n { method: 'getResourcesRegistry' }\n );\n }\n return this.registry!;\n }\n\n /**\n * Get available resource types (used for initialization logging)\n */\n public getAvailableResourceTypes(): string[] {\n if (!this.isInitialized) {\n return [];\n }\n return Object.keys(this.registry!.resourceConfigurations);\n }\n\n /**\n * Get registry information for debugging\n */\n public getRegistryInfo(): {\n registeredResourceTypes: string[];\n } {\n if (!this.isInitialized) {\n return { registeredResourceTypes: [] };\n }\n\n return {\n registeredResourceTypes: Object.keys(this.registry!.resourceConfigurations),\n };\n }\n\n /**\n * Get the resources HTTP client for operation execution\n * This should only be called through ResourceRepositoryContext\n */\n public getResourcesHttpClient(): WildoBackendHttpClient_Resources {\n if (!this.isInitialized || !this.resourcesHttpClient) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_RESOURCES_NOT_INITIALIZED,\n { method: 'getResourcesHttpClient' }\n );\n }\n return this.resourcesHttpClient;\n }\n\n /**\n * Get the base application HTTP client.\n *\n * This is the SAME instance exposed app-wide as `useApplication().httpClient`\n * (the repository is constructed with it), and it is DISTINCT from the\n * specialized resources client returned by {@link getResourcesHttpClient}.\n * Resource-integrated file operations (upload / metadata / delete via\n * `FormFieldFile`) run through this base client, so the auth token / renewal\n * handler / consumable token must be mirrored onto it too — otherwise those\n * file requests are sent unauthenticated. Exposed so the registry's auth-token\n * fan-out can reach it from the single seam that already tokens the resources\n * client.\n */\n public getApplicationHttpClient(): WildoBackendHttpClient {\n return this.httpClient;\n }\n\n /**\n * Validate that all isForeignKey() fields in registered schemas can be resolved\n * to a resource type via the fieldIdentifierToResourceType map (enriched from relationships).\n *\n * In development: throws if unresolvable FK fields are found (fail fast).\n * In production: logs error for monitoring; individual failures surface at point of use.\n */\n private validateForeignKeyResolution(\n resourceConfigurations: Record<string, AnyFrontendResourceConfiguration>,\n fieldIdentifierToResourceType: Record<string, string>\n ): void {\n // The sweep itself is shared (Resources_SharedUtils) so the app-creation\n // verification lane runs the SAME check headless after compose/coding\n // mutations, instead of this being the first place the defect can surface.\n const unresolvedFKFields = Resources_SharedUtils.collectUnresolvableForeignKeyFields({\n mainSchemasByResourceType: Object.fromEntries(\n Object.entries(resourceConfigurations).map(([resourceType, config]) => [resourceType, config.mainSchema as z.ZodTypeAny | undefined]),\n ),\n fieldIdentifierToResourceType,\n });\n\n if (unresolvedFKFields.length > 0) {\n const details = unresolvedFKFields\n .map(({ resourceType, fieldName }) => ` - ${resourceType}.${fieldName}`)\n .join('\\n');\n\n const message =\n `[ResourcesRegistry] ${unresolvedFKFields.length} FK field(s) cannot be resolved to a resource type:\\n` +\n `${details}\\n` +\n `Fix: Declare a relationship with the corresponding foreignKeyField.`;\n\n // Log error with full context in all environments\n console.error(message);\n\n // In development: throw to fail fast and surface the issue immediately\n if (envLoader.isDevelopment()) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_FK_RESOLUTION_FAILED,\n { unresolvedFKFields, message }\n );\n }\n // In production: error is logged above. Individual component failures will\n // throw at point of use via resolveResourceTypeForForeignKey().\n }\n }\n\n /**\n * TIER 1 of the file display guard — the STATIC half, decided at registry build.\n *\n * A file field whose schema declares a NARROW `FileNature` has a knowable answer to\n * \"can this be displayed?\": IMAGE/VIDEO/AUDIO/PDF have displayers, OFFICE and\n * ARCHIVE do not. So a policy asking to RENDER such a file — `THUMBNAIL` / `FULL`\n * presentation, or `OVERLAY` activation — is either satisfiable forever or broken\n * forever, and the broken case is a configuration error rather than something to\n * discover at render time as a blank frame.\n *\n * `FileNature.ALL` is deliberately NOT judged here: the MIME type only exists once\n * a file does, so that case is genuinely undecidable statically and is owned by the\n * runtime tier (`resolveFileDisplayPolicy`), which degrades deterministically.\n * This is the same static/runtime reachability split the lazy-boundary work uses.\n */\n private validateFileDisplayPolicyCoherence(resourceConfigurations: Record<string, AnyFrontendResourceConfiguration>): void {\n const offendingFields: Array<{ resourceType: string; fieldName: string; nature: string; requested: string }> = [];\n\n for (const [resourceType, config] of Object.entries(resourceConfigurations)) {\n const shape = getZodObjectShape(config.mainSchema);\n if (!shape) continue;\n\n for (const [fieldName, fieldSchema] of Object.entries(shape)) {\n const typedSchema = fieldSchema as z.ZodTypeAny;\n const fileMetadata = getFileMetadata(typedSchema);\n if (!fileMetadata?.nature) continue;\n\n const displayParams = getFieldUIDisplayConfig(typedSchema) as FileUIDisplayParams | undefined;\n if (!displayParams) continue;\n\n const wantsRender = displayParams.presentation !== undefined\n && displayParams.presentation !== FileDisplayPresentation.CARD;\n const wantsOverlay = displayParams.activation?.policy === FileActivationPolicy.OVERLAY;\n if (!wantsRender && !wantsOverlay) continue;\n\n // `undefined` = FileNature.ALL = undecidable here; the runtime tier owns it.\n if (declaredFileNatureCanDisplay(fileMetadata.nature) !== false) continue;\n\n offendingFields.push({\n resourceType,\n fieldName,\n nature: String(fileMetadata.nature),\n requested: wantsRender ? `presentation ${displayParams.presentation}` : 'activation overlay',\n });\n }\n }\n\n if (offendingFields.length === 0) return;\n\n const details = offendingFields\n .map(({ resourceType, fieldName, nature, requested }) => ` - ${resourceType}.${fieldName} (nature ${nature}) requests ${requested}`)\n .join('\\n');\n const message =\n `[ResourcesRegistry] ${offendingFields.length} file field(s) request a display no displayer can satisfy:\\n` +\n `${details}\\n` +\n `Fix: use presentation CARD (with a DOWNLOAD/NEW_TAB activation) for natures that have no viewer, ` +\n `or widen the declared FileNature if the field genuinely holds displayable files.`;\n\n console.error(message);\n if (envLoader.isDevelopment()) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_FK_RESOLUTION_FAILED,\n { offendingFields, message },\n );\n }\n }\n\n /**\n * Validate that each resource-owned special view ref is unique within its\n * resource-local namespace.\n *\n * `RESOURCE_VIEW` references are family-agnostic by design, so chart,\n * composite, and execution declarations must not reuse the same `viewRef`.\n */\n private validateResourceOwnedViewRefUniqueness(resourceConfigurations: Record<string, AnyFrontendResourceConfiguration>): void {\n for (const resourceType of Object.keys(resourceConfigurations)) {\n const viewsByRef = new Map<string, ReturnType<typeof listResourceOwnedViewReferences>>();\n\n for (const view of listResourceOwnedViewReferences({\n resourceType,\n registry: {\n resourceConfigurations,\n } as FrontendResourcesRegistry,\n })) {\n const existing = viewsByRef.get(view.viewRef) ?? [];\n existing.push(view);\n viewsByRef.set(view.viewRef, existing);\n }\n\n for (const [viewRef, matches] of viewsByRef.entries()) {\n if (matches.length <= 1) {\n continue;\n }\n\n const declaredFamilies = matches\n .map((match) => match.family)\n .join(', ');\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n {\n component: 'ResourcesRepositoryFrontendService.validateResourceOwnedViewRefUniqueness',\n message: `Resource \"${resourceType}\" declares resource-owned view ref \"${viewRef}\" multiple times (${declaredFamilies}). RESOURCE_VIEW refs must be unique per resource-owned view namespace.`,\n },\n );\n }\n }\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resources-repository.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/resources/resources-repository.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Resources Repository Frontend Service\n *\n * Central entry point for building the frontend resource registry. Orchestrates:\n * 1. Factory execution — core + custom resource configs are built from their factories\n * 2. Operation filtering — only API_CALL variants are retained\n * 3. Preset overlay — `ResourceUIBehavior` adds UI-specific config (icons, layouts, etc.)\n * 4. Schema bridge — `z_clone` schema mutations propagate to auto-derived DTOs\n * 5. FK resolution map — fieldIdentifier → resourceType, enriched from relationships\n * 6. URL generation — `initiatorInfos` populated on URL-bearing operations\n * 7. FK validation — all `isForeignKey()` fields must resolve (dev: throws, prod: logs)\n */\n\nimport { WildoBackendHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client.frontend.service';\nimport { WildoBackendHttpClient_Resources } from '~wildo-frontend-lib/core/requests/wildo-http-client-resources.frontend.service';\nimport { FrontendView_ScopeMode } from '~wildo-frontend-lib/core/config/views-frontend.schemas';\nimport {\n listResourceOwnedViewReferences,\n} from '~wildo-frontend-lib/core/config/resource-owned-view-resolution.frontend.utils';\nimport { envLoader } from '~wildo-frontend-lib/core/runtime/env-variable-loader.frontend.service';\nimport type { OperationKey, RelationshipDisplayOverride } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport type { ResourceUIBehavior } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n FRONTEND_DECLARED_SCHEMA_KEY,\n FRONTEND_SCHEMA_KEY,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n AnyResourceConfiguration,\n ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES,\n ResourceConfiguration_InitializationFactory,\n ResourcePrimaryScope,\n ResourceRelationship,\n coreShared_ResourcesConfigurations_FactoryMap,\n coreSharedResourceRelationship,\n coreResourceShared_FieldIdentifier,\n coreResourceShared_FieldIdentifierPriority,\n ResourceOperationVariantType,\n ResourceOperationFrontendSurface,\n ResourcesConfigOperationsUrlsBuilderUtils,\n ResourcesConfigOperationsDtosBuilderUtils,\n ErrorType,\n ErrorCustomMessageReference,\n computeSubtreeMap,\n CoreResourceOperation,\n deriveRequestDto,\n ParentDisplay,\n RelationshipDisplayConfigSchema,\n reconcileGeneratedRelationshipBulkOperations,\n Resources_SharedUtils,\n ResourceRelationshipAccessScopeStrategy,\n coreNotificationBadgeDefinitions,\n findDuplicateRelationshipRegistrations, describeCaughtError, resourceInheritanceVariantSchemas } from '@wildo-ai/saas-models';\nimport type {\n ResourceConfiguration_ResourceRelationships,\n NotificationBadgeDefinition,\n} from '@wildo-ai/saas-models';\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n FrontendResourcesRegistry,\n ResourceCompositeViewsConfig,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n buildResourceCompositeViewTranslationRef,\n type InsertedCompositeDeclaration,\n} from '~wildo-frontend-lib/core/config/composite-view.schemas';\nimport type {\n InsertedExecutionDeclaration,\n ResourceExecutionViewsConfig,\n} from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport { getZodObjectShape, isForeignKeyField, getSchemaType, FieldSchemaType, unwrapSchema, getCustomFieldMetadata, addDecorators, withObjectFields, mapSchemaChildren, ZodDecorator, ForeignKeyDisplayMode, getDiscriminatedPolymorphicForeignKey, SCHEMA_METADATA, getFileMetadata, getFieldUIDisplayConfig, declaredFileNatureCanDisplay, FileDisplayPresentation, FileActivationPolicy } from '@wildo-ai/zod-decorators';\nimport type { ForeignKeyUIParams, FileUIDisplayParams } from '@wildo-ai/zod-decorators';\nimport { sharedErrorBuilder } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { AutomatedLayoutFrontendUtils } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.utils';\nimport { composeUiBehaviorPresentation } from '~wildo-frontend-lib/core/resources/ui-behavior-presentation.frontend.utils';\nimport type { z } from 'zod';\n\n/**\n * Checks whether a requestDto was auto-derived from mainSchema by comparing\n * field object references. CREATE DTOs use direct field refs; UPDATE DTOs\n * wrap fields in `.optional()`. Returns `true` if at least one field shares\n * a reference with mainSchema — indicating the DTO was auto-generated by\n * `deriveRequestDto` and should be rebuilt when the presentation is composed onto mainSchema.\n */\nfunction isDtoDerivedFromSchema(requestDto: z.ZodTypeAny, mainSchema: z.ZodTypeAny): boolean {\n try {\n const dtoShape = getZodObjectShape(requestDto);\n const mainShape = getZodObjectShape(mainSchema);\n return Object.entries(dtoShape).some(([key, field]) => {\n const mainField = mainShape[key];\n if (!mainField) return false;\n return field === mainField || unwrapSchema(field) === mainField;\n });\n } catch {\n return false;\n }\n}\n\n/**\n * Re-establishes the per-field UI-behavior `fields` decorators on an auto-derived\n * operation DTO — both the **display** DTOs (`responseDto` / `summaryDto` / `contextDto`)\n * and the **request** DTO (`requestDto`, the edit-form input schema) — after\n * the ui-behavior's presentation is composed onto `mainSchema`.\n *\n * ## Why this exists — the reference-severance trap\n *\n * Resource UI-behavior `fields` (e.g. `sh.status.enumUI(...)`, `sh.checklist.arrayUI(...)`)\n * are decorated COPIES of the schema's fields (#1308), which `resourceUIBehavior` composes\n * into the schema it presents. `frontendSchema` (attached via `FRONTEND_SCHEMA_KEY`)\n * therefore carries every `fields` decorator on its shape.\n *\n * Every operation DTO the frontend reads, however — the READ/LIST **display** schema\n * (`operation.responseDto` / `summaryDto` / `contextDto`) AND the edit-form input schema\n * (`operation.requestDto`) — is re-derived by the DTO builder, applying transforms (date\n * coercion, backend-only stripping, nested-children; and for `requestDto`, create/update\n * field pruning + `.optional()` PATCH wrapping) that **re-wrap** optional / array /\n * compound fields into fresh instances. A `fields` decorator only reached the DTO when the\n * DTO field happened to be the *same object reference* as the schema field — true for bare\n * non-optional scalars (e.g. `title`), false for any re-wrapped field (an OPTIONAL\n * `checklist` array, an optional/defaulted enum, …). That accidental reference-sharing\n * channel is fragile and silently dropped decorators on exactly the fields that depend on\n * them (inline-editable arrays, optional enum badges).\n *\n * The `requestDto` is NOT exempt: array fields are always rebuilt into a fresh `z.array(…)`\n * (`stripTemplatableFileFieldsRecursively` — the array branch has no \"unchanged element →\n * keep instance\" guard, unlike record/map/set), so an `arrayUI({ objectItemLayout })` on\n * the edit-form `checklist` was severed and the form fell back to the CARD item layout\n * while the overlaid READ view rendered ROW. Hence this overlay runs over `requestDto` too.\n * See `.claude/plans/array-element-authoring.md` Step 4.\n *\n * ## What it does\n *\n * For each field the DTO shares (by name) with `frontendSchema`, it syncs the DTO field's\n * decorator metadata to the authoritative post-`fields` schema field. UI decorators are\n * **pure metadata** (no Zod refinement), so the DTO's *parse* contract is unaffected —\n * for `responseDto`/`contextDto` (which validate incoming HTTP responses) date coercion,\n * backend-only absence and nested children all remain intact; for `requestDto` (which\n * validates edit-form input before submit) the create/update pruning and PATCH optionality\n * are equally untouched. Only symbol-keyed `[SCHEMA_METADATA]` is written.\n *\n * ## Discriminated-union DTOs\n *\n * Field resolution uses `getObjectLikeFieldShape` — the SAME resolver `getFieldSchema`\n * (and therefore `DisplayField`) uses — so it walks **discriminated-union** DTOs. The\n * default READ DTO of a polymorphic resource (e.g. todos, whose `recurringType` is a\n * `.isDiscriminator()`) is a `ZodDiscriminatedUnion`, for which the object-only\n * `getZodObjectShape` returns nothing — the original cause of this overlay silently\n * skipping the very resources that need it. The union merge keeps field instances by\n * reference, so mutating the resolved field's metadata is exactly what the display reads.\n *\n * Eligibility (auto-derived vs custom author-owned) is decided by the CALLER via the\n * operation's `hasCustomResponseDto` / `hasCustomRequestDto` flags — NOT by\n * `isDtoDerivedFromSchema`, which is both union-blind and unreliable once the DTO builder\n * clones field instances.\n *\n * Per-field guards retained here:\n * - Fields with no resource-schema counterpart are skipped.\n * - Fields whose DTO instance IS the decorated schema instance are skipped (already correct).\n * - Only fields whose authoritative metadata actually differs are written.\n *\n * @param dto - The operation DTO to overlay (no-op when undefined / not object-like).\n * @param frontendSchema - The `FRONTEND_SCHEMA_KEY` schema carrying `fields` decorators.\n */\nfunction overlayUiBehaviorFieldDecorators(\n dto: z.ZodTypeAny | undefined,\n frontendSchema: z.ZodTypeAny,\n declaredFieldInstances: ReadonlySet<object>,\n): void {\n if (!dto) return;\n\n // Union-aware shape resolution — identical to `getFieldSchema`'s, so the field instances\n // we mutate are the very ones the display reads back (the union merge keeps references).\n // Returns undefined for non-object-like schemas (e.g. a `{ data, pagination }` LIST wrapper\n // exposes only `data`/`pagination`, which never match resource field names anyway).\n const dtoShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(dto, { commonOnly: false });\n const frontendShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(frontendSchema, { commonOnly: false });\n if (!dtoShape || !frontendShape) return;\n\n for (const [fieldName, dtoField] of Object.entries(dtoShape)) {\n const frontendField = frontendShape[fieldName];\n // Skip fields with no resource-schema counterpart, and the bare-scalar case where the\n // DTO field IS the decorated schema instance (decorators already present, nothing to do).\n if (!frontendField || !dtoField || dtoField === frontendField) continue;\n /*\n * Never a DECLARED instance (#1308): it belongs to the resource configuration, and often to other resources.\n * The presented main schema and its composed variants put a decorated copy wherever the ui-behavior decorated a\n * field, so a declared instance in a derived DTO is a field the ui-behavior left alone.\n */\n if (declaredFieldInstances.has(dtoField)) continue;\n\n const frontendMeta = getCustomFieldMetadata(frontendField);\n if (Object.keys(frontendMeta).length === 0) continue;\n\n const dtoMeta = getCustomFieldMetadata(dtoField);\n // `frontendSchema` is the authoritative post-`fields` truth for every field of an\n // auto-derived DTO. Sync when the DTO field is missing a decorator key OR carries a\n // stale value for one (a re-wrapped clone of the field as declared, before its `fields` decoration).\n const needsSync = Object.keys(frontendMeta).some(\n (key) => !(key in dtoMeta) || (dtoMeta as Record<string, unknown>)[key] !== (frontendMeta as Record<string, unknown>)[key],\n );\n if (!needsSync) continue;\n\n // Write the merged metadata onto the DTO field's read node. `getCustomFieldMetadata`\n // traverses wrappers, so seeding with `dtoMeta` (the DTO field's current effective\n // metadata) preserves anything the DTO build placed on a deeper node; the\n // frontendSchema field wins on overlap. Values are read-only display config shared\n // within the single owning resource — no deep clone required.\n // `as any` for the symbol-keyed metadata write — same idiom as `applySingleDecorator`.\n (dtoField as any)[SCHEMA_METADATA] = { ...dtoMeta, ...frontendMeta };\n }\n}\n\n/**\n * The decorators that make a field a REFERENCE — its identity as a foreign key and how its picker\n * reads — and nothing else. Named so the carry-over below cannot quietly grow into a general overlay.\n */\nconst REFERENCE_IDENTITY_DECORATORS = [ZodDecorator.IS_FOREIGN_KEY, ZodDecorator.FOREIGN_KEY_UI] as const;\n\n/**\n * Give a CUSTOM request DTO's field the reference identity of the resource field it names.\n *\n * ## Why this exists\n *\n * A custom operation's `requestDto` is authored by hand, and the natural spelling of \"assign this todo\n * to a user\" is `requestDto: z.object({ assignedToUserId: z.string().min(1) })` — the field the\n * operation writes, by its own name. That field reached every form as a bare STRING: the form decides\n * \"reference picker\" from the field's own `isForeignKey` decorator, and nothing put one there. So\n * Wonder Todos' \"Assign\" asked for a user by making the person type a raw id into a text box, while\n * the backend — which resolves the reference through the RELATIONSHIP that names `assignedToUserId`,\n * scope confinement and all — knew perfectly well what it was.\n *\n * The resource already declares the answer twice (the schema field is `.isForeignKey()`, and a\n * relationship names it as its `foreignKeyField`). Asking every author to restate it on every custom\n * operation that writes the field is a question the framework can derive, and a forgotten restatement\n * fails silently as a text box.\n *\n * ## Why ONLY the reference identity, and not the general overlay\n *\n * `overlayUiBehaviorDtoDecorators` deliberately skips custom request DTOs: a custom DTO is the\n * author's shape, and copying the resource field's whole metadata would drag STRUCTURAL decorators\n * across with it — `excludeFromUpdate` on the resource field would hide the very input the custom\n * operation exists to collect. Whether a field IS a reference is not that kind of fact: it is what the\n * value MEANS, and a custom operation that writes `assignedToUserId` writes the same kind of value.\n *\n * ## Guards\n *\n * - a field the author already declared a reference is left exactly as authored, `foreignKeyUI` too;\n * - the shapes must agree — a scalar id against a scalar foreign key, a list against a list — or the\n * two fields merely share a name;\n * - only metadata is written, so the DTO's parse contract is untouched (the same argument as the\n * general overlay's).\n *\n * Caveat, shared with the general overlay: the write lands on the author's field INSTANCE. A field\n * schema reused as a constant in some other DTO carries the reference identity there too — correct\n * whenever the reuse means the same value, which is the only reason to reuse a field schema.\n */\nfunction carryReferenceIdentityOntoCustomRequestDto(\n requestDto: z.ZodTypeAny | undefined,\n resourceSchema: z.ZodTypeAny | undefined,\n): z.ZodTypeAny | undefined {\n if (!requestDto || !resourceSchema) return requestDto;\n const dtoShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(requestDto, { commonOnly: false });\n const resourceShape = AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(resourceSchema, { commonOnly: false });\n if (!dtoShape || !resourceShape) return requestDto;\n /*\n * Carried onto COPIES, swapped into a rebuilt DTO (#1308): the author's field is often a module-level schema the\n * author shares between operations, or a constant other resources hold, so writing its metadata in place would\n * declare it a reference everywhere it is used.\n */\n const carriedFields = new Map<z.ZodTypeAny, z.ZodTypeAny>();\n\n for (const [fieldName, dtoField] of Object.entries(dtoShape)) {\n const resourceField = resourceShape[fieldName];\n if (!dtoField || !resourceField) continue;\n if (!isForeignKeyField(resourceField) || isForeignKeyField(dtoField)) continue;\n const dtoIsList = getSchemaType(dtoField) === FieldSchemaType.ARRAY;\n const resourceIsList = getSchemaType(resourceField) === FieldSchemaType.ARRAY;\n if (dtoIsList !== resourceIsList) continue;\n\n const resourceMeta = getCustomFieldMetadata(resourceField) as Record<string, unknown>;\n const carried: Record<string, unknown> = {};\n for (const key of REFERENCE_IDENTITY_DECORATORS) {\n if (key in resourceMeta) carried[key] = resourceMeta[key];\n }\n const copy = addDecorators(dtoField as z.ZodTypeAny, []) as unknown as Record<symbol, unknown>;\n copy[SCHEMA_METADATA] = { ...getCustomFieldMetadata(dtoField), ...carried };\n carriedFields.set(dtoField as z.ZodTypeAny, copy as unknown as z.ZodTypeAny);\n }\n return carriedFields.size === 0 ? requestDto : substituteSchemaInstances(requestDto, carriedFields);\n}\n\n/**\n * `schema` rebuilt with every instance `substitutions` names replaced, at any depth (object fields, wrappers, array\n * elements, union options, …): the instances themselves are never written. Returns `schema` when nothing under it is\n * substituted. A node met again while it is being rebuilt (a recursive schema) is left as it is at that back-edge.\n */\nfunction substituteSchemaInstances(schema: z.ZodTypeAny, substitutions: ReadonlyMap<z.ZodTypeAny, z.ZodTypeAny>): z.ZodTypeAny {\n const rebuilt = new Map<z.ZodTypeAny, z.ZodTypeAny>();\n const inProgress = new Set<z.ZodTypeAny>();\n const visit = (node: z.ZodTypeAny): z.ZodTypeAny => {\n const substitute = substitutions.get(node);\n if (substitute) return substitute;\n const known = rebuilt.get(node);\n if (known) return known;\n if (inProgress.has(node)) return node;\n inProgress.add(node);\n const result = mapSchemaChildren(node, visit);\n inProgress.delete(node);\n rebuilt.set(node, result);\n return result;\n };\n return visit(schema);\n}\n\n/**\n * Which DECLARED instances the presentation replaced, and with what: the declared and presented schemas walked in\n * parallel (object fields by key, wrapper inner types, array elements, union options by position), recording every\n * pair whose instances differ. A custom DTO built from the declared schema (`variant.extend(...)`, `.pick(...)`)\n * holds those declared instances, and used to read the ui-behavior's decorations off them because a decorator\n * wrote onto them; substituting the presented copies gives it the same reading without the write (#1308).\n */\nfunction collectPresentationSubstitutions(declared: unknown, presented: unknown, into: Map<z.ZodTypeAny, z.ZodTypeAny>): void {\n if (!declared || !presented || declared === presented || typeof declared !== 'object' || typeof presented !== 'object') return;\n const declaredDefinition = (declared as { _zod?: { def?: Record<string, unknown> } })._zod?.def;\n const presentedDefinition = (presented as { _zod?: { def?: Record<string, unknown> } })._zod?.def;\n if (!declaredDefinition || !presentedDefinition || declaredDefinition.type !== presentedDefinition.type) return;\n if (into.has(declared as z.ZodTypeAny)) return;\n into.set(declared as z.ZodTypeAny, presented as z.ZodTypeAny);\n if (declaredDefinition.type === 'object') {\n const declaredShape = declaredDefinition.shape as Record<string, unknown>;\n const presentedShape = presentedDefinition.shape as Record<string, unknown>;\n for (const key of Object.keys(declaredShape)) collectPresentationSubstitutions(declaredShape[key], presentedShape[key], into);\n return;\n }\n for (const key of ['innerType', 'element', 'valueType', 'in', 'out']) {\n collectPresentationSubstitutions(declaredDefinition[key], presentedDefinition[key], into);\n }\n const declaredOptions = declaredDefinition.options as unknown[] | undefined;\n const presentedOptions = presentedDefinition.options as unknown[] | undefined;\n if (Array.isArray(declaredOptions) && Array.isArray(presentedOptions) && declaredOptions.length === presentedOptions.length) {\n declaredOptions.forEach((option, index) => collectPresentationSubstitutions(option, presentedOptions[index], into));\n }\n}\n\n\n/** A resource's schema inheritance, as far as the FK derivation needs it: each variant's schema, nested. */\ntype InheritedVariantDefinition = {\n readonly inheritedSchemas: ReadonlyArray<{ readonly schema: unknown; readonly inheritenceSchemaDefinition?: InheritedVariantDefinition }>;\n};\n\n/**\n * The inheritance definition with every variant schema passed through `map` — REBUILT, never written in place, since\n * the definition comes from the shared resource configuration (#1308). The same object comes back when nothing changed.\n */\nfunction mapInheritedVariantSchemas(\n definition: InheritedVariantDefinition | undefined,\n map: (schema: z.ZodTypeAny) => z.ZodTypeAny,\n): InheritedVariantDefinition | undefined {\n if (definition === undefined) return undefined;\n let changed = false;\n const inheritedSchemas = definition.inheritedSchemas.map((inherited) => {\n const schema = map(inherited.schema as z.ZodTypeAny);\n const nested = mapInheritedVariantSchemas(inherited.inheritenceSchemaDefinition, map);\n if (schema === inherited.schema && nested === inherited.inheritenceSchemaDefinition) return inherited;\n changed = true;\n return { ...inherited, schema, ...(nested !== undefined ? { inheritenceSchemaDefinition: nested } : {}) };\n });\n return changed ? { ...definition, inheritedSchemas } : definition;\n}\n\n/**\n * Every top-level field INSTANCE a resource declares: its main schema's and every inheritance variant's. These are\n * shared with the resource configuration (and often with other resources), so nothing on the frontend may write to\n * them (#1308).\n */\nfunction collectDeclaredFieldInstances(mainSchema: unknown, definition: InheritedVariantDefinition | undefined, into: Set<object>): void {\n for (const field of Object.values(getZodObjectShape(mainSchema as z.ZodTypeAny) ?? {})) into.add(field as object);\n for (const inherited of definition?.inheritedSchemas ?? []) {\n collectDeclaredFieldInstances(inherited.schema, inherited.inheritenceSchemaDefinition, into);\n }\n}\n\n/**\n * Give every inheritance variant the ui-behavior's `fields` decorations the main schema now presents (#1308).\n *\n * The bridge composes the presentation onto the main schema (#2918), but each variant schema still holds the\n * resource's declared field instances, and the DTO builder builds a variant's union option as `base.extend(variant.shape)`: a variant that\n * restates a base field would put the undecorated declaration back. So for each field the presentation decorated\n * (its instance differs from the declared one): a variant holding the DECLARED instance takes the presented copy; a\n * variant that REDECLARES the field keeps its own declaration, as a copy carrying the presentation's metadata on top\n * (the presentation wins per key, as the DTO overlay always did). Rebuilt, never written in place.\n */\nfunction composePresentedFieldsIntoVariants(\n definition: InheritedVariantDefinition | undefined,\n declaredMainSchema: z.ZodTypeAny,\n presentedMainSchema: z.ZodTypeAny,\n): InheritedVariantDefinition | undefined {\n if (definition === undefined || presentedMainSchema === declaredMainSchema) return definition;\n // Only an OBJECT main schema has a per-field presentation to give: composing a union's would hand every variant the\n // whole presented union (the helper's fallback for a schema it cannot compose by key).\n const isObject = (schema: z.ZodTypeAny) => (schema as { _zod?: { def?: { type?: string } } })._zod?.def?.type === 'object';\n if (!isObject(declaredMainSchema) || !isObject(presentedMainSchema)) return definition;\n // A variant that is not an object schema has no field to compose into, and keeps its declaration.\n return mapInheritedVariantSchemas(definition, (variantSchema) =>\n isObject(variantSchema)\n ? composeUiBehaviorPresentation(variantSchema, declaredMainSchema, presentedMainSchema)\n : variantSchema);\n}\n\nexport class ResourcesRepositoryFrontendService {\n private registry: FrontendResourcesRegistry | null = null;\n private isInitialized = false;\n /**\n * Per resource, the field instances its configuration DECLARES, recorded before the schema bridge composes the\n * presentation onto its schema. The DTO overlay never writes to one of these: they are shared state (#1308).\n */\n private declaredFieldInstancesByResource = new Map<string, ReadonlySet<object>>();\n /**\n * Per resource, the declared instances its presentation replaced and their presented copies\n * (`collectPresentationSubstitutions`), applied to the resource's CUSTOM DTOs after the rebuild.\n */\n private presentationSubstitutionsByResource = new Map<string, ReadonlyMap<z.ZodTypeAny, z.ZodTypeAny>>();\n private resourcesHttpClient: WildoBackendHttpClient_Resources | null = null;\n\n constructor(\n private httpClient: WildoBackendHttpClient\n ) {}\n\n /**\n * Build a proper WildoError for resource configuration errors.\n * Uses the shared error builder (no circular dependency with FrontendResourceUtils).\n */\n private buildConfigurationError(\n customMessageReference: ErrorCustomMessageReference,\n context?: Record<string, any>\n ): Error {\n const wildoError = sharedErrorBuilder.buildWildoError_Frontend(\n ErrorType.CONFIGURATION,\n { customMessageReference, context }\n );\n const error = new Error(customMessageReference);\n (error as any).wildoError = wildoError;\n return error;\n }\n\n /**\n * Initialize the resource registry.\n *\n * ALL backend resources are included in the registry, but only API_CALL\n * operation variants are retained — backend-only variants\n * (CRON_JOB, BATCH_JOB, INTERNAL_CALL, REPOSITORY_ONLY) are excluded.\n * The `resourceUIBehavior` overlays UI behavior (icons, sections, layouts, labels,\n * operation surfaces) on resources it covers. Resources without a preset entry\n * have no UI presence but remain API-callable.\n */\n public async initializeResources(\n customShared_ResourcesConfigurationsFactoryMap?: { [key: string]: ResourceConfiguration_InitializationFactory<any, any, any> },\n customShared_ResourceFieldIdentifier?: { [key: string]: string },\n customShared_ResourcesRelationships?: ResourceRelationship[],\n excludedResourceTypes?: ReadonlySet<string>,\n resourceUIBehavior?: ResourceUIBehavior,\n customNotificationBadgeDefinitions?: NotificationBadgeDefinition[],\n ): Promise<void> {\n if (this.isInitialized) {\n return;\n }\n\n try {\n const allResourceFieldIdentifiers: { [key: string]: string } = {\n ...customShared_ResourceFieldIdentifier,\n ...coreResourceShared_FieldIdentifier,\n };\n\n const assembledResourceRelationships: ResourceRelationship[] = [\n ...(customShared_ResourcesRelationships || []),\n ...coreSharedResourceRelationship,\n ];\n\n // ── DUPLICATE-EDGE GUARD (fail-closed, mirrors the backend registry) ─────\n //\n // This registry has only TWO sources, so it cannot reproduce the backend's\n // \"same list through two slots\" fold. It CAN still receive an intra-list\n // duplicate, because the app's shared relationship list is itself a\n // `modules.flatMap(...)` — a module registered twice, or two modules\n // declaring the same edge, lands the edge twice here. The frontend and\n // backend module registries are authored independently, so a frontend-only\n // duplicate is reachable.\n //\n // The frontend is where several of the non-benign consequences live: form\n // semantics throw in development (and silently lose the field in\n // production) on duplicate relationship-object field identity, quick-create\n // affordances and PARENT_CONTEXT_SINGLETON / complete-association addressing\n // modes are dropped by ambiguity checks, and a nested child section renders\n // twice with a duplicated React key. Fail closed at assembly instead, where\n // the message can name the edge.\n //\n // Checked pre-compilation on the AUTHORED declarations, for the same reason\n // the backend does: `ensureCompiledRelationships` may preserve pre-resolved\n // semantics on one copy and recompile the other.\n const duplicateRelationshipRegistrations = findDuplicateRelationshipRegistrations(\n assembledResourceRelationships,\n );\n if (duplicateRelationshipRegistrations.length > 0) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n {\n message:\n `${duplicateRelationshipRegistrations.length} relationship edge(s) registered more than once:\\n` +\n duplicateRelationshipRegistrations.map((duplicate) => ` • ${duplicate.message}`)\n .join('\\n'),\n duplicatedEdges: duplicateRelationshipRegistrations.map(\n (duplicate) =>\n `${String(duplicate.parentResourceType)} → ${String(duplicate.childResourceType)} (×${duplicate.occurrences})`,\n ),\n },\n );\n }\n\n let allResourceRelationships: ResourceRelationship[] = (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, assembledResourceRelationships, allResourceFieldIdentifiers);\n\n // Apply factory functions for custom shared resources configurations\n const customShared_ResourcesConfigurations: { [key: string]: AnyResourceConfiguration } = {};\n if (customShared_ResourcesConfigurationsFactoryMap && Object.keys(customShared_ResourcesConfigurationsFactoryMap).length > 0) {\n Object.entries(customShared_ResourcesConfigurationsFactoryMap).forEach(([resourceType, factory]) => {\n if (factory && typeof factory === 'function') {\n customShared_ResourcesConfigurations[resourceType] = factory(allResourceRelationships);\n }\n });\n }\n\n // Apply factory functions for core shared resources configurations\n const coreShared_ResourcesConfigurations: { [key: string]: AnyResourceConfiguration } = {};\n if (coreShared_ResourcesConfigurations_FactoryMap && Object.keys(coreShared_ResourcesConfigurations_FactoryMap).length > 0) {\n Object.entries(coreShared_ResourcesConfigurations_FactoryMap).forEach(([resourceType, factory]) => {\n if (factory && typeof factory === 'function') {\n coreShared_ResourcesConfigurations[resourceType] = factory(allResourceRelationships);\n }\n });\n }\n\n // Merge all resource configurations\n let allResourceConfigurations: { [key: string]: AnyResourceConfiguration } = {\n ...coreShared_ResourcesConfigurations,\n ...customShared_ResourcesConfigurations,\n };\n\n // ── Resource Exclusion ─────────────────────────────────────────\n // Generic mechanism: remove excluded resource types from all 3 layers\n // (configurations, relationships, field identifiers).\n // Used by a frontend that is not an application to drop core vocabulary it has no business\n // showing (the application-creation workbench, `excludedResourceTypes` on its start options);\n // no application passes a set (measured 2026-10-20). NOT the backend's feature-gated removal:\n // that one (`withoutFeatureGatedCoreResources`, `@wildo-ai/saas-backend-lib`, #3005) is decided by\n // the billing and lifecycle configuration and shared by startup, the evidence collector and the\n // committed-programme gate. A frontend library cannot import the backend library, and the two\n // sets are different decisions, so the steps are repeated here rather than shared.\n //\n // The engine's own runtime floor is subtracted first and REFUSED loudly: see\n // `ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES` for why honouring such an exclusion breaks\n // authentication rather than a feature. Refusing here — at the one place exclusion is applied\n // — is what makes the floor unbypassable, instead of a rule each application must remember.\n const refusedExclusions: string[] = [...(excludedResourceTypes ?? [])].filter(\n (resourceType) => ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES.has(resourceType),\n );\n if (refusedExclusions.length > 0) {\n console.warn(\n `[ResourcesRepository] Refusing to exclude ${refusedExclusions.join(', ')}: the engine's own `\n + 'runtime reads these to restore an authenticated session, so honouring the exclusion would make '\n + 'login succeed and then immediately bounce back to the login form. They stay registered.',\n );\n }\n const effectiveExcludedResourceTypes: ReadonlySet<string> | undefined = refusedExclusions.length > 0\n ? new Set<string>(\n [...(excludedResourceTypes ?? [])].filter(\n (resourceType) => !ENGINE_RUNTIME_REQUIRED_RESOURCE_TYPES.has(resourceType),\n ),\n )\n : excludedResourceTypes;\n\n if (effectiveExcludedResourceTypes && effectiveExcludedResourceTypes.size > 0) {\n // Layer 1: Remove excluded resource configurations\n allResourceConfigurations = Object.fromEntries(\n Object.entries(allResourceConfigurations).filter(\n ([resourceType]) => !effectiveExcludedResourceTypes.has(resourceType)\n )\n );\n\n // Layer 2: Remove relationships that reference excluded types\n allResourceRelationships = allResourceRelationships.filter(\n (rel) => !effectiveExcludedResourceTypes.has(rel.resourceType1) && !effectiveExcludedResourceTypes.has(rel.resourceType2)\n );\n\n // Layer 3: Remove excluded field identifiers\n for (const resourceType of effectiveExcludedResourceTypes) {\n delete allResourceFieldIdentifiers[resourceType];\n }\n }\n\n this.normalizeResourceConfigurationRelationships(\n allResourceConfigurations,\n allResourceFieldIdentifiers,\n );\n\n const frontendResourceConfigurations = this.buildFrontendResourceConfigurations(\n allResourceConfigurations,\n allResourceFieldIdentifiers,\n resourceUIBehavior,\n );\n\n reconcileGeneratedRelationshipBulkOperations(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>,\n allResourceRelationships,\n allResourceFieldIdentifiers\n );\n\n ResourcesConfigOperationsDtosBuilderUtils.rebuildResourceConfigurationsOperationDtos(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>\n );\n\n // Re-apply ui-behavior `fields` decorators onto the freshly-rebuilt operation DTOs.\n // The rebuild above re-derives every DTO from each resource's (decorated) mainSchema\n // but re-wraps optional/array/compound fields into fresh instances — severing the\n // `fields` decorations' wrapper metadata for exactly those fields (an OPTIONAL inline-editable\n // `checklist` array, an optional/defaulted enum badge, …). This restores them on every\n // DTO the frontend reads: the DISPLAY DTOs (responseDto/summaryDto/contextDto) the\n // read/list views resolve `ctx.schema` from, AND the edit-form requestDto (so\n // `objectItemLayout` and other array `fields` survive on the UPDATE/CREATE form).\n // MUST run after the rebuild, or it is silently discarded. See\n // `overlayUiBehaviorFieldDecorators` for the rationale.\n this.overlayUiBehaviorDtoDecorators(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>,\n resourceUIBehavior,\n );\n this.substitutePresentationIntoCustomDtos(frontendResourceConfigurations as Record<string, AnyResourceConfiguration>);\n\n // A custom request DTO that names one of the resource's foreign keys collects a REFERENCE, and\n // must render as one (the searchable picker, not a text box). Every resource, preset or not:\n // the identity lives on the schema, not in the ui-behavior. See\n // `carryReferenceIdentityOntoCustomRequestDto`.\n this.carryReferenceIdentityOntoCustomRequestDtos(\n frontendResourceConfigurations as Record<string, AnyResourceConfiguration>,\n );\n\n // Reverse map fieldIdentifier → REFERENCED resourceType — built by THE shared\n // implementation (Resources_SharedUtils.buildFieldIdentifierToResourceTypeMap).\n // This repository and the backend registry service used to carry hand-kept\n // copies of this logic; a semantic change to FK resolution now lands once.\n const fieldIdentifierToResourceType = Resources_SharedUtils.buildFieldIdentifierToResourceTypeMap({\n allResourceFieldIdentifiers,\n allResourceRelationships,\n getMainSchema: (resourceType) => frontendResourceConfigurations[resourceType]?.mainSchema as z.ZodTypeAny | undefined,\n fieldIdentifierPriority: coreResourceShared_FieldIdentifierPriority,\n onForeignKeyCollision: ({ foreignKeyField, existingType, referencedResourceType }) => {\n console.error(\n `[ResourcesRegistry] FK field \"${foreignKeyField}\" is reused by different holders ` +\n `referencing \"${existingType}\" and \"${referencedResourceType}\". ` +\n `Keeping \"${existingType}\". Use distinct foreignKeyField names to disambiguate.`,\n );\n },\n });\n\n // Derive the scope-required reference-search junctions (e.g. (users ←\n // organizations) via organizationMembers) — mirrors the backend registry\n // so the picker scopes its searches exactly how the backend filters +\n // authorizes them.\n const manyToManyScopeJunctions = Resources_SharedUtils.buildManyToManyScopeJunctionMap(\n allResourceRelationships,\n allResourceFieldIdentifiers,\n );\n\n // Create the frontend registry\n this.registry = {\n allResourceFieldIdentifiers: allResourceFieldIdentifiers,\n fieldIdentifierToResourceType: fieldIdentifierToResourceType,\n manyToManyScopeJunctions,\n // Framework-shipped badge definitions ∪ app-custom (threaded from the\n // frontend bootstrap's ApplicationInitializationConfig, R8).\n notificationBadgeDefinitions: [\n ...coreNotificationBadgeDefinitions,\n ...(customNotificationBadgeDefinitions ?? []),\n ],\n additionalUserNotificationDefinitions: [],\n resourceRelationships: allResourceRelationships,\n resourceConfigurations: frontendResourceConfigurations,\n subtreeMap: computeSubtreeMap(allResourceRelationships),\n };\n\n this.generateUrlsForApiCallOperations(frontendResourceConfigurations, allResourceFieldIdentifiers);\n\n // Create the resources HTTP client with the initialized registry\n this.resourcesHttpClient = new WildoBackendHttpClient_Resources(this.registry, {\n baseURL: this.httpClient.getBaseURL(),\n timeout: 30000,\n enableNetworkQueue: true\n });\n\n // Validate that all FK fields in registered schemas can be resolved.\n // This catches configuration errors early — before components try to render FK fields.\n this.validateForeignKeyResolution(frontendResourceConfigurations, fieldIdentifierToResourceType);\n this.validateResourceOwnedViewRefUniqueness(frontendResourceConfigurations);\n this.validateFileDisplayPolicyCoherence(frontendResourceConfigurations);\n\n this.isInitialized = true;\n } catch (error) {\n // If it's already a WildoError (from buildConfigurationError), re-throw as-is\n if ((error as any)?.wildoError) {\n throw error;\n }\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n { message: `Failed to initialize frontend resources: ${describeCaughtError(error)}` }\n );\n }\n }\n\n private normalizeResourceConfigurationRelationships(\n allResourceConfigurations: { [key: string]: AnyResourceConfiguration },\n allResourceFieldIdentifiers: Record<string, string>,\n ): void {\n for (const resourceConfig of Object.values(allResourceConfigurations)) {\n resourceConfig.resourceRelationships = {\n parentRelationships: (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, resourceConfig.resourceRelationships.parentRelationships, allResourceFieldIdentifiers),\n childRelationships: (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, resourceConfig.resourceRelationships.childRelationships, allResourceFieldIdentifiers),\n selfRelationships: (\n Resources_SharedUtils.ensureCompiledRelationships as (\n relationships: ResourceRelationship[],\n allResourceFieldIdentifiers?: Record<string, string>\n ) => ResourceRelationship[]\n ).call(Resources_SharedUtils, resourceConfig.resourceRelationships.selfRelationships, allResourceFieldIdentifiers),\n };\n }\n }\n\n /**\n * Run {@link carryReferenceIdentityOntoCustomRequestDto} over every author-owned request DTO of\n * every resource. The general overlay below skips these DTOs on purpose; this carries the one fact\n * it may not skip — which of their fields are references.\n */\n private carryReferenceIdentityOntoCustomRequestDtos(\n resourceConfigurations: Record<string, AnyResourceConfiguration>,\n ): void {\n for (const entry of Object.values(resourceConfigurations)) {\n for (const op of entry.operations ?? []) {\n if ((op as any).hasCustomRequestDto) {\n (op as any).requestDto = carryReferenceIdentityOntoCustomRequestDto((op as any).requestDto, (entry as any).mainSchema);\n }\n }\n }\n }\n\n /**\n * Re-applies ui-behavior `fields` decorators onto the rebuilt operation DTOs the frontend\n * reads — both the DISPLAY DTOs (`responseDto` / `summaryDto` / `contextDto`) and the\n * edit-form REQUEST DTO (`requestDto`).\n *\n * MUST run AFTER `rebuildResourceConfigurationsOperationDtos`: that rebuild's\n * `buildAllOperationDtos` pass re-derives every DTO from each resource's (decorated)\n * mainSchema, producing fresh field instances that lose the `fields` wrapper metadata on\n * every re-wrapped (optional / array / compound) field. Running the overlay inside\n * `buildFrontendResourceConfigurations` would be silently discarded by that rebuild.\n *\n * Scoped to resources that declared a ui-behavior preset (every preset entry carries the\n * `FRONTEND_SCHEMA_KEY` decorated schema). The response/context overlay is gated by the\n * operation's `hasCustomResponseDto` flag and the request overlay by `hasCustomRequestDto`,\n * so author-owned custom DTOs are untouched. `summaryDto` is always a framework projection\n * of the resource schema.\n *\n * The `requestDto` leg matters because an `arrayUI({ objectItemLayout })` (and every other\n * array/compound `fields` decorator) is severed by the array-rebuild in the DTO builder;\n * without this leg the edit form loses ROW item layout and falls back to CARD while the\n * overlaid READ view renders ROW — an inconsistency between the two surfaces of the SAME\n * field. See `overlayUiBehaviorFieldDecorators` for per-field mechanics and parse-safety.\n */\n /**\n * Replace a resource's schemas with the ones the frontend PRESENTS — the one door every such replacement goes through\n * (#1308), because a replacement owes three things and each was once forgotten at one of its sites:\n *\n * - the entry's `mainSchema` and `inheritenceSchemaDefinition`;\n * - every operation whose own `mainSchema` is still the replaced one: the DTO rebuild derives from\n * `operation.mainSchema` (`buildAllOperationDtosInResourceScope`), so an operation left on the declared schema\n * rebuilt every DTO from undecorated fields. These operation objects are this registry's copies (step 1);\n * - the SUBSTITUTIONS a custom DTO reads the presentation through (`collectPresentationSubstitutions`), CHAINED with\n * any recorded before, so a declared field the ui-behavior decorated and the FK derivation then decorated again\n * maps to the final copy.\n */\n private presentSchemas(\n resourceType: string,\n entry: AnyFrontendResourceConfiguration,\n next: { readonly mainSchema: z.ZodTypeAny; readonly inheritenceSchemaDefinition: unknown },\n ): void {\n const previousMainSchema = entry.mainSchema as z.ZodTypeAny;\n const previousInheritance = entry.inheritenceSchemaDefinition as InheritedVariantDefinition | undefined;\n if (next.mainSchema === previousMainSchema && next.inheritenceSchemaDefinition === previousInheritance) return;\n const writable = entry as { mainSchema: unknown; inheritenceSchemaDefinition?: unknown };\n writable.mainSchema = next.mainSchema;\n writable.inheritenceSchemaDefinition = next.inheritenceSchemaDefinition;\n for (const op of entry.operations ?? []) {\n if ((op as any).mainSchema === previousMainSchema) (op as any).mainSchema = next.mainSchema;\n }\n\n const step = new Map<z.ZodTypeAny, z.ZodTypeAny>();\n collectPresentationSubstitutions(previousMainSchema, next.mainSchema, step);\n const pairVariants = (before?: InheritedVariantDefinition, after?: InheritedVariantDefinition): void => {\n before?.inheritedSchemas.forEach((inherited, index) => {\n const presented = after?.inheritedSchemas[index];\n collectPresentationSubstitutions(inherited.schema, presented?.schema, step);\n pairVariants(inherited.inheritenceSchemaDefinition, presented?.inheritenceSchemaDefinition);\n });\n };\n pairVariants(previousInheritance, next.inheritenceSchemaDefinition as InheritedVariantDefinition | undefined);\n if (step.size === 0) return;\n const chained = new Map<z.ZodTypeAny, z.ZodTypeAny>();\n for (const [declared, presented] of this.presentationSubstitutionsByResource.get(resourceType) ?? []) {\n chained.set(declared, step.get(presented) ?? presented);\n }\n for (const [replaced, replacement] of step) {\n if (!chained.has(replaced)) chained.set(replaced, replacement);\n }\n this.presentationSubstitutionsByResource.set(resourceType, chained);\n }\n\n /**\n * Every resource's AUTHOR-OWNED DTOs rebuilt with its recorded substitutions, after the DTO rebuild (#1308).\n *\n * A custom DTO is the author's shape, so it is never overlaid; but where it holds the resource's declared instances\n * it reads them as the resource presents them — the ui-behavior's `fields`, the derived foreign-key display — as it\n * did when those were written onto the declared instances. Every resource, with or without a ui-behavior: the\n * foreign-key derivation presents a copy for each of them.\n */\n private substitutePresentationIntoCustomDtos(resourceConfigurations: Record<string, AnyResourceConfiguration>): void {\n for (const [resourceType, substitutions] of this.presentationSubstitutionsByResource) {\n const entry = resourceConfigurations[resourceType];\n if (!entry?.operations) continue;\n for (const op of entry.operations) {\n for (const [hasCustom, key] of [['hasCustomResponseDto', 'responseDto'], ['hasCustomResponseDto', 'contextDto'], ['hasCustomRequestDto', 'requestDto']] as const) {\n const dto = (op as any)[key] as z.ZodTypeAny | undefined;\n if ((op as any)[hasCustom] && dto) (op as any)[key] = substituteSchemaInstances(dto, substitutions);\n }\n }\n }\n }\n\n private overlayUiBehaviorDtoDecorators(\n resourceConfigurations: Record<string, AnyResourceConfiguration>,\n preset?: ResourceUIBehavior,\n ): void {\n if (!preset) return;\n for (const [resourceType, presetConfig] of Object.entries(preset)) {\n const frontendSchema = (presetConfig as Record<symbol, z.ZodTypeAny>)[FRONTEND_SCHEMA_KEY];\n if (!frontendSchema) continue;\n const declared = this.declaredFieldInstancesByResource.get(resourceType) ?? new Set<object>();\n const entry = resourceConfigurations[resourceType];\n if (!entry?.operations) continue;\n for (const op of entry.operations) {\n if (!(op as any).hasCustomResponseDto) {\n overlayUiBehaviorFieldDecorators((op as any).responseDto, frontendSchema, declared);\n overlayUiBehaviorFieldDecorators((op as any).contextDto, frontendSchema, declared);\n }\n // The edit form (`ResourceAutomatedForm`) resolves its field schemas from\n // `requestDto`; the create/update DTO builder rebuilt its array/compound fields\n // fresh, so restore the `fields` decorators here for auto-derived request DTOs.\n if (!(op as any).hasCustomRequestDto) {\n overlayUiBehaviorFieldDecorators((op as any).requestDto, frontendSchema, declared);\n }\n overlayUiBehaviorFieldDecorators((op as any).summaryDto, frontendSchema, declared);\n }\n }\n }\n\n /**\n * Build the frontend resource configurations from backend configs with preset overlay.\n *\n * The registry contains ALL backend resources, but only API_CALL\n * operation variants — backend-only variants (CRON_JOB,\n * BATCH_JOB, INTERNAL_CALL, REPOSITORY_ONLY) are excluded. The preset is a UI\n * addon that overlays frontend-specific config (icons, sections, layouts, labels,\n * operation surface selectors, etc.) on top of backend structural data.\n *\n * Every operation ends the build with an explicit frontend SURFACE\n * (`ResourceOperationFrontendSurface`) on its `operationFrontendConfig` — see\n * Step 2.5:\n * - **ADDRESSABLE** — preset `addressable()`; has a route/URL + action button\n * - **EMBEDDED** — preset `notAddressable()`; non-addressable view rendered within a host (overlay/composite/nested)\n * - **API_ONLY** — preset `apiOnly()`, the operation's `defaultFrontendPosture`,\n * or the default for any operation no preset surfaces; headless (callable via\n * httpClient, no UI). Read the surface via `isOperationAddressable()` /\n * `isOperationHeadless()`, never by config presence.\n */\n private buildFrontendResourceConfigurations(\n backendConfigurations: { [key: string]: AnyResourceConfiguration },\n allResourceFieldIdentifiers: Record<string, string>,\n preset?: ResourceUIBehavior,\n ): { [key: string]: AnyFrontendResourceConfiguration } {\n const result: { [key: string]: AnyFrontendResourceConfiguration } = {};\n\n // ── Step 1: Seed registry with all resources, retaining only frontend-callable operations.\n // Backend-only variants (CRON_JOB, BATCH_JOB, INTERNAL_CALL, REPOSITORY_ONLY) are\n // stripped here — they have no HTTP endpoint and no UI representation.\n for (const [resourceType, backendConfig] of Object.entries(backendConfigurations)) {\n result[resourceType] = {\n ...backendConfig,\n operations: (backendConfig.operations ?? [])\n .filter(op => op.variantType === ResourceOperationVariantType.API_CALL)\n .map(op => ({\n ...op,\n operationFrontendConfig: undefined,\n })),\n // A resource with no ui-behavior keeps none: `frontendConfiguration` means \"has a ui-behavior\" (the launcher reads\n // it so). Its records are still named, from `recordLabelFields`, by `FrontendResourceUtils.frontendResourceLabelDefinitionOf`.\n frontendConfiguration: undefined,\n } as AnyFrontendResourceConfiguration;\n }\n\n // ── Step 2: Overlay preset (ResourceUIBehavior) onto seeded resources.\n // Each preset entry provides resource-level config (icon, sections, labels)\n // and per-operation frontend config (surface, views, tabs).\n if (preset) {\n for (const [resourceType, presetConfig] of Object.entries(preset)) {\n const entry = result[resourceType];\n if (!entry) {\n console.warn(\n `[ResourcesRegistry] Frontend preset references resource \"${resourceType}\" ` +\n `which has no backend configuration. Skipping.`\n );\n continue;\n }\n\n const {\n views: presetViews,\n relationshipOverrides,\n compositeViews: authoredCompositeViews,\n executionViews: authoredExecutionViews,\n ...resourceLevelConfig\n } = presetConfig;\n const frontendSchema = (presetConfig as any)[FRONTEND_SCHEMA_KEY];\n const declaredFieldInstances = new Set<object>();\n collectDeclaredFieldInstances(entry.mainSchema, entry.inheritenceSchemaDefinition as InheritedVariantDefinition | undefined, declaredFieldInstances);\n this.declaredFieldInstancesByResource.set(resourceType, declaredFieldInstances);\n\n // Schema bridge — the ui-behavior PRESENTS a schema (FRONTEND_SCHEMA_KEY): the schema it\n // was declared over (FRONTEND_DECLARED_SCHEMA_KEY) with its `fields` decorations composed\n // in, a copy whenever it declares any (a decorator returns a copy since #1308). What that\n // changes is composed onto the resource's own mainSchema (#2918), so the operation-DTO\n // rebuild (`rebuildResourceConfigurationsOperationDtos`, run from `initialize` right after\n // this method) derives every DTO from the DECORATED schema, and the CREATE/UPDATE\n // requestDto is rebuilt here too. Only DTOs auto-derived from the original mainSchema are\n // rebuilt — custom DTOs get the presentation by substitution. A ui-behavior with no\n // `fields` presents the schema it was given, and then nothing changes.\n //\n // NOTE: the per-field `fields` decorator overlay does NOT live here. Every DTO\n // produced in this method is subsequently REBUILT from scratch by\n // `rebuildResourceConfigurationsOperationDtos` (its `buildAllOperationDtos` pass\n // re-wraps optional/array/compound fields into fresh instances), which would discard\n // any overlay applied now. The overlay therefore runs AFTER that rebuild — see\n // `overlayUiBehaviorDtoDecorators`, invoked from `initialize`.\n if (frontendSchema && frontendSchema !== entry.mainSchema) {\n const oldMainSchema = entry.mainSchema as z.ZodTypeAny;\n // #2918: the presentation is composed ONTO the resource's schema, never swapped in for it. The ui-behavior was\n // declared over the schema its author held, and the factory's schema adds fields to it (a polymorphic variant's\n // parent key, `retentionStatus`, …) and re-decorates some (a variant's business keys); swapping the presented\n // schema in dropped all of those from every DTO the frontend derives. A preset built by hand names no declared\n // schema, and is read as declared over the resource's own.\n const declaredSchema = ((presetConfig as any)[FRONTEND_DECLARED_SCHEMA_KEY] ?? oldMainSchema) as z.ZodTypeAny;\n const presentedMainSchema = composeUiBehaviorPresentation(oldMainSchema, declaredSchema, frontendSchema as z.ZodTypeAny, { objectLevel: true });\n this.presentSchemas(resourceType, entry, {\n mainSchema: presentedMainSchema,\n inheritenceSchemaDefinition: composePresentedFieldsIntoVariants(\n entry.inheritenceSchemaDefinition as InheritedVariantDefinition | undefined,\n oldMainSchema,\n presentedMainSchema,\n ),\n });\n if (presentedMainSchema !== oldMainSchema) {\n for (const op of entry.operations) {\n if (!(op as any).requestDto) continue;\n const effectiveOp = (op as any).resourceOperationLike\n ? String((op as any).resourceOperationLike)\n : String(op.operationIdentifier);\n // Never an author-owned request DTO: a `.pick(...)` of the schema shares its fields, and replacing it would put\n // every field of the resource on a form its author narrowed. It gets the presentation by substitution instead.\n if ((effectiveOp === CoreResourceOperation.CREATE || effectiveOp === CoreResourceOperation.UPDATE)\n && !(op as any).hasCustomRequestDto\n && isDtoDerivedFromSchema((op as any).requestDto, oldMainSchema)) {\n (op as any).requestDto = deriveRequestDto(effectiveOp, presentedMainSchema, undefined);\n }\n }\n }\n }\n\n // Apply resource-level config (icon, sections, labels, field addons, etc.)\n // `relationshipOverrides` is already destructured out — it's a build-time\n // directive consumed below, not stored on frontendConfiguration.\n // #2775: a record has ONE name on every surface. `recordLabelFields` is the name the backend can read (a chat\n // answer, a Teams search result), so a resource declaring it names its records by it here too; a ui-behavior\n // label beside it would be a second name, shown in the application and never in the chat. Refused, as one record\n // under two names nobody can see disagree is the defect (Salesforce's Record Name and ServiceNow's display value\n // are the same rule: one display name per record, declared on the model, read by every surface).\n if ((entry.recordLabelFields?.length ?? 0) > 0 && (resourceLevelConfig as { getFrontendResourceLabel?: unknown }).getFrontendResourceLabel !== undefined) {\n throw new Error(\n `[ResourcesRegistry] Resource \"${resourceType}\" names its records twice: \\`recordLabelFields\\` ` +\n `(${entry.recordLabelFields!.join(', ')}) and its ui-behavior's getFrontendResourceLabel. A record has one name, ` +\n `which a chat shows too: remove getFrontendResourceLabel (the application names it by recordLabelFields), or ` +\n `remove recordLabelFields if the resource has no chat command that names its records.`\n );\n }\n const compiledCompositeViews = this.buildResourceCompositeViewDefinitions(\n resourceType,\n entry.resourcePrimaryScope ?? ResourcePrimaryScope.ORGANIZATIONS,\n authoredCompositeViews,\n );\n const compiledExecutionViews = this.buildResourceExecutionViewDefinitions(\n entry.resourcePrimaryScope ?? ResourcePrimaryScope.ORGANIZATIONS,\n authoredExecutionViews,\n );\n entry.frontendConfiguration = {\n ...resourceLevelConfig,\n ...(compiledCompositeViews.length > 0 && {\n compositeViews: compiledCompositeViews,\n }),\n ...(compiledExecutionViews.length > 0 && {\n executionViews: compiledExecutionViews,\n }),\n };\n\n // Apply per-operation frontend config — matches preset views keys\n // to registered API_CALL operations. Authored\n // `iconOverride` rides along on `operationFrontendConfig`; the\n // `IconRegistryBridge` reads it from each operation at render time\n // and surfaces it into `CoreIconRegistry.operationResources`.\n if (presetViews) {\n for (const [operationKey, opConfig] of presetViews) {\n const matchedOp = this.findOperationByPresetKey(\n entry.operations as FrontendResourceConfiguration_Operation[],\n operationKey,\n );\n if (matchedOp) {\n matchedOp.operationFrontendConfig = opConfig;\n }\n }\n }\n // Apply relationship display overrides — clones affected relationships\n // to avoid mutating shared references across resource buckets.\n if (relationshipOverrides && relationshipOverrides.length > 0) {\n this.resolveRelationshipDisplayOverrides(\n resourceType,\n entry.resourceRelationships,\n relationshipOverrides,\n allResourceFieldIdentifiers,\n );\n }\n\n // Resource-level icon rides on `entry.frontendConfiguration.icon`\n // (spread above from `resourceLevelConfig`, which keeps every\n // `ResourceUIBehaviorConfig` field that isn't `views` / `relationshipOverrides`\n // / `compositeViews` / `executionViews`). The `IconRegistryBridge`\n // walks the registry and populates `CoreIconRegistry.resources` from\n // this field. No side-effecting registration call needed here.\n }\n }\n\n // ── Step 2.5: Resolve the frontend SURFACE for every operation.\n // After the preset overlay, any operation without an explicit surface falls\n // back to its backend-authored `defaultFrontendPosture`, else a per-kind default\n // (BULK ops → EMBEDDED so the bulk bar isn't emptied; else API_ONLY headless —\n // callable via httpClient, no UI). This makes the third tier an\n // explicit `surface` on every operation rather than an implicit `undefined`,\n // so the surface is auditable end-to-end (spec distillation, navigation,\n // action bars all read it via `isOperationAddressable()`/`isOperationHeadless()`).\n //\n // It also fail-closes the one illegal combination the `apiOnly()` factory\n // signature cannot catch on a hand-written literal: an API_ONLY operation must\n // carry NO view fields (a headless operation has no action button, layout,\n // icon, or custom view).\n for (const [resourceType, entry] of Object.entries(result)) {\n for (const op of entry.operations) {\n if (op.operationFrontendConfig === undefined) {\n // Default for an unsurfaced operation: its backend-authored\n // `defaultFrontendPosture`, else a per-kind default. BULK operations are\n // auto-generated (`DELETE_MANY`/`UPDATE_MANY` + generated relationship bulk\n // ops) and can NEVER be authored in a preset — preset `views` keys resolve\n // to the non-bulk variant — yet they DO render, in the bulk action bar. So\n // they default to EMBEDDED (a view rendered in a host), not API_ONLY;\n // otherwise the action-bar headless filter would empty the entire bulk bar.\n // Non-bulk unsurfaced operations default to API_ONLY (truly headless — no\n // preset gave them a view).\n op.operationFrontendConfig = {\n surface: op.defaultFrontendPosture\n ?? (op.isBulkOperation\n ? ResourceOperationFrontendSurface.EMBEDDED\n : ResourceOperationFrontendSurface.API_ONLY),\n };\n continue;\n }\n if (op.operationFrontendConfig.surface === ResourceOperationFrontendSurface.API_ONLY) {\n const cfg = op.operationFrontendConfig;\n const hasViewField =\n cfg.actionVisibility !== undefined ||\n cfg.runtimeAvailability !== undefined ||\n cfg.actionPlacement !== undefined ||\n cfg.actionPresentation !== undefined ||\n cfg.actionVariant !== undefined ||\n cfg.customView !== undefined ||\n cfg.displayPresetOverride !== undefined ||\n (cfg.navigationOverrides?.length ?? 0) > 0 ||\n cfg.displayPriority !== undefined ||\n cfg.iconOverride !== undefined ||\n cfg.collectionDisplayConfig !== undefined ||\n cfg.hasDescription !== undefined;\n if (hasViewField) {\n throw new Error(\n `[ResourcesRegistry] Operation \"${String(op.operationIdentifier)}\" on resource ` +\n `\"${resourceType}\" declares surface API_ONLY (headless) but carries view-only ` +\n `frontend config (action/layout/icon/customView). A headless operation has no UI ` +\n `surface — drop the view fields, or change its surface to ADDRESSABLE/EMBEDDED.`\n );\n }\n }\n }\n }\n\n // ── Step 3: Derive FK field display from relationship parentDisplay.\n // For each resource's parentRelationships, set `foreignKeyUI.display`\n // on the FK schema field based on the relationship's `inChildView.parentDisplay`.\n // Only fills gaps — explicit `.foreignKeyUI()` on the schema field always wins.\n for (const [resourceType, entry] of Object.entries(result)) {\n this.deriveForeignKeyDisplayFromRelationships(\n resourceType,\n entry,\n allResourceFieldIdentifiers,\n );\n }\n\n console.info(\n `[ResourcesRegistry] Frontend registry built: ` +\n `${Object.keys(result).length} resource(s) total, ` +\n `${preset ? Object.keys(preset).length : 0} with UI behavior.`\n );\n\n return result;\n }\n\n\n private buildResourceCompositeViewDefinitions(\n resourceType: string,\n primaryScope: ResourcePrimaryScope,\n compositeViews: ResourceCompositeViewsConfig | undefined,\n ): InsertedCompositeDeclaration[] {\n if (!compositeViews) {\n return [];\n }\n\n return Object.entries(compositeViews).map(([ref, authoredView]) => ({\n ref,\n translationRef: buildResourceCompositeViewTranslationRef(resourceType, ref),\n scope: FrontendView_ScopeMode.RESOURCE,\n isAddressable: true,\n operationLike: authoredView.operationLike ?? CoreResourceOperation.READ,\n primaryScope,\n sectionRefs: authoredView.sectionRefs,\n viewComponent: authoredView.viewComponent,\n icon: authoredView.icon,\n }));\n }\n\n private buildResourceExecutionViewDefinitions(\n primaryScope: ResourcePrimaryScope,\n executionViews: ResourceExecutionViewsConfig | undefined,\n ): InsertedExecutionDeclaration[] {\n if (!executionViews) {\n return [];\n }\n\n return Object.entries(executionViews).map(([ref, executionView]) => ({\n ref,\n scope: FrontendView_ScopeMode.RESOURCE,\n isAddressable: executionView.isAddressable ?? true,\n primaryScope: executionView.primaryScope ?? primaryScope,\n parentResourcesRequirements: executionView.parentResourcesRequirements,\n additionalResourceRequirements: executionView.additionalResourceRequirements,\n anchor: executionView.anchor,\n surfaceInOperations: executionView.surfaceInOperations,\n participations: executionView.participations,\n viewComponent: executionView.viewComponent,\n requiredFeatures: executionView.requiredFeatures,\n // View-local i18n label declarations must survive the authoring→compiled\n // mapping: the companion labelling collector reads `executionView.labels`\n // off the compiled definition to generate\n // `views.execution.resources.<res>.<ref>.<labelRef>`. Dropping it here\n // (this map lists fields explicitly, it does not spread) silently strips\n // the whole custom-label set — the keys never reach generation.\n labels: executionView.labels,\n // Same survival requirement as `labels`: the IconRegistryBridge reads\n // `icon` off the compiled definition (`view-execution-{ref}` custom key).\n icon: executionView.icon,\n // Same again for the launcher presentation: `ResourceLayout_InsertedViews`\n // reads `launcher` off the COMPILED definition to decide which host slot\n // renders this view's entry point (and how). Dropped here, every view\n // would silently fall back to the framework default placement.\n launcher: executionView.launcher,\n }));\n }\n\n /**\n * Resolve relationship display overrides declared in the frontend preset.\n *\n * For each override entry, searches all three relationship buckets\n * (`parentRelationships`, `childRelationships`, `selfRelationships`) for\n * a match by target resource type (and optional FK field for disambiguation).\n *\n * **Shared reference safety**: Relationship objects are shared across different\n * resources' buckets (e.g., the same `ResourceRelationship` appears in parent A's\n * `childRelationships` and child B's `parentRelationships`). To prevent mutations\n * from leaking, matched relationships are **cloned** before display overrides are applied.\n */\n private resolveRelationshipDisplayOverrides(\n resourceType: string,\n relationships: ResourceConfiguration_ResourceRelationships,\n overrides: RelationshipDisplayOverride[],\n allResourceFieldIdentifiers: Record<string, string>,\n ): void {\n type BucketEntry = {\n bucket: ResourceRelationship[];\n index: number;\n rel: ResourceRelationship;\n bucketName: 'childRelationships' | 'parentRelationships' | 'selfRelationships';\n };\n\n for (const override of overrides) {\n const candidates: BucketEntry[] = [];\n\n // Search childRelationships: current resource is parent, target is child\n for (let i = 0; i < relationships.childRelationships.length; i++) {\n const rel = relationships.childRelationships[i];\n if (rel.resourceType2 === override.target) {\n candidates.push({ bucket: relationships.childRelationships, index: i, rel, bucketName: 'childRelationships' });\n }\n }\n\n // Search parentRelationships: current resource is child, target is parent\n for (let i = 0; i < relationships.parentRelationships.length; i++) {\n const rel = relationships.parentRelationships[i];\n if (rel.resourceType1 === override.target) {\n candidates.push({ bucket: relationships.parentRelationships, index: i, rel, bucketName: 'parentRelationships' });\n }\n }\n\n // Search selfRelationships: both sides are the same type\n for (let i = 0; i < relationships.selfRelationships.length; i++) {\n const rel = relationships.selfRelationships[i];\n if (rel.resourceType1 === override.target) {\n candidates.push({ bucket: relationships.selfRelationships, index: i, rel, bucketName: 'selfRelationships' });\n }\n }\n\n // Filter out STANDALONE candidates.\n //\n // STANDALONE relationships are pure structural metadata — they declare\n // primary-scope ownership or M:N expansion anchoring but are intentionally\n // OFF the URL surface (no nested route, no parent-context view). The\n // `RelationshipDisplayOverride` carries navigation / child-view / interaction,\n // `inParentNavigation`, `inChildView` — none of which apply to a\n // relationship that has no parent-context surface. Keeping STANDALONE\n // candidates in the disambiguation set produces spurious \"duplicate FK\"\n // warnings on registries where the user-facing M:N expansion peer→junction\n // edge coexists with a STANDALONE primary-scope anchor (canonical case:\n // ORGANIZATIONS → ORGANIZATION_MEMBERS).\n //\n // Self-relationships and OPTIONAL_CONTEXT/REQUIRES_CONTEXT relationships\n // are kept — they all have at least one URL/view surface the override\n // can attach to.\n if (candidates.length > 1) {\n const surfaced = candidates.filter(\n ({ rel }) => rel.accessScopeStrategy !== ResourceRelationshipAccessScopeStrategy.STANDALONE\n );\n if (surfaced.length > 0) {\n candidates.length = 0;\n candidates.push(...surfaced);\n }\n // If filtering would eliminate all candidates (every match is STANDALONE),\n // keep the originals and let the downstream warning paths handle it —\n // the override is meaningless but we still want a visible signal.\n }\n\n // Narrow by foreignKeyField if provided\n if (override.foreignKeyField && candidates.length > 0) {\n const fkFiltered = candidates.filter(({ rel }) => {\n const resolvedFk = Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(\n rel,\n allResourceFieldIdentifiers\n )?.fieldIdentifier;\n return resolvedFk === override.foreignKeyField;\n });\n candidates.length = 0;\n candidates.push(...fkFiltered);\n }\n\n // Outcome handling\n if (candidates.length === 0) {\n if (envLoader.isDevelopment()) {\n const availableRels = [\n ...relationships.childRelationships.map(r => `${r.resourceType2} (FK: ${Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(r, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'})`),\n ...relationships.parentRelationships.map(r => `${r.resourceType1} (FK: ${Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(r, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'})`),\n ...relationships.selfRelationships.map(r => `${r.resourceType1} (FK: ${Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(r, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'})`),\n ];\n console.warn(\n `[RelationshipDisplay] Resource \"${resourceType}\" has no relationship with \"${override.target}\"` +\n `${override.foreignKeyField ? ` (FK: ${override.foreignKeyField})` : ''}. ` +\n `Available relationships: [${availableRels.join(', ')}]. Override ignored.`\n );\n }\n continue;\n }\n\n if (candidates.length > 1 && !override.foreignKeyField) {\n if (envLoader.isDevelopment()) {\n const fkFields = candidates.map(({ rel }) =>\n Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(rel, allResourceFieldIdentifiers)?.fieldIdentifier ?? 'unresolved'\n );\n console.warn(\n `[RelationshipDisplay] Resource \"${resourceType}\" has ${candidates.length} relationships ` +\n `with \"${override.target}\" (FK fields: [${fkFields.join(', ')}]). ` +\n `Provide foreignKeyField to disambiguate. Override ignored.`\n );\n }\n continue;\n }\n\n if (candidates.length > 1 && override.foreignKeyField) {\n if (envLoader.isDevelopment()) {\n console.warn(\n `[RelationshipDisplay] Resource \"${resourceType}\" has ${candidates.length} relationships ` +\n `with \"${override.target}\" even after FK field \"${override.foreignKeyField}\" filtering. ` +\n `Applying to first match.`\n );\n }\n }\n\n // Apply override to the first (or only) match — clone to avoid shared reference mutation\n const { bucket, index, rel } = candidates[0];\n const cloned: ResourceRelationship = {\n ...rel,\n display: rel.display ? { ...rel.display } : undefined,\n };\n\n if (override.inParentNavigation) {\n cloned.display = {\n ...cloned.display,\n inParentNavigation: { ...cloned.display?.inParentNavigation, ...override.inParentNavigation },\n };\n }\n if (override.inChildView) {\n cloned.display = {\n ...cloned.display,\n inChildView: { ...cloned.display?.inChildView, ...override.inChildView },\n };\n }\n\n if (cloned.display) {\n cloned.display = RelationshipDisplayConfigSchema.parse(cloned.display);\n }\n\n bucket[index] = cloned;\n }\n }\n\n\n /**\n * Derive FK field display config from parent relationship declarations.\n *\n * For each `parentRelationship` on a resource, identifies the FK schema field\n * and sets `foreignKeyUI.display` metadata based on the relationship's\n * `inChildView.parentDisplay` value.\n *\n * Derivation rules (DD-2):\n * | parentDisplay | FK mode | FK linkable | Rationale |\n * |------------------|-----------|-------------|--------------------------------------|\n * | CONTEXT (default)| LABEL | true | Context header handles nav; FK = link|\n * | BREADCRUMB | LABEL | false | Breadcrumb handles nav; FK = text |\n * | BADGE | LABEL | false | Badge handles nav; FK = text |\n * | SUMMARY | SUMMARY | true | Both FK and structural show summary |\n * | NONE | ID | false | No parent reference; FK = raw ID |\n *\n * **Override priority**: Explicit `.foreignKeyUI()` on the schema field always wins.\n * The derivation only sets metadata when no `FOREIGN_KEY_UI` decorator exists.\n */\n private deriveForeignKeyDisplayFromRelationships(\n resourceType: string,\n entry: AnyFrontendResourceConfiguration,\n allResourceFieldIdentifiers: Record<string, string>,\n ): void {\n const { parentRelationships, selfRelationships } = entry.resourceRelationships;\n\n // Process both parentRelationships and selfRelationships (self-refs have parent direction too)\n const allParentRels = [...parentRelationships, ...selfRelationships];\n\n for (const rel of allParentRels) {\n // Self-references without explicit foreignKeyField would resolve to the\n // resource's own field identifier (= the PK), not the self-referencing FK.\n if (rel.resourceType1 === rel.resourceType2 && !rel.foreignKeyField) {\n continue;\n }\n\n // Determine the FK field name for this relationship\n const fkFieldName = Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(\n rel,\n allResourceFieldIdentifiers\n )?.fieldIdentifier;\n if (!fkFieldName) continue;\n\n // Derive from parentDisplay (after override merge from Phase 1)\n const parentDisplay = rel.display?.inChildView?.parentDisplay ?? ParentDisplay.CONTEXT;\n\n let derivedMode: ForeignKeyDisplayMode;\n let derivedLinkable: boolean;\n\n switch (parentDisplay) {\n case ParentDisplay.CONTEXT:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = true;\n break;\n case ParentDisplay.BREADCRUMB:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = false;\n break;\n case ParentDisplay.BADGE:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = false;\n break;\n case ParentDisplay.SUMMARY:\n derivedMode = ForeignKeyDisplayMode.SUMMARY;\n derivedLinkable = true;\n break;\n case ParentDisplay.NONE:\n derivedMode = ForeignKeyDisplayMode.ID;\n derivedLinkable = false;\n break;\n default:\n derivedMode = ForeignKeyDisplayMode.LABEL;\n derivedLinkable = true;\n break;\n }\n\n const derivedConfig: ForeignKeyUIParams = {\n display: {\n mode: derivedMode,\n linkable: derivedLinkable,\n },\n };\n\n /*\n * Every copy of the FK field (#2455): the base's, and a variant's that re-declares it. A variant-only relationship\n * key is refused at boot, so the base always holds one; a variant copy that re-declares it renders through the same\n * derived display, or a row of that variant would show the key the base copy hides.\n *\n * Written as a decorated COPY of the field, swapped into a rebuilt row schema (#1308). The derivation used to\n * decorate the field's inner schema in place, and an FK leaf is often SHARED across resources: the first resource\n * to derive wrote its display onto the shared leaf, and every later resource then read that as an explicit\n * `.foreignKeyUI()` and kept the first resource's display, whatever its own relationship said.\n */\n const deriveRow = (rowSchema: z.ZodTypeAny): z.ZodTypeAny => {\n const shape = getZodObjectShape(rowSchema);\n const fieldSchema = shape?.[fkFieldName] as z.ZodTypeAny | undefined;\n if (!fieldSchema || !isForeignKeyField(fieldSchema)) return rowSchema;\n // An explicit `.foreignKeyUI()` wins. getCustomFieldMetadata traverses wrappers (optional, nullable, …).\n if (getCustomFieldMetadata(fieldSchema)[ZodDecorator.FOREIGN_KEY_UI] !== undefined) return rowSchema;\n // Decorated on the field as declared: the copy merges with its existing metadata and mirrors onto a private\n // copy of its inner schema, so readers that unwrap first see it too.\n const derivedField = addDecorators(fieldSchema, [{ ref: ZodDecorator.FOREIGN_KEY_UI, params: derivedConfig }]);\n return withObjectFields(rowSchema, { [fkFieldName]: derivedField });\n };\n // Through the one door that also repoints the operations the DTO rebuild reads and records the substitution a\n // custom DTO reads the derived display through (#1308): replacing `mainSchema` alone left every rebuilt DTO on\n // the declared field.\n this.presentSchemas(resourceType, entry, {\n mainSchema: deriveRow(entry.mainSchema as z.ZodTypeAny),\n inheritenceSchemaDefinition: mapInheritedVariantSchemas(entry.inheritenceSchemaDefinition as InheritedVariantDefinition | undefined, deriveRow),\n });\n }\n }\n\n\n /**\n * Find an operation in the registry that matches a preset `OperationKey`.\n *\n * The `operations` array only contains API_CALL variants\n * (filtered in `buildFrontendResourceConfigurations` step 1), so this method is\n * guaranteed to only match frontend-callable operations.\n *\n * Matching rules:\n * - `string` key → explicit default operation (`isOperationDefault === true`),\n * falling back to the no-variant-key shape only for older operation objects\n * that do not carry a default marker.\n * - `[string, string]` tuple → variant operation (`variantKey === key[1]`).\n */\n private findOperationByPresetKey(\n operations: FrontendResourceConfiguration_Operation[],\n key: OperationKey,\n ): FrontendResourceConfiguration_Operation | undefined {\n if (Array.isArray(key)) {\n const [opId, variantKey] = key;\n return operations.find(\n (op) => op.operationIdentifier === opId && op.variantKey === variantKey\n );\n }\n\n // String key — match the explicit default first. No-key fallback is only\n // for older/generated operation objects that predate `isOperationDefault`.\n const sameIdentifierOperations = operations.filter((op) => op.operationIdentifier === key);\n const explicitDefaultCandidates = sameIdentifierOperations.filter((op) => op.isOperationDefault === true);\n const candidates = explicitDefaultCandidates.length > 0\n ? explicitDefaultCandidates\n : sameIdentifierOperations.filter((op) => !op.variantKey);\n if (candidates.length === 0) return undefined;\n if (candidates.length === 1) return candidates[0];\n\n const nonBulkCandidates = candidates.filter((op) => op.isBulkOperation !== true);\n if (nonBulkCandidates.length === 1) {\n return nonBulkCandidates[0];\n }\n\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n {\n operationIdentifier: key,\n candidateVariants: candidates.map((op) => ({\n variantType: op.variantType,\n variantKey: op.variantKey,\n isOperationDefault: op.isOperationDefault,\n isBulkOperation: op.isBulkOperation,\n })),\n message: 'Frontend preset operation key resolves to multiple URL-bearing variants. Use an explicit [operationIdentifier, variantKey] tuple or make the default operation identity unique.',\n },\n );\n }\n\n /**\n * Generate URLs for API_CALL operations.\n *\n * Populates `initiatorInfos` on each operation with the computed URL path,\n * HTTP verb, and path parameters. Called after the registry is seeded but\n * before the HTTP client is constructed (the client reads URLs from operations).\n */\n private generateUrlsForApiCallOperations(\n allResourceConfigurations: { [key: string]: AnyResourceConfiguration },\n allResourceFieldIdentifiers: Record<string, string>\n ): void {\n for (const [resourceType, resourceConfig] of Object.entries(allResourceConfigurations)) {\n try {\n ResourcesConfigOperationsUrlsBuilderUtils.updateOperationUrls(\n resourceConfig,\n allResourceFieldIdentifiers\n );\n } catch (error) {\n console.error(`Failed to generate URLs for resource type ${resourceType}:`, error);\n }\n }\n }\n\n /**\n * Get the full registry\n */\n public getResourcesRegistry(): FrontendResourcesRegistry {\n if (!this.isInitialized) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_RESOURCES_NOT_INITIALIZED,\n { method: 'getResourcesRegistry' }\n );\n }\n return this.registry!;\n }\n\n /**\n * Get available resource types (used for initialization logging)\n */\n public getAvailableResourceTypes(): string[] {\n if (!this.isInitialized) {\n return [];\n }\n return Object.keys(this.registry!.resourceConfigurations);\n }\n\n /**\n * Get registry information for debugging\n */\n public getRegistryInfo(): {\n registeredResourceTypes: string[];\n } {\n if (!this.isInitialized) {\n return { registeredResourceTypes: [] };\n }\n\n return {\n registeredResourceTypes: Object.keys(this.registry!.resourceConfigurations),\n };\n }\n\n /**\n * Get the resources HTTP client for operation execution\n * This should only be called through ResourceRepositoryContext\n */\n public getResourcesHttpClient(): WildoBackendHttpClient_Resources {\n if (!this.isInitialized || !this.resourcesHttpClient) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_RESOURCES_NOT_INITIALIZED,\n { method: 'getResourcesHttpClient' }\n );\n }\n return this.resourcesHttpClient;\n }\n\n /**\n * Get the base application HTTP client.\n *\n * This is the SAME instance exposed app-wide as `useApplication().httpClient`\n * (the repository is constructed with it), and it is DISTINCT from the\n * specialized resources client returned by {@link getResourcesHttpClient}.\n * Resource-integrated file operations (upload / metadata / delete via\n * `FormFieldFile`) run through this base client, so the auth token / renewal\n * handler / consumable token must be mirrored onto it too — otherwise those\n * file requests are sent unauthenticated. Exposed so the registry's auth-token\n * fan-out can reach it from the single seam that already tokens the resources\n * client.\n */\n public getApplicationHttpClient(): WildoBackendHttpClient {\n return this.httpClient;\n }\n\n /**\n * Validate that all isForeignKey() fields in registered schemas can be resolved\n * to a resource type via the fieldIdentifierToResourceType map (enriched from relationships).\n *\n * In development: throws if unresolvable FK fields are found (fail fast).\n * In production: logs error for monitoring; individual failures surface at point of use.\n */\n private validateForeignKeyResolution(\n resourceConfigurations: Record<string, AnyFrontendResourceConfiguration>,\n fieldIdentifierToResourceType: Record<string, string>\n ): void {\n // The sweep itself is shared (Resources_SharedUtils) so the app-creation\n // verification lane runs the SAME check headless after compose/coding\n // mutations, instead of this being the first place the defect can surface.\n const unresolvedFKFields = Resources_SharedUtils.collectUnresolvableForeignKeyFields({\n mainSchemasByResourceType: Object.fromEntries(\n Object.entries(resourceConfigurations).map(([resourceType, config]) => [resourceType, config.mainSchema as z.ZodTypeAny | undefined]),\n ),\n variantSchemasByResourceType: Object.fromEntries(\n Object.entries(resourceConfigurations).map(([resourceType, config]) => [resourceType, resourceInheritanceVariantSchemas(config.inheritenceSchemaDefinition as never)]),\n ),\n fieldIdentifierToResourceType,\n });\n\n if (unresolvedFKFields.length > 0) {\n const details = unresolvedFKFields\n .map(({ resourceType, fieldName }) => ` - ${resourceType}.${fieldName}`)\n .join('\\n');\n\n const message =\n `[ResourcesRegistry] ${unresolvedFKFields.length} FK field(s) cannot be resolved to a resource type:\\n` +\n `${details}\\n` +\n `Fix: Declare a relationship with the corresponding foreignKeyField.`;\n\n // Log error with full context in all environments\n console.error(message);\n\n // In development: throw to fail fast and surface the issue immediately\n if (envLoader.isDevelopment()) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_FK_RESOLUTION_FAILED,\n { unresolvedFKFields, message }\n );\n }\n // In production: error is logged above. Individual component failures will\n // throw at point of use via resolveResourceTypeForForeignKey().\n }\n }\n\n /**\n * TIER 1 of the file display guard — the STATIC half, decided at registry build.\n *\n * A file field whose schema declares a NARROW `FileNature` has a knowable answer to\n * \"can this be displayed?\": IMAGE/VIDEO/AUDIO/PDF have displayers, OFFICE and\n * ARCHIVE do not. So a policy asking to RENDER such a file — `THUMBNAIL` / `FULL`\n * presentation, or `OVERLAY` activation — is either satisfiable forever or broken\n * forever, and the broken case is a configuration error rather than something to\n * discover at render time as a blank frame.\n *\n * `FileNature.ALL` is deliberately NOT judged here: the MIME type only exists once\n * a file does, so that case is genuinely undecidable statically and is owned by the\n * runtime tier (`resolveFileDisplayPolicy`), which degrades deterministically.\n * This is the same static/runtime reachability split the lazy-boundary work uses.\n */\n private validateFileDisplayPolicyCoherence(resourceConfigurations: Record<string, AnyFrontendResourceConfiguration>): void {\n const offendingFields: Array<{ resourceType: string; fieldName: string; nature: string; requested: string }> = [];\n\n for (const [resourceType, config] of Object.entries(resourceConfigurations)) {\n // Every schema a row can have (#2455): a variant file field's broken policy is a configuration error too.\n const fieldEntries = [config.mainSchema, ...resourceInheritanceVariantSchemas((config as { inheritenceSchemaDefinition?: unknown }).inheritenceSchemaDefinition as never)]\n .flatMap((rowSchema) => Object.entries(getZodObjectShape(rowSchema as z.ZodTypeAny) ?? {}));\n const judged = new Set<string>();\n\n for (const [fieldName, fieldSchema] of fieldEntries) {\n if (judged.has(fieldName)) continue;\n const typedSchema = fieldSchema as z.ZodTypeAny;\n const fileMetadata = getFileMetadata(typedSchema);\n if (!fileMetadata?.nature) continue;\n\n const displayParams = getFieldUIDisplayConfig(typedSchema) as FileUIDisplayParams | undefined;\n if (!displayParams) continue;\n\n const wantsRender = displayParams.presentation !== undefined\n && displayParams.presentation !== FileDisplayPresentation.CARD;\n const wantsOverlay = displayParams.activation?.policy === FileActivationPolicy.OVERLAY;\n if (!wantsRender && !wantsOverlay) continue;\n\n // `undefined` = FileNature.ALL = undecidable here; the runtime tier owns it.\n if (declaredFileNatureCanDisplay(fileMetadata.nature) !== false) continue;\n\n judged.add(fieldName);\n offendingFields.push({\n resourceType,\n fieldName,\n nature: String(fileMetadata.nature),\n requested: wantsRender ? `presentation ${displayParams.presentation}` : 'activation overlay',\n });\n }\n }\n\n if (offendingFields.length === 0) return;\n\n const details = offendingFields\n .map(({ resourceType, fieldName, nature, requested }) => ` - ${resourceType}.${fieldName} (nature ${nature}) requests ${requested}`)\n .join('\\n');\n const message =\n `[ResourcesRegistry] ${offendingFields.length} file field(s) request a display no displayer can satisfy:\\n` +\n `${details}\\n` +\n `Fix: use presentation CARD (with a DOWNLOAD/NEW_TAB activation) for natures that have no viewer, ` +\n `or widen the declared FileNature if the field genuinely holds displayable files.`;\n\n console.error(message);\n if (envLoader.isDevelopment()) {\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_FK_RESOLUTION_FAILED,\n { offendingFields, message },\n );\n }\n }\n\n /**\n * Validate that each resource-owned special view ref is unique within its\n * resource-local namespace.\n *\n * `RESOURCE_VIEW` references are family-agnostic by design, so chart,\n * composite, and execution declarations must not reuse the same `viewRef`.\n */\n private validateResourceOwnedViewRefUniqueness(resourceConfigurations: Record<string, AnyFrontendResourceConfiguration>): void {\n for (const resourceType of Object.keys(resourceConfigurations)) {\n const viewsByRef = new Map<string, ReturnType<typeof listResourceOwnedViewReferences>>();\n\n for (const view of listResourceOwnedViewReferences({\n resourceType,\n registry: {\n resourceConfigurations,\n } as FrontendResourcesRegistry,\n })) {\n const existing = viewsByRef.get(view.viewRef) ?? [];\n existing.push(view);\n viewsByRef.set(view.viewRef, existing);\n }\n\n for (const [viewRef, matches] of viewsByRef.entries()) {\n if (matches.length <= 1) {\n continue;\n }\n\n const declaredFamilies = matches\n .map((match) => match.family)\n .join(', ');\n throw this.buildConfigurationError(\n ErrorCustomMessageReference.CONFIGURATION,\n {\n component: 'ResourcesRepositoryFrontendService.validateResourceOwnedViewRefUniqueness',\n message: `Resource \"${resourceType}\" declares resource-owned view ref \"${viewRef}\" multiple times (${declaredFamilies}). RESOURCE_VIEW refs must be unique per resource-owned view namespace.`,\n },\n );\n }\n }\n }\n\n}\n"]}
|