@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.
Files changed (777) hide show
  1. package/dist/esm/components/actions/action-bar.d.ts +15 -0
  2. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  3. package/dist/esm/components/actions/action-bar.js +15 -0
  4. package/dist/esm/components/actions/action-bar.js.map +1 -1
  5. package/dist/esm/components/ai-elements/decision/approval.d.ts +97 -7
  6. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  7. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  8. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
  9. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +8 -3
  10. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
  11. package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
  12. package/dist/esm/components/auth/Auth_EnrollmentRequired.js +5 -1
  13. package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
  14. package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
  15. package/dist/esm/components/auth/Auth_Main.js +1 -4
  16. package/dist/esm/components/auth/Auth_Main.js.map +1 -1
  17. package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
  18. package/dist/esm/components/auth/Auth_Register.js +1 -3
  19. package/dist/esm/components/auth/Auth_Register.js.map +1 -1
  20. package/dist/esm/components/auth/StepUpAuthDialog.d.ts +7 -0
  21. package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
  22. package/dist/esm/components/auth/StepUpAuthDialog.js +13 -7
  23. package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
  24. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
  25. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +32 -33
  26. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
  27. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
  28. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +18 -20
  29. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
  30. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
  31. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js +2 -3
  32. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
  33. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts +13 -16
  34. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
  35. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js +18 -15
  36. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
  37. package/dist/esm/components/billing/billing-invoice-history.js +2 -2
  38. package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
  39. package/dist/esm/components/billing/billing-portal-link.js +2 -2
  40. package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
  41. package/dist/esm/components/billing/billing-pricing-table.d.ts +33 -1
  42. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  43. package/dist/esm/components/billing/billing-pricing-table.js +34 -5
  44. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  45. package/dist/esm/components/billing/billing-subscription-status.js +2 -2
  46. package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
  47. package/dist/esm/components/billing/billing-usage-dashboard.d.ts +2 -0
  48. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  49. package/dist/esm/components/billing/billing-usage-dashboard.js +1 -0
  50. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  51. package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
  52. package/dist/esm/components/data-display/DisplayField.js +15 -1
  53. package/dist/esm/components/data-display/DisplayField.js.map +1 -1
  54. package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
  55. package/dist/esm/components/data-display/DisplayFieldArray.js +11 -0
  56. package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
  57. package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
  58. package/dist/esm/components/data-display/DisplayFieldEditable.js +2 -2
  59. package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
  60. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +12 -2
  61. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
  62. package/dist/esm/components/data-display/DisplayFieldEditableArray.js +3 -2
  63. package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
  64. package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
  65. package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
  66. package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
  67. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
  68. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js +8 -2
  69. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
  70. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
  71. package/dist/esm/components/data-display/DisplayValueDispatcher.js +18 -4
  72. package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
  73. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
  74. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +61 -3
  75. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
  76. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +7 -5
  77. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
  78. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
  79. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +11 -1
  80. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
  81. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +36 -11
  82. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
  83. package/dist/esm/components/data-display/display-field-resolved-props.d.ts +6 -0
  84. package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
  85. package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
  86. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +23 -0
  87. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -0
  88. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +35 -0
  89. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -0
  90. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +47 -0
  91. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -0
  92. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +124 -0
  93. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -0
  94. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts +8 -0
  95. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -0
  96. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +46 -0
  97. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -0
  98. package/dist/esm/components/feedback/resource-empty-state.d.ts +21 -8
  99. package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
  100. package/dist/esm/components/feedback/resource-empty-state.js +56 -26
  101. package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
  102. package/dist/esm/components/flows-actors/approval.d.ts +29 -7
  103. package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
  104. package/dist/esm/components/flows-actors/approval.js +231 -101
  105. package/dist/esm/components/flows-actors/approval.js.map +1 -1
  106. package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
  107. package/dist/esm/components/flows-actors/approval.labels.js +57 -0
  108. package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
  109. package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
  110. package/dist/esm/components/flows-actors/system-catalog.js +4 -4
  111. package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
  112. package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
  113. package/dist/esm/components/flows-actors/system-catalog.labels.js +0 -5
  114. package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
  115. package/dist/esm/components/form/Form.d.ts +2 -2
  116. package/dist/esm/components/form/Form.js +2 -2
  117. package/dist/esm/components/form/Form.js.map +1 -1
  118. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +28 -3
  119. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
  120. package/dist/esm/components/form/automated/AutomatedArrayField.js +43 -14
  121. package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
  122. package/dist/esm/components/form/automated/FormField.d.ts +3 -0
  123. package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
  124. package/dist/esm/components/form/automated/FormField.js +60 -21
  125. package/dist/esm/components/form/automated/FormField.js.map +1 -1
  126. package/dist/esm/components/form/automated/FormFieldArray.d.ts +6 -3
  127. package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
  128. package/dist/esm/components/form/automated/FormFieldArray.js +3 -2
  129. package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
  130. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +5 -4
  131. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
  132. package/dist/esm/components/form/automated/ResourceAutomatedForm.js +148 -55
  133. package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
  134. package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts +30 -0
  135. package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
  136. package/dist/esm/components/form/automated/ResourceFormActionsContext.js +30 -1
  137. package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
  138. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts +79 -0
  139. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -0
  140. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js +203 -0
  141. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -0
  142. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +12 -0
  143. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
  144. package/dist/esm/components/form/automated/automated-form-submit.utils.js +11 -0
  145. package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
  146. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
  147. package/dist/esm/components/form/chromes/FormFieldChrome.js +2 -2
  148. package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
  149. package/dist/esm/components/form/combobox.d.ts +7 -0
  150. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  151. package/dist/esm/components/form/combobox.js.map +1 -1
  152. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
  153. package/dist/esm/components/form/controls/form-field-checkbox-group.js +13 -0
  154. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
  155. package/dist/esm/components/form/fields/form-field-address.d.ts +58 -0
  156. package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
  157. package/dist/esm/components/form/fields/form-field-address.js +34 -6
  158. package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
  159. package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
  160. package/dist/esm/components/form/fields/form-field-address.labels.js +60 -1
  161. package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
  162. package/dist/esm/components/form/fields/form-field-file.d.ts +0 -12
  163. package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
  164. package/dist/esm/components/form/fields/form-field-file.js +34 -13
  165. package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
  166. package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
  167. package/dist/esm/components/form/fields/form-field-file.labels.js +46 -0
  168. package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
  169. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +73 -0
  170. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -0
  171. package/dist/esm/components/form/fields/form-field-string-organization-role.js +64 -0
  172. package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -0
  173. package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
  174. package/dist/esm/components/form/fields/form-field-string.js +8 -1
  175. package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
  176. package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
  177. package/dist/esm/components/form/fields/form-field-string.labels.js +4 -0
  178. package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
  179. package/dist/esm/components/form/validation-errors/FormErrorSummary.js +1 -1
  180. package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
  181. package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts +31 -0
  182. package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -0
  183. package/dist/esm/components/form/validation-errors/resolver-error-nesting.js +81 -0
  184. package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -0
  185. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts +14 -1
  186. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
  187. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js +14 -0
  188. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
  189. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +22 -0
  190. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
  191. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +1 -22
  192. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
  193. package/dist/esm/components/layout/resizable.d.ts +11 -0
  194. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  195. package/dist/esm/components/layout/resizable.js.map +1 -1
  196. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts +11 -1
  197. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
  198. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js +15 -3
  199. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
  200. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts +2 -2
  201. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
  202. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
  203. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts +2 -2
  204. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js +2 -2
  205. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
  206. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +18 -20
  207. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
  208. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
  209. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +7 -1
  210. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
  211. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
  212. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js +4 -1
  213. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
  214. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
  215. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +18 -2
  216. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
  217. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
  218. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +82 -10
  219. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
  220. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts +2 -2
  221. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
  222. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
  223. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
  224. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +8 -1
  225. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
  226. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +8 -2
  227. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
  228. package/dist/esm/components/resources/ResourceCollectionToolbar.js +6 -2
  229. package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
  230. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
  231. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +31 -16
  232. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
  233. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
  234. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js +23 -8
  235. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
  236. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +2 -2
  237. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
  238. package/dist/esm/components/resources/ResourceLayout_Header.d.ts +13 -0
  239. package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
  240. package/dist/esm/components/resources/ResourceLayout_Header.js +55 -28
  241. package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
  242. package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
  243. package/dist/esm/components/resources/ResourceLayout_List.js +41 -20
  244. package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
  245. package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
  246. package/dist/esm/components/resources/ResourceLayout_List.labels.js +1 -2
  247. package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
  248. package/dist/esm/components/resources/ResourceLayout_Read.d.ts +9 -4
  249. package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
  250. package/dist/esm/components/resources/ResourceLayout_Read.js +30 -11
  251. package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
  252. package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
  253. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +4 -2
  254. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
  255. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
  256. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +6 -2
  257. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
  258. package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
  259. package/dist/esm/components/resources/ResourceLayout_Search.js +30 -14
  260. package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
  261. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
  262. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +14 -198
  263. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
  264. package/dist/esm/components/resources/ResourceLayout_Update.d.ts +2 -2
  265. package/dist/esm/components/resources/ResourceLayout_Update.js +2 -2
  266. package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
  267. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
  268. package/dist/esm/components/resources/ResourceListItemRenderer.js +69 -39
  269. package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
  270. package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts +32 -0
  271. package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -0
  272. package/dist/esm/components/resources/ResourceOperationActionDropdown.js +130 -0
  273. package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -0
  274. package/dist/esm/components/resources/collection-create-placement.utils.d.ts +32 -0
  275. package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -0
  276. package/dist/esm/components/resources/collection-create-placement.utils.js +37 -0
  277. package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -0
  278. package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
  279. package/dist/esm/components/resources/embeds/RelatedResourcePreview.js +5 -1
  280. package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
  281. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts +8 -1
  282. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
  283. package/dist/esm/components/resources/embeds/RelatedResourceSections.js +49 -2
  284. package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
  285. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +22 -0
  286. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
  287. package/dist/esm/components/resources/embeds/ResourceEmbeds.js +85 -2
  288. package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
  289. package/dist/esm/components/resources/resourceLayout.utils.d.ts +14 -0
  290. package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
  291. package/dist/esm/components/resources/resourceLayout.utils.js +22 -0
  292. package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
  293. package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
  294. package/dist/esm/components/resources/skeleton/ArrayField.js +3 -0
  295. package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
  296. package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
  297. package/dist/esm/components/resources/skeleton/FormLayout.js +33 -1
  298. package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
  299. package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
  300. package/dist/esm/components/resources/skeleton/ObjectScope.js +3 -0
  301. package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
  302. package/dist/esm/components/resources/skeleton/Section.d.ts +12 -0
  303. package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
  304. package/dist/esm/components/resources/skeleton/Section.js +28 -2
  305. package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
  306. package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts +70 -0
  307. package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
  308. package/dist/esm/components/resources/skeleton/SectionFieldsContext.js +157 -1
  309. package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
  310. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +6 -0
  311. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
  312. package/dist/esm/components/resources/skeleton/WizardLayout.js +13 -2
  313. package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
  314. package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
  315. package/dist/esm/components/resources/skeleton/WizardStep.js +2 -1
  316. package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
  317. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
  318. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +61 -15
  319. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
  320. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +24 -2
  321. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
  322. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +69 -1
  323. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
  324. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
  325. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +18 -19
  326. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
  327. package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
  328. package/dist/esm/components/sections/ContentSectionContainer.js +5 -4
  329. package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
  330. package/dist/esm/components/sections/stepper.d.ts +5 -0
  331. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  332. package/dist/esm/components/sections/stepper.js.map +1 -1
  333. package/dist/esm/components/sections/surface.d.ts.map +1 -1
  334. package/dist/esm/components/sections/surface.js +12 -3
  335. package/dist/esm/components/sections/surface.js.map +1 -1
  336. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +43 -0
  337. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -0
  338. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +129 -0
  339. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -0
  340. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts +3 -0
  341. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -0
  342. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +34 -0
  343. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -0
  344. package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
  345. package/dist/esm/components/settings/AppPage_AppearanceSettings.js +9 -11
  346. package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
  347. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
  348. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js +3 -2
  349. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
  350. package/dist/esm/components/settings/AppPage_BillingSettings.d.ts +4 -2
  351. package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
  352. package/dist/esm/components/settings/AppPage_BillingSettings.js +21 -3
  353. package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
  354. package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
  355. package/dist/esm/components/settings/AppPage_BillingSettings.labels.js +5 -10
  356. package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
  357. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +58 -0
  358. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
  359. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +243 -40
  360. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
  361. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
  362. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +67 -6
  363. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
  364. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
  365. package/dist/esm/components/settings/AppPage_InvitationsSettings.js +19 -11
  366. package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
  367. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
  368. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +4 -2
  369. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
  370. package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
  371. package/dist/esm/components/settings/SettingsHub.js +3 -0
  372. package/dist/esm/components/settings/SettingsHub.js.map +1 -1
  373. package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
  374. package/dist/esm/components/settings/SettingsResourceOperationPanel.js +16 -1
  375. package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
  376. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +59 -0
  377. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -0
  378. package/dist/esm/components/settings/useOwnerProviderConnections.js +136 -0
  379. package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -0
  380. package/dist/esm/components/views/chart-view/chart-view.utils.d.ts +5 -0
  381. package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
  382. package/dist/esm/components/views/chart-view/chart-view.utils.js +5 -0
  383. package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
  384. package/dist/esm/components/views/chart-view/useResourceChartData.d.ts +50 -0
  385. package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -0
  386. package/dist/esm/components/views/chart-view/useResourceChartData.js +72 -0
  387. package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -0
  388. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
  389. package/dist/esm/components/views/composite-view/CompositeLayout.js +2 -1
  390. package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
  391. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +86 -0
  392. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -0
  393. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +187 -0
  394. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -0
  395. package/dist/esm/core/app-shell/PortalContainerContext.d.ts +5 -2
  396. package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
  397. package/dist/esm/core/app-shell/PortalContainerContext.js +5 -2
  398. package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
  399. package/dist/esm/core/app-shell/app-shell.schemas.d.ts +18 -9
  400. package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
  401. package/dist/esm/core/app-shell/app-shell.schemas.js +1 -0
  402. package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
  403. package/dist/esm/core/app-shell/useAppShellLayout.d.ts +10 -0
  404. package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
  405. package/dist/esm/core/app-shell/useAppShellLayout.js +28 -5
  406. package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
  407. package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
  408. package/dist/esm/core/app-shell/usePublicShellLayout.js +38 -0
  409. package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
  410. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +15 -1
  411. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
  412. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +47 -13
  413. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
  414. package/dist/esm/core/billing/BillingContext.d.ts +25 -2
  415. package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
  416. package/dist/esm/core/billing/BillingContext.js +16 -25
  417. package/dist/esm/core/billing/BillingContext.js.map +1 -1
  418. package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts +11 -3
  419. package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
  420. package/dist/esm/core/billing/billing-provider-display.frontend.utils.js +14 -8
  421. package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
  422. package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
  423. package/dist/esm/core/billing/useBillingPlanChange.js +2 -0
  424. package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
  425. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
  426. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
  427. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
  428. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +29 -229
  429. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
  430. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +29 -327
  431. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
  432. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +17 -27
  433. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
  434. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +28 -48
  435. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
  436. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +21 -11
  437. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
  438. package/dist/esm/core/config/app-configuration-frontend.schemas.js +4 -4
  439. package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
  440. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +17 -0
  441. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
  442. package/dist/esm/core/config/app-level-components.frontend.schemas.js +17 -0
  443. package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
  444. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +10 -10
  445. package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
  446. package/dist/esm/core/config/engine-settings-destinations.js +221 -6
  447. package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
  448. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +8 -0
  449. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
  450. package/dist/esm/core/config/launcher-items.frontend.schemas.js +1 -0
  451. package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
  452. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +10 -1
  453. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
  454. package/dist/esm/core/config/settings-hub.frontend.schemas.js +9 -0
  455. package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
  456. package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
  457. package/dist/esm/core/config/verify-launcher-content.js +30 -19
  458. package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
  459. package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
  460. package/dist/esm/core/errors/ErrorContext.js +9 -1
  461. package/dist/esm/core/errors/ErrorContext.js.map +1 -1
  462. package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
  463. package/dist/esm/core/errors/GlobalErrorHandler.js +5 -4
  464. package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
  465. package/dist/esm/core/errors/RouterErrorBoundary.js +1 -1
  466. package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
  467. package/dist/esm/core/errors/errors-builder.frontend.services.d.ts +2 -2
  468. package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
  469. package/dist/esm/core/errors/errors-builder.frontend.services.js +4 -4
  470. package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
  471. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +1 -1
  472. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
  473. package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
  474. package/dist/esm/core/events/NotificationContext.js +23 -5
  475. package/dist/esm/core/events/NotificationContext.js.map +1 -1
  476. package/dist/esm/core/events/events.frontend.schemas.d.ts +110 -43
  477. package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
  478. package/dist/esm/core/events/events.frontend.schemas.js +89 -15
  479. package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
  480. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts +2 -0
  481. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
  482. package/dist/esm/core/execution/useExecutionParticipationRMM.js +2 -1
  483. package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
  484. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts +1 -1
  485. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
  486. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +5 -2
  487. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
  488. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts +63 -0
  489. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -0
  490. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js +131 -0
  491. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -0
  492. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts +61 -0
  493. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -0
  494. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js +178 -0
  495. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -0
  496. package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts +52 -0
  497. package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -0
  498. package/dist/esm/core/external-providers/ProviderAddressLookupHost.js +144 -0
  499. package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -0
  500. package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +22 -1
  501. package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
  502. package/dist/esm/core/external-providers/ProviderFilePickerHost.js +23 -3
  503. package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
  504. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts +55 -0
  505. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -0
  506. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js +65 -0
  507. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -0
  508. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +63 -0
  509. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -0
  510. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +100 -0
  511. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -0
  512. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +45 -7
  513. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
  514. package/dist/esm/core/flows-actors/FlowsActorsContext.js +112 -28
  515. package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
  516. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +32 -0
  517. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -0
  518. package/dist/esm/core/flows-actors/usePendingDecisions.js +91 -0
  519. package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -0
  520. package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
  521. package/dist/esm/core/guidance/GuidanceRenderer.js +3 -2
  522. package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
  523. package/dist/esm/core/i18n/I18nContext.d.ts +22 -8
  524. package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
  525. package/dist/esm/core/i18n/I18nContext.js +21 -9
  526. package/dist/esm/core/i18n/I18nContext.js.map +1 -1
  527. package/dist/esm/core/i18n/component-label-resolution.utils.d.ts +5 -3
  528. package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
  529. package/dist/esm/core/i18n/component-label-resolution.utils.js +5 -3
  530. package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
  531. package/dist/esm/core/i18n/useI18n.d.ts +2 -1
  532. package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
  533. package/dist/esm/core/i18n/useI18n.js +2 -1
  534. package/dist/esm/core/i18n/useI18n.js.map +1 -1
  535. package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
  536. package/dist/esm/core/loading/LoadingContext.js +7 -1
  537. package/dist/esm/core/loading/LoadingContext.js.map +1 -1
  538. package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
  539. package/dist/esm/core/loading/LoadingGate.js +19 -1
  540. package/dist/esm/core/loading/LoadingGate.js.map +1 -1
  541. package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts +15 -2
  542. package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
  543. package/dist/esm/core/monitoring/analytics/AnalyticsContext.js +183 -20
  544. package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
  545. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js +2 -2
  546. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
  547. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts +7 -15
  548. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
  549. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js +8 -26
  550. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
  551. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts +12 -3
  552. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
  553. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js +3 -2
  554. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
  555. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts +42 -0
  556. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
  557. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +89 -5
  558. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
  559. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts +2 -0
  560. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
  561. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js +2 -0
  562. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
  563. package/dist/esm/core/navigation/NavigationContentAreas.d.ts +78 -0
  564. package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
  565. package/dist/esm/core/navigation/NavigationContentAreas.js +264 -16
  566. package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
  567. package/dist/esm/core/navigation/NavigationContext.d.ts +8 -0
  568. package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
  569. package/dist/esm/core/navigation/NavigationContext.js +137 -30
  570. package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
  571. package/dist/esm/core/navigation/launcher-resolution.d.ts +2 -0
  572. package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
  573. package/dist/esm/core/navigation/launcher-resolution.js +1 -0
  574. package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
  575. package/dist/esm/core/navigation/navigation-cascade.d.ts +46 -0
  576. package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -0
  577. package/dist/esm/core/navigation/navigation-cascade.js +222 -0
  578. package/dist/esm/core/navigation/navigation-cascade.js.map +1 -0
  579. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
  580. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js +21 -2
  581. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
  582. package/dist/esm/core/navigation/navigation-controller-internals.d.ts +71 -0
  583. package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -0
  584. package/dist/esm/core/navigation/navigation-controller-internals.js +84 -0
  585. package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -0
  586. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +86 -2
  587. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
  588. package/dist/esm/core/navigation/navigation-policy-resolver.service.js +242 -124
  589. package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
  590. package/dist/esm/core/navigation/navigation.schemas.d.ts +170 -8
  591. package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
  592. package/dist/esm/core/navigation/navigation.schemas.js +121 -2
  593. package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
  594. package/dist/esm/core/navigation/navigation.utils.d.ts +102 -6
  595. package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
  596. package/dist/esm/core/navigation/navigation.utils.js +283 -34
  597. package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
  598. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -10
  599. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -1
  600. package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -1
  601. package/dist/esm/core/navigation/useNavigationController.d.ts +28 -157
  602. package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
  603. package/dist/esm/core/navigation/useNavigationController.js +211 -1189
  604. package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
  605. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts +174 -0
  606. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -0
  607. package/dist/esm/core/navigation/useNavigationRouterSync.js +977 -0
  608. package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -0
  609. package/dist/esm/core/navigation/useOverlayTitle.d.ts +13 -1
  610. package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
  611. package/dist/esm/core/navigation/useOverlayTitle.js +15 -10
  612. package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
  613. package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts +43 -0
  614. package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -0
  615. package/dist/esm/core/navigation/useResponsiveZoneMigration.js +44 -0
  616. package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -0
  617. package/dist/esm/core/navigation/zone-collapse-migration.d.ts +83 -0
  618. package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -0
  619. package/dist/esm/core/navigation/zone-collapse-migration.js +116 -0
  620. package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -0
  621. package/dist/esm/core/navigation/zone-collapse.d.ts +51 -0
  622. package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -0
  623. package/dist/esm/core/navigation/zone-collapse.js +59 -0
  624. package/dist/esm/core/navigation/zone-collapse.js.map +1 -0
  625. package/dist/esm/core/navigation/zone-emphasis.d.ts +3 -0
  626. package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
  627. package/dist/esm/core/navigation/zone-emphasis.js +26 -4
  628. package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
  629. package/dist/esm/core/navigation/zone-visible-entry.d.ts +22 -0
  630. package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
  631. package/dist/esm/core/navigation/zone-visible-entry.js +25 -0
  632. package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
  633. package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
  634. package/dist/esm/core/requests/websockets/WebSocketContext.js +53 -18
  635. package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
  636. package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
  637. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +3 -1
  638. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
  639. package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts +22 -0
  640. package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
  641. package/dist/esm/core/requests/websockets/useNotificationBadges.js +72 -3
  642. package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
  643. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts +28 -0
  644. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -0
  645. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js +86 -0
  646. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -0
  647. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +38 -3
  648. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
  649. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +57 -2
  650. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
  651. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
  652. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +4 -2
  653. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
  654. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +30 -1
  655. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
  656. package/dist/esm/core/requests/wildo-http-client.frontend.service.js +47 -4
  657. package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
  658. package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
  659. package/dist/esm/core/resources/ResourceRegistryContext.js +22 -1
  660. package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
  661. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js +1 -1
  662. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
  663. package/dist/esm/core/resources/frontend-resource.utils.d.ts +22 -1
  664. package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
  665. package/dist/esm/core/resources/frontend-resource.utils.js +25 -2
  666. package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
  667. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +113 -13
  668. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
  669. package/dist/esm/core/resources/operation-semantics.frontend.utils.js +173 -20
  670. package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
  671. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts +11 -0
  672. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
  673. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js +7 -0
  674. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
  675. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts +3 -2
  676. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
  677. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js +13 -5
  678. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
  679. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +6 -0
  680. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
  681. package/dist/esm/core/resources/resources-repository.frontend.service.js +90 -1
  682. package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
  683. package/dist/esm/core/resources/resources.frontend.schemas.d.ts +139 -16
  684. package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
  685. package/dist/esm/core/resources/resources.frontend.schemas.js +110 -11
  686. package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
  687. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
  688. package/dist/esm/core/resources/rmm/ResourceMutationManager.js +3 -1
  689. package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
  690. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +10 -0
  691. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
  692. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +8 -0
  693. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
  694. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +7 -0
  695. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
  696. package/dist/esm/core/resources/rmm/useResourceRMM.js +9 -2
  697. package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
  698. package/dist/esm/core/resources/useOperationDirectExecution.d.ts +59 -0
  699. package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -0
  700. package/dist/esm/core/resources/useOperationDirectExecution.js +278 -0
  701. package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -0
  702. package/dist/esm/core/resources/useResourceOperationActions.d.ts +1 -1
  703. package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
  704. package/dist/esm/core/resources/useResourceOperationActions.js +69 -22
  705. package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
  706. package/dist/esm/core/resources/useResourceOperationSurface.d.ts +8 -6
  707. package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
  708. package/dist/esm/core/resources/useResourceOperationSurface.js +3 -2
  709. package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
  710. package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
  711. package/dist/esm/core/runtime/AppRouter.js +23 -2
  712. package/dist/esm/core/runtime/AppRouter.js.map +1 -1
  713. package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +4 -2
  714. package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
  715. package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
  716. package/dist/esm/core/runtime/ApplicationMainContext.d.ts +12 -2
  717. package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
  718. package/dist/esm/core/runtime/ApplicationMainContext.js +5 -2
  719. package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
  720. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +25 -1
  721. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
  722. package/dist/esm/core/runtime/domain-module.frontend.definitions.js +37 -1
  723. package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
  724. package/dist/esm/core/runtime/start-application.frontend.service.d.ts +21 -2
  725. package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
  726. package/dist/esm/core/runtime/start-application.frontend.service.js +51 -4
  727. package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
  728. package/dist/esm/core/security/AuthSessionContext.d.ts +11 -0
  729. package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
  730. package/dist/esm/core/security/AuthSessionContext.js +70 -22
  731. package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
  732. package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
  733. package/dist/esm/core/security/StepUpAuthContext.js +10 -2
  734. package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
  735. package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
  736. package/dist/esm/core/security/UserOrgsContext.js +72 -8
  737. package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
  738. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +7 -0
  739. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
  740. package/dist/esm/core/security/route-organization-access.frontend.utils.js +8 -2
  741. package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
  742. package/dist/esm/core/security/useGrantedConsentPurposes.d.ts +30 -0
  743. package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -0
  744. package/dist/esm/core/security/useGrantedConsentPurposes.js +38 -0
  745. package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -0
  746. package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
  747. package/dist/esm/core/ui/UIContext.js +10 -6
  748. package/dist/esm/core/ui/UIContext.js.map +1 -1
  749. package/dist/esm/core/ui/color-conversion.utils.d.ts +20 -0
  750. package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
  751. package/dist/esm/core/ui/color-conversion.utils.js +39 -5
  752. package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
  753. package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
  754. package/dist/esm/core/ui/themes/default.theme.js +22 -2
  755. package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
  756. package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -6
  757. package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
  758. package/dist/esm/core/ui/ui.frontend.schemas.js +3 -3
  759. package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
  760. package/dist/esm/index.d.ts +10 -1
  761. package/dist/esm/index.d.ts.map +1 -1
  762. package/dist/esm/index.js +19 -1
  763. package/dist/esm/index.js.map +1 -1
  764. package/dist/esm/testing/app-shell-placement-coverage.d.ts +43 -0
  765. package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -0
  766. package/dist/esm/testing/app-shell-placement-coverage.js +114 -0
  767. package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -0
  768. package/dist/esm/testing/mock-builders.d.ts.map +1 -1
  769. package/dist/esm/testing/mock-builders.js +5 -0
  770. package/dist/esm/testing/mock-builders.js.map +1 -1
  771. package/dist/esm/testing.d.ts +1 -0
  772. package/dist/esm/testing.d.ts.map +1 -1
  773. package/dist/esm/testing.js +1 -0
  774. package/dist/esm/testing.js.map +1 -1
  775. package/package.json +9 -7
  776. package/dist/esm/core/navigation/useIsStackEntryActive.js +0 -15
  777. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -10,7 +10,7 @@ import { AppConfiguration_Shared, type FeatureConfiguration, ResourceConfigurati
10
10
  import { type AppConfiguration_Frontend } from '../../core/config/app-configuration-frontend.schemas';
11
11
  import type { ResourceUIBehavior, FrontendResourcesRegistry } from '../../core/resources/resources.frontend.schemas';
12
12
  import { type FrontendConfigOverrides } from './app-config-overrides.frontend.definitions';
13
- import { type ProviderComponentRegistry } from '../../core/components-registry/provider-component-registry.frontend.service';
13
+ import { type AppProviderComponentRegistry } from '../../core/components-registry/provider-component-registry.frontend.service';
14
14
  import { type FrontendProviderRegistryFrontendService } from '../../core/external-providers/frontend-provider-registry.frontend.service';
15
15
  import { type ActivatedFrontendProviderSdks, type GeneratedAppProviderModules } from '@wildo-ai/external-connectors-public/app';
16
16
  export interface StartApplicationOptions {
@@ -127,7 +127,7 @@ export interface ApplicationServices {
127
127
  * Always present, even when empty, so a consumer never has to tell "no
128
128
  * provider components" from "registration has not run".
129
129
  */
130
- providerComponentRegistry: ProviderComponentRegistry;
130
+ providerComponentRegistry: AppProviderComponentRegistry;
131
131
  /** Resolved per-app frontend configuration (defaults + overrides). Always present. */
132
132
  frontendConfiguration: AppConfiguration_Frontend;
133
133
  }
@@ -137,6 +137,25 @@ export declare class StartApplicationFrontendService {
137
137
  private initializationPromise;
138
138
  private logger;
139
139
  private logDebug;
140
+ /**
141
+ * Report what the authored navigation layout declares that the runtime will silently do
142
+ * differently — a SPLIT with no pane to open, a `persistent` split with no companion, a zone field
143
+ * that is inert on primary, inverted width bounds.
144
+ *
145
+ * ## Non-fatal, and the alternative was considered
146
+ *
147
+ * `collectNavigationLayoutDiagnostics` could have been a `superRefine` on `NavigationLayoutSchema`,
148
+ * which is parsed one line above inside `AppConfiguration_Frontend_Schema`. That would have made a
149
+ * declared split that renders as a dialog stop the application from booting — disproportionate to
150
+ * the defect, and the shape `.claude/rules/application-creation-directive.md` forbids: the
151
+ * mechanism MARKS what is not right and keeps going. The precedent is the administrative-continuity
152
+ * boot report, non-fatal for the same reason.
153
+ *
154
+ * Logged at `error`/`warn` rather than `debug` on purpose: a diagnostic behind a debug flag is one
155
+ * nobody has ever read. Each carries its own remedy, because a report with no remedy is a
156
+ * complaint.
157
+ */
158
+ private reportNavigationLayoutDiagnostics;
140
159
  initializeApplication(options: StartApplicationOptions): Promise<ApplicationServices>;
141
160
  private performInitialization;
142
161
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"start-application.frontend.service.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/start-application.frontend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start-application.frontend.service.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/start-application.frontend.service.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { WildoBackendHttpClient_ManualCalls } from '../../core/requests/wildo-ht
7
7
  import { WildoBackendHttpClient } from '../../core/requests/wildo-http-client.frontend.service.js';
8
8
  import { configureClientInstanceIdPolicy } from '../../core/requests/client-instance-id.frontend.service.js';
9
9
  import { ResourcesRepositoryFrontendService } from '../../core/resources/resources-repository.frontend.service.js';
10
- import { AppConfiguration_FrontendBootstrapResponse_Schema, AppConfiguration_Shared_Schema, describeCaughtError } from '@wildo-ai/saas-models';
10
+ import { AppConfiguration_FrontendBootstrapResponse_Schema, AppConfiguration_Shared_Schema, collectNavigationLayoutDiagnostics, NavigationLayoutDiagnosticSeverity, describeCaughtError } from '@wildo-ai/saas-models';
11
11
  import { AppConfiguration_Frontend_Schema, } from '../../core/config/app-configuration-frontend.schemas.js';
12
12
  import { envLoader } from '../../core/runtime/env-variable-loader.frontend.service.js';
13
13
  import { applyFrontendConfigOverrides } from './app-config-overrides.frontend.definitions.js';
@@ -16,10 +16,10 @@ import { verifySettingsHubContent, reportSettingsHubVerificationResults } from '
16
16
  import { resolveSettingsHubConfig, findUnknownDestinationRefs, resolveSettingsDestinationCatalog, } from '../../core/config/useSettingsHubConfig.js';
17
17
  import { verifyFrontendFeatureReferences } from '../../core/config/verify-feature-references.frontend.js';
18
18
  import { ComponentRegistryService } from '../../core/components-registry/component-registry.frontend.service.js';
19
- import { collectProviderComponentRegistrations, collectProviderScriptsWithoutComponents, createProviderComponentRegistry, } from '../../core/components-registry/provider-component-registry.frontend.service.js';
19
+ import { listContributedProviderComponentLoaders, } from '../../core/components-registry/provider-component-registry.frontend.service.js';
20
20
  import { createFrontendProviderRegistryFrontendService, } from '../../core/external-providers/frontend-provider-registry.frontend.service.js';
21
21
  import { createFrontendErrorMonitoringBridge } from '../../core/monitoring/error-monitoring-bridge.frontend.service.js';
22
- import { activateFrontendProviderSdks, loadProviderScripts, } from '@wildo-ai/external-connectors-public/app';
22
+ import { activateFrontendProviderSdks, collectProviderComponentRegistrations, collectProviderScriptsWithoutComponents, consentPurposesRequiredByProvider, createProviderComponentRegistry, loadProviderScripts, } from '@wildo-ai/external-connectors-public/app';
23
23
  import { AppFrontendType } from '@wildo-ai/saas-models/public-runtime';
24
24
  function isRecord(value) {
25
25
  return typeof value === 'object' && value !== null;
@@ -62,6 +62,48 @@ export class StartApplicationFrontendService {
62
62
  initializationPromise = null;
63
63
  logger = null;
64
64
  logDebug = null;
65
+ /**
66
+ * Report what the authored navigation layout declares that the runtime will silently do
67
+ * differently — a SPLIT with no pane to open, a `persistent` split with no companion, a zone field
68
+ * that is inert on primary, inverted width bounds.
69
+ *
70
+ * ## Non-fatal, and the alternative was considered
71
+ *
72
+ * `collectNavigationLayoutDiagnostics` could have been a `superRefine` on `NavigationLayoutSchema`,
73
+ * which is parsed one line above inside `AppConfiguration_Frontend_Schema`. That would have made a
74
+ * declared split that renders as a dialog stop the application from booting — disproportionate to
75
+ * the defect, and the shape `.claude/rules/application-creation-directive.md` forbids: the
76
+ * mechanism MARKS what is not right and keeps going. The precedent is the administrative-continuity
77
+ * boot report, non-fatal for the same reason.
78
+ *
79
+ * Logged at `error`/`warn` rather than `debug` on purpose: a diagnostic behind a debug flag is one
80
+ * nobody has ever read. Each carries its own remedy, because a report with no remedy is a
81
+ * complaint.
82
+ */
83
+ reportNavigationLayoutDiagnostics(navigationLayout) {
84
+ if (!navigationLayout)
85
+ return;
86
+ let diagnostics;
87
+ try {
88
+ diagnostics = collectNavigationLayoutDiagnostics(navigationLayout);
89
+ }
90
+ catch (error) {
91
+ // A diagnostic pass must never be why an application fails to start.
92
+ this.logger.warn('Navigation layout diagnostics could not run', { error: describeCaughtError(error) });
93
+ return;
94
+ }
95
+ if (diagnostics.length === 0)
96
+ return;
97
+ for (const diagnostic of diagnostics) {
98
+ const payload = { path: diagnostic.path, code: diagnostic.code, remedy: diagnostic.remedy };
99
+ if (diagnostic.severity === NavigationLayoutDiagnosticSeverity.ERROR) {
100
+ this.logger.error(`Navigation layout: ${diagnostic.message}`, payload);
101
+ }
102
+ else {
103
+ this.logger.warn(`Navigation layout: ${diagnostic.message}`, payload);
104
+ }
105
+ }
106
+ }
65
107
  async initializeApplication(options) {
66
108
  if (this.isInitialized && this.services)
67
109
  return this.services;
@@ -220,6 +262,7 @@ export class StartApplicationFrontendService {
220
262
  this.logDebug('Applied frontend config overrides', { sections: Object.keys(options.frontendConfigOverrides) });
221
263
  }
222
264
  resolvedFrontendConfig = AppConfiguration_Frontend_Schema.parse(resolvedFrontendConfig);
265
+ this.reportNavigationLayoutDiagnostics(resolvedFrontendConfig.navigationLayout);
223
266
  this.logDebug('Frontend configuration resolved', {
224
267
  frontendServiceName: envConfig.frontendServiceName,
225
268
  finalConfig: {
@@ -282,7 +325,10 @@ export class StartApplicationFrontendService {
282
325
  const resolvedProviderRegistry = frontendProviderRegistry ?? createFrontendProviderRegistryFrontendService();
283
326
  const frontendProviderSdks = await activateFrontendProviderSdks({
284
327
  surface: AppFrontendType.SAAS_APP,
285
- modules: resolvedProviderRegistry.listAll(),
328
+ // The FIRST phase: providers that rest on no consent purpose. A consent-based one is started by
329
+ // `ConsentBasedProviderSdksProvider` once the signed-in person grants it (#1704); handing it to this
330
+ // runner, which holds no grant, would only log a withheld diagnostic on every start.
331
+ modules: resolvedProviderRegistry.listAll().filter((module) => consentPurposesRequiredByProvider(module).length === 0),
286
332
  onDiagnostic: (diagnostic) => {
287
333
  this.logger?.warn('Frontend provider SDK activation diagnostic', {
288
334
  kind: diagnostic.kind,
@@ -334,6 +380,7 @@ export class StartApplicationFrontendService {
334
380
  // nothing can load is reported and left out, so the chooser offers only
335
381
  // what can render.
336
382
  const providerComponentRegistrations = collectProviderComponentRegistrations(resolvedProviderRegistry.listAll(), {
383
+ contributedLoaders: listContributedProviderComponentLoaders(),
337
384
  onDiagnostic: onProviderComponentDiagnostic,
338
385
  });
339
386
  const providerComponentRegistry = createProviderComponentRegistry({
@@ -1 +1 @@
1
- {"version":3,"file":"start-application.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/runtime/start-application.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Start Application Frontend Service\n * Handles application initialization and startup logic\n */\n\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport { WildoBackendHttpClient_ManualCalls } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { WildoBackendHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client.frontend.service';\nimport { configureClientInstanceIdPolicy } from '~wildo-frontend-lib/core/requests/client-instance-id.frontend.service';\nimport { ResourcesRepositoryFrontendService } from '~wildo-frontend-lib/core/resources/resources-repository.frontend.service';\nimport { InitializationApplicationConfig } from './ApplicationMainContext';\n\nimport {\n AppConfiguration_FrontendBootstrapResponse_Schema,\n AppConfiguration_Shared_Schema,\n AppConfiguration_Shared,\n type FeatureConfiguration,\n ResourceConfiguration_InitializationFactory,\n ResourceRelationship,\n type NotificationBadgeDefinition, describeCaughtError } from '@wildo-ai/saas-models';\nimport {\n AppConfiguration_Frontend_Schema,\n type AppConfiguration_Frontend,\n} from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport type { ResourceUIBehavior, FrontendResourcesRegistry } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { envLoader } from '~wildo-frontend-lib/core/runtime/env-variable-loader.frontend.service';\nimport { type FrontendConfigOverrides, applyFrontendConfigOverrides } from './app-config-overrides.frontend.definitions';\nimport { verifyLauncherContent, reportLauncherVerificationResults } from '~wildo-frontend-lib/core/config/verify-launcher-content';\nimport { verifySettingsHubContent, reportSettingsHubVerificationResults } from '~wildo-frontend-lib/core/config/verify-settings-hub-content';\nimport {\n resolveSettingsHubConfig,\n findUnknownDestinationRefs,\n resolveSettingsDestinationCatalog,\n} from '~wildo-frontend-lib/core/config/useSettingsHubConfig';\nimport { verifyFrontendFeatureReferences } from '~wildo-frontend-lib/core/config/verify-feature-references.frontend';\nimport { ComponentRegistryService } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.service';\nimport {\n collectProviderComponentRegistrations,\n collectProviderScriptsWithoutComponents,\n createProviderComponentRegistry,\n type ProviderComponentDiagnostic,\n type ProviderComponentRegistry,\n} from '~wildo-frontend-lib/core/components-registry/provider-component-registry.frontend.service';\nimport {\n createFrontendProviderRegistryFrontendService,\n type FrontendProviderRegistryFrontendService,\n} from '~wildo-frontend-lib/core/external-providers/frontend-provider-registry.frontend.service';\nimport { createFrontendErrorMonitoringBridge } from '~wildo-frontend-lib/core/monitoring/error-monitoring-bridge.frontend.service';\nimport {\n activateFrontendProviderSdks,\n loadProviderScripts,\n type ActivatedFrontendProviderSdks,\n type GeneratedAppProviderModules,\n} from '@wildo-ai/external-connectors-public/app';\nimport { AppFrontendType } from '@wildo-ai/saas-models/public-runtime';\n\ninterface InitializationFailureDiagnostics {\n phase: string;\n apiBaseUrl: string;\n frontendServiceName?: string;\n errorName?: string;\n errorMessage: string;\n stack?: string;\n causeMessage?: string;\n wildoError?: {\n type?: unknown;\n customMessageReference?: unknown;\n context?: Record<string, unknown>;\n };\n}\n\ntype InitializationFailureError = Error & {\n initializationDiagnostics?: InitializationFailureDiagnostics;\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction extractCauseMessage(error: unknown): string | undefined {\n if (!isRecord(error) || !('cause' in error)) {\n return undefined;\n }\n\n const cause = error.cause;\n if (cause instanceof Error) {\n return cause.message;\n }\n\n if (typeof cause === 'string') {\n return cause;\n }\n\n return undefined;\n}\n\nfunction normalizeInitializationFailure(\n error: unknown,\n baseDiagnostics: {\n phase: string;\n apiBaseUrl: string;\n frontendServiceName?: string;\n },\n): InitializationFailureError {\n const normalizedError = error instanceof Error ? error : new Error(String(error));\n const wildoError = isRecord(normalizedError) && isRecord(normalizedError.wildoError)\n ? normalizedError.wildoError\n : undefined;\n\n (normalizedError as InitializationFailureError).initializationDiagnostics = {\n ...baseDiagnostics,\n errorName: normalizedError.name,\n errorMessage: normalizedError.message,\n stack: normalizedError.stack,\n causeMessage: extractCauseMessage(normalizedError),\n wildoError: wildoError ? {\n type: wildoError.type,\n customMessageReference: wildoError.customMessageReference,\n context: isRecord(wildoError.context) ? wildoError.context : undefined,\n } : undefined,\n };\n\n return normalizedError as InitializationFailureError;\n}\n\nexport interface StartApplicationOptions {\n config: InitializationApplicationConfig;\n autoAuth?: boolean;\n preloadResources?: string[];\n onInitialized?: () => void;\n onError?: (error: Error) => void;\n\n /**\n * Custom shared resources configuration factory map from custom-shared-lib.\n * Required for custom resources to be registered in the frontend ResourceRegistryContext.\n */\n customShared_ResourcesConfigurationsFactoryMap?: { [key: string]: ResourceConfiguration_InitializationFactory<any, any, any> };\n\n /**\n * Custom shared resource field identifiers from custom-shared-lib.\n */\n customShared_ResourceFieldIdentifier?: { [key: string]: string };\n\n /**\n * Custom shared resource relationships from custom-shared-lib.\n */\n customShared_ResourcesRelationships?: ResourceRelationship[];\n\n /**\n * Resource types to leave OUT of the registry, even though the core factory map declares them.\n *\n * `ResourcesRepositoryFrontendService.initializeResources` has always accepted this; the bootstrap\n * passed a hard-coded `undefined`, so the capability existed and no application-level caller could\n * reach it. That is fine for an application, which wants the whole core vocabulary — and wrong for\n * any OTHER kind of Wildo frontend.\n *\n * The application-creation workbench is the case that surfaced it: it observes an application's\n * structure and is not that application's admin console, so registering the engine's billing,\n * subscription, milestone, user and organization resources would surface a tenant vocabulary it has\n * no business showing. Its exclusion set is derived from `CoreResourceType` minus the types its own\n * relationships anchor on, so it needs no list here — only a way to pass one.\n */\n excludedResourceTypes?: ReadonlySet<string>;\n\n /**\n * Final frontend resource configuration preset.\n *\n * Controls how each resource and its operations appear in the frontend:\n * labels, sections, views, empty state, guidance (resource-level) and\n * addressability, sidebar placement, layout presets (operation-level).\n *\n * Apps must pass one already-composed object. In Wonder Todos, the engine\n * module owns the framework base preset and layers any app-shell\n * overrides before the final aggregated module registry reaches startup.\n *\n * The preset is the sole source of truth — only resources and operations\n * declared in the preset exist in the frontend registry.\n */\n resourceUIBehavior?: ResourceUIBehavior;\n\n /**\n * App-declared notification badge definitions (merged with the framework's\n * `coreNotificationBadgeDefinitions` in the frontend registry so\n * `NavigationItemBadge` can resolve an app badge). Mirror the backend\n * `ApplicationInitializationConfig.notificationBadgeDefinitions`.\n */\n notificationBadgeDefinitions?: NotificationBadgeDefinition[];\n\n /**\n * Base frontend configuration — provided by the app via the preset layer.\n * No implicit framework defaults: apps must explicitly provide this.\n */\n baseFrontendConfig: AppConfiguration_Frontend;\n\n /** Per-section frontend config overrides (factories or partial values) */\n frontendConfigOverrides?: FrontendConfigOverrides;\n\n /** Merged feature configuration used for frontend-only feature-ref validation. */\n featureConfiguration?: FeatureConfiguration;\n\n /** Component loader — registers component presets during initialization */\n componentLoader: () => Promise<void>;\n\n /**\n * The CODE channel for frontend providers (#332): the\n * `generatedFrontendProviderModules` export of this frontend service's own\n * `src/generated/frontend-providers.generated.ts`, written by\n * `wildo config sync`.\n *\n * The bootstrap payload says WHICH providers this service turned on; this says\n * what code the bundle actually contains for them. Both are needed, because a\n * JSON payload cannot carry an SDK loader and a bundle cannot know which\n * environment it is running in.\n *\n * Config sync writes a stable empty map when the application declares no\n * frontend providers. Pass that map from the generated startup module.\n */\n frontendProviderModules?: GeneratedAppProviderModules;\n}\n\nexport interface ApplicationServices {\n logger: LoggerFrontendService;\n httpClient: WildoBackendHttpClient;\n resourceRepository: ResourcesRepositoryFrontendService;\n resourcesRegistry: FrontendResourcesRegistry;\n appConfigFromBackend: AppConfiguration_Shared;\n frontendProviderRegistry: FrontendProviderRegistryFrontendService;\n /**\n * The vendor SDKs of every declared provider that carries one, already loaded\n * and started (#332).\n *\n * Present even when empty, so a consumer never has to distinguish \"no SDKs\"\n * from \"activation has not run\". `deactivateAll()` is the paired path a\n * consent withdrawal needs.\n */\n frontendProviderSdks: ActivatedFrontendProviderSdks;\n /**\n * Components contributed by the live providers, keyed by capability (#380).\n *\n * A sibling of `ComponentRegistryService`, not a part of it: that one indexes\n * the engine's CLOSED component-type enum with exactly one answer per key,\n * while this indexes the OPEN capability vocabulary where several providers\n * may answer and the surface presents the choice.\n *\n * Always present, even when empty, so a consumer never has to tell \"no\n * provider components\" from \"registration has not run\".\n */\n providerComponentRegistry: ProviderComponentRegistry;\n /** Resolved per-app frontend configuration (defaults + overrides). Always present. */\n frontendConfiguration: AppConfiguration_Frontend;\n}\n\nexport class StartApplicationFrontendService {\n private services: ApplicationServices | null = null;\n private isInitialized = false;\n private initializationPromise: Promise<ApplicationServices> | null = null;\n private logger: LoggerFrontendService | null = null;\n private logDebug: ((message: string, context?: Record<string, unknown>) => void) | null = null;\n\n\n\n async initializeApplication(options: StartApplicationOptions): Promise<ApplicationServices> {\n if (this.isInitialized && this.services)\n return this.services;\n\n if (this.initializationPromise)\n return this.initializationPromise;\n\n // Freeze options snapshot to ensure stable initialization across dev StrictMode double-invoke\n const snapshot: StartApplicationOptions = { ...options };\n this.initializationPromise = this.performInitialization(snapshot);\n\n try {\n this.services = await this.initializationPromise;\n this.isInitialized = true;\n\n try {\n options.onInitialized && options.onInitialized();\n } catch (error) {\n this.logger.error('Failed to fire onInitialized callback', { error: describeCaughtError(error) });\n }\n return this.services;\n\n } catch (error) {\n this.initializationPromise = null;\n throw error;\n }\n }\n\n private async performInitialization(options: StartApplicationOptions): Promise<ApplicationServices> {\n const {\n config,\n autoAuth = true,\n preloadResources = [],\n onError,\n customShared_ResourcesConfigurationsFactoryMap,\n customShared_ResourceFieldIdentifier,\n customShared_ResourcesRelationships,\n componentLoader,\n } = options;\n let currentPhase = 'startup preparation';\n let envConfig: ReturnType<typeof envLoader.loadEnvironmentConfig> | undefined;\n\n if (!this.logger) {\n this.logger = LoggerFrontendService.getLogger();\n this.logDebug = this.logger.debugByType('StartApplicationFrontendService');\n this.logger.setDebugTypeLogging('StartApplicationFrontendService', false);\n }\n\n this.logger.info('Starting application initialization...', {\n autoAuth,\n });\n\n this.logDebug!('Frontend initialization started with config', {\n apiBaseUrl: config.apiBaseUrl,\n autoAuth,\n });\n\n try {\n // Initialize HTTP client\n currentPhase = 'http client initialization';\n this.logDebug('Initializing HTTP client...');\n const httpClient = new WildoBackendHttpClient({ baseURL: config.apiBaseUrl });\n\n // Fetch application configuration from backend\n currentPhase = 'manual backend client setup';\n this.logDebug('Fetching application configuration from backend...');\n const manualCallsClient = new WildoBackendHttpClient_ManualCalls({ baseURL: config.apiBaseUrl });\n\n try {\n currentPhase = 'environment configuration loading';\n envConfig = envLoader.loadEnvironmentConfig();\n this.logDebug('Environment configuration loaded', {\n frontendServiceName: envConfig.frontendServiceName,\n apiBaseUrl: envConfig.apiBaseUrl,\n appName: envConfig.appName\n });\n } catch (error) {\n this.logger.error('Failed to load environment configuration', { error: error.message });\n throw new Error(`Environment configuration failed: ${error.message}`);\n }\n\n let appConfigFromBackend;\n let frontendProviderRegistry: FrontendProviderRegistryFrontendService | undefined;\n try {\n currentPhase = 'backend application configuration fetch';\n // Retry logic for config retrieval\n // Note: Keep this low to avoid long waits when backend is down\n // HTTP client also has its own retry logic (3 attempts by default)\n const CONFIG_RETRY_ATTEMPTS = 2; // Reduced from 10 to avoid long waits\n const CONFIG_BASE_DELAY_MS = 2000; // 2 seconds between retries\n const CONFIG_MAX_DELAY_MS = 5000;\n\n let lastError: Error | null = null;\n for (let attempt = 1; attempt <= CONFIG_RETRY_ATTEMPTS; attempt++) {\n try {\n const bootstrapPayload = AppConfiguration_FrontendBootstrapResponse_Schema.parse(\n await manualCallsClient.getApplicationConfig(envConfig.frontendServiceName),\n );\n frontendProviderRegistry = createFrontendProviderRegistryFrontendService({\n entries: bootstrapPayload.frontendProviders,\n modules: options.frontendProviderModules,\n // Hydration diagnostics are WARNINGS, never failures. Every one of\n // them names a provider that is declared but cannot fully run, and\n // an application must still start: the alternative is a blank page\n // because an analytics provider's config was renamed.\n onDiagnostic: (diagnostic) => {\n this.logger?.warn('Frontend provider hydration diagnostic', {\n kind: diagnostic.kind,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n },\n });\n appConfigFromBackend = AppConfiguration_Shared_Schema.parse(bootstrapPayload);\n break; // Success, exit retry loop\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n if (attempt < CONFIG_RETRY_ATTEMPTS) {\n const delay = Math.min(\n CONFIG_BASE_DELAY_MS * Math.pow(2, attempt - 1),\n CONFIG_MAX_DELAY_MS\n );\n this.logDebug(`Config fetch attempt ${attempt}/${CONFIG_RETRY_ATTEMPTS} failed, retrying after ${delay}ms`, {\n error: lastError.message,\n attempt,\n totalAttempts: CONFIG_RETRY_ATTEMPTS\n });\n await new Promise(resolve => setTimeout(resolve, delay));\n } else {\n this.logger.error(`All ${CONFIG_RETRY_ATTEMPTS} config fetch attempts failed`, {\n error: lastError.message,\n totalAttempts: CONFIG_RETRY_ATTEMPTS\n });\n throw lastError;\n }\n }\n }\n\n // Apply the application's client-install identification policy as soon as the config that\n // carries it is available (Fork D / SD9). Until this line runs, the store is fail-closed —\n // nothing is minted, stored, or sent — so bootstrap traffic before this point (including the\n // config fetch itself) never carries a client-install id. Applying `DISABLED` is NOT a no-op:\n // it purges any id a previously-enabled policy left on the device.\n configureClientInstanceIdPolicy(appConfigFromBackend.compliance.clientInstanceIdScope);\n\n this.logDebug('Application configuration fetched successfully', {\n hasAppIdentity: !!appConfigFromBackend.appIdentity,\n hasAppPreferences: !!appConfigFromBackend.appPreferences,\n hasRuntime: !!appConfigFromBackend.runtime,\n endpointsCount: Object.keys(appConfigFromBackend.runtime?.endPoints || {}).length\n });\n\n this.logDebug!('Application configuration loaded from backend', {\n appName: appConfigFromBackend.appIdentity?.appName,\n version: appConfigFromBackend.appIdentity?.version,\n hasAuth: !!appConfigFromBackend.auth,\n hasSocialOAuth2Providers:\n !!appConfigFromBackend.auth?.socialOAuth2Providers\n && Object.keys(appConfigFromBackend.auth.socialOAuth2Providers).length > 0,\n defaultLanguage: appConfigFromBackend.appPreferences?.languages?.defaultLanguage,\n enabledLanguages: appConfigFromBackend.appPreferences?.languages?.enabledLanguages,\n endpointsList: Object.keys(appConfigFromBackend.runtime?.endPoints || {}),\n frontendProvidersCount: frontendProviderRegistry?.listAll().length ?? 0,\n });\n\n\n } catch (error) {\n this.logger.error('Failed to fetch application configuration from backend', {\n error: error.message,\n frontendServiceName: envConfig?.frontendServiceName,\n apiBaseUrl: config.apiBaseUrl\n });\n throw new Error(`Application configuration fetch failed: ${error.message}`);\n }\n\n // Resolve frontend configuration from app-provided base + overrides\n // Frontend config is owned entirely by the frontend — not sent from backend\n currentPhase = 'frontend configuration validation';\n let resolvedFrontendConfig: AppConfiguration_Frontend = {\n ...options.baseFrontendConfig,\n };\n this.logDebug('Using app-provided base frontend configuration');\n\n if (options.frontendConfigOverrides) {\n resolvedFrontendConfig = applyFrontendConfigOverrides(\n resolvedFrontendConfig,\n options.frontendConfigOverrides,\n );\n this.logDebug('Applied frontend config overrides', { sections: Object.keys(options.frontendConfigOverrides) });\n }\n\n resolvedFrontendConfig = AppConfiguration_Frontend_Schema.parse(resolvedFrontendConfig);\n\n this.logDebug!('Frontend configuration resolved', {\n frontendServiceName: envConfig.frontendServiceName,\n finalConfig: {\n hasNavigationLayout: !!resolvedFrontendConfig.navigationLayout,\n hasAppComponentsConfiguration: !!resolvedFrontendConfig.appComponentsConfiguration,\n hasDesignSystem: !!resolvedFrontendConfig.designSystemConfiguration,\n hasTypography: !!resolvedFrontendConfig.designSystemConfiguration?.typography,\n }\n });\n\n // Initialize resources repository\n currentPhase = 'frontend resource registry initialization';\n this.logDebug('Initializing resources repository...');\n const resourceRepository = new ResourcesRepositoryFrontendService(httpClient);\n await resourceRepository.initializeResources(\n customShared_ResourcesConfigurationsFactoryMap,\n customShared_ResourceFieldIdentifier,\n customShared_ResourcesRelationships,\n options.excludedResourceTypes,\n options.resourceUIBehavior,\n options.notificationBadgeDefinitions,\n );\n const resourcesRegistry = resourceRepository.getResourcesRegistry();\n\n // Initialize frontend component presets (app-provided registration)\n currentPhase = 'component preset registration';\n await componentLoader();\n\n // DEV-mode: verify launcher/view declarations only after component\n // registration so custom component refs can be checked deterministically.\n if (envLoader.isDevelopment()) {\n currentPhase = 'development launcher verification';\n const verificationResult = verifyLauncherContent(\n resourcesRegistry,\n resolvedFrontendConfig,\n (componentRef: string) => ComponentRegistryService.hasComponentType(componentRef),\n );\n reportLauncherVerificationResults(verificationResult);\n\n // Settings Hub: catch duplicate section refs (and sibling structural\n // gaps) before they silently double-render the content panel. Verifies\n // the SAME resolved config the SettingsHub component renders.\n // Resolve the application's OWN authored rail — there is no framework\n // default to fall back to, so a missing `settingsHub` verifies as an\n // empty hub rather than as the engine's arrangement.\n reportSettingsHubVerificationResults(\n verifySettingsHubContent(\n resolveSettingsHubConfig(resolvedFrontendConfig?.settingsHub),\n findUnknownDestinationRefs(resolvedFrontendConfig?.settingsHub),\n resolveSettingsDestinationCatalog(resolvedFrontendConfig?.settingsHub),\n ),\n );\n\n if (options.featureConfiguration) {\n const featureReferenceVerification = verifyFrontendFeatureReferences({\n resourcesRegistry,\n appConfig: resolvedFrontendConfig,\n featureConfiguration: options.featureConfiguration,\n // Same predicate the launcher verification uses, and available here for the same\n // reason: this block runs AFTER `componentLoader()`, so a CUSTOM feature's\n // `customComponentRef` can be checked against real registrations.\n isComponentRegistered: (componentRef: string) => ComponentRegistryService.hasComponentType(componentRef),\n });\n\n if (!featureReferenceVerification.isValid) {\n this.logger.warn(\n `Invalid frontend feature references detected:\\n${featureReferenceVerification.warnings\n .map(warning => ` ⚠ ${warning}`)\n .join('\\n')}`,\n );\n }\n }\n }\n\n // Preload resources if specified\n if (preloadResources.length > 0) {\n currentPhase = 'resource preload';\n await this.preloadResources(preloadResources);\n }\n\n // Load and start every declared provider's SDK. AFTER the registry is\n // composed, because the registry is what decides which providers are live\n // for this service, and BEFORE the services object is handed out, so a\n // consumer never observes a half-activated surface. One provider's\n // failure never stops another's, and none of them can fail startup.\n currentPhase = 'frontend provider SDK activation';\n const resolvedProviderRegistry =\n frontendProviderRegistry ?? createFrontendProviderRegistryFrontendService();\n const frontendProviderSdks = await activateFrontendProviderSdks({\n surface: AppFrontendType.SAAS_APP,\n modules: resolvedProviderRegistry.listAll(),\n onDiagnostic: (diagnostic) => {\n this.logger?.warn('Frontend provider SDK activation diagnostic', {\n kind: diagnostic.kind,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n },\n });\n\n /*\n * Subscribe the live error-monitoring providers to the crash bus, IMMEDIATELY\n * after activation and from the same hydrated modules (#437).\n *\n * Here rather than in a React component because it must survive the one\n * situation a component cannot: a tree unmounting because it crashed. And after\n * activation rather than before, because a sink only exists once its SDK has\n * started — subscribing earlier would install a bridge with nothing behind it\n * and silently drop every crash in the window.\n *\n * Deliberately NOT retained for teardown: the bus, like the activated SDKs,\n * lives as long as the application does, and an unsubscribe reachable from\n * application code is a way for crash reporting to be switched off by accident.\n */\n currentPhase = 'frontend error-monitoring bridge';\n createFrontendErrorMonitoringBridge({\n modules: resolvedProviderRegistry.listAll(),\n activations: frontendProviderSdks.activations,\n onDiagnostic: (diagnostic) => {\n this.logger?.warn('Frontend error-monitoring bridge diagnostic', {\n kind: diagnostic.kind,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n },\n });\n\n // Registered from the SAME hydrated modules the SDKs activate from, so a\n // provider that is not live for this service contributes no component\n // either. Nothing is loaded here: a loader runs when a surface asks.\n const onProviderComponentDiagnostic = (diagnostic: ProviderComponentDiagnostic): void => {\n this.logger?.warn('Provider component diagnostic', {\n kind: diagnostic.kind,\n capability: diagnostic.capability,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n };\n // Each declaration is joined to its loader here: the module's own when it\n // carries one, else the one the facet library contributed at startup\n // (`registerDefaultPresets` → `registerProviderComponents`). A declaration\n // nothing can load is reported and left out, so the chooser offers only\n // what can render.\n const providerComponentRegistrations = collectProviderComponentRegistrations(resolvedProviderRegistry.listAll(), {\n onDiagnostic: onProviderComponentDiagnostic,\n });\n const providerComponentRegistry = createProviderComponentRegistry({\n registrations: providerComponentRegistrations,\n onDiagnostic: onProviderComponentDiagnostic,\n });\n\n /*\n * Load the declared `<script>` tags of every live provider that contributes\n * NO component — the same population rule as SDK activation above, which\n * runs for every live provider.\n *\n * A provider's scripts load when its code first runs on this surface: WITH\n * its component when it contributes one (the provider component registry\n * awaits them before handing the component back, so no page pays for a\n * picker's vendor loader nobody opened), and here, at startup, otherwise —\n * because nothing else will ever ask. Before this, the SaaS app injected no\n * provider script at all: only the website did, and a declared script was a\n * label.\n *\n * Deliberately NOT awaited. A vendor CDN that is slow or unreachable must\n * not hold the application's start hostage; a failure is a diagnostic about\n * one provider, not a startup error.\n */\n currentPhase = 'frontend provider script loading';\n const startupProviderScripts = collectProviderScriptsWithoutComponents(\n resolvedProviderRegistry.listAll(),\n providerComponentRegistrations,\n );\n if (startupProviderScripts.length > 0) {\n void loadProviderScripts(startupProviderScripts, document).then((outcome) => {\n for (const failure of outcome.failed) {\n this.logger?.warn('Frontend provider script diagnostic', {\n providerRef: failure.providerRef,\n src: failure.src,\n message: failure.message,\n });\n }\n });\n }\n\n const services: ApplicationServices = {\n logger: this.logger,\n httpClient,\n resourceRepository,\n resourcesRegistry,\n appConfigFromBackend,\n frontendProviderRegistry: resolvedProviderRegistry,\n frontendProviderSdks,\n providerComponentRegistry,\n frontendConfiguration: resolvedFrontendConfig,\n };\n\n this.logger.info('Application initialization completed successfully');\n\n return services;\n\n } catch (error) {\n const initializationFailure = normalizeInitializationFailure(error, {\n phase: currentPhase,\n apiBaseUrl: config.apiBaseUrl,\n frontendServiceName: envConfig?.frontendServiceName,\n });\n\n if (this.logger) {\n this.logger.error('Application initialization failed', {\n error: initializationFailure.message,\n stack: initializationFailure.stack,\n phase: currentPhase,\n apiBaseUrl: config.apiBaseUrl,\n frontendServiceName: envConfig?.frontendServiceName,\n initializationDiagnostics: initializationFailure.initializationDiagnostics,\n });\n } else {\n console.error('Application initialization failed:', initializationFailure);\n }\n\n if (onError) {\n onError(initializationFailure);\n }\n\n throw initializationFailure;\n }\n }\n\n /**\n * Get the initialized services\n */\n getServices(): ApplicationServices | null {\n return this.services;\n }\n\n /**\n * Check if the application is initialized\n */\n isApplicationInitialized(): boolean {\n return this.isInitialized;\n }\n\n /**\n * Reset the initialization state (useful for testing)\n */\n reset(): void {\n this.services = null;\n this.isInitialized = false;\n this.initializationPromise = null;\n // Don't reset logger - keep singleton principle\n }\n\n\n\n /**\n * Preload specified resources\n */\n private async preloadResources(resources: string[]): Promise<void> {\n if (!this.logger) return;\n\n this.logger.info('Preloading resources...', { resourceCount: resources.length });\n\n try {\n // TODO: Implement resource preloading logic\n // This could involve fetching commonly used data, warming caches, etc.\n\n await Promise.all(resources.map(async (resource) => {\n this.logger!.debug(`Preloading resource: ${resource}`);\n // Implement specific preloading logic per resource type\n }));\n\n this.logger.info('Resource preloading completed successfully');\n } catch (error) {\n this.logger.warn('Resource preloading failed', { error: error.message });\n // Don't throw here - preloading failure shouldn't prevent app startup\n }\n }\n}\n\n/**\n * Global instance of the start application service\n */\n// Persist singleton across HMR/dev to avoid double initialization\nconst __globalAny: any = (typeof globalThis !== 'undefined' ? (globalThis as any) : (window as any));\nif (!__globalAny.__START_APPLICATION_FRONTEND_SERVICE__) {\n __globalAny.__START_APPLICATION_FRONTEND_SERVICE__ = new StartApplicationFrontendService();\n}\nexport const startApplicationService = __globalAny.__START_APPLICATION_FRONTEND_SERVICE__ as StartApplicationFrontendService;\n"]}
1
+ {"version":3,"file":"start-application.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/runtime/start-application.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Start Application Frontend Service\n * Handles application initialization and startup logic\n */\n\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport { WildoBackendHttpClient_ManualCalls } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { WildoBackendHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client.frontend.service';\nimport { configureClientInstanceIdPolicy } from '~wildo-frontend-lib/core/requests/client-instance-id.frontend.service';\nimport { ResourcesRepositoryFrontendService } from '~wildo-frontend-lib/core/resources/resources-repository.frontend.service';\nimport { InitializationApplicationConfig } from './ApplicationMainContext';\n\nimport {\n AppConfiguration_FrontendBootstrapResponse_Schema,\n AppConfiguration_Shared_Schema,\n AppConfiguration_Shared,\n type FeatureConfiguration,\n ResourceConfiguration_InitializationFactory,\n ResourceRelationship,\n collectNavigationLayoutDiagnostics,\n NavigationLayoutDiagnosticSeverity,\n type NotificationBadgeDefinition, describeCaughtError } from '@wildo-ai/saas-models';\nimport {\n AppConfiguration_Frontend_Schema,\n type AppConfiguration_Frontend,\n} from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport type { ResourceUIBehavior, FrontendResourcesRegistry } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { envLoader } from '~wildo-frontend-lib/core/runtime/env-variable-loader.frontend.service';\nimport { type FrontendConfigOverrides, applyFrontendConfigOverrides } from './app-config-overrides.frontend.definitions';\nimport { verifyLauncherContent, reportLauncherVerificationResults } from '~wildo-frontend-lib/core/config/verify-launcher-content';\nimport { verifySettingsHubContent, reportSettingsHubVerificationResults } from '~wildo-frontend-lib/core/config/verify-settings-hub-content';\nimport {\n resolveSettingsHubConfig,\n findUnknownDestinationRefs,\n resolveSettingsDestinationCatalog,\n} from '~wildo-frontend-lib/core/config/useSettingsHubConfig';\nimport { verifyFrontendFeatureReferences } from '~wildo-frontend-lib/core/config/verify-feature-references.frontend';\nimport { ComponentRegistryService } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.service';\nimport {\n listContributedProviderComponentLoaders,\n type AppProviderComponentRegistry,\n type ProviderComponent,\n} from '~wildo-frontend-lib/core/components-registry/provider-component-registry.frontend.service';\nimport {\n createFrontendProviderRegistryFrontendService,\n type FrontendProviderRegistryFrontendService,\n} from '~wildo-frontend-lib/core/external-providers/frontend-provider-registry.frontend.service';\nimport { createFrontendErrorMonitoringBridge } from '~wildo-frontend-lib/core/monitoring/error-monitoring-bridge.frontend.service';\nimport {\n activateFrontendProviderSdks,\n collectProviderComponentRegistrations,\n collectProviderScriptsWithoutComponents,\n consentPurposesRequiredByProvider,\n createProviderComponentRegistry,\n loadProviderScripts,\n type ActivatedFrontendProviderSdks,\n type GeneratedAppProviderModules,\n type ProviderComponentDiagnostic,\n} from '@wildo-ai/external-connectors-public/app';\nimport { AppFrontendType } from '@wildo-ai/saas-models/public-runtime';\n\ninterface InitializationFailureDiagnostics {\n phase: string;\n apiBaseUrl: string;\n frontendServiceName?: string;\n errorName?: string;\n errorMessage: string;\n stack?: string;\n causeMessage?: string;\n wildoError?: {\n type?: unknown;\n customMessageReference?: unknown;\n context?: Record<string, unknown>;\n };\n}\n\ntype InitializationFailureError = Error & {\n initializationDiagnostics?: InitializationFailureDiagnostics;\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction extractCauseMessage(error: unknown): string | undefined {\n if (!isRecord(error) || !('cause' in error)) {\n return undefined;\n }\n\n const cause = error.cause;\n if (cause instanceof Error) {\n return cause.message;\n }\n\n if (typeof cause === 'string') {\n return cause;\n }\n\n return undefined;\n}\n\nfunction normalizeInitializationFailure(\n error: unknown,\n baseDiagnostics: {\n phase: string;\n apiBaseUrl: string;\n frontendServiceName?: string;\n },\n): InitializationFailureError {\n const normalizedError = error instanceof Error ? error : new Error(String(error));\n const wildoError = isRecord(normalizedError) && isRecord(normalizedError.wildoError)\n ? normalizedError.wildoError\n : undefined;\n\n (normalizedError as InitializationFailureError).initializationDiagnostics = {\n ...baseDiagnostics,\n errorName: normalizedError.name,\n errorMessage: normalizedError.message,\n stack: normalizedError.stack,\n causeMessage: extractCauseMessage(normalizedError),\n wildoError: wildoError ? {\n type: wildoError.type,\n customMessageReference: wildoError.customMessageReference,\n context: isRecord(wildoError.context) ? wildoError.context : undefined,\n } : undefined,\n };\n\n return normalizedError as InitializationFailureError;\n}\n\nexport interface StartApplicationOptions {\n config: InitializationApplicationConfig;\n autoAuth?: boolean;\n preloadResources?: string[];\n onInitialized?: () => void;\n onError?: (error: Error) => void;\n\n /**\n * Custom shared resources configuration factory map from custom-shared-lib.\n * Required for custom resources to be registered in the frontend ResourceRegistryContext.\n */\n customShared_ResourcesConfigurationsFactoryMap?: { [key: string]: ResourceConfiguration_InitializationFactory<any, any, any> };\n\n /**\n * Custom shared resource field identifiers from custom-shared-lib.\n */\n customShared_ResourceFieldIdentifier?: { [key: string]: string };\n\n /**\n * Custom shared resource relationships from custom-shared-lib.\n */\n customShared_ResourcesRelationships?: ResourceRelationship[];\n\n /**\n * Resource types to leave OUT of the registry, even though the core factory map declares them.\n *\n * `ResourcesRepositoryFrontendService.initializeResources` has always accepted this; the bootstrap\n * passed a hard-coded `undefined`, so the capability existed and no application-level caller could\n * reach it. That is fine for an application, which wants the whole core vocabulary — and wrong for\n * any OTHER kind of Wildo frontend.\n *\n * The application-creation workbench is the case that surfaced it: it observes an application's\n * structure and is not that application's admin console, so registering the engine's billing,\n * subscription, milestone, user and organization resources would surface a tenant vocabulary it has\n * no business showing. Its exclusion set is derived from `CoreResourceType` minus the types its own\n * relationships anchor on, so it needs no list here — only a way to pass one.\n */\n excludedResourceTypes?: ReadonlySet<string>;\n\n /**\n * Final frontend resource configuration preset.\n *\n * Controls how each resource and its operations appear in the frontend:\n * labels, sections, views, empty state, guidance (resource-level) and\n * addressability, sidebar placement, layout presets (operation-level).\n *\n * Apps must pass one already-composed object. In Wonder Todos, the engine\n * module owns the framework base preset and layers any app-shell\n * overrides before the final aggregated module registry reaches startup.\n *\n * The preset is the sole source of truth — only resources and operations\n * declared in the preset exist in the frontend registry.\n */\n resourceUIBehavior?: ResourceUIBehavior;\n\n /**\n * App-declared notification badge definitions (merged with the framework's\n * `coreNotificationBadgeDefinitions` in the frontend registry so\n * `NavigationItemBadge` can resolve an app badge). Mirror the backend\n * `ApplicationInitializationConfig.notificationBadgeDefinitions`.\n */\n notificationBadgeDefinitions?: NotificationBadgeDefinition[];\n\n /**\n * Base frontend configuration — provided by the app via the preset layer.\n * No implicit framework defaults: apps must explicitly provide this.\n */\n baseFrontendConfig: AppConfiguration_Frontend;\n\n /** Per-section frontend config overrides (factories or partial values) */\n frontendConfigOverrides?: FrontendConfigOverrides;\n\n /** Merged feature configuration used for frontend-only feature-ref validation. */\n featureConfiguration?: FeatureConfiguration;\n\n /** Component loader — registers component presets during initialization */\n componentLoader: () => Promise<void>;\n\n /**\n * The CODE channel for frontend providers (#332): the\n * `generatedFrontendProviderModules` export of this frontend service's own\n * `src/generated/frontend-providers.generated.ts`, written by\n * `wildo config sync`.\n *\n * The bootstrap payload says WHICH providers this service turned on; this says\n * what code the bundle actually contains for them. Both are needed, because a\n * JSON payload cannot carry an SDK loader and a bundle cannot know which\n * environment it is running in.\n *\n * Config sync writes a stable empty map when the application declares no\n * frontend providers. Pass that map from the generated startup module.\n */\n frontendProviderModules?: GeneratedAppProviderModules;\n}\n\nexport interface ApplicationServices {\n logger: LoggerFrontendService;\n httpClient: WildoBackendHttpClient;\n resourceRepository: ResourcesRepositoryFrontendService;\n resourcesRegistry: FrontendResourcesRegistry;\n appConfigFromBackend: AppConfiguration_Shared;\n frontendProviderRegistry: FrontendProviderRegistryFrontendService;\n /**\n * The vendor SDKs of every declared provider that carries one, already loaded\n * and started (#332).\n *\n * Present even when empty, so a consumer never has to distinguish \"no SDKs\"\n * from \"activation has not run\". `deactivateAll()` is the paired path a\n * consent withdrawal needs.\n */\n frontendProviderSdks: ActivatedFrontendProviderSdks;\n /**\n * Components contributed by the live providers, keyed by capability (#380).\n *\n * A sibling of `ComponentRegistryService`, not a part of it: that one indexes\n * the engine's CLOSED component-type enum with exactly one answer per key,\n * while this indexes the OPEN capability vocabulary where several providers\n * may answer and the surface presents the choice.\n *\n * Always present, even when empty, so a consumer never has to tell \"no\n * provider components\" from \"registration has not run\".\n */\n providerComponentRegistry: AppProviderComponentRegistry;\n /** Resolved per-app frontend configuration (defaults + overrides). Always present. */\n frontendConfiguration: AppConfiguration_Frontend;\n}\n\nexport class StartApplicationFrontendService {\n private services: ApplicationServices | null = null;\n private isInitialized = false;\n private initializationPromise: Promise<ApplicationServices> | null = null;\n private logger: LoggerFrontendService | null = null;\n private logDebug: ((message: string, context?: Record<string, unknown>) => void) | null = null;\n\n /**\n * Report what the authored navigation layout declares that the runtime will silently do\n * differently — a SPLIT with no pane to open, a `persistent` split with no companion, a zone field\n * that is inert on primary, inverted width bounds.\n *\n * ## Non-fatal, and the alternative was considered\n *\n * `collectNavigationLayoutDiagnostics` could have been a `superRefine` on `NavigationLayoutSchema`,\n * which is parsed one line above inside `AppConfiguration_Frontend_Schema`. That would have made a\n * declared split that renders as a dialog stop the application from booting — disproportionate to\n * the defect, and the shape `.claude/rules/application-creation-directive.md` forbids: the\n * mechanism MARKS what is not right and keeps going. The precedent is the administrative-continuity\n * boot report, non-fatal for the same reason.\n *\n * Logged at `error`/`warn` rather than `debug` on purpose: a diagnostic behind a debug flag is one\n * nobody has ever read. Each carries its own remedy, because a report with no remedy is a\n * complaint.\n */\n private reportNavigationLayoutDiagnostics(navigationLayout: unknown): void {\n if (!navigationLayout) return;\n let diagnostics;\n try {\n diagnostics = collectNavigationLayoutDiagnostics(navigationLayout as never);\n } catch (error) {\n // A diagnostic pass must never be why an application fails to start.\n this.logger.warn('Navigation layout diagnostics could not run', { error: describeCaughtError(error) });\n return;\n }\n if (diagnostics.length === 0) return;\n\n for (const diagnostic of diagnostics) {\n const payload = { path: diagnostic.path, code: diagnostic.code, remedy: diagnostic.remedy };\n if (diagnostic.severity === NavigationLayoutDiagnosticSeverity.ERROR) {\n this.logger.error(`Navigation layout: ${diagnostic.message}`, payload);\n } else {\n this.logger.warn(`Navigation layout: ${diagnostic.message}`, payload);\n }\n }\n }\n\n\n\n async initializeApplication(options: StartApplicationOptions): Promise<ApplicationServices> {\n if (this.isInitialized && this.services)\n return this.services;\n\n if (this.initializationPromise)\n return this.initializationPromise;\n\n // Freeze options snapshot to ensure stable initialization across dev StrictMode double-invoke\n const snapshot: StartApplicationOptions = { ...options };\n this.initializationPromise = this.performInitialization(snapshot);\n\n try {\n this.services = await this.initializationPromise;\n this.isInitialized = true;\n\n try {\n options.onInitialized && options.onInitialized();\n } catch (error) {\n this.logger.error('Failed to fire onInitialized callback', { error: describeCaughtError(error) });\n }\n return this.services;\n\n } catch (error) {\n this.initializationPromise = null;\n throw error;\n }\n }\n\n private async performInitialization(options: StartApplicationOptions): Promise<ApplicationServices> {\n const {\n config,\n autoAuth = true,\n preloadResources = [],\n onError,\n customShared_ResourcesConfigurationsFactoryMap,\n customShared_ResourceFieldIdentifier,\n customShared_ResourcesRelationships,\n componentLoader,\n } = options;\n let currentPhase = 'startup preparation';\n let envConfig: ReturnType<typeof envLoader.loadEnvironmentConfig> | undefined;\n\n if (!this.logger) {\n this.logger = LoggerFrontendService.getLogger();\n this.logDebug = this.logger.debugByType('StartApplicationFrontendService');\n this.logger.setDebugTypeLogging('StartApplicationFrontendService', false);\n }\n\n this.logger.info('Starting application initialization...', {\n autoAuth,\n });\n\n this.logDebug!('Frontend initialization started with config', {\n apiBaseUrl: config.apiBaseUrl,\n autoAuth,\n });\n\n try {\n // Initialize HTTP client\n currentPhase = 'http client initialization';\n this.logDebug('Initializing HTTP client...');\n const httpClient = new WildoBackendHttpClient({ baseURL: config.apiBaseUrl });\n\n // Fetch application configuration from backend\n currentPhase = 'manual backend client setup';\n this.logDebug('Fetching application configuration from backend...');\n const manualCallsClient = new WildoBackendHttpClient_ManualCalls({ baseURL: config.apiBaseUrl });\n\n try {\n currentPhase = 'environment configuration loading';\n envConfig = envLoader.loadEnvironmentConfig();\n this.logDebug('Environment configuration loaded', {\n frontendServiceName: envConfig.frontendServiceName,\n apiBaseUrl: envConfig.apiBaseUrl,\n appName: envConfig.appName\n });\n } catch (error) {\n this.logger.error('Failed to load environment configuration', { error: error.message });\n throw new Error(`Environment configuration failed: ${error.message}`);\n }\n\n let appConfigFromBackend;\n let frontendProviderRegistry: FrontendProviderRegistryFrontendService | undefined;\n try {\n currentPhase = 'backend application configuration fetch';\n // Retry logic for config retrieval\n // Note: Keep this low to avoid long waits when backend is down\n // HTTP client also has its own retry logic (3 attempts by default)\n const CONFIG_RETRY_ATTEMPTS = 2; // Reduced from 10 to avoid long waits\n const CONFIG_BASE_DELAY_MS = 2000; // 2 seconds between retries\n const CONFIG_MAX_DELAY_MS = 5000;\n\n let lastError: Error | null = null;\n for (let attempt = 1; attempt <= CONFIG_RETRY_ATTEMPTS; attempt++) {\n try {\n const bootstrapPayload = AppConfiguration_FrontendBootstrapResponse_Schema.parse(\n await manualCallsClient.getApplicationConfig(envConfig.frontendServiceName),\n );\n frontendProviderRegistry = createFrontendProviderRegistryFrontendService({\n entries: bootstrapPayload.frontendProviders,\n modules: options.frontendProviderModules,\n // Hydration diagnostics are WARNINGS, never failures. Every one of\n // them names a provider that is declared but cannot fully run, and\n // an application must still start: the alternative is a blank page\n // because an analytics provider's config was renamed.\n onDiagnostic: (diagnostic) => {\n this.logger?.warn('Frontend provider hydration diagnostic', {\n kind: diagnostic.kind,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n },\n });\n appConfigFromBackend = AppConfiguration_Shared_Schema.parse(bootstrapPayload);\n break; // Success, exit retry loop\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n if (attempt < CONFIG_RETRY_ATTEMPTS) {\n const delay = Math.min(\n CONFIG_BASE_DELAY_MS * Math.pow(2, attempt - 1),\n CONFIG_MAX_DELAY_MS\n );\n this.logDebug(`Config fetch attempt ${attempt}/${CONFIG_RETRY_ATTEMPTS} failed, retrying after ${delay}ms`, {\n error: lastError.message,\n attempt,\n totalAttempts: CONFIG_RETRY_ATTEMPTS\n });\n await new Promise(resolve => setTimeout(resolve, delay));\n } else {\n this.logger.error(`All ${CONFIG_RETRY_ATTEMPTS} config fetch attempts failed`, {\n error: lastError.message,\n totalAttempts: CONFIG_RETRY_ATTEMPTS\n });\n throw lastError;\n }\n }\n }\n\n // Apply the application's client-install identification policy as soon as the config that\n // carries it is available (Fork D / SD9). Until this line runs, the store is fail-closed —\n // nothing is minted, stored, or sent — so bootstrap traffic before this point (including the\n // config fetch itself) never carries a client-install id. Applying `DISABLED` is NOT a no-op:\n // it purges any id a previously-enabled policy left on the device.\n configureClientInstanceIdPolicy(appConfigFromBackend.compliance.clientInstanceIdScope);\n\n this.logDebug('Application configuration fetched successfully', {\n hasAppIdentity: !!appConfigFromBackend.appIdentity,\n hasAppPreferences: !!appConfigFromBackend.appPreferences,\n hasRuntime: !!appConfigFromBackend.runtime,\n endpointsCount: Object.keys(appConfigFromBackend.runtime?.endPoints || {}).length\n });\n\n this.logDebug!('Application configuration loaded from backend', {\n appName: appConfigFromBackend.appIdentity?.appName,\n version: appConfigFromBackend.appIdentity?.version,\n hasAuth: !!appConfigFromBackend.auth,\n hasSocialOAuth2Providers:\n !!appConfigFromBackend.auth?.socialOAuth2Providers\n && Object.keys(appConfigFromBackend.auth.socialOAuth2Providers).length > 0,\n defaultLanguage: appConfigFromBackend.appPreferences?.languages?.defaultLanguage,\n enabledLanguages: appConfigFromBackend.appPreferences?.languages?.enabledLanguages,\n endpointsList: Object.keys(appConfigFromBackend.runtime?.endPoints || {}),\n frontendProvidersCount: frontendProviderRegistry?.listAll().length ?? 0,\n });\n\n\n } catch (error) {\n this.logger.error('Failed to fetch application configuration from backend', {\n error: error.message,\n frontendServiceName: envConfig?.frontendServiceName,\n apiBaseUrl: config.apiBaseUrl\n });\n throw new Error(`Application configuration fetch failed: ${error.message}`);\n }\n\n // Resolve frontend configuration from app-provided base + overrides\n // Frontend config is owned entirely by the frontend — not sent from backend\n currentPhase = 'frontend configuration validation';\n let resolvedFrontendConfig: AppConfiguration_Frontend = {\n ...options.baseFrontendConfig,\n };\n this.logDebug('Using app-provided base frontend configuration');\n\n if (options.frontendConfigOverrides) {\n resolvedFrontendConfig = applyFrontendConfigOverrides(\n resolvedFrontendConfig,\n options.frontendConfigOverrides,\n );\n this.logDebug('Applied frontend config overrides', { sections: Object.keys(options.frontendConfigOverrides) });\n }\n\n resolvedFrontendConfig = AppConfiguration_Frontend_Schema.parse(resolvedFrontendConfig);\n\n this.reportNavigationLayoutDiagnostics(resolvedFrontendConfig.navigationLayout);\n\n this.logDebug!('Frontend configuration resolved', {\n frontendServiceName: envConfig.frontendServiceName,\n finalConfig: {\n hasNavigationLayout: !!resolvedFrontendConfig.navigationLayout,\n hasAppComponentsConfiguration: !!resolvedFrontendConfig.appComponentsConfiguration,\n hasDesignSystem: !!resolvedFrontendConfig.designSystemConfiguration,\n hasTypography: !!resolvedFrontendConfig.designSystemConfiguration?.typography,\n }\n });\n\n // Initialize resources repository\n currentPhase = 'frontend resource registry initialization';\n this.logDebug('Initializing resources repository...');\n const resourceRepository = new ResourcesRepositoryFrontendService(httpClient);\n await resourceRepository.initializeResources(\n customShared_ResourcesConfigurationsFactoryMap,\n customShared_ResourceFieldIdentifier,\n customShared_ResourcesRelationships,\n options.excludedResourceTypes,\n options.resourceUIBehavior,\n options.notificationBadgeDefinitions,\n );\n const resourcesRegistry = resourceRepository.getResourcesRegistry();\n\n // Initialize frontend component presets (app-provided registration)\n currentPhase = 'component preset registration';\n await componentLoader();\n\n // DEV-mode: verify launcher/view declarations only after component\n // registration so custom component refs can be checked deterministically.\n if (envLoader.isDevelopment()) {\n currentPhase = 'development launcher verification';\n const verificationResult = verifyLauncherContent(\n resourcesRegistry,\n resolvedFrontendConfig,\n (componentRef: string) => ComponentRegistryService.hasComponentType(componentRef),\n );\n reportLauncherVerificationResults(verificationResult);\n\n // Settings Hub: catch duplicate section refs (and sibling structural\n // gaps) before they silently double-render the content panel. Verifies\n // the SAME resolved config the SettingsHub component renders.\n // Resolve the application's OWN authored rail — there is no framework\n // default to fall back to, so a missing `settingsHub` verifies as an\n // empty hub rather than as the engine's arrangement.\n reportSettingsHubVerificationResults(\n verifySettingsHubContent(\n resolveSettingsHubConfig(resolvedFrontendConfig?.settingsHub),\n findUnknownDestinationRefs(resolvedFrontendConfig?.settingsHub),\n resolveSettingsDestinationCatalog(resolvedFrontendConfig?.settingsHub),\n ),\n );\n\n if (options.featureConfiguration) {\n const featureReferenceVerification = verifyFrontendFeatureReferences({\n resourcesRegistry,\n appConfig: resolvedFrontendConfig,\n featureConfiguration: options.featureConfiguration,\n // Same predicate the launcher verification uses, and available here for the same\n // reason: this block runs AFTER `componentLoader()`, so a CUSTOM feature's\n // `customComponentRef` can be checked against real registrations.\n isComponentRegistered: (componentRef: string) => ComponentRegistryService.hasComponentType(componentRef),\n });\n\n if (!featureReferenceVerification.isValid) {\n this.logger.warn(\n `Invalid frontend feature references detected:\\n${featureReferenceVerification.warnings\n .map(warning => ` ⚠ ${warning}`)\n .join('\\n')}`,\n );\n }\n }\n }\n\n // Preload resources if specified\n if (preloadResources.length > 0) {\n currentPhase = 'resource preload';\n await this.preloadResources(preloadResources);\n }\n\n // Load and start every declared provider's SDK. AFTER the registry is\n // composed, because the registry is what decides which providers are live\n // for this service, and BEFORE the services object is handed out, so a\n // consumer never observes a half-activated surface. One provider's\n // failure never stops another's, and none of them can fail startup.\n currentPhase = 'frontend provider SDK activation';\n const resolvedProviderRegistry =\n frontendProviderRegistry ?? createFrontendProviderRegistryFrontendService();\n const frontendProviderSdks = await activateFrontendProviderSdks({\n surface: AppFrontendType.SAAS_APP,\n // The FIRST phase: providers that rest on no consent purpose. A consent-based one is started by\n // `ConsentBasedProviderSdksProvider` once the signed-in person grants it (#1704); handing it to this\n // runner, which holds no grant, would only log a withheld diagnostic on every start.\n modules: resolvedProviderRegistry.listAll().filter((module) => consentPurposesRequiredByProvider(module).length === 0),\n onDiagnostic: (diagnostic) => {\n this.logger?.warn('Frontend provider SDK activation diagnostic', {\n kind: diagnostic.kind,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n },\n });\n\n /*\n * Subscribe the live error-monitoring providers to the crash bus, IMMEDIATELY\n * after activation and from the same hydrated modules (#437).\n *\n * Here rather than in a React component because it must survive the one\n * situation a component cannot: a tree unmounting because it crashed. And after\n * activation rather than before, because a sink only exists once its SDK has\n * started — subscribing earlier would install a bridge with nothing behind it\n * and silently drop every crash in the window.\n *\n * Deliberately NOT retained for teardown: the bus, like the activated SDKs,\n * lives as long as the application does, and an unsubscribe reachable from\n * application code is a way for crash reporting to be switched off by accident.\n */\n currentPhase = 'frontend error-monitoring bridge';\n createFrontendErrorMonitoringBridge({\n modules: resolvedProviderRegistry.listAll(),\n activations: frontendProviderSdks.activations,\n onDiagnostic: (diagnostic) => {\n this.logger?.warn('Frontend error-monitoring bridge diagnostic', {\n kind: diagnostic.kind,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n },\n });\n\n // Registered from the SAME hydrated modules the SDKs activate from, so a\n // provider that is not live for this service contributes no component\n // either. Nothing is loaded here: a loader runs when a surface asks.\n const onProviderComponentDiagnostic = (diagnostic: ProviderComponentDiagnostic): void => {\n this.logger?.warn('Provider component diagnostic', {\n kind: diagnostic.kind,\n capability: diagnostic.capability,\n providerRef: diagnostic.providerRef,\n message: diagnostic.message,\n });\n };\n // Each declaration is joined to its loader here: the module's own when it\n // carries one, else the one the facet library contributed at startup\n // (`registerDefaultPresets` → `registerProviderComponents`). A declaration\n // nothing can load is reported and left out, so the chooser offers only\n // what can render.\n const providerComponentRegistrations = collectProviderComponentRegistrations(resolvedProviderRegistry.listAll(), {\n contributedLoaders: listContributedProviderComponentLoaders(),\n onDiagnostic: onProviderComponentDiagnostic,\n });\n const providerComponentRegistry = createProviderComponentRegistry<ProviderComponent>({\n registrations: providerComponentRegistrations,\n onDiagnostic: onProviderComponentDiagnostic,\n });\n\n /*\n * Load the declared `<script>` tags of every live provider that contributes\n * NO component — the same population rule as SDK activation above, which\n * runs for every live provider.\n *\n * A provider's scripts load when its code first runs on this surface: WITH\n * its component when it contributes one (the provider component registry\n * awaits them before handing the component back, so no page pays for a\n * picker's vendor loader nobody opened), and here, at startup, otherwise —\n * because nothing else will ever ask. Before this, the SaaS app injected no\n * provider script at all: only the website did, and a declared script was a\n * label.\n *\n * Deliberately NOT awaited. A vendor CDN that is slow or unreachable must\n * not hold the application's start hostage; a failure is a diagnostic about\n * one provider, not a startup error.\n */\n currentPhase = 'frontend provider script loading';\n const startupProviderScripts = collectProviderScriptsWithoutComponents(\n resolvedProviderRegistry.listAll(),\n providerComponentRegistrations,\n );\n if (startupProviderScripts.length > 0) {\n void loadProviderScripts(startupProviderScripts, document).then((outcome) => {\n for (const failure of outcome.failed) {\n this.logger?.warn('Frontend provider script diagnostic', {\n providerRef: failure.providerRef,\n src: failure.src,\n message: failure.message,\n });\n }\n });\n }\n\n const services: ApplicationServices = {\n logger: this.logger,\n httpClient,\n resourceRepository,\n resourcesRegistry,\n appConfigFromBackend,\n frontendProviderRegistry: resolvedProviderRegistry,\n frontendProviderSdks,\n providerComponentRegistry,\n frontendConfiguration: resolvedFrontendConfig,\n };\n\n this.logger.info('Application initialization completed successfully');\n\n return services;\n\n } catch (error) {\n const initializationFailure = normalizeInitializationFailure(error, {\n phase: currentPhase,\n apiBaseUrl: config.apiBaseUrl,\n frontendServiceName: envConfig?.frontendServiceName,\n });\n\n if (this.logger) {\n this.logger.error('Application initialization failed', {\n error: initializationFailure.message,\n stack: initializationFailure.stack,\n phase: currentPhase,\n apiBaseUrl: config.apiBaseUrl,\n frontendServiceName: envConfig?.frontendServiceName,\n initializationDiagnostics: initializationFailure.initializationDiagnostics,\n });\n } else {\n console.error('Application initialization failed:', initializationFailure);\n }\n\n if (onError) {\n onError(initializationFailure);\n }\n\n throw initializationFailure;\n }\n }\n\n /**\n * Get the initialized services\n */\n getServices(): ApplicationServices | null {\n return this.services;\n }\n\n /**\n * Check if the application is initialized\n */\n isApplicationInitialized(): boolean {\n return this.isInitialized;\n }\n\n /**\n * Reset the initialization state (useful for testing)\n */\n reset(): void {\n this.services = null;\n this.isInitialized = false;\n this.initializationPromise = null;\n // Don't reset logger - keep singleton principle\n }\n\n\n\n /**\n * Preload specified resources\n */\n private async preloadResources(resources: string[]): Promise<void> {\n if (!this.logger) return;\n\n this.logger.info('Preloading resources...', { resourceCount: resources.length });\n\n try {\n // TODO: Implement resource preloading logic\n // This could involve fetching commonly used data, warming caches, etc.\n\n await Promise.all(resources.map(async (resource) => {\n this.logger!.debug(`Preloading resource: ${resource}`);\n // Implement specific preloading logic per resource type\n }));\n\n this.logger.info('Resource preloading completed successfully');\n } catch (error) {\n this.logger.warn('Resource preloading failed', { error: error.message });\n // Don't throw here - preloading failure shouldn't prevent app startup\n }\n }\n}\n\n/**\n * Global instance of the start application service\n */\n// Persist singleton across HMR/dev to avoid double initialization\nconst __globalAny: any = (typeof globalThis !== 'undefined' ? (globalThis as any) : (window as any));\nif (!__globalAny.__START_APPLICATION_FRONTEND_SERVICE__) {\n __globalAny.__START_APPLICATION_FRONTEND_SERVICE__ = new StartApplicationFrontendService();\n}\nexport const startApplicationService = __globalAny.__START_APPLICATION_FRONTEND_SERVICE__ as StartApplicationFrontendService;\n"]}
@@ -12,6 +12,7 @@ import { type EnrollmentSessionSettlementResponse, type RegisterAccountRequest }
12
12
  import { RegistrationOutcome } from '../../core/security/registration-outcome.frontend.utils';
13
13
  import { AuthState, type UIFactorLevel, PasskeySignInMediation } from './security.frontend.schemas';
14
14
  import { type SessionTokenStorage } from './session-token-storage.frontend.service';
15
+ import { SessionEndReason, SessionEstablishment } from '../../core/events/events.frontend.schemas';
15
16
  /**
16
17
  * The fields of `GET /auth/session/:sessionId` that describe a session still owing a second factor: its
17
18
  * state, which decides adoption, and the four method lists an MFA-required authentication RESPONSE
@@ -36,7 +37,17 @@ export interface AuthSessionContextType {
36
37
  authenticate: (request: AuthenticationRequest) => Promise<AuthenticationResponse>;
37
38
  getSessionState: (sessionId: string) => Promise<any>;
38
39
  isAuthenticated: () => boolean;
40
+ /** The person signs out of this tab — {@link SessionEndReason.SIGNED_OUT}. */
39
41
  logout: () => void;
42
+ /**
43
+ * End this tab's session for a reason other than the person's own sign-out (#1977) — the backend
44
+ * refused it, it could not be restored, an error forced it. `USER_LOGOUT` carries the reason.
45
+ */
46
+ endSession: (reason: SessionEndReason) => void;
47
+ /** How the session this tab holds was established — read when `USER_LOGIN` is announced (#1977). */
48
+ getSessionEstablishment: () => SessionEstablishment;
49
+ /** Why this tab's last session ended — read when `USER_LOGOUT` is announced (#1977). */
50
+ getSessionEndReason: () => SessionEndReason;
40
51
  /**
41
52
  * Begin a federated sign-in, carrying any governed-document releases the person accepted first.
42
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AuthSessionContext.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/AuthSessionContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthSessionContext.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/AuthSessionContext.tsx"],"names":[],"mappings":"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"}