@wildo-ai/saas-frontend-lib 1.1.5 → 1.1.6
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/components/actions/action-bar.d.ts +15 -0
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js +15 -0
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +97 -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/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +8 -3
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js +5 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.js +1 -4
- package/dist/esm/components/auth/Auth_Main.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.js +1 -3
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts +7 -0
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js +13 -7
- 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 +32 -33
- 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 +18 -20
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js +2 -3
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts +13 -16
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js +18 -15
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.js +2 -2
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.js +2 -2
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts +33 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.js +34 -5
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.js +2 -2
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts +2 -0
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.js +1 -0
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +15 -1
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.js +11 -0
- package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +12 -2
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js +3 -2
- 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/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js +8 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js +18 -4
- 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 +61 -3
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +7 -5
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +11 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +36 -11
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts +6 -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/external-data-provenance/DisplayFieldProvenanceNote.d.ts +23 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +35 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +47 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +124 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts +8 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +46 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -0
- package/dist/esm/components/feedback/resource-empty-state.d.ts +21 -8
- package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.js +56 -26
- package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts +29 -7
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +231 -101
- 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 +57 -0
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js +4 -4
- 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 +0 -5
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts +2 -2
- package/dist/esm/components/form/Form.js +2 -2
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +28 -3
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +43 -14
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts +3 -0
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +60 -21
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.d.ts +6 -3
- package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.js +3 -2
- package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +5 -4
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +148 -55
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts +30 -0
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js +30 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts +79 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js +203 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +12 -0
- 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 +11 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js +2 -2
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts +7 -0
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.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 +13 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.d.ts +58 -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 +34 -6
- package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js +60 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.d.ts +0 -12
- package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.js +34 -13
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +46 -0
- package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +73 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js +64 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -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 +8 -1
- package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.js +4 -0
- package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts +31 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js +81 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts +14 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js +14 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +22 -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 +1 -22
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts +11 -0
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts +11 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js +15 -3
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +18 -20
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +7 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js +4 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.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 +18 -2
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +82 -10
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +8 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +8 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js +6 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +31 -16
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js +23 -8
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts +13 -0
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js +55 -28
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js +41 -20
- 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 +1 -2
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts +9 -4
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js +30 -11
- 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 +4 -2
- 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 +6 -2
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js +30 -14
- package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +14 -198
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.d.ts +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +69 -39
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts +32 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js +130 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts +32 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js +37 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -0
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js +5 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts +8 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js +49 -2
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +22 -0
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js +85 -2
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.d.ts +14 -0
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js +22 -0
- 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 +3 -0
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js +33 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.js +3 -0
- package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts +12 -0
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js +28 -2
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts +70 -0
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js +157 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +6 -0
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js +13 -2
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js +2 -1
- package/dist/esm/components/resources/skeleton/WizardStep.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 +61 -15
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +24 -2
- 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 +69 -1
- 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 +18 -19
- 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 +5 -4
- package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts +5 -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 +12 -3
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +43 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +129 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +34 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js +9 -11
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js +3 -2
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts +4 -2
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.js +21 -3
- package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js +5 -10
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +58 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +243 -40
- 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 +67 -6
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js +19 -11
- 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 +4 -2
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +3 -0
- package/dist/esm/components/settings/SettingsHub.js.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js +16 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +59 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js +136 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.js +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts +50 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js +72 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -0
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js +2 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +86 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +187 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -0
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.js +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +18 -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 +1 -0
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts +10 -0
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js +28 -5
- 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 +38 -0
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +15 -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 +47 -13
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts +25 -2
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +16 -25
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts +11 -3
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js +14 -8
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.js +2 -0
- package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
- 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 +1 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +29 -229
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +29 -327
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +17 -27
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +28 -48
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +21 -11
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js +4 -4
- 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 +17 -0
- 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 +17 -0
- 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 +10 -10
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +221 -6
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +8 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +1 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +10 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +9 -0
- package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +30 -19
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorContext.js +9 -1
- package/dist/esm/core/errors/ErrorContext.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js +5 -4
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts +2 -2
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.js +4 -4
- package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +23 -5
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +110 -43
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +89 -15
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts +2 -0
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js +2 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +5 -2
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts +63 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js +131 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts +61 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js +178 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts +52 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js +144 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +22 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js +23 -3
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts +55 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js +65 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +63 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +100 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -0
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +45 -7
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +112 -28
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +32 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js +91 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -0
- package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.js +3 -2
- package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +22 -8
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +21 -9
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.js +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts +2 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +2 -1
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingContext.js +7 -1
- package/dist/esm/core/loading/LoadingContext.js.map +1 -1
- package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingGate.js +19 -1
- package/dist/esm/core/loading/LoadingGate.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts +15 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js +183 -20
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js +2 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts +7 -15
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js +8 -26
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts +12 -3
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js +3 -2
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts +42 -0
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +89 -5
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts +78 -0
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +264 -16
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts +8 -0
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +137 -30
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts +2 -0
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +1 -0
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.d.ts +46 -0
- package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-cascade.js +222 -0
- package/dist/esm/core/navigation/navigation-cascade.js.map +1 -0
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js +21 -2
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts +71 -0
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js +84 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -0
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +86 -2
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +242 -124
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts +170 -8
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js +121 -2
- package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +102 -6
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +283 -34
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -10
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +28 -157
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +211 -1189
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts +174 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js +977 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -0
- package/dist/esm/core/navigation/useOverlayTitle.d.ts +13 -1
- package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.js +15 -10
- package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts +43 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js +44 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts +83 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js +116 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts +51 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.js +59 -0
- package/dist/esm/core/navigation/zone-collapse.js.map +1 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts +3 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-emphasis.js +26 -4
- package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.d.ts +22 -0
- package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.js +25 -0
- package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js +53 -18
- 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 +3 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts +22 -0
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.js +72 -3
- package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts +28 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js +86 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -0
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +38 -3
- 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 +57 -2
- 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.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +4 -2
- 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 +30 -1
- 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 +47 -4
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js +22 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts +22 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js +25 -2
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +113 -13
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js +173 -20
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts +11 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js +7 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts +3 -2
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js +13 -5
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +6 -0
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js +90 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts +139 -16
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js +110 -11
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js +3 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +10 -0
- 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 +8 -0
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +7 -0
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js +9 -2
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts +59 -0
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js +278 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -0
- package/dist/esm/core/resources/useResourceOperationActions.d.ts +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js +69 -22
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts +8 -6
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js +3 -2
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +23 -2
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +4 -2
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts +12 -2
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +5 -2
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +25 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js +37 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts +21 -2
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +51 -4
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.d.ts +11 -0
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js +70 -22
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.js +10 -2
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +72 -8
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +7 -0
- 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 +8 -2
- package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts +30 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js +38 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -0
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js +10 -6
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.d.ts +20 -0
- package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.js +39 -5
- package/dist/esm/core/ui/color-conversion.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 +22 -2
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -6
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.js +3 -3
- package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +10 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +19 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.d.ts +43 -0
- package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -0
- package/dist/esm/testing/app-shell-placement-coverage.js +114 -0
- package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -0
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +5 -0
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing.d.ts +1 -0
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js +1 -0
- package/dist/esm/testing.js.map +1 -1
- package/package.json +9 -7
- package/dist/esm/core/navigation/useIsStackEntryActive.js +0 -15
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1,259 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* Forcing provider components through `FrontendComponentType` would mean an
|
|
22
|
-
* engine enum member per capability and a preset per provider, and would make "which component
|
|
23
|
-
* answers this key" ambiguous in a registry whose whole contract is that it is
|
|
24
|
-
* not. (This paragraph used to justify the split by calling `ProviderCapability`
|
|
25
|
-
* OPEN; that stopped being true with #502, and the split stands on the reasons
|
|
26
|
-
* above.)
|
|
27
|
-
*
|
|
28
|
-
* It also keeps the blast radius honest. `ComponentRegistryService` has sixteen
|
|
29
|
-
* consumers across four packages (re-measured 2026-09-06; the plan's figure of
|
|
30
|
-
* eleven predates several of them), most of them outside this slice's territory.
|
|
31
|
-
* A sibling registry touches none of them.
|
|
32
|
-
*
|
|
33
|
-
* ## Several providers, and no silent winner
|
|
34
|
-
*
|
|
35
|
-
* `listProviders` returns every provider offering a component for a capability,
|
|
36
|
-
* in registration order, and nothing here picks one. That is deliberate: the
|
|
37
|
-
* defect being fixed is that resolution WAS first-match, so a Drive picker and
|
|
38
|
-
* a Dropbox picker could not coexist and the winner depended on map order. A
|
|
39
|
-
* surface with two providers has a choice to present; a registry that answered
|
|
40
|
-
* it would be making a product decision in a lookup table.
|
|
41
|
-
*/
|
|
42
|
-
import { collectDeclaredProviderScripts, loadProviderScripts, } from '@wildo-ai/external-connectors-public/app';
|
|
43
|
-
import { describeCaughtError } from '@wildo-ai/saas-models';
|
|
44
|
-
/** Why a provider component could not be registered or loaded. */
|
|
45
|
-
export var ProviderComponentDiagnosticKind;
|
|
46
|
-
(function (ProviderComponentDiagnosticKind) {
|
|
47
|
-
/**
|
|
48
|
-
* A second registration arrived for one capability AND provider. The first is
|
|
49
|
-
* kept: a duplicate is a wiring mistake, and swapping the live component
|
|
50
|
-
* under a mounted surface would be worse than ignoring it.
|
|
51
|
-
*/
|
|
52
|
-
ProviderComponentDiagnosticKind["DUPLICATE_REGISTRATION"] = "DUPLICATE_REGISTRATION";
|
|
53
|
-
/** The loader threw or rejected. That provider's component is unavailable; others are not affected. */
|
|
54
|
-
ProviderComponentDiagnosticKind["LOAD_FAILED"] = "LOAD_FAILED";
|
|
55
|
-
/**
|
|
56
|
-
* The loader resolved something that is not a component. Almost always a
|
|
57
|
-
* loader returning a MODULE NAMESPACE — `() => import('./Picker.js')` — where it
|
|
58
|
-
* should return the component itself.
|
|
59
|
-
*/
|
|
60
|
-
ProviderComponentDiagnosticKind["LOADED_VALUE_IS_NOT_A_COMPONENT"] = "LOADED_VALUE_IS_NOT_A_COMPONENT";
|
|
61
|
-
/**
|
|
62
|
-
* A live provider DECLARES a component for a capability and nothing supplies
|
|
63
|
-
* its loader — neither the module (`components[cap].load`) nor the facet
|
|
64
|
-
* library (`contributeProviderComponentLoaders`). The declaration is DATA a
|
|
65
|
-
* reviewer can read; without code behind it the chooser would offer a picker
|
|
66
|
-
* that cannot open. Not registered, and reported once at startup.
|
|
67
|
-
*/
|
|
68
|
-
ProviderComponentDiagnosticKind["DECLARED_WITHOUT_LOADER"] = "DECLARED_WITHOUT_LOADER";
|
|
69
|
-
/**
|
|
70
|
-
* BOTH the module and the facet library supplied a loader for one
|
|
71
|
-
* `capability:providerRef`. The module's wins — it is the provider's own
|
|
72
|
-
* word — and the collision is reported, because the engine never authors both
|
|
73
|
-
* and two loaders for one declaration is the map-order ambiguity #380 removed.
|
|
74
|
-
*/
|
|
75
|
-
ProviderComponentDiagnosticKind["LOADER_SUPPLIED_TWICE"] = "LOADER_SUPPLIED_TWICE";
|
|
76
|
-
/**
|
|
77
|
-
* A `<script>` the declaring provider needs did not load — a network failure,
|
|
78
|
-
* a Content-Security-Policy refusal, or an integrity mismatch. The component
|
|
79
|
-
* resolves `null`, and that answer is CACHED exactly like `LOAD_FAILED`: the
|
|
80
|
-
* failed element stays in the document and is not retried this session (a
|
|
81
|
-
* vendor script can fail after partially executing, and a second copy could
|
|
82
|
-
* initialise over the first), so a chooser re-rendering must not re-ask. A
|
|
83
|
-
* component whose vendor global is absent is not usable, and handing it back
|
|
84
|
-
* would only move the failure into its own mount ("The Google API script has
|
|
85
|
-
* not loaded"), where nothing can name the provider's declaration as the cause.
|
|
86
|
-
*/
|
|
87
|
-
ProviderComponentDiagnosticKind["SCRIPT_LOAD_FAILED"] = "SCRIPT_LOAD_FAILED";
|
|
88
|
-
})(ProviderComponentDiagnosticKind || (ProviderComponentDiagnosticKind = {}));
|
|
89
|
-
/**
|
|
90
|
-
* The default script loader: the shared `loadProviderScripts` against the live
|
|
91
|
-
* `document`, read at CALL time rather than at registry construction. No
|
|
92
|
-
* `typeof document` guard: this package is pure-frontend (engine rule), and a
|
|
93
|
-
* host with no DOM injects its own `loadScripts`.
|
|
2
|
+
* The APPLICATION's half of the provider-component registry.
|
|
3
|
+
*
|
|
4
|
+
* The registry itself — keyed `capability:providerRef`, consent-gated, script-before-component,
|
|
5
|
+
* browser-only — lives in `@wildo-ai/external-connectors-public` since #1703, because the website
|
|
6
|
+
* and the documentation site have to build the same registry from the same `components`
|
|
7
|
+
* declaration and neither may import this package. Read its module header
|
|
8
|
+
* (`createProviderComponentRegistry`) for why it is a sibling of `ComponentRegistryService` and why
|
|
9
|
+
* it never picks a provider.
|
|
10
|
+
*
|
|
11
|
+
* What stays here is what only the application has:
|
|
12
|
+
*
|
|
13
|
+
* - the component TYPE the application renders (`ProviderComponent`), which fills the shared
|
|
14
|
+
* registry's type parameter;
|
|
15
|
+
* - the application's facet-library door, `contributeProviderComponentLoaders`, through which
|
|
16
|
+
* `presets-components` supplies loaders for engine-shipped components (#394). It is module-level
|
|
17
|
+
* state on purpose: `registerDefaultPresets` runs before `startApplication` builds the registry,
|
|
18
|
+
* the same ordering `ComponentRegistryService.register` relies on. The website and the
|
|
19
|
+
* documentation site take the same contributions as an explicit input instead, because their
|
|
20
|
+
* wiring has a single construction site that can carry it.
|
|
94
21
|
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return (typeof value === 'object'
|
|
98
|
-
&& value !== null
|
|
99
|
-
&& value[Symbol.toStringTag] === 'Module');
|
|
100
|
-
}
|
|
22
|
+
import { indexProviderComponentLoaderContributions } from '@wildo-ai/external-connectors-public/app';
|
|
23
|
+
let contributedLoaders = new Map();
|
|
101
24
|
/**
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* stack trace pointing at React rather than at the provider.
|
|
106
|
-
*/
|
|
107
|
-
function looksLikeComponent(value) {
|
|
108
|
-
return typeof value === 'function' || (typeof value === 'object' && value !== null);
|
|
109
|
-
}
|
|
110
|
-
export function createProviderComponentRegistry(input) {
|
|
111
|
-
const raise = (diagnostic) => {
|
|
112
|
-
input?.onDiagnostic?.(diagnostic);
|
|
113
|
-
};
|
|
114
|
-
const loaders = new Map();
|
|
115
|
-
const scriptsByKey = new Map();
|
|
116
|
-
const loadScripts = input?.loadScripts ?? loadProviderScriptsIntoDocument;
|
|
117
|
-
const descriptors = new Map();
|
|
118
|
-
const byCapability = new Map();
|
|
119
|
-
const loaded = new Map();
|
|
120
|
-
const keyOf = (capability, providerRef) => `${capability}:${providerRef}`;
|
|
121
|
-
for (const registration of input?.registrations ?? []) {
|
|
122
|
-
const key = keyOf(registration.capability, registration.providerRef);
|
|
123
|
-
if (loaders.has(key)) {
|
|
124
|
-
raise({
|
|
125
|
-
kind: ProviderComponentDiagnosticKind.DUPLICATE_REGISTRATION,
|
|
126
|
-
capability: registration.capability,
|
|
127
|
-
providerRef: registration.providerRef,
|
|
128
|
-
message: `Provider "${registration.providerRef}" registered a component for "${registration.capability}" `
|
|
129
|
-
+ 'more than once. The first registration is kept.',
|
|
130
|
-
});
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
loaders.set(key, registration.load);
|
|
134
|
-
if (registration.scripts !== undefined && registration.scripts.length > 0) {
|
|
135
|
-
scriptsByKey.set(key, registration.scripts);
|
|
136
|
-
}
|
|
137
|
-
descriptors.set(key, registration.descriptor);
|
|
138
|
-
const providers = byCapability.get(registration.capability) ?? [];
|
|
139
|
-
providers.push(registration.providerRef);
|
|
140
|
-
byCapability.set(registration.capability, providers);
|
|
141
|
-
}
|
|
142
|
-
return {
|
|
143
|
-
listProviders(capability) {
|
|
144
|
-
return byCapability.get(capability) ?? [];
|
|
145
|
-
},
|
|
146
|
-
has(capability, providerRef) {
|
|
147
|
-
return loaders.has(keyOf(capability, providerRef));
|
|
148
|
-
},
|
|
149
|
-
describe(capability, providerRef) {
|
|
150
|
-
return descriptors.get(keyOf(capability, providerRef));
|
|
151
|
-
},
|
|
152
|
-
resolve(capability, providerRef) {
|
|
153
|
-
const key = keyOf(capability, providerRef);
|
|
154
|
-
const cached = loaded.get(key);
|
|
155
|
-
if (cached !== undefined)
|
|
156
|
-
return cached;
|
|
157
|
-
const load = loaders.get(key);
|
|
158
|
-
if (load === undefined)
|
|
159
|
-
return Promise.resolve(null);
|
|
160
|
-
const declaredScripts = scriptsByKey.get(key) ?? [];
|
|
161
|
-
const pending = (async () => {
|
|
162
|
-
// Both halves start together: the picker chunk and the vendor loader are
|
|
163
|
-
// independent downloads, and serialising them would make every first
|
|
164
|
-
// open wait for their SUM instead of the slower of the two.
|
|
165
|
-
//
|
|
166
|
-
// Each half is started through `Promise.resolve().then(...)` so a loader
|
|
167
|
-
// that throws SYNCHRONOUSLY is still a reported failure rather than an
|
|
168
|
-
// exception escaping `resolve`, and a script loader that breaks its
|
|
169
|
-
// never-rejects contract is still a SCRIPT_LOAD_FAILED rather than an
|
|
170
|
-
// unhandled rejection in a render path.
|
|
171
|
-
const scriptsToLoad = declaredScripts.map((declaration) => ({ providerRef, declaration }));
|
|
172
|
-
const [componentResult, scriptOutcome] = await Promise.all([
|
|
173
|
-
Promise.resolve().then(load).then((value) => ({ ok: true, value }), (cause) => ({ ok: false, cause })),
|
|
174
|
-
scriptsToLoad.length === 0
|
|
175
|
-
? Promise.resolve(undefined)
|
|
176
|
-
: Promise.resolve().then(() => loadScripts(scriptsToLoad)).catch((cause) => ({
|
|
177
|
-
loaded: [],
|
|
178
|
-
failed: scriptsToLoad.map(({ declaration }) => ({
|
|
179
|
-
providerRef,
|
|
180
|
-
src: declaration.src,
|
|
181
|
-
message: `The script loader failed before reporting an outcome: ${describeCaughtError(cause)}`,
|
|
182
|
-
})),
|
|
183
|
-
})),
|
|
184
|
-
]);
|
|
185
|
-
// Reported independently so a first open that fails on BOTH halves names
|
|
186
|
-
// both causes, rather than making the second one visible only after the
|
|
187
|
-
// first is fixed.
|
|
188
|
-
for (const failure of scriptOutcome?.failed ?? []) {
|
|
189
|
-
raise({
|
|
190
|
-
kind: ProviderComponentDiagnosticKind.SCRIPT_LOAD_FAILED,
|
|
191
|
-
capability,
|
|
192
|
-
providerRef,
|
|
193
|
-
message: `Provider "${providerRef}" cannot offer its "${capability}" component: a script it declares did not load. `
|
|
194
|
-
+ failure.message,
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
if (componentResult.ok === false) {
|
|
198
|
-
raise({
|
|
199
|
-
kind: ProviderComponentDiagnosticKind.LOAD_FAILED,
|
|
200
|
-
capability,
|
|
201
|
-
providerRef,
|
|
202
|
-
message: `Provider "${providerRef}" failed to load its "${capability}" component.`,
|
|
203
|
-
cause: componentResult.cause,
|
|
204
|
-
});
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
if ((scriptOutcome?.failed.length ?? 0) > 0)
|
|
208
|
-
return null;
|
|
209
|
-
const value = componentResult.value;
|
|
210
|
-
if (isModuleNamespace(value)) {
|
|
211
|
-
raise({
|
|
212
|
-
kind: ProviderComponentDiagnosticKind.LOADED_VALUE_IS_NOT_A_COMPONENT,
|
|
213
|
-
capability,
|
|
214
|
-
providerRef,
|
|
215
|
-
message: `Provider "${providerRef}" returned a MODULE for its "${capability}" component instead of the `
|
|
216
|
-
+ "component itself. Write `async () => (await import('./Picker.js')).Picker` rather than "
|
|
217
|
-
+ "`() => import('./Picker.js')`.",
|
|
218
|
-
});
|
|
219
|
-
return null;
|
|
220
|
-
}
|
|
221
|
-
if (!looksLikeComponent(value)) {
|
|
222
|
-
raise({
|
|
223
|
-
kind: ProviderComponentDiagnosticKind.LOADED_VALUE_IS_NOT_A_COMPONENT,
|
|
224
|
-
capability,
|
|
225
|
-
providerRef,
|
|
226
|
-
message: `Provider "${providerRef}" returned a ${typeof value} for its "${capability}" component. A React `
|
|
227
|
-
+ 'component is a function, or an object for memo / forwardRef / lazy.',
|
|
228
|
-
});
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
return value;
|
|
232
|
-
})();
|
|
233
|
-
// Cached even when it resolves to null: a loader — or a script — that failed
|
|
234
|
-
// once must not be retried on every render of a chooser that lists it.
|
|
235
|
-
loaded.set(key, pending);
|
|
236
|
-
return pending;
|
|
237
|
-
},
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
const contributedLoaders = new Map();
|
|
241
|
-
const loaderKeyOf = (capability, providerRef) => `${capability}:${providerRef}`;
|
|
242
|
-
/**
|
|
243
|
-
* Registers loaders for provider components a facet library ships. Module-level
|
|
244
|
-
* and idempotent per key, like `ComponentRegistryService.register`: the app
|
|
245
|
-
* calls the library's registration entry once at startup, and a second
|
|
246
|
-
* contribution for one key replaces the first rather than duplicating it —
|
|
25
|
+
* Registers loaders for provider components a facet library ships. Module-level and idempotent per
|
|
26
|
+
* key, like `ComponentRegistryService.register`: the app calls the library's registration entry once
|
|
27
|
+
* at startup, and a second contribution for one key replaces the first rather than duplicating it —
|
|
247
28
|
* the library is one author, and the last thing it said is what it means.
|
|
248
29
|
*
|
|
249
|
-
* A contribution for a provider the DATA channel does not declare live is
|
|
250
|
-
*
|
|
251
|
-
*
|
|
30
|
+
* A contribution for a provider the DATA channel does not declare live is SILENT, by the same rule
|
|
31
|
+
* as code without data in `hydrateFrontendProviderModules`: a bundle legitimately ships a picker an
|
|
32
|
+
* environment leaves off.
|
|
252
33
|
*/
|
|
253
34
|
export function contributeProviderComponentLoaders(loaders) {
|
|
254
|
-
|
|
255
|
-
contributedLoaders.set(loaderKeyOf(loader.capability, loader.providerRef), loader);
|
|
256
|
-
}
|
|
35
|
+
contributedLoaders = indexProviderComponentLoaderContributions([...contributedLoaders.values(), ...loaders]);
|
|
257
36
|
}
|
|
258
37
|
/** Every contributed loader, keyed `capability:providerRef`. Read at registry construction. */
|
|
259
38
|
export function listContributedProviderComponentLoaders() {
|
|
@@ -261,83 +40,6 @@ export function listContributedProviderComponentLoaders() {
|
|
|
261
40
|
}
|
|
262
41
|
/** Tests only: forget every contributed loader. */
|
|
263
42
|
export function _clearContributedProviderComponentLoaders() {
|
|
264
|
-
contributedLoaders
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Turns the live provider modules into registrations, joining each declared
|
|
268
|
-
* component to its loader — from the module when it carries one, else from
|
|
269
|
-
* the facet library's contributions.
|
|
270
|
-
*
|
|
271
|
-
* Order follows the registry's iteration order, which is the order the service
|
|
272
|
-
* declared its providers — so `listProviders` is stable across reloads and a
|
|
273
|
-
* surface that shows a chooser does not reorder itself between renders.
|
|
274
|
-
*
|
|
275
|
-
* A declaration nothing can load is NOT registered: a chooser must offer only
|
|
276
|
-
* what can render. It is reported through `onDiagnostic` instead, once, at
|
|
277
|
-
* startup — which is the moment somebody can still fix it.
|
|
278
|
-
*/
|
|
279
|
-
export function collectProviderComponentRegistrations(modules, input) {
|
|
280
|
-
const registrations = [];
|
|
281
|
-
const contributed = input?.contributedLoaders ?? listContributedProviderComponentLoaders();
|
|
282
|
-
for (const module of modules) {
|
|
283
|
-
for (const [capability, declaration] of Object.entries(module.components ?? {})) {
|
|
284
|
-
const providerRef = module.metadata.ref;
|
|
285
|
-
const supplied = contributed.get(loaderKeyOf(capability, providerRef));
|
|
286
|
-
if (declaration.load !== undefined && supplied !== undefined) {
|
|
287
|
-
input?.onDiagnostic?.({
|
|
288
|
-
kind: ProviderComponentDiagnosticKind.LOADER_SUPPLIED_TWICE,
|
|
289
|
-
capability,
|
|
290
|
-
providerRef,
|
|
291
|
-
message: `Provider "${providerRef}" carries its own loader for "${capability}" AND the facet library contributed `
|
|
292
|
-
+ "one. The module's is used; remove one of the two.",
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
const load = declaration.load ?? supplied?.load;
|
|
296
|
-
if (load === undefined) {
|
|
297
|
-
input?.onDiagnostic?.({
|
|
298
|
-
kind: ProviderComponentDiagnosticKind.DECLARED_WITHOUT_LOADER,
|
|
299
|
-
capability,
|
|
300
|
-
providerRef,
|
|
301
|
-
message: `Provider "${providerRef}" declares a "${capability}" component and nothing supplies its loader — `
|
|
302
|
-
+ 'neither the module nor the facet library. It is not offered. An engine-shipped component is '
|
|
303
|
-
+ 'registered by the facet library (presets-components for the app); a provider package supplies '
|
|
304
|
-
+ '`components[capability].load`.',
|
|
305
|
-
});
|
|
306
|
-
continue;
|
|
307
|
-
}
|
|
308
|
-
registrations.push({
|
|
309
|
-
capability: capability,
|
|
310
|
-
providerRef,
|
|
311
|
-
load,
|
|
312
|
-
// Only the declared half, never the whole declaration: `load` is already
|
|
313
|
-
// carried beside it, and a registration holding the same function twice
|
|
314
|
-
// is two places for one fact to go stale.
|
|
315
|
-
descriptor: { selectionDelivery: declaration.selectionDelivery },
|
|
316
|
-
// The PROVIDER's scripts, not the component's: a module declares scripts
|
|
317
|
-
// once, and the component is the first of its code to run on this surface
|
|
318
|
-
// — so it is what they load with.
|
|
319
|
-
...(module.scripts !== undefined && module.scripts.length > 0 ? { scripts: module.scripts } : {}),
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
return registrations;
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* The scripts a surface must load at STARTUP: those declared by live providers that
|
|
327
|
-
* contribute NO registered component.
|
|
328
|
-
*
|
|
329
|
-
* A provider's scripts load when its code first runs on the surface. A provider with a
|
|
330
|
-
* registered component has that moment — the registry loads its scripts when the
|
|
331
|
-
* component is first resolved, so no page pays for a picker's vendor loader nobody
|
|
332
|
-
* opened. A provider without one never will, so its scripts load at startup, the same
|
|
333
|
-
* population rule SDK activation uses. A provider that DECLARES a component nothing
|
|
334
|
-
* can load is not registered and therefore counts as contributing none: its scripts
|
|
335
|
-
* still load, since whatever else the provider does may need them.
|
|
336
|
-
*/
|
|
337
|
-
export function collectProviderScriptsWithoutComponents(modules, registrations) {
|
|
338
|
-
const providersWithComponents = new Set();
|
|
339
|
-
for (const registration of registrations)
|
|
340
|
-
providersWithComponents.add(registration.providerRef);
|
|
341
|
-
return collectDeclaredProviderScripts([...modules].filter((module) => !providersWithComponents.has(module.metadata.ref)));
|
|
43
|
+
contributedLoaders = new Map();
|
|
342
44
|
}
|
|
343
45
|
//# sourceMappingURL=provider-component-registry.frontend.service.js.map
|
package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-component-registry.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/components-registry/provider-component-registry.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Components contributed by PROVIDERS, keyed by the capability each fills.\n *\n * ## Why this is a sibling of `ComponentRegistryService` and not an extension\n *\n * The two answer different questions, and the difference is in the KEY, the\n * cardinality and the lifecycle — not in whether a vocabulary is open:\n *\n * - `ComponentRegistryService` keys `componentType:preset[:category]`, where\n * `FrontendComponentType` is a CLOSED enum the engine owns. Exactly one\n * component answers a key, resolution is synchronous, and a missing\n * registration is a startup refusal.\n * - This registry keys `capability:providerRef`. The capability half is\n * closed too (`ProviderCapability` is the built-in set since #502 removed\n * module augmentation), but the PROVIDER half is not engine-owned at all:\n * refs arrive from engine modules, generated packages and application\n * packages, discovered per deployment. SEVERAL providers may answer one\n * capability, the component arrives asynchronously, and none of it is\n * required for the app to mount.\n *\n * Forcing provider components through `FrontendComponentType` would mean an\n * engine enum member per capability and a preset per provider, and would make \"which component\n * answers this key\" ambiguous in a registry whose whole contract is that it is\n * not. (This paragraph used to justify the split by calling `ProviderCapability`\n * OPEN; that stopped being true with #502, and the split stands on the reasons\n * above.)\n *\n * It also keeps the blast radius honest. `ComponentRegistryService` has sixteen\n * consumers across four packages (re-measured 2026-09-06; the plan's figure of\n * eleven predates several of them), most of them outside this slice's territory.\n * A sibling registry touches none of them.\n *\n * ## Several providers, and no silent winner\n *\n * `listProviders` returns every provider offering a component for a capability,\n * in registration order, and nothing here picks one. That is deliberate: the\n * defect being fixed is that resolution WAS first-match, so a Drive picker and\n * a Dropbox picker could not coexist and the winner depended on map order. A\n * surface with two providers has a choice to present; a registry that answered\n * it would be making a product decision in a lookup table.\n */\n\nimport type React from 'react';\nimport type { ProviderCapability } from '@wildo-ai/saas-models';\nimport type {\n ProviderFrontendComponentDescriptor,\n ProviderFrontendScriptDeclaration,\n} from '@wildo-ai/saas-models/public-runtime';\nimport {\n collectDeclaredProviderScripts,\n loadProviderScripts,\n type DeclaredProviderScript,\n type ProviderScriptLoadOutcome,\n} from '@wildo-ai/external-connectors-public/app';\n\nimport { describeCaughtError } from '@wildo-ai/saas-models';\n/** A loader as a provider module declares it: on demand, returning the component. */\nexport type ProviderComponentLoader = () => Promise<unknown>;\n\n/** Why a provider component could not be registered or loaded. */\nexport enum ProviderComponentDiagnosticKind {\n /**\n * A second registration arrived for one capability AND provider. The first is\n * kept: a duplicate is a wiring mistake, and swapping the live component\n * under a mounted surface would be worse than ignoring it.\n */\n DUPLICATE_REGISTRATION = 'DUPLICATE_REGISTRATION',\n /** The loader threw or rejected. That provider's component is unavailable; others are not affected. */\n LOAD_FAILED = 'LOAD_FAILED',\n /**\n * The loader resolved something that is not a component. Almost always a\n * loader returning a MODULE NAMESPACE — `() => import('./Picker')` — where it\n * should return the component itself.\n */\n LOADED_VALUE_IS_NOT_A_COMPONENT = 'LOADED_VALUE_IS_NOT_A_COMPONENT',\n /**\n * A live provider DECLARES a component for a capability and nothing supplies\n * its loader — neither the module (`components[cap].load`) nor the facet\n * library (`contributeProviderComponentLoaders`). The declaration is DATA a\n * reviewer can read; without code behind it the chooser would offer a picker\n * that cannot open. Not registered, and reported once at startup.\n */\n DECLARED_WITHOUT_LOADER = 'DECLARED_WITHOUT_LOADER',\n /**\n * BOTH the module and the facet library supplied a loader for one\n * `capability:providerRef`. The module's wins — it is the provider's own\n * word — and the collision is reported, because the engine never authors both\n * and two loaders for one declaration is the map-order ambiguity #380 removed.\n */\n LOADER_SUPPLIED_TWICE = 'LOADER_SUPPLIED_TWICE',\n /**\n * A `<script>` the declaring provider needs did not load — a network failure,\n * a Content-Security-Policy refusal, or an integrity mismatch. The component\n * resolves `null`, and that answer is CACHED exactly like `LOAD_FAILED`: the\n * failed element stays in the document and is not retried this session (a\n * vendor script can fail after partially executing, and a second copy could\n * initialise over the first), so a chooser re-rendering must not re-ask. A\n * component whose vendor global is absent is not usable, and handing it back\n * would only move the failure into its own mount (\"The Google API script has\n * not loaded\"), where nothing can name the provider's declaration as the cause.\n */\n SCRIPT_LOAD_FAILED = 'SCRIPT_LOAD_FAILED',\n}\n\nexport interface ProviderComponentDiagnostic {\n readonly kind: ProviderComponentDiagnosticKind;\n readonly capability: string;\n readonly providerRef: string;\n readonly message: string;\n readonly cause?: unknown;\n}\n\nexport interface ProviderComponentRegistration {\n readonly capability: ProviderCapability;\n readonly providerRef: string;\n readonly load: ProviderComponentLoader;\n /**\n * What the provider DECLARED about this component — today, what a selection\n * from it contains. Kept beside the loader rather than looked up from the\n * DATA entry at the use site, because a surface needs it BEFORE it decides to\n * load anything, and because the two would then be two sources for one fact.\n */\n readonly descriptor: ProviderFrontendComponentDescriptor;\n /**\n * The third-party `<script>` tags the DECLARING PROVIDER needs (its module's\n * `scripts`), loaded before the component is handed back. Carried on the\n * registration because a provider's scripts load when its code first runs on\n * this surface — with its component, when it contributes one — so no page pays\n * for a vendor loader nobody opened. Absent means the component depends on no\n * script.\n */\n readonly scripts?: ReadonlyArray<ProviderFrontendScriptDeclaration>;\n}\n\n/**\n * Loads a provider's declared scripts and resolves once each has executed or\n * failed. Never rejects: failures come back in the outcome.\n */\nexport type ProviderComponentScriptLoader = (\n scripts: ReadonlyArray<DeclaredProviderScript>,\n) => Promise<ProviderScriptLoadOutcome>;\n\n/**\n * The default script loader: the shared `loadProviderScripts` against the live\n * `document`, read at CALL time rather than at registry construction. No\n * `typeof document` guard: this package is pure-frontend (engine rule), and a\n * host with no DOM injects its own `loadScripts`.\n */\nconst loadProviderScriptsIntoDocument: ProviderComponentScriptLoader = (scripts) => loadProviderScripts(scripts, document);\n\n/** A component type this registry will hand back once loaded. */\nexport type ProviderComponent = React.ComponentType<never>;\n\nexport interface ProviderComponentRegistry {\n /**\n * Every provider offering a component for this capability, in registration\n * order. Synchronous ON PURPOSE: a surface has to render its chooser before\n * any component is loaded, and awaiting here would make an empty frame.\n */\n listProviders(capability: ProviderCapability): ReadonlyArray<string>;\n /** Whether this exact provider offers a component for this capability. */\n has(capability: ProviderCapability, providerRef: string): boolean;\n /**\n * What the provider declared about its component, without loading it —\n * `undefined` when this provider offers none for this capability.\n *\n * Synchronous and separate from `resolve` on purpose: the framework routes a\n * selection according to what was DECLARED, and a routing decision that had to\n * await a download would mean downloading a picker to find out whether the\n * surface can use it.\n */\n describe(capability: ProviderCapability, providerRef: string): ProviderFrontendComponentDescriptor | undefined;\n /**\n * Loads one provider's component AND the scripts its provider declares, in\n * parallel, and hands the component back only once both are present — a\n * component is usable only once what it depends on is. The loader runs at most\n * once per pair — a chooser that mounts and unmounts must not re-download a\n * picker — and a failure of either half is reported and returns `null` rather\n * than throwing into a render.\n */\n resolve(capability: ProviderCapability, providerRef: string): Promise<ProviderComponent | null>;\n}\n\nfunction isModuleNamespace(value: unknown): boolean {\n return (\n typeof value === 'object'\n && value !== null\n && (value as { [Symbol.toStringTag]?: unknown })[Symbol.toStringTag] === 'Module'\n );\n}\n\n/**\n * A React component is a function, or an object for `memo` / `forwardRef` /\n * `lazy`. Anything else — a namespace, a string, a plain data object — cannot\n * be rendered, and finding out at render time means a blank surface with a\n * stack trace pointing at React rather than at the provider.\n */\nfunction looksLikeComponent(value: unknown): value is ProviderComponent {\n return typeof value === 'function' || (typeof value === 'object' && value !== null);\n}\n\nexport function createProviderComponentRegistry(input?: {\n readonly registrations?: Iterable<ProviderComponentRegistration>;\n readonly onDiagnostic?: (diagnostic: ProviderComponentDiagnostic) => void;\n /**\n * How declared scripts are loaded. Defaults to the shared injector on the live\n * `document`; injectable so a test can settle a script without a network and a\n * non-DOM host can say what loading means for it.\n */\n readonly loadScripts?: ProviderComponentScriptLoader;\n}): ProviderComponentRegistry {\n const raise = (diagnostic: ProviderComponentDiagnostic): void => {\n input?.onDiagnostic?.(diagnostic);\n };\n const loaders = new Map<string, ProviderComponentLoader>();\n const scriptsByKey = new Map<string, ReadonlyArray<ProviderFrontendScriptDeclaration>>();\n const loadScripts = input?.loadScripts ?? loadProviderScriptsIntoDocument;\n const descriptors = new Map<string, ProviderFrontendComponentDescriptor>();\n const byCapability = new Map<string, string[]>();\n const loaded = new Map<string, Promise<ProviderComponent | null>>();\n const keyOf = (capability: string, providerRef: string): string => `${capability}:${providerRef}`;\n\n for (const registration of input?.registrations ?? []) {\n const key = keyOf(registration.capability, registration.providerRef);\n if (loaders.has(key)) {\n raise({\n kind: ProviderComponentDiagnosticKind.DUPLICATE_REGISTRATION,\n capability: registration.capability,\n providerRef: registration.providerRef,\n message:\n `Provider \"${registration.providerRef}\" registered a component for \"${registration.capability}\" `\n + 'more than once. The first registration is kept.',\n });\n continue;\n }\n\n loaders.set(key, registration.load);\n if (registration.scripts !== undefined && registration.scripts.length > 0) {\n scriptsByKey.set(key, registration.scripts);\n }\n descriptors.set(key, registration.descriptor);\n const providers = byCapability.get(registration.capability) ?? [];\n providers.push(registration.providerRef);\n byCapability.set(registration.capability, providers);\n }\n\n return {\n listProviders(capability) {\n return byCapability.get(capability) ?? [];\n },\n\n has(capability, providerRef) {\n return loaders.has(keyOf(capability, providerRef));\n },\n\n describe(capability, providerRef) {\n return descriptors.get(keyOf(capability, providerRef));\n },\n\n resolve(capability, providerRef) {\n const key = keyOf(capability, providerRef);\n const cached = loaded.get(key);\n if (cached !== undefined) return cached;\n\n const load = loaders.get(key);\n if (load === undefined) return Promise.resolve(null);\n\n const declaredScripts = scriptsByKey.get(key) ?? [];\n\n const pending = (async (): Promise<ProviderComponent | null> => {\n // Both halves start together: the picker chunk and the vendor loader are\n // independent downloads, and serialising them would make every first\n // open wait for their SUM instead of the slower of the two.\n //\n // Each half is started through `Promise.resolve().then(...)` so a loader\n // that throws SYNCHRONOUSLY is still a reported failure rather than an\n // exception escaping `resolve`, and a script loader that breaks its\n // never-rejects contract is still a SCRIPT_LOAD_FAILED rather than an\n // unhandled rejection in a render path.\n const scriptsToLoad: ReadonlyArray<DeclaredProviderScript> = declaredScripts.map((declaration) => ({ providerRef, declaration }));\n const [componentResult, scriptOutcome] = await Promise.all([\n Promise.resolve().then(load).then(\n (value): { readonly ok: true; readonly value: unknown } => ({ ok: true, value }),\n (cause: unknown): { readonly ok: false; readonly cause: unknown } => ({ ok: false, cause }),\n ),\n scriptsToLoad.length === 0\n ? Promise.resolve<ProviderScriptLoadOutcome | undefined>(undefined)\n : Promise.resolve().then(() => loadScripts(scriptsToLoad)).catch((cause: unknown): ProviderScriptLoadOutcome => ({\n loaded: [],\n failed: scriptsToLoad.map(({ declaration }) => ({\n providerRef,\n src: declaration.src,\n message: `The script loader failed before reporting an outcome: ${describeCaughtError(cause)}`,\n })),\n })),\n ]);\n\n // Reported independently so a first open that fails on BOTH halves names\n // both causes, rather than making the second one visible only after the\n // first is fixed.\n for (const failure of scriptOutcome?.failed ?? []) {\n raise({\n kind: ProviderComponentDiagnosticKind.SCRIPT_LOAD_FAILED,\n capability,\n providerRef,\n message:\n `Provider \"${providerRef}\" cannot offer its \"${capability}\" component: a script it declares did not load. `\n + failure.message,\n });\n }\n\n if (componentResult.ok === false) {\n raise({\n kind: ProviderComponentDiagnosticKind.LOAD_FAILED,\n capability,\n providerRef,\n message: `Provider \"${providerRef}\" failed to load its \"${capability}\" component.`,\n cause: componentResult.cause,\n });\n return null;\n }\n\n if ((scriptOutcome?.failed.length ?? 0) > 0) return null;\n\n const value = componentResult.value;\n\n if (isModuleNamespace(value)) {\n raise({\n kind: ProviderComponentDiagnosticKind.LOADED_VALUE_IS_NOT_A_COMPONENT,\n capability,\n providerRef,\n message:\n `Provider \"${providerRef}\" returned a MODULE for its \"${capability}\" component instead of the `\n + \"component itself. Write `async () => (await import('./Picker')).Picker` rather than \"\n + \"`() => import('./Picker')`.\",\n });\n return null;\n }\n\n if (!looksLikeComponent(value)) {\n raise({\n kind: ProviderComponentDiagnosticKind.LOADED_VALUE_IS_NOT_A_COMPONENT,\n capability,\n providerRef,\n message:\n `Provider \"${providerRef}\" returned a ${typeof value} for its \"${capability}\" component. A React `\n + 'component is a function, or an object for memo / forwardRef / lazy.',\n });\n return null;\n }\n\n return value;\n })();\n\n // Cached even when it resolves to null: a loader — or a script — that failed\n // once must not be retried on every render of a chooser that lists it.\n loaded.set(key, pending);\n return pending;\n },\n };\n}\n\n/** The shape this derivation needs off a hydrated provider module. */\ninterface ComponentBearingProviderModule {\n metadata: { ref: string };\n scripts?: ReadonlyArray<ProviderFrontendScriptDeclaration>;\n components?: Readonly<Record<string, ProviderFrontendComponentDescriptor & { load?: ProviderComponentLoader }>>;\n}\n\n/**\n * A loader the FACET LIBRARY supplies for a component a provider module\n * declares — the second of the two doors, and the one every engine-shipped\n * component uses (#394).\n *\n * The provider module, in `@wildo-ai/external-connectors-public`, declares the\n * DATA half (`components[cap].selectionDelivery`) and cannot name a loader that\n * reaches a React component: that package is deliberately renderer-free, and it\n * sits BELOW the component libraries in the layering, so a dynamic import from\n * it would close a package cycle. The library that owns the component\n * (`presets-components` for the app facet) contributes the loader here instead,\n * from the same place it registers its presets. A provider PACKAGE that ships\n * its own component still uses `components[cap].load` — both doors exist, the\n * engine authors exactly one per declaration, and a collision is reported.\n */\nexport interface ProviderComponentLoaderContribution {\n readonly capability: ProviderCapability;\n readonly providerRef: string;\n readonly load: ProviderComponentLoader;\n}\n\nconst contributedLoaders = new Map<string, ProviderComponentLoaderContribution>();\nconst loaderKeyOf = (capability: string, providerRef: string): string => `${capability}:${providerRef}`;\n\n/**\n * Registers loaders for provider components a facet library ships. Module-level\n * and idempotent per key, like `ComponentRegistryService.register`: the app\n * calls the library's registration entry once at startup, and a second\n * contribution for one key replaces the first rather than duplicating it —\n * the library is one author, and the last thing it said is what it means.\n *\n * A contribution for a provider the DATA channel does not declare live is\n * SILENT, by the same rule as code without data in `hydrateFrontendProviderModules`:\n * a bundle legitimately ships a picker an environment leaves off.\n */\nexport function contributeProviderComponentLoaders(loaders: Iterable<ProviderComponentLoaderContribution>): void {\n for (const loader of loaders) {\n contributedLoaders.set(loaderKeyOf(loader.capability, loader.providerRef), loader);\n }\n}\n\n/** Every contributed loader, keyed `capability:providerRef`. Read at registry construction. */\nexport function listContributedProviderComponentLoaders(): ReadonlyMap<string, ProviderComponentLoaderContribution> {\n return contributedLoaders;\n}\n\n/** Tests only: forget every contributed loader. */\nexport function _clearContributedProviderComponentLoaders(): void {\n contributedLoaders.clear();\n}\n\n/**\n * Turns the live provider modules into registrations, joining each declared\n * component to its loader — from the module when it carries one, else from\n * the facet library's contributions.\n *\n * Order follows the registry's iteration order, which is the order the service\n * declared its providers — so `listProviders` is stable across reloads and a\n * surface that shows a chooser does not reorder itself between renders.\n *\n * A declaration nothing can load is NOT registered: a chooser must offer only\n * what can render. It is reported through `onDiagnostic` instead, once, at\n * startup — which is the moment somebody can still fix it.\n */\nexport function collectProviderComponentRegistrations(\n modules: Iterable<ComponentBearingProviderModule>,\n input?: {\n readonly contributedLoaders?: ReadonlyMap<string, ProviderComponentLoaderContribution>;\n readonly onDiagnostic?: (diagnostic: ProviderComponentDiagnostic) => void;\n },\n): ProviderComponentRegistration[] {\n const registrations: ProviderComponentRegistration[] = [];\n const contributed = input?.contributedLoaders ?? listContributedProviderComponentLoaders();\n\n for (const module of modules) {\n for (const [capability, declaration] of Object.entries(module.components ?? {})) {\n const providerRef = module.metadata.ref;\n const supplied = contributed.get(loaderKeyOf(capability, providerRef));\n\n if (declaration.load !== undefined && supplied !== undefined) {\n input?.onDiagnostic?.({\n kind: ProviderComponentDiagnosticKind.LOADER_SUPPLIED_TWICE,\n capability,\n providerRef,\n message:\n `Provider \"${providerRef}\" carries its own loader for \"${capability}\" AND the facet library contributed `\n + \"one. The module's is used; remove one of the two.\",\n });\n }\n\n const load = declaration.load ?? supplied?.load;\n if (load === undefined) {\n input?.onDiagnostic?.({\n kind: ProviderComponentDiagnosticKind.DECLARED_WITHOUT_LOADER,\n capability,\n providerRef,\n message:\n `Provider \"${providerRef}\" declares a \"${capability}\" component and nothing supplies its loader — `\n + 'neither the module nor the facet library. It is not offered. An engine-shipped component is '\n + 'registered by the facet library (presets-components for the app); a provider package supplies '\n + '`components[capability].load`.',\n });\n continue;\n }\n\n registrations.push({\n capability: capability as ProviderCapability,\n providerRef,\n load,\n // Only the declared half, never the whole declaration: `load` is already\n // carried beside it, and a registration holding the same function twice\n // is two places for one fact to go stale.\n descriptor: { selectionDelivery: declaration.selectionDelivery },\n // The PROVIDER's scripts, not the component's: a module declares scripts\n // once, and the component is the first of its code to run on this surface\n // — so it is what they load with.\n ...(module.scripts !== undefined && module.scripts.length > 0 ? { scripts: module.scripts } : {}),\n });\n }\n }\n\n return registrations;\n}\n\n/**\n * The scripts a surface must load at STARTUP: those declared by live providers that\n * contribute NO registered component.\n *\n * A provider's scripts load when its code first runs on the surface. A provider with a\n * registered component has that moment — the registry loads its scripts when the\n * component is first resolved, so no page pays for a picker's vendor loader nobody\n * opened. A provider without one never will, so its scripts load at startup, the same\n * population rule SDK activation uses. A provider that DECLARES a component nothing\n * can load is not registered and therefore counts as contributing none: its scripts\n * still load, since whatever else the provider does may need them.\n */\nexport function collectProviderScriptsWithoutComponents(\n modules: Iterable<ComponentBearingProviderModule>,\n registrations: Iterable<ProviderComponentRegistration>,\n): ReadonlyArray<DeclaredProviderScript> {\n const providersWithComponents = new Set<string>();\n for (const registration of registrations) providersWithComponents.add(registration.providerRef);\n return collectDeclaredProviderScripts(\n [...modules].filter((module) => !providersWithComponents.has(module.metadata.ref)),\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"provider-component-registry.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/components-registry/provider-component-registry.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,EAAE,yCAAyC,EAAE,MAAM,0CAA0C,CAAC;AAQrG,IAAI,kBAAkB,GAA6D,IAAI,GAAG,EAAE,CAAC;AAE7F;;;;;;;;;GASG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAAsD;IACvG,kBAAkB,GAAG,yCAAyC,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,uCAAuC;IACrD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,yCAAyC;IACvD,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;AACjC,CAAC","sourcesContent":["/**\n * The APPLICATION's half of the provider-component registry.\n *\n * The registry itself — keyed `capability:providerRef`, consent-gated, script-before-component,\n * browser-only — lives in `@wildo-ai/external-connectors-public` since #1703, because the website\n * and the documentation site have to build the same registry from the same `components`\n * declaration and neither may import this package. Read its module header\n * (`createProviderComponentRegistry`) for why it is a sibling of `ComponentRegistryService` and why\n * it never picks a provider.\n *\n * What stays here is what only the application has:\n *\n * - the component TYPE the application renders (`ProviderComponent`), which fills the shared\n * registry's type parameter;\n * - the application's facet-library door, `contributeProviderComponentLoaders`, through which\n * `presets-components` supplies loaders for engine-shipped components (#394). It is module-level\n * state on purpose: `registerDefaultPresets` runs before `startApplication` builds the registry,\n * the same ordering `ComponentRegistryService.register` relies on. The website and the\n * documentation site take the same contributions as an explicit input instead, because their\n * wiring has a single construction site that can carry it.\n */\n\nimport type React from 'react';\nimport type {\n ProviderComponentLoaderContribution,\n ProviderComponentRegistry,\n} from '@wildo-ai/external-connectors-public/app';\nimport { indexProviderComponentLoaderContributions } from '@wildo-ai/external-connectors-public/app';\n\n/** A component type the application's registry hands back once loaded. */\nexport type ProviderComponent = React.ComponentType<never>;\n\n/** The application's provider-component registry: the shared registry, holding React components. */\nexport type AppProviderComponentRegistry = ProviderComponentRegistry<ProviderComponent>;\n\nlet contributedLoaders: ReadonlyMap<string, ProviderComponentLoaderContribution> = new Map();\n\n/**\n * Registers loaders for provider components a facet library ships. Module-level and idempotent per\n * key, like `ComponentRegistryService.register`: the app calls the library's registration entry once\n * at startup, and a second contribution for one key replaces the first rather than duplicating it —\n * the library is one author, and the last thing it said is what it means.\n *\n * A contribution for a provider the DATA channel does not declare live is SILENT, by the same rule\n * as code without data in `hydrateFrontendProviderModules`: a bundle legitimately ships a picker an\n * environment leaves off.\n */\nexport function contributeProviderComponentLoaders(loaders: Iterable<ProviderComponentLoaderContribution>): void {\n contributedLoaders = indexProviderComponentLoaderContributions([...contributedLoaders.values(), ...loaders]);\n}\n\n/** Every contributed loader, keyed `capability:providerRef`. Read at registry construction. */\nexport function listContributedProviderComponentLoaders(): ReadonlyMap<string, ProviderComponentLoaderContribution> {\n return contributedLoaders;\n}\n\n/** Tests only: forget every contributed loader. */\nexport function _clearContributedProviderComponentLoaders(): void {\n contributedLoaders = new Map();\n}\n"]}
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import type { ProviderCapability } from '@wildo-ai/saas-models';
|
|
25
25
|
import type { FileStorageAccepted } from '@wildo-ai/saas-models/public-runtime';
|
|
26
|
+
import { type ProviderComponentLoadState } from '@wildo-ai/external-connectors-public/app';
|
|
26
27
|
import type { ProviderComponent } from './provider-component-registry.frontend.service';
|
|
27
28
|
export interface ProviderComponentChoice {
|
|
28
29
|
readonly providerRef: string;
|
|
@@ -48,36 +49,25 @@ export interface ProviderComponentChoice {
|
|
|
48
49
|
* render.
|
|
49
50
|
*/
|
|
50
51
|
export declare function useProviderComponentChoices(capability: ProviderCapability): ReadonlyArray<ProviderComponentChoice>;
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* The component is loaded AND every `<script>` its provider declares has
|
|
59
|
-
* executed — so a picker that reads a vendor global on mount finds it. Never
|
|
60
|
-
* READY on the component alone.
|
|
61
|
-
*/
|
|
62
|
-
READY = "READY",
|
|
63
|
-
/**
|
|
64
|
-
* The loader failed, returned something unrenderable, or a script the provider
|
|
65
|
-
* declares did not load. The registry has already reported why; a surface
|
|
66
|
-
* should fall back rather than retry, because the registry will not run a
|
|
67
|
-
* failed loader — or re-inject a failed script — again.
|
|
68
|
-
*/
|
|
69
|
-
UNAVAILABLE = "UNAVAILABLE"
|
|
70
|
-
}
|
|
71
|
-
export interface ProviderComponentState {
|
|
72
|
-
readonly status: ProviderComponentStatus;
|
|
73
|
-
readonly Component: ProviderComponent | null;
|
|
74
|
-
}
|
|
52
|
+
/**
|
|
53
|
+
* What `useProviderComponent` returns: the shared load state (#1703), holding the application's
|
|
54
|
+
* component type. The status vocabulary — `ProviderComponentStatus` — is the ONE the website and the
|
|
55
|
+
* documentation site use too, exported from `@wildo-ai/external-connectors-public/app`.
|
|
56
|
+
*/
|
|
57
|
+
export type ProviderComponentState = ProviderComponentLoadState<ProviderComponent>;
|
|
75
58
|
/**
|
|
76
59
|
* Loads one provider's component for a capability.
|
|
77
60
|
*
|
|
78
|
-
* Pass `undefined` for the ref while nothing is chosen — the hook does not
|
|
79
|
-
*
|
|
80
|
-
*
|
|
61
|
+
* Pass `undefined` for the ref while nothing is chosen — the hook does not choose, and a surface with
|
|
62
|
+
* several providers must not load all of them speculatively.
|
|
63
|
+
*
|
|
64
|
+
* The decision itself (consent first, then load, then READY / UNAVAILABLE, and a cancelled answer
|
|
65
|
+
* never overwriting a later choice) is `startProviderComponentLoad`, shared with the website and the
|
|
66
|
+
* documentation site so the three surfaces cannot come to disagree about it. This hook supplies the
|
|
67
|
+
* application's two inputs: the registry built at startup, and the signed-in person's grant.
|
|
68
|
+
* `ProviderComponentStatus.CONSENT_REQUIRED` means NOTHING of the provider was downloaded; a surface
|
|
69
|
+
* renders a consent-required state there, never a blank, and granting reloads it without a re-mount,
|
|
70
|
+
* because the hook re-evaluates when the grant changes.
|
|
81
71
|
*/
|
|
82
72
|
export declare function useProviderComponent(capability: ProviderCapability, providerRef: string | undefined): ProviderComponentState;
|
|
83
73
|
//# sourceMappingURL=useProviderComponent.frontend.hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProviderComponent.frontend.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/core/components-registry/useProviderComponent.frontend.hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"useProviderComponent.frontend.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/core/components-registry/useProviderComponent.frontend.hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,0CAA0C,CAAC;AAIlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAExF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,kBAAkB,GAC7B,aAAa,CAAC,uBAAuB,CAAC,CAexC;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;AAEnF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,kBAAkB,EAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,sBAAsB,CAuBxB"}
|
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
* translation invisible.
|
|
23
23
|
*/
|
|
24
24
|
import { useEffect, useState } from 'react';
|
|
25
|
+
import { idleProviderComponentLoadState, startProviderComponentLoad, } from '@wildo-ai/external-connectors-public/app';
|
|
25
26
|
import { buildProviderDisplayNameLabelKey } from '@wildo-ai/saas-models/public-runtime';
|
|
26
27
|
import { useApplication } from '../../core/runtime/useApplication.js';
|
|
28
|
+
import { useGrantedConsentPurposes } from '../../core/security/useGrantedConsentPurposes.js';
|
|
27
29
|
/**
|
|
28
30
|
* The providers that are BOTH live for this service and carry a component for
|
|
29
31
|
* this capability.
|
|
@@ -47,60 +49,38 @@ export function useProviderComponentChoices(capability) {
|
|
|
47
49
|
};
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
|
-
/** Why a provider component is not on screen yet. */
|
|
51
|
-
export var ProviderComponentStatus;
|
|
52
|
-
(function (ProviderComponentStatus) {
|
|
53
|
-
/** No provider was chosen, or none offers a component for this capability. */
|
|
54
|
-
ProviderComponentStatus["NONE"] = "NONE";
|
|
55
|
-
/** The component, or a script its provider declares, is still downloading. */
|
|
56
|
-
ProviderComponentStatus["LOADING"] = "LOADING";
|
|
57
|
-
/**
|
|
58
|
-
* The component is loaded AND every `<script>` its provider declares has
|
|
59
|
-
* executed — so a picker that reads a vendor global on mount finds it. Never
|
|
60
|
-
* READY on the component alone.
|
|
61
|
-
*/
|
|
62
|
-
ProviderComponentStatus["READY"] = "READY";
|
|
63
|
-
/**
|
|
64
|
-
* The loader failed, returned something unrenderable, or a script the provider
|
|
65
|
-
* declares did not load. The registry has already reported why; a surface
|
|
66
|
-
* should fall back rather than retry, because the registry will not run a
|
|
67
|
-
* failed loader — or re-inject a failed script — again.
|
|
68
|
-
*/
|
|
69
|
-
ProviderComponentStatus["UNAVAILABLE"] = "UNAVAILABLE";
|
|
70
|
-
})(ProviderComponentStatus || (ProviderComponentStatus = {}));
|
|
71
52
|
/**
|
|
72
53
|
* Loads one provider's component for a capability.
|
|
73
54
|
*
|
|
74
|
-
* Pass `undefined` for the ref while nothing is chosen — the hook does not
|
|
75
|
-
*
|
|
76
|
-
*
|
|
55
|
+
* Pass `undefined` for the ref while nothing is chosen — the hook does not choose, and a surface with
|
|
56
|
+
* several providers must not load all of them speculatively.
|
|
57
|
+
*
|
|
58
|
+
* The decision itself (consent first, then load, then READY / UNAVAILABLE, and a cancelled answer
|
|
59
|
+
* never overwriting a later choice) is `startProviderComponentLoad`, shared with the website and the
|
|
60
|
+
* documentation site so the three surfaces cannot come to disagree about it. This hook supplies the
|
|
61
|
+
* application's two inputs: the registry built at startup, and the signed-in person's grant.
|
|
62
|
+
* `ProviderComponentStatus.CONSENT_REQUIRED` means NOTHING of the provider was downloaded; a surface
|
|
63
|
+
* renders a consent-required state there, never a blank, and granting reloads it without a re-mount,
|
|
64
|
+
* because the hook re-evaluates when the grant changes.
|
|
77
65
|
*/
|
|
78
66
|
export function useProviderComponent(capability, providerRef) {
|
|
79
67
|
const { providerComponentRegistry } = useApplication();
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
setState(Component === null
|
|
97
|
-
? { status: ProviderComponentStatus.UNAVAILABLE, Component: null }
|
|
98
|
-
: { status: ProviderComponentStatus.READY, Component });
|
|
99
|
-
});
|
|
100
|
-
return () => {
|
|
101
|
-
current = false;
|
|
102
|
-
};
|
|
103
|
-
}, [capability, providerRef, providerComponentRegistry]);
|
|
68
|
+
// The signed-in person's grant (#1702). Keyed by value below, so an unrelated preference change does not
|
|
69
|
+
// re-run the load.
|
|
70
|
+
const { granted } = useGrantedConsentPurposes();
|
|
71
|
+
const grantedKey = granted.join(',');
|
|
72
|
+
const [state, setState] = useState(() => idleProviderComponentLoadState());
|
|
73
|
+
useEffect(() => startProviderComponentLoad({
|
|
74
|
+
registry: providerComponentRegistry,
|
|
75
|
+
capability,
|
|
76
|
+
providerRef,
|
|
77
|
+
grantedConsentPurposes: granted,
|
|
78
|
+
onState: setState,
|
|
79
|
+
}),
|
|
80
|
+
// `granted` is read through `grantedKey`: its identity changes with every preferences object, its
|
|
81
|
+
// meaning only when the set changes.
|
|
82
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
|
+
[capability, providerRef, providerComponentRegistry, grantedKey]);
|
|
104
84
|
return state;
|
|
105
85
|
}
|
|
106
86
|
//# sourceMappingURL=useProviderComponent.frontend.hooks.js.map
|