@wildo-ai/saas-frontend-lib 1.1.6 → 1.1.7

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 (1971) hide show
  1. package/dist/esm/browser-bootstrap/theme-bootstrap.d.ts.map +1 -1
  2. package/dist/esm/browser-bootstrap/theme-bootstrap.js.map +1 -1
  3. package/dist/esm/browser-bootstrap.exports.d.ts.map +1 -1
  4. package/dist/esm/browser-bootstrap.exports.js.map +1 -1
  5. package/dist/esm/companion-exports.d.ts.map +1 -1
  6. package/dist/esm/companion-exports.js.map +1 -1
  7. package/dist/esm/companion-runtime-exports.d.ts.map +1 -1
  8. package/dist/esm/companion-runtime-exports.js.map +1 -1
  9. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  10. package/dist/esm/components/actions/action-bar.js.map +1 -1
  11. package/dist/esm/components/actions/action-button.d.ts.map +1 -1
  12. package/dist/esm/components/actions/action-button.js.map +1 -1
  13. package/dist/esm/components/actions/button-group.d.ts.map +1 -1
  14. package/dist/esm/components/actions/button-group.js.map +1 -1
  15. package/dist/esm/components/actions/button.d.ts.map +1 -1
  16. package/dist/esm/components/actions/button.js.map +1 -1
  17. package/dist/esm/components/ai-elements/artifacts/artifact-browser.types.d.ts.map +1 -1
  18. package/dist/esm/components/ai-elements/artifacts/artifact-browser.types.js.map +1 -1
  19. package/dist/esm/components/ai-elements/artifacts/artifact-list.d.ts.map +1 -1
  20. package/dist/esm/components/ai-elements/artifacts/artifact-list.js.map +1 -1
  21. package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -1
  22. package/dist/esm/components/ai-elements/artifacts/artifact.js.map +1 -1
  23. package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
  24. package/dist/esm/components/ai-elements/artifacts/code-block.js.map +1 -1
  25. package/dist/esm/components/ai-elements/artifacts/diff-block.d.ts.map +1 -1
  26. package/dist/esm/components/ai-elements/artifacts/diff-block.js.map +1 -1
  27. package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
  28. package/dist/esm/components/ai-elements/artifacts/image.js.map +1 -1
  29. package/dist/esm/components/ai-elements/artifacts/unified-diff.utils.d.ts.map +1 -1
  30. package/dist/esm/components/ai-elements/artifacts/unified-diff.utils.js.map +1 -1
  31. package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
  32. package/dist/esm/components/ai-elements/artifacts/web-preview.js.map +1 -1
  33. package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
  34. package/dist/esm/components/ai-elements/chat/conversation.js.map +1 -1
  35. package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
  36. package/dist/esm/components/ai-elements/chat/message.js.map +1 -1
  37. package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
  38. package/dist/esm/components/ai-elements/chat/prompt-input.js.map +1 -1
  39. package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
  40. package/dist/esm/components/ai-elements/chat/sources.js.map +1 -1
  41. package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
  42. package/dist/esm/components/ai-elements/chat/suggestion.js.map +1 -1
  43. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  44. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  45. package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
  46. package/dist/esm/components/ai-elements/execution/confirmation.js.map +1 -1
  47. package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
  48. package/dist/esm/components/ai-elements/execution/queue.js.map +1 -1
  49. package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
  50. package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
  51. package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
  52. package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
  53. package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
  54. package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
  55. package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
  56. package/dist/esm/components/ai-elements/graph/connection.js.map +1 -1
  57. package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
  58. package/dist/esm/components/ai-elements/graph/controls.js.map +1 -1
  59. package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
  60. package/dist/esm/components/ai-elements/graph/edge.js.map +1 -1
  61. package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
  62. package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
  63. package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
  64. package/dist/esm/components/ai-elements/graph/panel.js.map +1 -1
  65. package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
  66. package/dist/esm/components/ai-elements/graph/toolbar.js.map +1 -1
  67. package/dist/esm/components/ai-elements/meta/agent-wrappers.d.ts.map +1 -1
  68. package/dist/esm/components/ai-elements/meta/agent-wrappers.js.map +1 -1
  69. package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
  70. package/dist/esm/components/ai-elements/meta/context.js.map +1 -1
  71. package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
  72. package/dist/esm/components/ai-elements/meta/model-selector.js.map +1 -1
  73. package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
  74. package/dist/esm/components/ai-elements/meta/open-in-chat.js.map +1 -1
  75. package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
  76. package/dist/esm/components/ai-elements/shared/loader.js.map +1 -1
  77. package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
  78. package/dist/esm/components/ai-elements/shared/shimmer.js.map +1 -1
  79. package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
  80. package/dist/esm/components/ai-elements/stream/execution-stream.js.map +1 -1
  81. package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
  82. package/dist/esm/components/ai-elements/trace/chain-of-thought.js.map +1 -1
  83. package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
  84. package/dist/esm/components/ai-elements/trace/checkpoint.js.map +1 -1
  85. package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
  86. package/dist/esm/components/ai-elements/trace/inline-citation.js.map +1 -1
  87. package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
  88. package/dist/esm/components/ai-elements/trace/plan.js.map +1 -1
  89. package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
  90. package/dist/esm/components/ai-elements/trace/reasoning.js.map +1 -1
  91. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
  92. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
  93. package/dist/esm/components/app/AppLayout_ConsentGate.d.ts.map +1 -1
  94. package/dist/esm/components/app/AppLayout_ConsentGate.js.map +1 -1
  95. package/dist/esm/components/app/AppLayout_ConsentGate.labels.d.ts.map +1 -1
  96. package/dist/esm/components/app/AppLayout_ConsentGate.labels.js.map +1 -1
  97. package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.d.ts.map +1 -1
  98. package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.js.map +1 -1
  99. package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.labels.d.ts.map +1 -1
  100. package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.labels.js.map +1 -1
  101. package/dist/esm/components/app/AppLayout_ErrorBoundary.d.ts.map +1 -1
  102. package/dist/esm/components/app/AppLayout_ErrorBoundary.js.map +1 -1
  103. package/dist/esm/components/app/AppLayout_ErrorBoundary.labels.d.ts.map +1 -1
  104. package/dist/esm/components/app/AppLayout_ErrorBoundary.labels.js.map +1 -1
  105. package/dist/esm/components/app/AppLayout_Home.d.ts.map +1 -1
  106. package/dist/esm/components/app/AppLayout_Home.js.map +1 -1
  107. package/dist/esm/components/app/AppLayout_Home.labels.d.ts.map +1 -1
  108. package/dist/esm/components/app/AppLayout_Home.labels.js.map +1 -1
  109. package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
  110. package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
  111. package/dist/esm/components/app/AppLayout_NotificationCenter.d.ts.map +1 -1
  112. package/dist/esm/components/app/AppLayout_NotificationCenter.js.map +1 -1
  113. package/dist/esm/components/app/AppLayout_RouterErrorBoundary.d.ts.map +1 -1
  114. package/dist/esm/components/app/AppLayout_RouterErrorBoundary.js.map +1 -1
  115. package/dist/esm/components/app/AppLayout_RouterErrorBoundary.labels.d.ts.map +1 -1
  116. package/dist/esm/components/app/AppLayout_RouterErrorBoundary.labels.js.map +1 -1
  117. package/dist/esm/components/app/AppPage_Home.d.ts.map +1 -1
  118. package/dist/esm/components/app/AppPage_Home.js.map +1 -1
  119. package/dist/esm/components/app/PublicLayout_MainContainer.d.ts.map +1 -1
  120. package/dist/esm/components/app/PublicLayout_MainContainer.js.map +1 -1
  121. package/dist/esm/components/app/PublicLayout_StaticContentContainer.d.ts.map +1 -1
  122. package/dist/esm/components/app/PublicLayout_StaticContentContainer.js.map +1 -1
  123. package/dist/esm/components/app/PublicLayout_StaticContentContainer.labels.d.ts.map +1 -1
  124. package/dist/esm/components/app/PublicLayout_StaticContentContainer.labels.js.map +1 -1
  125. package/dist/esm/components/app/PublicLayout_Terms.d.ts.map +1 -1
  126. package/dist/esm/components/app/PublicLayout_Terms.js.map +1 -1
  127. package/dist/esm/components/app/PublicLayout_Terms.labels.d.ts.map +1 -1
  128. package/dist/esm/components/app/PublicLayout_Terms.labels.js.map +1 -1
  129. package/dist/esm/components/auth/Auth_AuthCallback.d.ts.map +1 -1
  130. package/dist/esm/components/auth/Auth_AuthCallback.js.map +1 -1
  131. package/dist/esm/components/auth/Auth_AuthCallback.labels.d.ts.map +1 -1
  132. package/dist/esm/components/auth/Auth_AuthCallback.labels.js.map +1 -1
  133. package/dist/esm/components/auth/Auth_ConfirmEmail.d.ts.map +1 -1
  134. package/dist/esm/components/auth/Auth_ConfirmEmail.js.map +1 -1
  135. package/dist/esm/components/auth/Auth_ConfirmEmail.labels.d.ts.map +1 -1
  136. package/dist/esm/components/auth/Auth_ConfirmEmail.labels.js.map +1 -1
  137. package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
  138. package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
  139. package/dist/esm/components/auth/Auth_EnrollmentRequired.labels.d.ts.map +1 -1
  140. package/dist/esm/components/auth/Auth_EnrollmentRequired.labels.js.map +1 -1
  141. package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
  142. package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
  143. package/dist/esm/components/auth/Auth_Invitation.labels.d.ts.map +1 -1
  144. package/dist/esm/components/auth/Auth_Invitation.labels.js.map +1 -1
  145. package/dist/esm/components/auth/Auth_MagicLinkVerify.d.ts.map +1 -1
  146. package/dist/esm/components/auth/Auth_MagicLinkVerify.js.map +1 -1
  147. package/dist/esm/components/auth/Auth_MagicLinkVerify.labels.d.ts.map +1 -1
  148. package/dist/esm/components/auth/Auth_MagicLinkVerify.labels.js.map +1 -1
  149. package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
  150. package/dist/esm/components/auth/Auth_Main.js.map +1 -1
  151. package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
  152. package/dist/esm/components/auth/Auth_Main.labels.js.map +1 -1
  153. package/dist/esm/components/auth/Auth_MfaChallenge.d.ts.map +1 -1
  154. package/dist/esm/components/auth/Auth_MfaChallenge.js.map +1 -1
  155. package/dist/esm/components/auth/Auth_MfaChallenge.labels.d.ts.map +1 -1
  156. package/dist/esm/components/auth/Auth_MfaChallenge.labels.js.map +1 -1
  157. package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
  158. package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
  159. package/dist/esm/components/auth/Auth_OAuthConsent.labels.d.ts.map +1 -1
  160. package/dist/esm/components/auth/Auth_OAuthConsent.labels.js.map +1 -1
  161. package/dist/esm/components/auth/Auth_OAuthLoggedOut.d.ts.map +1 -1
  162. package/dist/esm/components/auth/Auth_OAuthLoggedOut.js.map +1 -1
  163. package/dist/esm/components/auth/Auth_OAuthLoggedOut.labels.d.ts.map +1 -1
  164. package/dist/esm/components/auth/Auth_OAuthLoggedOut.labels.js.map +1 -1
  165. package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.d.ts.map +1 -1
  166. package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.js.map +1 -1
  167. package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.labels.d.ts.map +1 -1
  168. package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.labels.js.map +1 -1
  169. package/dist/esm/components/auth/Auth_OneOffSession.d.ts.map +1 -1
  170. package/dist/esm/components/auth/Auth_OneOffSession.js.map +1 -1
  171. package/dist/esm/components/auth/Auth_OneOffSession.labels.d.ts.map +1 -1
  172. package/dist/esm/components/auth/Auth_OneOffSession.labels.js.map +1 -1
  173. package/dist/esm/components/auth/Auth_OrganizationOnboarding.d.ts.map +1 -1
  174. package/dist/esm/components/auth/Auth_OrganizationOnboarding.js.map +1 -1
  175. package/dist/esm/components/auth/Auth_OrganizationOnboarding.labels.d.ts.map +1 -1
  176. package/dist/esm/components/auth/Auth_OrganizationOnboarding.labels.js.map +1 -1
  177. package/dist/esm/components/auth/Auth_PasswordLost.d.ts.map +1 -1
  178. package/dist/esm/components/auth/Auth_PasswordLost.js.map +1 -1
  179. package/dist/esm/components/auth/Auth_PasswordLost.labels.d.ts.map +1 -1
  180. package/dist/esm/components/auth/Auth_PasswordLost.labels.js.map +1 -1
  181. package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
  182. package/dist/esm/components/auth/Auth_Register.js.map +1 -1
  183. package/dist/esm/components/auth/Auth_Register.labels.d.ts.map +1 -1
  184. package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
  185. package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
  186. package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
  187. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
  188. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
  189. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
  190. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
  191. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.d.ts.map +1 -1
  192. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
  193. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Read_SsoSaml.d.ts.map +1 -1
  194. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Read_SsoSaml.js.map +1 -1
  195. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.d.ts.map +1 -1
  196. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js.map +1 -1
  197. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
  198. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
  199. package/dist/esm/components/auth/enrollment/PhoneEnrollmentMethod.d.ts.map +1 -1
  200. package/dist/esm/components/auth/enrollment/PhoneEnrollmentMethod.js.map +1 -1
  201. package/dist/esm/components/auth/enrollment/TotpEnrollmentMethod.d.ts.map +1 -1
  202. package/dist/esm/components/auth/enrollment/TotpEnrollmentMethod.js.map +1 -1
  203. package/dist/esm/components/auth/enrollment/enrollment-method-components.d.ts.map +1 -1
  204. package/dist/esm/components/auth/enrollment/enrollment-method-components.js.map +1 -1
  205. package/dist/esm/components/auth/methods/EmailOtpAuthMethod.d.ts.map +1 -1
  206. package/dist/esm/components/auth/methods/EmailOtpAuthMethod.js.map +1 -1
  207. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
  208. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
  209. package/dist/esm/components/auth/methods/MagicLinkAuthMethod.d.ts.map +1 -1
  210. package/dist/esm/components/auth/methods/MagicLinkAuthMethod.js.map +1 -1
  211. package/dist/esm/components/auth/methods/OrgOidcAuthMethod.d.ts.map +1 -1
  212. package/dist/esm/components/auth/methods/OrgOidcAuthMethod.js.map +1 -1
  213. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
  214. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
  215. package/dist/esm/components/auth/methods/PasskeyAuthMethod.d.ts.map +1 -1
  216. package/dist/esm/components/auth/methods/PasskeyAuthMethod.js.map +1 -1
  217. package/dist/esm/components/auth/methods/PasswordAuthMethod.d.ts.map +1 -1
  218. package/dist/esm/components/auth/methods/PasswordAuthMethod.js.map +1 -1
  219. package/dist/esm/components/auth/methods/SmsOtpAuthMethod.d.ts.map +1 -1
  220. package/dist/esm/components/auth/methods/SmsOtpAuthMethod.js.map +1 -1
  221. package/dist/esm/components/auth/methods/TotpAuthMethod.d.ts.map +1 -1
  222. package/dist/esm/components/auth/methods/TotpAuthMethod.js.map +1 -1
  223. package/dist/esm/components/auth/methods/auth-method-components.d.ts.map +1 -1
  224. package/dist/esm/components/auth/methods/auth-method-components.js.map +1 -1
  225. package/dist/esm/components/auth/methods/auth-method-presentation.d.ts.map +1 -1
  226. package/dist/esm/components/auth/methods/auth-method-presentation.js.map +1 -1
  227. package/dist/esm/components/auth/pages/AuthPage_AuthCallback.d.ts.map +1 -1
  228. package/dist/esm/components/auth/pages/AuthPage_AuthCallback.js.map +1 -1
  229. package/dist/esm/components/auth/pages/AuthPage_AuthExchange.d.ts.map +1 -1
  230. package/dist/esm/components/auth/pages/AuthPage_AuthExchange.js.map +1 -1
  231. package/dist/esm/components/auth/pages/AuthPage_ConfirmEmail.d.ts.map +1 -1
  232. package/dist/esm/components/auth/pages/AuthPage_ConfirmEmail.js.map +1 -1
  233. package/dist/esm/components/auth/pages/AuthPage_EnrollmentRequired.d.ts.map +1 -1
  234. package/dist/esm/components/auth/pages/AuthPage_EnrollmentRequired.js.map +1 -1
  235. package/dist/esm/components/auth/pages/AuthPage_Invitation.d.ts.map +1 -1
  236. package/dist/esm/components/auth/pages/AuthPage_Invitation.js.map +1 -1
  237. package/dist/esm/components/auth/pages/AuthPage_MagicLinkVerify.d.ts.map +1 -1
  238. package/dist/esm/components/auth/pages/AuthPage_MagicLinkVerify.js.map +1 -1
  239. package/dist/esm/components/auth/pages/AuthPage_Main.d.ts.map +1 -1
  240. package/dist/esm/components/auth/pages/AuthPage_Main.js.map +1 -1
  241. package/dist/esm/components/auth/pages/AuthPage_MfaChallenge.d.ts.map +1 -1
  242. package/dist/esm/components/auth/pages/AuthPage_MfaChallenge.js.map +1 -1
  243. package/dist/esm/components/auth/pages/AuthPage_OAuthConsent.d.ts.map +1 -1
  244. package/dist/esm/components/auth/pages/AuthPage_OAuthConsent.js.map +1 -1
  245. package/dist/esm/components/auth/pages/AuthPage_OAuthLoggedOut.d.ts.map +1 -1
  246. package/dist/esm/components/auth/pages/AuthPage_OAuthLoggedOut.js.map +1 -1
  247. package/dist/esm/components/auth/pages/AuthPage_OAuthLogoutConfirm.d.ts.map +1 -1
  248. package/dist/esm/components/auth/pages/AuthPage_OAuthLogoutConfirm.js.map +1 -1
  249. package/dist/esm/components/auth/pages/AuthPage_OneOffSession.d.ts.map +1 -1
  250. package/dist/esm/components/auth/pages/AuthPage_OneOffSession.js.map +1 -1
  251. package/dist/esm/components/auth/pages/AuthPage_OrganizationOnboarding.d.ts.map +1 -1
  252. package/dist/esm/components/auth/pages/AuthPage_OrganizationOnboarding.js.map +1 -1
  253. package/dist/esm/components/auth/pages/AuthPage_PasswordLost.d.ts.map +1 -1
  254. package/dist/esm/components/auth/pages/AuthPage_PasswordLost.js.map +1 -1
  255. package/dist/esm/components/auth/pages/AuthPage_ReAuthenticationCallback.d.ts.map +1 -1
  256. package/dist/esm/components/auth/pages/AuthPage_ReAuthenticationCallback.js.map +1 -1
  257. package/dist/esm/components/auth/pages/AuthPage_Register.d.ts.map +1 -1
  258. package/dist/esm/components/auth/pages/AuthPage_Register.js.map +1 -1
  259. package/dist/esm/components/auth/utils/AuthMethodChoiceList.d.ts.map +1 -1
  260. package/dist/esm/components/auth/utils/AuthMethodChoiceList.js.map +1 -1
  261. package/dist/esm/components/auth/utils/AuthMethodIcon.d.ts.map +1 -1
  262. package/dist/esm/components/auth/utils/AuthMethodIcon.js.map +1 -1
  263. package/dist/esm/components/auth/utils/AuthSecondaryLink.d.ts.map +1 -1
  264. package/dist/esm/components/auth/utils/AuthSecondaryLink.js.map +1 -1
  265. package/dist/esm/components/auth/utils/AuthSingleFieldFormLayout.d.ts.map +1 -1
  266. package/dist/esm/components/auth/utils/AuthSingleFieldFormLayout.js.map +1 -1
  267. package/dist/esm/components/auth/utils/CredentialUsernameAutofillField.d.ts.map +1 -1
  268. package/dist/esm/components/auth/utils/CredentialUsernameAutofillField.js.map +1 -1
  269. package/dist/esm/components/auth/utils/LabeledDivider.d.ts.map +1 -1
  270. package/dist/esm/components/auth/utils/LabeledDivider.js.map +1 -1
  271. package/dist/esm/components/auth/utils/OAuthProvidersSection.d.ts.map +1 -1
  272. package/dist/esm/components/auth/utils/OAuthProvidersSection.js.map +1 -1
  273. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.d.ts.map +1 -1
  274. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
  275. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
  276. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
  277. package/dist/esm/components/auth/utils/resolvePasswordViolationsToLabels.d.ts.map +1 -1
  278. package/dist/esm/components/auth/utils/resolvePasswordViolationsToLabels.js.map +1 -1
  279. package/dist/esm/components/auth/utils/useMfaContinuationNavigation.d.ts.map +1 -1
  280. package/dist/esm/components/auth/utils/useMfaContinuationNavigation.js.map +1 -1
  281. package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
  282. package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
  283. package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -1
  284. package/dist/esm/components/billing/billing-plan-change-preview.js.map +1 -1
  285. package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
  286. package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
  287. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  288. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  289. package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
  290. package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
  291. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  292. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  293. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
  294. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js.map +1 -1
  295. package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
  296. package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
  297. package/dist/esm/components/data-display/DisplayContextKindContext.d.ts.map +1 -1
  298. package/dist/esm/components/data-display/DisplayContextKindContext.js.map +1 -1
  299. package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
  300. package/dist/esm/components/data-display/DisplayField.js.map +1 -1
  301. package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
  302. package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
  303. package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
  304. package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
  305. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
  306. package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
  307. package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
  308. package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
  309. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
  310. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
  311. package/dist/esm/components/data-display/DisplayTemplateContext.d.ts.map +1 -1
  312. package/dist/esm/components/data-display/DisplayTemplateContext.js.map +1 -1
  313. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
  314. package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
  315. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
  316. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
  317. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
  318. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
  319. package/dist/esm/components/data-display/SummaryContext.d.ts.map +1 -1
  320. package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
  321. package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
  322. package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
  323. package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
  324. package/dist/esm/components/data-display/avatar.js.map +1 -1
  325. package/dist/esm/components/data-display/badge-tone.d.ts.map +1 -1
  326. package/dist/esm/components/data-display/badge-tone.js.map +1 -1
  327. package/dist/esm/components/data-display/badge.d.ts.map +1 -1
  328. package/dist/esm/components/data-display/badge.js.map +1 -1
  329. package/dist/esm/components/data-display/chart-echarts.d.ts.map +1 -1
  330. package/dist/esm/components/data-display/chart-echarts.js.map +1 -1
  331. package/dist/esm/components/data-display/chromes/DisplayChromeContext.d.ts.map +1 -1
  332. package/dist/esm/components/data-display/chromes/DisplayChromeContext.js.map +1 -1
  333. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
  334. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
  335. package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
  336. package/dist/esm/components/data-display/description-list.js.map +1 -1
  337. package/dist/esm/components/data-display/display-field-resolution.utils.d.ts.map +1 -1
  338. package/dist/esm/components/data-display/display-field-resolution.utils.js.map +1 -1
  339. package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
  340. package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
  341. package/dist/esm/components/data-display/display-resource-link-trail.d.ts.map +1 -1
  342. package/dist/esm/components/data-display/display-resource-link-trail.js.map +1 -1
  343. package/dist/esm/components/data-display/duration.d.ts.map +1 -1
  344. package/dist/esm/components/data-display/duration.js.map +1 -1
  345. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -1
  346. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -1
  347. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -1
  348. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -1
  349. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -1
  350. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -1
  351. package/dist/esm/components/data-display/formatters/display-field-address.d.ts.map +1 -1
  352. package/dist/esm/components/data-display/formatters/display-field-address.js.map +1 -1
  353. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
  354. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.map +1 -1
  355. package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
  356. package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
  357. package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
  358. package/dist/esm/components/data-display/formatters/display-field-code.js.map +1 -1
  359. package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
  360. package/dist/esm/components/data-display/formatters/display-field-date.js.map +1 -1
  361. package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
  362. package/dist/esm/components/data-display/formatters/display-field-datetime.js.map +1 -1
  363. package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
  364. package/dist/esm/components/data-display/formatters/display-field-duration.js.map +1 -1
  365. package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
  366. package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -1
  367. package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
  368. package/dist/esm/components/data-display/formatters/display-field-file-audio.js.map +1 -1
  369. package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
  370. package/dist/esm/components/data-display/formatters/display-field-file-document.js.map +1 -1
  371. package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
  372. package/dist/esm/components/data-display/formatters/display-field-file-gallery.js.map +1 -1
  373. package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
  374. package/dist/esm/components/data-display/formatters/display-field-file-image.js.map +1 -1
  375. package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
  376. package/dist/esm/components/data-display/formatters/display-field-file-video.js.map +1 -1
  377. package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
  378. package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -1
  379. package/dist/esm/components/data-display/formatters/display-field-json.d.ts.map +1 -1
  380. package/dist/esm/components/data-display/formatters/display-field-json.js.map +1 -1
  381. package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
  382. package/dist/esm/components/data-display/formatters/display-field-money.js.map +1 -1
  383. package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
  384. package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -1
  385. package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
  386. package/dist/esm/components/data-display/formatters/display-field-phone.js.map +1 -1
  387. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
  388. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.js.map +1 -1
  389. package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
  390. package/dist/esm/components/data-display/formatters/display-field-range-date.js.map +1 -1
  391. package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
  392. package/dist/esm/components/data-display/formatters/display-field-range-datetime.js.map +1 -1
  393. package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
  394. package/dist/esm/components/data-display/formatters/display-field-range-money.js.map +1 -1
  395. package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
  396. package/dist/esm/components/data-display/formatters/display-field-range-number.js.map +1 -1
  397. package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
  398. package/dist/esm/components/data-display/formatters/display-field-range-time.js.map +1 -1
  399. package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
  400. package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
  401. package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
  402. package/dist/esm/components/data-display/formatters/display-field-time.js.map +1 -1
  403. package/dist/esm/components/data-display/identifier.d.ts.map +1 -1
  404. package/dist/esm/components/data-display/identifier.js.map +1 -1
  405. package/dist/esm/components/data-display/kbd.d.ts.map +1 -1
  406. package/dist/esm/components/data-display/kbd.js.map +1 -1
  407. package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
  408. package/dist/esm/components/data-display/notification-indicator.js.map +1 -1
  409. package/dist/esm/components/data-display/timeline.d.ts.map +1 -1
  410. package/dist/esm/components/data-display/timeline.js.map +1 -1
  411. package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
  412. package/dist/esm/components/data-display/useFileActivation.js.map +1 -1
  413. package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
  414. package/dist/esm/components/feedback/celebration-overlay.js.map +1 -1
  415. package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
  416. package/dist/esm/components/feedback/danger-zone.js.map +1 -1
  417. package/dist/esm/components/feedback/empty-display-policy.utils.d.ts.map +1 -1
  418. package/dist/esm/components/feedback/empty-display-policy.utils.js.map +1 -1
  419. package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
  420. package/dist/esm/components/feedback/empty-state.js.map +1 -1
  421. package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
  422. package/dist/esm/components/feedback/error-display.js.map +1 -1
  423. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  424. package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
  425. package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
  426. package/dist/esm/components/feedback/features/feature-lock-badge.js.map +1 -1
  427. package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
  428. package/dist/esm/components/feedback/features/feature-unavailable-dialog.js.map +1 -1
  429. package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
  430. package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
  431. package/dist/esm/components/feedback/lazy-door-error-boundary.d.ts.map +1 -1
  432. package/dist/esm/components/feedback/lazy-door-error-boundary.js.map +1 -1
  433. package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
  434. package/dist/esm/components/feedback/loading-overlay.js.map +1 -1
  435. package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
  436. package/dist/esm/components/feedback/loading-spinner.js.map +1 -1
  437. package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
  438. package/dist/esm/components/feedback/notification-center.js.map +1 -1
  439. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  440. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  441. package/dist/esm/components/feedback/progress.d.ts.map +1 -1
  442. package/dist/esm/components/feedback/progress.js.map +1 -1
  443. package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
  444. package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
  445. package/dist/esm/components/feedback/skeleton-text.d.ts.map +1 -1
  446. package/dist/esm/components/feedback/skeleton-text.js.map +1 -1
  447. package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
  448. package/dist/esm/components/feedback/skeleton.js.map +1 -1
  449. package/dist/esm/components/feedback/toast.d.ts.map +1 -1
  450. package/dist/esm/components/feedback/toast.js.map +1 -1
  451. package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -1
  452. package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -1
  453. package/dist/esm/components/files/Files_UploadGrantDrop.labels.d.ts.map +1 -1
  454. package/dist/esm/components/files/Files_UploadGrantDrop.labels.js.map +1 -1
  455. package/dist/esm/components/files/pages/FilesPage_UploadGrant.d.ts.map +1 -1
  456. package/dist/esm/components/files/pages/FilesPage_UploadGrant.js.map +1 -1
  457. package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
  458. package/dist/esm/components/flows-actors/actor.js.map +1 -1
  459. package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
  460. package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
  461. package/dist/esm/components/flows-actors/agent-config.d.ts.map +1 -1
  462. package/dist/esm/components/flows-actors/agent-config.js.map +1 -1
  463. package/dist/esm/components/flows-actors/agent-config.labels.d.ts.map +1 -1
  464. package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
  465. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.d.ts.map +1 -1
  466. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js.map +1 -1
  467. package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
  468. package/dist/esm/components/flows-actors/approval.js.map +1 -1
  469. package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
  470. package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
  471. package/dist/esm/components/flows-actors/artifact-browser.d.ts.map +1 -1
  472. package/dist/esm/components/flows-actors/artifact-browser.js.map +1 -1
  473. package/dist/esm/components/flows-actors/artifact-browser.labels.d.ts.map +1 -1
  474. package/dist/esm/components/flows-actors/artifact-browser.labels.js.map +1 -1
  475. package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
  476. package/dist/esm/components/flows-actors/execution-plan.js.map +1 -1
  477. package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
  478. package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
  479. package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
  480. package/dist/esm/components/flows-actors/flow-execution.js.map +1 -1
  481. package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.map +1 -1
  482. package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
  483. package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
  484. package/dist/esm/components/flows-actors/flow-node-badges.js.map +1 -1
  485. package/dist/esm/components/flows-actors/flow-node.d.ts.map +1 -1
  486. package/dist/esm/components/flows-actors/flow-node.js.map +1 -1
  487. package/dist/esm/components/flows-actors/flow-node.labels.d.ts.map +1 -1
  488. package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
  489. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts.map +1 -1
  490. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js.map +1 -1
  491. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts.map +1 -1
  492. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js.map +1 -1
  493. package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts.map +1 -1
  494. package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
  495. package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
  496. package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
  497. package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
  498. package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
  499. package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
  500. package/dist/esm/components/flows-actors/task-detail.js.map +1 -1
  501. package/dist/esm/components/flows-actors/task-detail.labels.d.ts.map +1 -1
  502. package/dist/esm/components/flows-actors/task-detail.labels.js.map +1 -1
  503. package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
  504. package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
  505. package/dist/esm/components/flows-actors/task-memory.labels.d.ts.map +1 -1
  506. package/dist/esm/components/flows-actors/task-memory.labels.js.map +1 -1
  507. package/dist/esm/components/form/Form.d.ts.map +1 -1
  508. package/dist/esm/components/form/Form.js.map +1 -1
  509. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
  510. package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
  511. package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
  512. package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
  513. package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
  514. package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
  515. package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
  516. package/dist/esm/components/form/automated/FormField.js.map +1 -1
  517. package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
  518. package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
  519. package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
  520. package/dist/esm/components/form/automated/FormFieldComposite.js.map +1 -1
  521. package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
  522. package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
  523. package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
  524. package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
  525. package/dist/esm/components/form/automated/GeneratedAssociationRelationshipField.d.ts.map +1 -1
  526. package/dist/esm/components/form/automated/GeneratedAssociationRelationshipField.js.map +1 -1
  527. package/dist/esm/components/form/automated/GeneratedReferenceRelationshipField.d.ts.map +1 -1
  528. package/dist/esm/components/form/automated/GeneratedReferenceRelationshipField.js.map +1 -1
  529. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
  530. package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
  531. package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
  532. package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
  533. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -1
  534. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -1
  535. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
  536. package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
  537. package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.d.ts.map +1 -1
  538. package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.js.map +1 -1
  539. package/dist/esm/components/form/automated/autosave-indicator.d.ts.map +1 -1
  540. package/dist/esm/components/form/automated/autosave-indicator.js.map +1 -1
  541. package/dist/esm/components/form/automated/autosave-indicator.utils.d.ts.map +1 -1
  542. package/dist/esm/components/form/automated/autosave-indicator.utils.js.map +1 -1
  543. package/dist/esm/components/form/automated/create-form-default-values.utils.d.ts.map +1 -1
  544. package/dist/esm/components/form/automated/create-form-default-values.utils.js.map +1 -1
  545. package/dist/esm/components/form/automated/field-clearing-rule.frontend.utils.d.ts.map +1 -1
  546. package/dist/esm/components/form/automated/field-clearing-rule.frontend.utils.js.map +1 -1
  547. package/dist/esm/components/form/automated/form-field-autocomplete.frontend.utils.d.ts.map +1 -1
  548. package/dist/esm/components/form/automated/form-field-autocomplete.frontend.utils.js.map +1 -1
  549. package/dist/esm/components/form/automated/generated-relationship-field.helpers.d.ts.map +1 -1
  550. package/dist/esm/components/form/automated/generated-relationship-field.helpers.js.map +1 -1
  551. package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts.map +1 -1
  552. package/dist/esm/components/form/automated/generated-relationship-field.hooks.js.map +1 -1
  553. package/dist/esm/components/form/automated/generated-relationship-field.shared.d.ts.map +1 -1
  554. package/dist/esm/components/form/automated/generated-relationship-field.shared.js.map +1 -1
  555. package/dist/esm/components/form/automated/generated-relationship-field.utils.d.ts.map +1 -1
  556. package/dist/esm/components/form/automated/generated-relationship-field.utils.js.map +1 -1
  557. package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
  558. package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
  559. package/dist/esm/components/form/chromes/FormChromeContext.d.ts.map +1 -1
  560. package/dist/esm/components/form/chromes/FormChromeContext.js.map +1 -1
  561. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
  562. package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
  563. package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
  564. package/dist/esm/components/form/chromes/field.js.map +1 -1
  565. package/dist/esm/components/form/chromes/form-primitives.d.ts.map +1 -1
  566. package/dist/esm/components/form/chromes/form-primitives.js.map +1 -1
  567. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  568. package/dist/esm/components/form/combobox.js.map +1 -1
  569. package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
  570. package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -1
  571. package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
  572. package/dist/esm/components/form/controls/boolean/switch.js.map +1 -1
  573. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
  574. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.js.map +1 -1
  575. package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
  576. package/dist/esm/components/form/controls/boolean/toggle.js.map +1 -1
  577. package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
  578. package/dist/esm/components/form/controls/date-time/calendar.js.map +1 -1
  579. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  580. package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -1
  581. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  582. package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -1
  583. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  584. package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -1
  585. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  586. package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -1
  587. package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
  588. package/dist/esm/components/form/controls/date-time/time-picker.js.map +1 -1
  589. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  590. package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -1
  591. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  592. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  593. package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
  594. package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -1
  595. package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
  596. package/dist/esm/components/form/controls/enum/select.js.map +1 -1
  597. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  598. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  599. package/dist/esm/components/form/controls/file/file-readiness.frontend.utils.d.ts.map +1 -1
  600. package/dist/esm/components/form/controls/file/file-readiness.frontend.utils.js.map +1 -1
  601. package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
  602. package/dist/esm/components/form/controls/file/file-upload.js.map +1 -1
  603. package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
  604. package/dist/esm/components/form/controls/file/image-crop.frontend.utils.d.ts.map +1 -1
  605. package/dist/esm/components/form/controls/file/image-crop.frontend.utils.js.map +1 -1
  606. package/dist/esm/components/form/controls/file/image-crop.js.map +1 -1
  607. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
  608. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
  609. package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
  610. package/dist/esm/components/form/controls/input-group.js.map +1 -1
  611. package/dist/esm/components/form/controls/input.d.ts.map +1 -1
  612. package/dist/esm/components/form/controls/input.js.map +1 -1
  613. package/dist/esm/components/form/controls/number/slider.d.ts +1 -1
  614. package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
  615. package/dist/esm/components/form/controls/number/slider.js.map +1 -1
  616. package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
  617. package/dist/esm/components/form/controls/string/color-input.js.map +1 -1
  618. package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
  619. package/dist/esm/components/form/controls/string/inline-edit-text.js.map +1 -1
  620. package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
  621. package/dist/esm/components/form/controls/string/input-otp.js.map +1 -1
  622. package/dist/esm/components/form/controls/string/markdown-editor.d.ts.map +1 -1
  623. package/dist/esm/components/form/controls/string/markdown-editor.js.map +1 -1
  624. package/dist/esm/components/form/controls/string/markdown-editor.labels.d.ts.map +1 -1
  625. package/dist/esm/components/form/controls/string/markdown-editor.labels.js.map +1 -1
  626. package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
  627. package/dist/esm/components/form/controls/string/password-input.js.map +1 -1
  628. package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
  629. package/dist/esm/components/form/controls/string/textarea.js.map +1 -1
  630. package/dist/esm/components/form/feedback/RemoteChangeNotification.d.ts.map +1 -1
  631. package/dist/esm/components/form/feedback/RemoteChangeNotification.js.map +1 -1
  632. package/dist/esm/components/form/fields/accepted-file-kinds-description.frontend.utils.d.ts.map +1 -1
  633. package/dist/esm/components/form/fields/accepted-file-kinds-description.frontend.utils.js.map +1 -1
  634. package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
  635. package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
  636. package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
  637. package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
  638. package/dist/esm/components/form/fields/form-field-bigdecimal.d.ts.map +1 -1
  639. package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
  640. package/dist/esm/components/form/fields/form-field-bigdecimal.labels.d.ts.map +1 -1
  641. package/dist/esm/components/form/fields/form-field-bigdecimal.labels.js.map +1 -1
  642. package/dist/esm/components/form/fields/form-field-boolean.d.ts.map +1 -1
  643. package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
  644. package/dist/esm/components/form/fields/form-field-boolean.labels.d.ts.map +1 -1
  645. package/dist/esm/components/form/fields/form-field-boolean.labels.js.map +1 -1
  646. package/dist/esm/components/form/fields/form-field-code.d.ts.map +1 -1
  647. package/dist/esm/components/form/fields/form-field-code.js.map +1 -1
  648. package/dist/esm/components/form/fields/form-field-code.labels.d.ts.map +1 -1
  649. package/dist/esm/components/form/fields/form-field-code.labels.js.map +1 -1
  650. package/dist/esm/components/form/fields/form-field-date.d.ts.map +1 -1
  651. package/dist/esm/components/form/fields/form-field-date.js.map +1 -1
  652. package/dist/esm/components/form/fields/form-field-date.labels.d.ts.map +1 -1
  653. package/dist/esm/components/form/fields/form-field-date.labels.js.map +1 -1
  654. package/dist/esm/components/form/fields/form-field-datetime.d.ts.map +1 -1
  655. package/dist/esm/components/form/fields/form-field-datetime.js.map +1 -1
  656. package/dist/esm/components/form/fields/form-field-datetime.labels.d.ts.map +1 -1
  657. package/dist/esm/components/form/fields/form-field-datetime.labels.js.map +1 -1
  658. package/dist/esm/components/form/fields/form-field-duration.d.ts.map +1 -1
  659. package/dist/esm/components/form/fields/form-field-duration.js.map +1 -1
  660. package/dist/esm/components/form/fields/form-field-duration.labels.d.ts.map +1 -1
  661. package/dist/esm/components/form/fields/form-field-duration.labels.js.map +1 -1
  662. package/dist/esm/components/form/fields/form-field-enum.d.ts.map +1 -1
  663. package/dist/esm/components/form/fields/form-field-enum.js.map +1 -1
  664. package/dist/esm/components/form/fields/form-field-enum.labels.d.ts.map +1 -1
  665. package/dist/esm/components/form/fields/form-field-enum.labels.js.map +1 -1
  666. package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.d.ts.map +1 -1
  667. package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.js.map +1 -1
  668. package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
  669. package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
  670. package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
  671. package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
  672. package/dist/esm/components/form/fields/form-field-money.d.ts.map +1 -1
  673. package/dist/esm/components/form/fields/form-field-money.js.map +1 -1
  674. package/dist/esm/components/form/fields/form-field-money.labels.d.ts.map +1 -1
  675. package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
  676. package/dist/esm/components/form/fields/form-field-number.d.ts.map +1 -1
  677. package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
  678. package/dist/esm/components/form/fields/form-field-number.labels.d.ts.map +1 -1
  679. package/dist/esm/components/form/fields/form-field-number.labels.js.map +1 -1
  680. package/dist/esm/components/form/fields/form-field-phone.d.ts.map +1 -1
  681. package/dist/esm/components/form/fields/form-field-phone.js.map +1 -1
  682. package/dist/esm/components/form/fields/form-field-phone.labels.d.ts.map +1 -1
  683. package/dist/esm/components/form/fields/form-field-phone.labels.js.map +1 -1
  684. package/dist/esm/components/form/fields/form-field-range-bigdecimal.d.ts.map +1 -1
  685. package/dist/esm/components/form/fields/form-field-range-bigdecimal.js.map +1 -1
  686. package/dist/esm/components/form/fields/form-field-range-bigdecimal.labels.d.ts.map +1 -1
  687. package/dist/esm/components/form/fields/form-field-range-bigdecimal.labels.js.map +1 -1
  688. package/dist/esm/components/form/fields/form-field-range-date.d.ts.map +1 -1
  689. package/dist/esm/components/form/fields/form-field-range-date.js.map +1 -1
  690. package/dist/esm/components/form/fields/form-field-range-date.labels.d.ts.map +1 -1
  691. package/dist/esm/components/form/fields/form-field-range-date.labels.js.map +1 -1
  692. package/dist/esm/components/form/fields/form-field-range-datetime.d.ts.map +1 -1
  693. package/dist/esm/components/form/fields/form-field-range-datetime.js.map +1 -1
  694. package/dist/esm/components/form/fields/form-field-range-datetime.labels.d.ts.map +1 -1
  695. package/dist/esm/components/form/fields/form-field-range-datetime.labels.js.map +1 -1
  696. package/dist/esm/components/form/fields/form-field-range-money.d.ts.map +1 -1
  697. package/dist/esm/components/form/fields/form-field-range-money.js.map +1 -1
  698. package/dist/esm/components/form/fields/form-field-range-money.labels.d.ts.map +1 -1
  699. package/dist/esm/components/form/fields/form-field-range-money.labels.js.map +1 -1
  700. package/dist/esm/components/form/fields/form-field-range-number.d.ts.map +1 -1
  701. package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
  702. package/dist/esm/components/form/fields/form-field-range-number.labels.d.ts.map +1 -1
  703. package/dist/esm/components/form/fields/form-field-range-number.labels.js.map +1 -1
  704. package/dist/esm/components/form/fields/form-field-range-time.d.ts.map +1 -1
  705. package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
  706. package/dist/esm/components/form/fields/form-field-range-time.labels.d.ts.map +1 -1
  707. package/dist/esm/components/form/fields/form-field-range-time.labels.js.map +1 -1
  708. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -1
  709. package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -1
  710. package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
  711. package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
  712. package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
  713. package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
  714. package/dist/esm/components/form/fields/form-field-time.d.ts.map +1 -1
  715. package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
  716. package/dist/esm/components/form/fields/form-field-time.labels.d.ts.map +1 -1
  717. package/dist/esm/components/form/fields/form-field-time.labels.js.map +1 -1
  718. package/dist/esm/components/form/fields/useFormField.d.ts.map +1 -1
  719. package/dist/esm/components/form/fields/useFormField.js.map +1 -1
  720. package/dist/esm/components/form/form-context.d.ts.map +1 -1
  721. package/dist/esm/components/form/form-context.js.map +1 -1
  722. package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
  723. package/dist/esm/components/form/form-context.utils.js.map +1 -1
  724. package/dist/esm/components/form/form-external-validation.d.ts.map +1 -1
  725. package/dist/esm/components/form/form-external-validation.js.map +1 -1
  726. package/dist/esm/components/form/form-field-types.d.ts.map +1 -1
  727. package/dist/esm/components/form/form-field-types.js.map +1 -1
  728. package/dist/esm/components/form/useFormSchemaContext.d.ts.map +1 -1
  729. package/dist/esm/components/form/useFormSchemaContext.js.map +1 -1
  730. package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.map +1 -1
  731. package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
  732. package/dist/esm/components/form/validation-errors/form-error-extraction.utils.d.ts.map +1 -1
  733. package/dist/esm/components/form/validation-errors/form-error-extraction.utils.js.map +1 -1
  734. package/dist/esm/components/form/validation-errors/form-validation.d.ts.map +1 -1
  735. package/dist/esm/components/form/validation-errors/form-validation.js.map +1 -1
  736. package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
  737. package/dist/esm/components/form/validation-errors/getFieldError.js.map +1 -1
  738. package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -1
  739. package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -1
  740. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
  741. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
  742. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts.map +1 -1
  743. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js.map +1 -1
  744. package/dist/esm/components/form/validation-errors/unstarted-field-visit.d.ts.map +1 -1
  745. package/dist/esm/components/form/validation-errors/unstarted-field-visit.js.map +1 -1
  746. package/dist/esm/components/form/validation-errors/useFieldUniquenessValidation.d.ts.map +1 -1
  747. package/dist/esm/components/form/validation-errors/useFieldUniquenessValidation.js.map +1 -1
  748. package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
  749. package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
  750. package/dist/esm/components/form/validation-errors/validate-field-url.frontend.d.ts.map +1 -1
  751. package/dist/esm/components/form/validation-errors/validate-field-url.frontend.js.map +1 -1
  752. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
  753. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
  754. package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
  755. package/dist/esm/components/layout/aspect-ratio.js.map +1 -1
  756. package/dist/esm/components/layout/carousel.d.ts.map +1 -1
  757. package/dist/esm/components/layout/carousel.js.map +1 -1
  758. package/dist/esm/components/layout/divider.d.ts.map +1 -1
  759. package/dist/esm/components/layout/divider.js.map +1 -1
  760. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  761. package/dist/esm/components/layout/resizable.js.map +1 -1
  762. package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
  763. package/dist/esm/components/layout/scroll-area.js.map +1 -1
  764. package/dist/esm/components/layout/separator.d.ts.map +1 -1
  765. package/dist/esm/components/layout/separator.js.map +1 -1
  766. package/dist/esm/components/navigation/NavigationItemBadge.d.ts.map +1 -1
  767. package/dist/esm/components/navigation/NavigationItemBadge.js.map +1 -1
  768. package/dist/esm/components/navigation/app-level/ApplicationLevel_ActivityBar.d.ts.map +1 -1
  769. package/dist/esm/components/navigation/app-level/ApplicationLevel_ActivityBar.js.map +1 -1
  770. package/dist/esm/components/navigation/app-level/ApplicationLevel_CommandMenu.d.ts.map +1 -1
  771. package/dist/esm/components/navigation/app-level/ApplicationLevel_CommandMenu.js.map +1 -1
  772. package/dist/esm/components/navigation/app-level/ApplicationLevel_ControlPanel.d.ts.map +1 -1
  773. package/dist/esm/components/navigation/app-level/ApplicationLevel_ControlPanel.js.map +1 -1
  774. package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuBar.d.ts.map +1 -1
  775. package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuBar.js.map +1 -1
  776. package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuUserOrg.d.ts.map +1 -1
  777. package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuUserOrg.js.map +1 -1
  778. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
  779. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
  780. package/dist/esm/components/navigation/app-level/ApplicationLevel_NotificationCenter.d.ts.map +1 -1
  781. package/dist/esm/components/navigation/app-level/ApplicationLevel_NotificationCenter.js.map +1 -1
  782. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts.map +1 -1
  783. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.js.map +1 -1
  784. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickSwitcher.d.ts.map +1 -1
  785. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickSwitcher.js.map +1 -1
  786. package/dist/esm/components/navigation/app-level/ApplicationLevel_Sidebar.d.ts.map +1 -1
  787. package/dist/esm/components/navigation/app-level/ApplicationLevel_Sidebar.js.map +1 -1
  788. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
  789. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
  790. package/dist/esm/components/navigation/app-level/ApplicationLevel_Toolbar.d.ts.map +1 -1
  791. package/dist/esm/components/navigation/app-level/ApplicationLevel_Toolbar.js.map +1 -1
  792. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
  793. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.js.map +1 -1
  794. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts.map +1 -1
  795. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
  796. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.d.ts.map +1 -1
  797. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
  798. package/dist/esm/components/navigation/app-level/component-props.application-level.frontend.schemas.d.ts.map +1 -1
  799. package/dist/esm/components/navigation/app-level/component-props.application-level.frontend.schemas.js.map +1 -1
  800. package/dist/esm/components/navigation/app-level/sidebar-resource-browser-empty-label.d.ts.map +1 -1
  801. package/dist/esm/components/navigation/app-level/sidebar-resource-browser-empty-label.js.map +1 -1
  802. package/dist/esm/components/navigation/app-level/useActivityBarBehavior.d.ts.map +1 -1
  803. package/dist/esm/components/navigation/app-level/useActivityBarBehavior.js.map +1 -1
  804. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
  805. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
  806. package/dist/esm/components/navigation/app-level/useControlPanelBehavior.d.ts.map +1 -1
  807. package/dist/esm/components/navigation/app-level/useControlPanelBehavior.js.map +1 -1
  808. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
  809. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
  810. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
  811. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
  812. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
  813. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
  814. package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.d.ts.map +1 -1
  815. package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.js.map +1 -1
  816. package/dist/esm/components/navigation/app-level/useQuickActionButtonBehavior.d.ts.map +1 -1
  817. package/dist/esm/components/navigation/app-level/useQuickActionButtonBehavior.js.map +1 -1
  818. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
  819. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
  820. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
  821. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
  822. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
  823. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
  824. package/dist/esm/components/navigation/app-level/useToolbarBehavior.d.ts.map +1 -1
  825. package/dist/esm/components/navigation/app-level/useToolbarBehavior.js.map +1 -1
  826. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
  827. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
  828. package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
  829. package/dist/esm/components/navigation/breadcrumb.js.map +1 -1
  830. package/dist/esm/components/navigation/command.d.ts.map +1 -1
  831. package/dist/esm/components/navigation/command.js.map +1 -1
  832. package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
  833. package/dist/esm/components/navigation/menu-bar.js.map +1 -1
  834. package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
  835. package/dist/esm/components/navigation/navbar.js.map +1 -1
  836. package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
  837. package/dist/esm/components/navigation/sidebar.js.map +1 -1
  838. package/dist/esm/components/overlays/containers/OverlayContainer.d.ts.map +1 -1
  839. package/dist/esm/components/overlays/containers/OverlayContainer.js.map +1 -1
  840. package/dist/esm/components/overlays/containers/OverlayContainer.labels.d.ts.map +1 -1
  841. package/dist/esm/components/overlays/containers/OverlayContainer.labels.js.map +1 -1
  842. package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
  843. package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -1
  844. package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
  845. package/dist/esm/components/overlays/containers/alert.js.map +1 -1
  846. package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
  847. package/dist/esm/components/overlays/containers/dialog.js.map +1 -1
  848. package/dist/esm/components/overlays/containers/dialog.shared-types.d.ts.map +1 -1
  849. package/dist/esm/components/overlays/containers/dialog.shared-types.js.map +1 -1
  850. package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
  851. package/dist/esm/components/overlays/containers/drawer.js.map +1 -1
  852. package/dist/esm/components/overlays/containers/navigation-overlay-container.utils.d.ts.map +1 -1
  853. package/dist/esm/components/overlays/containers/navigation-overlay-container.utils.js.map +1 -1
  854. package/dist/esm/components/overlays/containers/overlay-container-mode-resolution.utils.d.ts.map +1 -1
  855. package/dist/esm/components/overlays/containers/overlay-container-mode-resolution.utils.js.map +1 -1
  856. package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
  857. package/dist/esm/components/overlays/containers/sheet.js.map +1 -1
  858. package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
  859. package/dist/esm/components/overlays/floating/context-menu.js.map +1 -1
  860. package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
  861. package/dist/esm/components/overlays/floating/dropdown-menu.js.map +1 -1
  862. package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
  863. package/dist/esm/components/overlays/floating/hover-card.js.map +1 -1
  864. package/dist/esm/components/overlays/floating/menu.shared-types.d.ts.map +1 -1
  865. package/dist/esm/components/overlays/floating/menu.shared-types.js.map +1 -1
  866. package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
  867. package/dist/esm/components/overlays/floating/popover.js.map +1 -1
  868. package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
  869. package/dist/esm/components/overlays/floating/tooltip.js.map +1 -1
  870. package/dist/esm/components/progression/ProgressionAchievementBadge.d.ts.map +1 -1
  871. package/dist/esm/components/progression/ProgressionAchievementBadge.js.map +1 -1
  872. package/dist/esm/components/progression/ProgressionAchievementBadge.labels.d.ts.map +1 -1
  873. package/dist/esm/components/progression/ProgressionAchievementBadge.labels.js.map +1 -1
  874. package/dist/esm/components/progression/ProgressionMilestoneTracker.d.ts.map +1 -1
  875. package/dist/esm/components/progression/ProgressionMilestoneTracker.js.map +1 -1
  876. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.d.ts.map +1 -1
  877. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
  878. package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
  879. package/dist/esm/components/resources/CollectionSelectionControls.js.map +1 -1
  880. package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts.map +1 -1
  881. package/dist/esm/components/resources/CollectionSelectionHeaderRail.js.map +1 -1
  882. package/dist/esm/components/resources/EphemeralFieldsRevealDialog.d.ts.map +1 -1
  883. package/dist/esm/components/resources/EphemeralFieldsRevealDialog.js.map +1 -1
  884. package/dist/esm/components/resources/InlineSearchInput.d.ts.map +1 -1
  885. package/dist/esm/components/resources/InlineSearchInput.js.map +1 -1
  886. package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
  887. package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
  888. package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts.map +1 -1
  889. package/dist/esm/components/resources/ResourceCollectionFilterPresets.js.map +1 -1
  890. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
  891. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
  892. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
  893. package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
  894. package/dist/esm/components/resources/ResourceInPlaceOperationRow.d.ts.map +1 -1
  895. package/dist/esm/components/resources/ResourceInPlaceOperationRow.js.map +1 -1
  896. package/dist/esm/components/resources/ResourceLayout_Action.d.ts.map +1 -1
  897. package/dist/esm/components/resources/ResourceLayout_Action.js.map +1 -1
  898. package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
  899. package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
  900. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
  901. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
  902. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.labels.d.ts.map +1 -1
  903. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.labels.js.map +1 -1
  904. package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
  905. package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
  906. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
  907. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
  908. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.labels.d.ts.map +1 -1
  909. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.labels.js.map +1 -1
  910. package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
  911. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
  912. package/dist/esm/components/resources/ResourceLayout_ContainerNested.labels.d.ts.map +1 -1
  913. package/dist/esm/components/resources/ResourceLayout_ContainerNested.labels.js.map +1 -1
  914. package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
  915. package/dist/esm/components/resources/ResourceLayout_Create.js.map +1 -1
  916. package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
  917. package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
  918. package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
  919. package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
  920. package/dist/esm/components/resources/ResourceLayout_DangerZone.labels.d.ts.map +1 -1
  921. package/dist/esm/components/resources/ResourceLayout_DangerZone.labels.js.map +1 -1
  922. package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
  923. package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
  924. package/dist/esm/components/resources/ResourceLayout_Filters.d.ts.map +1 -1
  925. package/dist/esm/components/resources/ResourceLayout_Filters.js.map +1 -1
  926. package/dist/esm/components/resources/ResourceLayout_Filters.labels.d.ts.map +1 -1
  927. package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
  928. package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
  929. package/dist/esm/components/resources/ResourceLayout_FiltersControl.js.map +1 -1
  930. package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
  931. package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
  932. package/dist/esm/components/resources/ResourceLayout_Header.labels.d.ts.map +1 -1
  933. package/dist/esm/components/resources/ResourceLayout_Header.labels.js.map +1 -1
  934. package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
  935. package/dist/esm/components/resources/ResourceLayout_InsertedViews.js.map +1 -1
  936. package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
  937. package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
  938. package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
  939. package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
  940. package/dist/esm/components/resources/ResourceLayout_List_Table.d.ts.map +1 -1
  941. package/dist/esm/components/resources/ResourceLayout_List_Table.js.map +1 -1
  942. package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
  943. package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
  944. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.d.ts.map +1 -1
  945. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
  946. package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
  947. package/dist/esm/components/resources/ResourceLayout_OperationsItems.js.map +1 -1
  948. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
  949. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
  950. package/dist/esm/components/resources/ResourceLayout_Pagination.d.ts.map +1 -1
  951. package/dist/esm/components/resources/ResourceLayout_Pagination.js.map +1 -1
  952. package/dist/esm/components/resources/ResourceLayout_Pagination.labels.d.ts.map +1 -1
  953. package/dist/esm/components/resources/ResourceLayout_Pagination.labels.js.map +1 -1
  954. package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
  955. package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
  956. package/dist/esm/components/resources/ResourceLayout_Read.labels.d.ts.map +1 -1
  957. package/dist/esm/components/resources/ResourceLayout_Read.labels.js.map +1 -1
  958. package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
  959. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
  960. package/dist/esm/components/resources/ResourceLayout_ReadSummary.labels.d.ts.map +1 -1
  961. package/dist/esm/components/resources/ResourceLayout_ReadSummary.labels.js.map +1 -1
  962. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
  963. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
  964. package/dist/esm/components/resources/ResourceLayout_Read_Expandable.d.ts.map +1 -1
  965. package/dist/esm/components/resources/ResourceLayout_Read_Expandable.js.map +1 -1
  966. package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
  967. package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
  968. package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
  969. package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
  970. package/dist/esm/components/resources/ResourceLayout_Search_Table.d.ts.map +1 -1
  971. package/dist/esm/components/resources/ResourceLayout_Search_Table.js.map +1 -1
  972. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
  973. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
  974. package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
  975. package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
  976. package/dist/esm/components/resources/ResourceLayout_Update.d.ts.map +1 -1
  977. package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
  978. package/dist/esm/components/resources/ResourceLayout_Update.labels.d.ts.map +1 -1
  979. package/dist/esm/components/resources/ResourceLayout_Update.labels.js.map +1 -1
  980. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
  981. package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
  982. package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -1
  983. package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -1
  984. package/dist/esm/components/resources/ResourceOperationActionPopover.d.ts.map +1 -1
  985. package/dist/esm/components/resources/ResourceOperationActionPopover.js.map +1 -1
  986. package/dist/esm/components/resources/ResourceOperationDetachedHost.d.ts.map +1 -1
  987. package/dist/esm/components/resources/ResourceOperationDetachedHost.js.map +1 -1
  988. package/dist/esm/components/resources/ResourceOperationSurface.d.ts.map +1 -1
  989. package/dist/esm/components/resources/ResourceOperationSurface.js.map +1 -1
  990. package/dist/esm/components/resources/ResourceOwnedViewEmbeds.d.ts.map +1 -1
  991. package/dist/esm/components/resources/ResourceOwnedViewEmbeds.js.map +1 -1
  992. package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
  993. package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
  994. package/dist/esm/components/resources/card-action-placement.utils.d.ts.map +1 -1
  995. package/dist/esm/components/resources/card-action-placement.utils.js.map +1 -1
  996. package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
  997. package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
  998. package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -1
  999. package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -1
  1000. package/dist/esm/components/resources/collection-view-mode.frontend.d.ts.map +1 -1
  1001. package/dist/esm/components/resources/collection-view-mode.frontend.js.map +1 -1
  1002. package/dist/esm/components/resources/component-props.resources-layout.frontend.schemas.d.ts.map +1 -1
  1003. package/dist/esm/components/resources/component-props.resources-layout.frontend.schemas.js.map +1 -1
  1004. package/dist/esm/components/resources/embeds/ComposedChildrenRegistry.d.ts.map +1 -1
  1005. package/dist/esm/components/resources/embeds/ComposedChildrenRegistry.js.map +1 -1
  1006. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
  1007. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.js.map +1 -1
  1008. package/dist/esm/components/resources/embeds/EmbeddedResourceHostContext.d.ts.map +1 -1
  1009. package/dist/esm/components/resources/embeds/EmbeddedResourceHostContext.js.map +1 -1
  1010. package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
  1011. package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
  1012. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
  1013. package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
  1014. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
  1015. package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
  1016. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
  1017. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
  1018. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
  1019. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
  1020. package/dist/esm/components/resources/inserted-resource-view.frontend.utils.d.ts.map +1 -1
  1021. package/dist/esm/components/resources/inserted-resource-view.frontend.utils.js.map +1 -1
  1022. package/dist/esm/components/resources/resource-operation-custom-view.contracts.d.ts.map +1 -1
  1023. package/dist/esm/components/resources/resource-operation-custom-view.contracts.js.map +1 -1
  1024. package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
  1025. package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
  1026. package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
  1027. package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
  1028. package/dist/esm/components/resources/skeleton/ArrayItemTemplate.d.ts.map +1 -1
  1029. package/dist/esm/components/resources/skeleton/ArrayItemTemplate.js.map +1 -1
  1030. package/dist/esm/components/resources/skeleton/DiscriminatorSwitch.d.ts.map +1 -1
  1031. package/dist/esm/components/resources/skeleton/DiscriminatorSwitch.js.map +1 -1
  1032. package/dist/esm/components/resources/skeleton/DisplayDiscriminatorSwitch.d.ts.map +1 -1
  1033. package/dist/esm/components/resources/skeleton/DisplayDiscriminatorSwitch.js.map +1 -1
  1034. package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
  1035. package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
  1036. package/dist/esm/components/resources/skeleton/Divider.d.ts.map +1 -1
  1037. package/dist/esm/components/resources/skeleton/Divider.js.map +1 -1
  1038. package/dist/esm/components/resources/skeleton/FieldScopeContext.d.ts.map +1 -1
  1039. package/dist/esm/components/resources/skeleton/FieldScopeContext.js.map +1 -1
  1040. package/dist/esm/components/resources/skeleton/FormErrorSummarySlot.d.ts.map +1 -1
  1041. package/dist/esm/components/resources/skeleton/FormErrorSummarySlot.js.map +1 -1
  1042. package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
  1043. package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
  1044. package/dist/esm/components/resources/skeleton/FormLayoutSlotContext.d.ts.map +1 -1
  1045. package/dist/esm/components/resources/skeleton/FormLayoutSlotContext.js.map +1 -1
  1046. package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
  1047. package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
  1048. package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
  1049. package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
  1050. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
  1051. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
  1052. package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
  1053. package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
  1054. package/dist/esm/components/resources/skeleton/Section.shared.d.ts.map +1 -1
  1055. package/dist/esm/components/resources/skeleton/Section.shared.js.map +1 -1
  1056. package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
  1057. package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
  1058. package/dist/esm/components/resources/skeleton/SectionHostHeadingContext.d.ts.map +1 -1
  1059. package/dist/esm/components/resources/skeleton/SectionHostHeadingContext.js.map +1 -1
  1060. package/dist/esm/components/resources/skeleton/SectionPresentationContext.d.ts.map +1 -1
  1061. package/dist/esm/components/resources/skeleton/SectionPresentationContext.js.map +1 -1
  1062. package/dist/esm/components/resources/skeleton/SubmitButton.d.ts.map +1 -1
  1063. package/dist/esm/components/resources/skeleton/SubmitButton.js.map +1 -1
  1064. package/dist/esm/components/resources/skeleton/SummaryHeader.d.ts.map +1 -1
  1065. package/dist/esm/components/resources/skeleton/SummaryHeader.js.map +1 -1
  1066. package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts.map +1 -1
  1067. package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
  1068. package/dist/esm/components/resources/skeleton/SummaryMeta.d.ts.map +1 -1
  1069. package/dist/esm/components/resources/skeleton/SummaryMeta.js.map +1 -1
  1070. package/dist/esm/components/resources/skeleton/SummaryTitle.d.ts.map +1 -1
  1071. package/dist/esm/components/resources/skeleton/SummaryTitle.js.map +1 -1
  1072. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
  1073. package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
  1074. package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
  1075. package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
  1076. package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
  1077. package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
  1078. package/dist/esm/components/resources/skeleton/WizardStepFieldsContext.d.ts.map +1 -1
  1079. package/dist/esm/components/resources/skeleton/WizardStepFieldsContext.js.map +1 -1
  1080. package/dist/esm/components/resources/skeleton/section-consolidation.shared.d.ts.map +1 -1
  1081. package/dist/esm/components/resources/skeleton/section-consolidation.shared.js.map +1 -1
  1082. package/dist/esm/components/resources/skeleton/section-consolidation.utils.d.ts.map +1 -1
  1083. package/dist/esm/components/resources/skeleton/section-consolidation.utils.js.map +1 -1
  1084. package/dist/esm/components/resources/useInlineSearch.d.ts.map +1 -1
  1085. package/dist/esm/components/resources/useInlineSearch.js.map +1 -1
  1086. package/dist/esm/components/resources/useLongPress.d.ts.map +1 -1
  1087. package/dist/esm/components/resources/useLongPress.js.map +1 -1
  1088. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
  1089. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
  1090. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.d.ts.map +1 -1
  1091. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js.map +1 -1
  1092. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.d.ts.map +1 -1
  1093. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
  1094. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Search.d.ts.map +1 -1
  1095. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Search.js.map +1 -1
  1096. package/dist/esm/components/resources-fields/resource-reference/ResourceFieldDisplay_ResourceReference.d.ts.map +1 -1
  1097. package/dist/esm/components/resources-fields/resource-reference/ResourceFieldDisplay_ResourceReference.js.map +1 -1
  1098. package/dist/esm/components/resources-fields/resource-reference/ResourceFieldEdit_ResourceReference.d.ts.map +1 -1
  1099. package/dist/esm/components/resources-fields/resource-reference/ResourceFieldEdit_ResourceReference.js.map +1 -1
  1100. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
  1101. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
  1102. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
  1103. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
  1104. package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
  1105. package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
  1106. package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
  1107. package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
  1108. package/dist/esm/components/sections/accordion.d.ts.map +1 -1
  1109. package/dist/esm/components/sections/accordion.js.map +1 -1
  1110. package/dist/esm/components/sections/card.d.ts.map +1 -1
  1111. package/dist/esm/components/sections/card.js.map +1 -1
  1112. package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
  1113. package/dist/esm/components/sections/collapsible.js.map +1 -1
  1114. package/dist/esm/components/sections/content-section.d.ts.map +1 -1
  1115. package/dist/esm/components/sections/content-section.js.map +1 -1
  1116. package/dist/esm/components/sections/pagination.d.ts.map +1 -1
  1117. package/dist/esm/components/sections/pagination.js.map +1 -1
  1118. package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
  1119. package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
  1120. package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
  1121. package/dist/esm/components/sections/stacked-layout.js.map +1 -1
  1122. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  1123. package/dist/esm/components/sections/stepper.js.map +1 -1
  1124. package/dist/esm/components/sections/surface.d.ts.map +1 -1
  1125. package/dist/esm/components/sections/surface.js.map +1 -1
  1126. package/dist/esm/components/sections/table.d.ts.map +1 -1
  1127. package/dist/esm/components/sections/table.js.map +1 -1
  1128. package/dist/esm/components/sections/tabs.d.ts.map +1 -1
  1129. package/dist/esm/components/sections/tabs.js.map +1 -1
  1130. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -1
  1131. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -1
  1132. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -1
  1133. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -1
  1134. package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
  1135. package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
  1136. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
  1137. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
  1138. package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
  1139. package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
  1140. package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
  1141. package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
  1142. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
  1143. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
  1144. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
  1145. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
  1146. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
  1147. package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
  1148. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
  1149. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
  1150. package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
  1151. package/dist/esm/components/settings/SettingsHub.js.map +1 -1
  1152. package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
  1153. package/dist/esm/components/settings/SettingsHub.labels.js.map +1 -1
  1154. package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
  1155. package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
  1156. package/dist/esm/components/settings/SettingsSectionNavigationHost.d.ts.map +1 -1
  1157. package/dist/esm/components/settings/SettingsSectionNavigationHost.js.map +1 -1
  1158. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -1
  1159. package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -1
  1160. package/dist/esm/components/typography/heading.d.ts.map +1 -1
  1161. package/dist/esm/components/typography/heading.js.map +1 -1
  1162. package/dist/esm/components/typography/label.d.ts.map +1 -1
  1163. package/dist/esm/components/typography/label.js.map +1 -1
  1164. package/dist/esm/components/typography/link.d.ts.map +1 -1
  1165. package/dist/esm/components/typography/link.js.map +1 -1
  1166. package/dist/esm/components/typography/text.d.ts.map +1 -1
  1167. package/dist/esm/components/typography/text.js.map +1 -1
  1168. package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
  1169. package/dist/esm/components/typography/truncated-text.js.map +1 -1
  1170. package/dist/esm/components/views/ViewLayout_Header.d.ts.map +1 -1
  1171. package/dist/esm/components/views/ViewLayout_Header.js.map +1 -1
  1172. package/dist/esm/components/views/ViewNotFound.d.ts.map +1 -1
  1173. package/dist/esm/components/views/ViewNotFound.js.map +1 -1
  1174. package/dist/esm/components/views/ViewNotFound.labels.d.ts.map +1 -1
  1175. package/dist/esm/components/views/ViewNotFound.labels.js.map +1 -1
  1176. package/dist/esm/components/views/chart-view/ChartEmptyState.d.ts.map +1 -1
  1177. package/dist/esm/components/views/chart-view/ChartEmptyState.js.map +1 -1
  1178. package/dist/esm/components/views/chart-view/ChartErrorState.d.ts.map +1 -1
  1179. package/dist/esm/components/views/chart-view/ChartErrorState.js.map +1 -1
  1180. package/dist/esm/components/views/chart-view/ChartLoadingSkeleton.d.ts.map +1 -1
  1181. package/dist/esm/components/views/chart-view/ChartLoadingSkeleton.js.map +1 -1
  1182. package/dist/esm/components/views/chart-view/ChartView.d.ts.map +1 -1
  1183. package/dist/esm/components/views/chart-view/ChartView.js.map +1 -1
  1184. package/dist/esm/components/views/chart-view/ChartView.labels.d.ts.map +1 -1
  1185. package/dist/esm/components/views/chart-view/ChartView.labels.js.map +1 -1
  1186. package/dist/esm/components/views/chart-view/ChartView.lazy.d.ts.map +1 -1
  1187. package/dist/esm/components/views/chart-view/ChartView.lazy.js.map +1 -1
  1188. package/dist/esm/components/views/chart-view/ChartWidget.d.ts.map +1 -1
  1189. package/dist/esm/components/views/chart-view/ChartWidget.js.map +1 -1
  1190. package/dist/esm/components/views/chart-view/ChartWidget.labels.d.ts.map +1 -1
  1191. package/dist/esm/components/views/chart-view/ChartWidget.labels.js.map +1 -1
  1192. package/dist/esm/components/views/chart-view/WildoEChart.d.ts.map +1 -1
  1193. package/dist/esm/components/views/chart-view/WildoEChart.js.map +1 -1
  1194. package/dist/esm/components/views/chart-view/chart-export.utils.d.ts.map +1 -1
  1195. package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
  1196. package/dist/esm/components/views/chart-view/chart-runtime.utils.d.ts.map +1 -1
  1197. package/dist/esm/components/views/chart-view/chart-runtime.utils.js.map +1 -1
  1198. package/dist/esm/components/views/chart-view/chart-theme-bridge.d.ts.map +1 -1
  1199. package/dist/esm/components/views/chart-view/chart-theme-bridge.js.map +1 -1
  1200. package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
  1201. package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
  1202. package/dist/esm/components/views/chart-view/dev/ChartView.example.d.ts.map +1 -1
  1203. package/dist/esm/components/views/chart-view/dev/ChartView.example.js.map +1 -1
  1204. package/dist/esm/components/views/chart-view/echarts-setup.d.ts.map +1 -1
  1205. package/dist/esm/components/views/chart-view/echarts-setup.js.map +1 -1
  1206. package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts.map +1 -1
  1207. package/dist/esm/components/views/chart-view/enum-color-bridge.js.map +1 -1
  1208. package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts.map +1 -1
  1209. package/dist/esm/components/views/chart-view/option-builder/builder-utils.js.map +1 -1
  1210. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.d.ts.map +1 -1
  1211. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js.map +1 -1
  1212. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.d.ts.map +1 -1
  1213. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js.map +1 -1
  1214. package/dist/esm/components/views/chart-view/option-builder/builders/funnel.builder.d.ts.map +1 -1
  1215. package/dist/esm/components/views/chart-view/option-builder/builders/funnel.builder.js.map +1 -1
  1216. package/dist/esm/components/views/chart-view/option-builder/builders/gauge.builder.d.ts.map +1 -1
  1217. package/dist/esm/components/views/chart-view/option-builder/builders/gauge.builder.js.map +1 -1
  1218. package/dist/esm/components/views/chart-view/option-builder/builders/heatmap.builder.d.ts.map +1 -1
  1219. package/dist/esm/components/views/chart-view/option-builder/builders/heatmap.builder.js.map +1 -1
  1220. package/dist/esm/components/views/chart-view/option-builder/builders/hierarchical-family.builder.d.ts.map +1 -1
  1221. package/dist/esm/components/views/chart-view/option-builder/builders/hierarchical-family.builder.js.map +1 -1
  1222. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.d.ts.map +1 -1
  1223. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js.map +1 -1
  1224. package/dist/esm/components/views/chart-view/option-builder/builders/parallel.builder.d.ts.map +1 -1
  1225. package/dist/esm/components/views/chart-view/option-builder/builders/parallel.builder.js.map +1 -1
  1226. package/dist/esm/components/views/chart-view/option-builder/builders/pie-family.builder.d.ts.map +1 -1
  1227. package/dist/esm/components/views/chart-view/option-builder/builders/pie-family.builder.js.map +1 -1
  1228. package/dist/esm/components/views/chart-view/option-builder/builders/radar.builder.d.ts.map +1 -1
  1229. package/dist/esm/components/views/chart-view/option-builder/builders/radar.builder.js.map +1 -1
  1230. package/dist/esm/components/views/chart-view/option-builder/builders/sankey.builder.d.ts.map +1 -1
  1231. package/dist/esm/components/views/chart-view/option-builder/builders/sankey.builder.js.map +1 -1
  1232. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.d.ts.map +1 -1
  1233. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js.map +1 -1
  1234. package/dist/esm/components/views/chart-view/option-builder/builders/statistical-family.builder.d.ts.map +1 -1
  1235. package/dist/esm/components/views/chart-view/option-builder/builders/statistical-family.builder.js.map +1 -1
  1236. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts.map +1 -1
  1237. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.js.map +1 -1
  1238. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts.map +1 -1
  1239. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js.map +1 -1
  1240. package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -1
  1241. package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -1
  1242. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
  1243. package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
  1244. package/dist/esm/components/views/composite-view/CompositeView.d.ts.map +1 -1
  1245. package/dist/esm/components/views/composite-view/CompositeView.js.map +1 -1
  1246. package/dist/esm/components/views/composite-view/CompositeViewContext.d.ts.map +1 -1
  1247. package/dist/esm/components/views/composite-view/CompositeViewContext.js.map +1 -1
  1248. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
  1249. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
  1250. package/dist/esm/components/views/composite-view/useHostRecordDerivedParentContext.d.ts.map +1 -1
  1251. package/dist/esm/components/views/composite-view/useHostRecordDerivedParentContext.js.map +1 -1
  1252. package/dist/esm/components/views/execution-view/ExecutionView.d.ts.map +1 -1
  1253. package/dist/esm/components/views/execution-view/ExecutionView.js.map +1 -1
  1254. package/dist/esm/components/views/execution-view/ExecutionView.labels.d.ts.map +1 -1
  1255. package/dist/esm/components/views/execution-view/ExecutionView.labels.js.map +1 -1
  1256. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
  1257. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js.map +1 -1
  1258. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts.map +1 -1
  1259. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
  1260. package/dist/esm/components/views/full-custom-view/FullCustomView.d.ts.map +1 -1
  1261. package/dist/esm/components/views/full-custom-view/FullCustomView.js.map +1 -1
  1262. package/dist/esm/components/views/onboarding-view/OnboardingView.d.ts.map +1 -1
  1263. package/dist/esm/components/views/onboarding-view/OnboardingView.js.map +1 -1
  1264. package/dist/esm/components/views/onboarding-view/OnboardingView.labels.d.ts.map +1 -1
  1265. package/dist/esm/components/views/onboarding-view/OnboardingView.labels.js.map +1 -1
  1266. package/dist/esm/components/views/onboarding-view/onboarding-view.utils.d.ts.map +1 -1
  1267. package/dist/esm/components/views/onboarding-view/onboarding-view.utils.js.map +1 -1
  1268. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +6 -3
  1269. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
  1270. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +7 -4
  1271. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -1
  1272. package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
  1273. package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
  1274. package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
  1275. package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
  1276. package/dist/esm/core/app-shell/app-shell.utils.d.ts.map +1 -1
  1277. package/dist/esm/core/app-shell/app-shell.utils.js.map +1 -1
  1278. package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
  1279. package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
  1280. package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
  1281. package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
  1282. package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
  1283. package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
  1284. package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.d.ts.map +1 -1
  1285. package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.js.map +1 -1
  1286. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
  1287. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
  1288. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.d.ts.map +1 -1
  1289. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js.map +1 -1
  1290. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts.map +1 -1
  1291. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
  1292. package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
  1293. package/dist/esm/core/billing/BillingContext.js.map +1 -1
  1294. package/dist/esm/core/billing/BillingErrorNotifier.d.ts.map +1 -1
  1295. package/dist/esm/core/billing/BillingErrorNotifier.js.map +1 -1
  1296. package/dist/esm/core/billing/billing-launcher.d.ts.map +1 -1
  1297. package/dist/esm/core/billing/billing-launcher.js.map +1 -1
  1298. package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
  1299. package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
  1300. package/dist/esm/core/billing/useBilling.d.ts.map +1 -1
  1301. package/dist/esm/core/billing/useBilling.js.map +1 -1
  1302. package/dist/esm/core/billing/useBillingAction.d.ts.map +1 -1
  1303. package/dist/esm/core/billing/useBillingAction.js.map +1 -1
  1304. package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
  1305. package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
  1306. package/dist/esm/core/billing/useSafeBillingActionExecutor.d.ts.map +1 -1
  1307. package/dist/esm/core/billing/useSafeBillingActionExecutor.js.map +1 -1
  1308. package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
  1309. package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
  1310. package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
  1311. package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
  1312. package/dist/esm/core/commons/devices.frontend.schemas.d.ts.map +1 -1
  1313. package/dist/esm/core/commons/devices.frontend.schemas.js.map +1 -1
  1314. package/dist/esm/core/commons/local-storage.frontend.schemas.d.ts.map +1 -1
  1315. package/dist/esm/core/commons/local-storage.frontend.schemas.js.map +1 -1
  1316. package/dist/esm/core/commons/window-event.frontend.schemas.d.ts.map +1 -1
  1317. package/dist/esm/core/commons/window-event.frontend.schemas.js.map +1 -1
  1318. package/dist/esm/core/companion/companion-exports.frontend.definitions.d.ts.map +1 -1
  1319. package/dist/esm/core/companion/companion-exports.frontend.definitions.js.map +1 -1
  1320. package/dist/esm/core/components-registry/ComponentNotInjected.d.ts.map +1 -1
  1321. package/dist/esm/core/components-registry/ComponentNotInjected.js.map +1 -1
  1322. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
  1323. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
  1324. package/dist/esm/core/components-registry/component-registry-loader.frontend.service.d.ts.map +1 -1
  1325. package/dist/esm/core/components-registry/component-registry-loader.frontend.service.js.map +1 -1
  1326. package/dist/esm/core/components-registry/component-registry.frontend.schemas.d.ts.map +1 -1
  1327. package/dist/esm/core/components-registry/component-registry.frontend.schemas.js.map +1 -1
  1328. package/dist/esm/core/components-registry/component-registry.frontend.service.d.ts.map +1 -1
  1329. package/dist/esm/core/components-registry/component-registry.frontend.service.js.map +1 -1
  1330. package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.map +1 -1
  1331. package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
  1332. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
  1333. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
  1334. package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
  1335. package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
  1336. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
  1337. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
  1338. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
  1339. package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
  1340. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
  1341. package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
  1342. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +14 -14
  1343. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
  1344. package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
  1345. package/dist/esm/core/config/composite-view.schemas.d.ts +4 -4
  1346. package/dist/esm/core/config/composite-view.schemas.d.ts.map +1 -1
  1347. package/dist/esm/core/config/composite-view.schemas.js.map +1 -1
  1348. package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
  1349. package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
  1350. package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
  1351. package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
  1352. package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
  1353. package/dist/esm/core/config/execution-view.schemas.js.map +1 -1
  1354. package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
  1355. package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
  1356. package/dist/esm/core/config/full-custom-view.schemas.d.ts.map +1 -1
  1357. package/dist/esm/core/config/full-custom-view.schemas.js.map +1 -1
  1358. package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
  1359. package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
  1360. package/dist/esm/core/config/inserted-view.frontend.schemas.d.ts.map +1 -1
  1361. package/dist/esm/core/config/inserted-view.frontend.schemas.js.map +1 -1
  1362. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
  1363. package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
  1364. package/dist/esm/core/config/onboarding-view.frontend.schemas.d.ts.map +1 -1
  1365. package/dist/esm/core/config/onboarding-view.frontend.schemas.js.map +1 -1
  1366. package/dist/esm/core/config/resource-owned-view-resolution.frontend.utils.d.ts.map +1 -1
  1367. package/dist/esm/core/config/resource-owned-view-resolution.frontend.utils.js.map +1 -1
  1368. package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts.map +1 -1
  1369. package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
  1370. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts.map +1 -1
  1371. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js.map +1 -1
  1372. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
  1373. package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
  1374. package/dist/esm/core/config/useSettingsHubConfig.d.ts.map +1 -1
  1375. package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
  1376. package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
  1377. package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
  1378. package/dist/esm/core/config/verify-feature-references.frontend.d.ts.map +1 -1
  1379. package/dist/esm/core/config/verify-feature-references.frontend.js.map +1 -1
  1380. package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
  1381. package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
  1382. package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
  1383. package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
  1384. package/dist/esm/core/config/view-label-declaration.schemas.d.ts.map +1 -1
  1385. package/dist/esm/core/config/view-label-declaration.schemas.js.map +1 -1
  1386. package/dist/esm/core/config/views-frontend.schemas.d.ts.map +1 -1
  1387. package/dist/esm/core/config/views-frontend.schemas.js.map +1 -1
  1388. package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
  1389. package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
  1390. package/dist/esm/core/errors/ErrorBoundary.d.ts.map +1 -1
  1391. package/dist/esm/core/errors/ErrorBoundary.js.map +1 -1
  1392. package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
  1393. package/dist/esm/core/errors/ErrorContext.js.map +1 -1
  1394. package/dist/esm/core/errors/ErrorModalContent.d.ts.map +1 -1
  1395. package/dist/esm/core/errors/ErrorModalContent.js.map +1 -1
  1396. package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
  1397. package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
  1398. package/dist/esm/core/errors/RouterErrorBoundary.d.ts.map +1 -1
  1399. package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
  1400. package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
  1401. package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
  1402. package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
  1403. package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
  1404. package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
  1405. package/dist/esm/core/errors/errors.frontend.schemas.js.map +1 -1
  1406. package/dist/esm/core/errors/http-error-behavior.frontend.schemas.d.ts.map +1 -1
  1407. package/dist/esm/core/errors/http-error-behavior.frontend.schemas.js.map +1 -1
  1408. package/dist/esm/core/errors/useError.d.ts.map +1 -1
  1409. package/dist/esm/core/errors/useError.js.map +1 -1
  1410. package/dist/esm/core/errors/useUserFacingErrorMessage.d.ts.map +1 -1
  1411. package/dist/esm/core/errors/useUserFacingErrorMessage.js.map +1 -1
  1412. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
  1413. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
  1414. package/dist/esm/core/errors/withErrorBoundary.d.ts.map +1 -1
  1415. package/dist/esm/core/errors/withErrorBoundary.js.map +1 -1
  1416. package/dist/esm/core/events/EventBusContext.d.ts.map +1 -1
  1417. package/dist/esm/core/events/EventBusContext.js.map +1 -1
  1418. package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
  1419. package/dist/esm/core/events/NotificationContext.js.map +1 -1
  1420. package/dist/esm/core/events/event-bus.frontend.service.d.ts.map +1 -1
  1421. package/dist/esm/core/events/event-bus.frontend.service.js.map +1 -1
  1422. package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
  1423. package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
  1424. package/dist/esm/core/events/notification-display-policy.frontend.schemas.d.ts.map +1 -1
  1425. package/dist/esm/core/events/notification-display-policy.frontend.schemas.js.map +1 -1
  1426. package/dist/esm/core/events/toast.d.ts.map +1 -1
  1427. package/dist/esm/core/events/toast.js.map +1 -1
  1428. package/dist/esm/core/events/useEventBus.d.ts.map +1 -1
  1429. package/dist/esm/core/events/useEventBus.js.map +1 -1
  1430. package/dist/esm/core/events/useNotification.d.ts.map +1 -1
  1431. package/dist/esm/core/events/useNotification.js.map +1 -1
  1432. package/dist/esm/core/execution/ExecutionDirtyMarkerScopeContext.d.ts.map +1 -1
  1433. package/dist/esm/core/execution/ExecutionDirtyMarkerScopeContext.js.map +1 -1
  1434. package/dist/esm/core/execution/ExecutionRuntimeContext.d.ts.map +1 -1
  1435. package/dist/esm/core/execution/ExecutionRuntimeContext.js.map +1 -1
  1436. package/dist/esm/core/execution/execution-anchor.utils.d.ts.map +1 -1
  1437. package/dist/esm/core/execution/execution-anchor.utils.js.map +1 -1
  1438. package/dist/esm/core/execution/execution-dirty-markers.utils.d.ts.map +1 -1
  1439. package/dist/esm/core/execution/execution-dirty-markers.utils.js.map +1 -1
  1440. package/dist/esm/core/execution/execution-failure-handling.utils.d.ts.map +1 -1
  1441. package/dist/esm/core/execution/execution-failure-handling.utils.js.map +1 -1
  1442. package/dist/esm/core/execution/execution-outcome-emission.utils.d.ts.map +1 -1
  1443. package/dist/esm/core/execution/execution-outcome-emission.utils.js.map +1 -1
  1444. package/dist/esm/core/execution/execution-participation.utils.d.ts.map +1 -1
  1445. package/dist/esm/core/execution/execution-participation.utils.js.map +1 -1
  1446. package/dist/esm/core/execution/useExecution.d.ts.map +1 -1
  1447. package/dist/esm/core/execution/useExecution.js.map +1 -1
  1448. package/dist/esm/core/execution/useExecutionDirtyBridge.d.ts.map +1 -1
  1449. package/dist/esm/core/execution/useExecutionDirtyBridge.js.map +1 -1
  1450. package/dist/esm/core/execution/useExecutionParticipationDataPrefetch.d.ts.map +1 -1
  1451. package/dist/esm/core/execution/useExecutionParticipationDataPrefetch.js.map +1 -1
  1452. package/dist/esm/core/execution/useExecutionParticipationPrefetch.d.ts.map +1 -1
  1453. package/dist/esm/core/execution/useExecutionParticipationPrefetch.js.map +1 -1
  1454. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
  1455. package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
  1456. package/dist/esm/core/execution/useExecutionResourceOperationContextBuilder.d.ts.map +1 -1
  1457. package/dist/esm/core/execution/useExecutionResourceOperationContextBuilder.js.map +1 -1
  1458. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
  1459. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
  1460. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -1
  1461. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -1
  1462. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -1
  1463. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -1
  1464. package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -1
  1465. package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -1
  1466. package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
  1467. package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
  1468. package/dist/esm/core/external-providers/frontend-provider-display-label.frontend.utils.d.ts.map +1 -1
  1469. package/dist/esm/core/external-providers/frontend-provider-display-label.frontend.utils.js.map +1 -1
  1470. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts.map +1 -1
  1471. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
  1472. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -1
  1473. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -1
  1474. package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.d.ts.map +1 -1
  1475. package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.js.map +1 -1
  1476. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
  1477. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -1
  1478. package/dist/esm/core/features/FeatureGate.d.ts.map +1 -1
  1479. package/dist/esm/core/features/FeatureGate.js.map +1 -1
  1480. package/dist/esm/core/features/FeatureRouteGuard.d.ts.map +1 -1
  1481. package/dist/esm/core/features/FeatureRouteGuard.js.map +1 -1
  1482. package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
  1483. package/dist/esm/core/features/FeaturesContext.js.map +1 -1
  1484. package/dist/esm/core/features/feature-gate-surface.example.d.ts.map +1 -1
  1485. package/dist/esm/core/features/feature-gate-surface.example.js.map +1 -1
  1486. package/dist/esm/core/features/feature-unavailability.frontend.utils.d.ts.map +1 -1
  1487. package/dist/esm/core/features/feature-unavailability.frontend.utils.js.map +1 -1
  1488. package/dist/esm/core/features/useFeatureAvailability.d.ts.map +1 -1
  1489. package/dist/esm/core/features/useFeatureAvailability.js.map +1 -1
  1490. package/dist/esm/core/features/useFeatureGate.d.ts.map +1 -1
  1491. package/dist/esm/core/features/useFeatureGate.js.map +1 -1
  1492. package/dist/esm/core/features/useFeatures.d.ts.map +1 -1
  1493. package/dist/esm/core/features/useFeatures.js.map +1 -1
  1494. package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
  1495. package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
  1496. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
  1497. package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
  1498. package/dist/esm/core/flows-actors/useFlowsActors.d.ts.map +1 -1
  1499. package/dist/esm/core/flows-actors/useFlowsActors.js.map +1 -1
  1500. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -1
  1501. package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -1
  1502. package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
  1503. package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
  1504. package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
  1505. package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
  1506. package/dist/esm/core/guidance/guidance-audience.frontend.utils.d.ts.map +1 -1
  1507. package/dist/esm/core/guidance/guidance-audience.frontend.utils.js.map +1 -1
  1508. package/dist/esm/core/guidance/guidance-resource-compiler.shared.utils.d.ts.map +1 -1
  1509. package/dist/esm/core/guidance/guidance-resource-compiler.shared.utils.js.map +1 -1
  1510. package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.d.ts.map +1 -1
  1511. package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.js.map +1 -1
  1512. package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.labels.d.ts.map +1 -1
  1513. package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.labels.js.map +1 -1
  1514. package/dist/esm/core/guidance/renderers/GuidanceBadge.d.ts.map +1 -1
  1515. package/dist/esm/core/guidance/renderers/GuidanceBadge.js.map +1 -1
  1516. package/dist/esm/core/guidance/renderers/GuidanceBadge.labels.d.ts.map +1 -1
  1517. package/dist/esm/core/guidance/renderers/GuidanceBadge.labels.js.map +1 -1
  1518. package/dist/esm/core/guidance/renderers/GuidanceBanner.d.ts.map +1 -1
  1519. package/dist/esm/core/guidance/renderers/GuidanceBanner.js.map +1 -1
  1520. package/dist/esm/core/guidance/renderers/GuidanceBanner.labels.d.ts.map +1 -1
  1521. package/dist/esm/core/guidance/renderers/GuidanceBanner.labels.js.map +1 -1
  1522. package/dist/esm/core/guidance/renderers/GuidanceCard.d.ts.map +1 -1
  1523. package/dist/esm/core/guidance/renderers/GuidanceCard.js.map +1 -1
  1524. package/dist/esm/core/guidance/renderers/GuidanceCard.labels.d.ts.map +1 -1
  1525. package/dist/esm/core/guidance/renderers/GuidanceCard.labels.js.map +1 -1
  1526. package/dist/esm/core/guidance/renderers/GuidanceChecklist.d.ts.map +1 -1
  1527. package/dist/esm/core/guidance/renderers/GuidanceChecklist.js.map +1 -1
  1528. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.d.ts.map +1 -1
  1529. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
  1530. package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.d.ts.map +1 -1
  1531. package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.js.map +1 -1
  1532. package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.labels.d.ts.map +1 -1
  1533. package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.labels.js.map +1 -1
  1534. package/dist/esm/core/guidance/renderers/GuidanceModal.d.ts.map +1 -1
  1535. package/dist/esm/core/guidance/renderers/GuidanceModal.js.map +1 -1
  1536. package/dist/esm/core/guidance/renderers/GuidanceModal.labels.d.ts.map +1 -1
  1537. package/dist/esm/core/guidance/renderers/GuidanceModal.labels.js.map +1 -1
  1538. package/dist/esm/core/guidance/renderers/GuidanceSurvey.d.ts.map +1 -1
  1539. package/dist/esm/core/guidance/renderers/GuidanceSurvey.js.map +1 -1
  1540. package/dist/esm/core/guidance/renderers/GuidanceSurvey.labels.d.ts.map +1 -1
  1541. package/dist/esm/core/guidance/renderers/GuidanceSurvey.labels.js.map +1 -1
  1542. package/dist/esm/core/guidance/renderers/GuidanceTooltip.d.ts.map +1 -1
  1543. package/dist/esm/core/guidance/renderers/GuidanceTooltip.js.map +1 -1
  1544. package/dist/esm/core/guidance/renderers/GuidanceTooltip.labels.d.ts.map +1 -1
  1545. package/dist/esm/core/guidance/renderers/GuidanceTooltip.labels.js.map +1 -1
  1546. package/dist/esm/core/guidance/renderers/GuidanceTour.d.ts.map +1 -1
  1547. package/dist/esm/core/guidance/renderers/GuidanceTour.js.map +1 -1
  1548. package/dist/esm/core/guidance/renderers/GuidanceTour.labels.d.ts.map +1 -1
  1549. package/dist/esm/core/guidance/renderers/GuidanceTour.labels.js.map +1 -1
  1550. package/dist/esm/core/guidance/useGuidance.d.ts.map +1 -1
  1551. package/dist/esm/core/guidance/useGuidance.js.map +1 -1
  1552. package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
  1553. package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
  1554. package/dist/esm/core/hotkey/HotkeyRegistryContext.d.ts.map +1 -1
  1555. package/dist/esm/core/hotkey/HotkeyRegistryContext.js.map +1 -1
  1556. package/dist/esm/core/hotkey/HotkeyShortcutsHelpDialog.d.ts.map +1 -1
  1557. package/dist/esm/core/hotkey/HotkeyShortcutsHelpDialog.js.map +1 -1
  1558. package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.d.ts.map +1 -1
  1559. package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.js.map +1 -1
  1560. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts.map +1 -1
  1561. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
  1562. package/dist/esm/core/hotkey/useHotkey.d.ts.map +1 -1
  1563. package/dist/esm/core/hotkey/useHotkey.js.map +1 -1
  1564. package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
  1565. package/dist/esm/core/i18n/I18nContext.js.map +1 -1
  1566. package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
  1567. package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
  1568. package/dist/esm/core/i18n/operation-title-resolution.utils.d.ts.map +1 -1
  1569. package/dist/esm/core/i18n/operation-title-resolution.utils.js.map +1 -1
  1570. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
  1571. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -1
  1572. package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
  1573. package/dist/esm/core/i18n/useI18n.js.map +1 -1
  1574. package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
  1575. package/dist/esm/core/icons/IconRegistryBridge.js.map +1 -1
  1576. package/dist/esm/core/icons/IconRegistryContext.d.ts.map +1 -1
  1577. package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
  1578. package/dist/esm/core/icons/icon-registry.frontend.definitions.d.ts.map +1 -1
  1579. package/dist/esm/core/icons/icon-registry.frontend.definitions.js.map +1 -1
  1580. package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
  1581. package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
  1582. package/dist/esm/core/icons/useIconRegistry.d.ts.map +1 -1
  1583. package/dist/esm/core/icons/useIconRegistry.js.map +1 -1
  1584. package/dist/esm/core/loading/AppLoadingGate.d.ts.map +1 -1
  1585. package/dist/esm/core/loading/AppLoadingGate.js.map +1 -1
  1586. package/dist/esm/core/loading/LoadingBarrier.d.ts.map +1 -1
  1587. package/dist/esm/core/loading/LoadingBarrier.js.map +1 -1
  1588. package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
  1589. package/dist/esm/core/loading/LoadingContext.js.map +1 -1
  1590. package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
  1591. package/dist/esm/core/loading/LoadingGate.js.map +1 -1
  1592. package/dist/esm/core/loading/loading-policy.frontend.schemas.d.ts.map +1 -1
  1593. package/dist/esm/core/loading/loading-policy.frontend.schemas.js.map +1 -1
  1594. package/dist/esm/core/loading/loading-scope.frontend.utils.d.ts.map +1 -1
  1595. package/dist/esm/core/loading/loading-scope.frontend.utils.js.map +1 -1
  1596. package/dist/esm/core/loading/loading-types.frontend.schemas.d.ts.map +1 -1
  1597. package/dist/esm/core/loading/loading-types.frontend.schemas.js.map +1 -1
  1598. package/dist/esm/core/loading/resolveLoadingPolicy.d.ts.map +1 -1
  1599. package/dist/esm/core/loading/resolveLoadingPolicy.js.map +1 -1
  1600. package/dist/esm/core/loading/useAppLoading.d.ts.map +1 -1
  1601. package/dist/esm/core/loading/useAppLoading.js.map +1 -1
  1602. package/dist/esm/core/loading/useComponentLoading.d.ts.map +1 -1
  1603. package/dist/esm/core/loading/useComponentLoading.js.map +1 -1
  1604. package/dist/esm/core/loading/useEmitLoadingScope.d.ts.map +1 -1
  1605. package/dist/esm/core/loading/useEmitLoadingScope.js.map +1 -1
  1606. package/dist/esm/core/loading/useLoading.d.ts.map +1 -1
  1607. package/dist/esm/core/loading/useLoading.js.map +1 -1
  1608. package/dist/esm/core/mode/AppModeContext.d.ts.map +1 -1
  1609. package/dist/esm/core/mode/AppModeContext.js.map +1 -1
  1610. package/dist/esm/core/mode/section-visibility.d.ts.map +1 -1
  1611. package/dist/esm/core/mode/section-visibility.js.map +1 -1
  1612. package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
  1613. package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
  1614. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.d.ts.map +1 -1
  1615. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
  1616. package/dist/esm/core/monitoring/analytics/AnalyticsScopeBridge.d.ts.map +1 -1
  1617. package/dist/esm/core/monitoring/analytics/AnalyticsScopeBridge.js.map +1 -1
  1618. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
  1619. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
  1620. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
  1621. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
  1622. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
  1623. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
  1624. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
  1625. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
  1626. package/dist/esm/core/monitoring/analytics/useAnalytics.d.ts.map +1 -1
  1627. package/dist/esm/core/monitoring/analytics/useAnalytics.js.map +1 -1
  1628. package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.d.ts.map +1 -1
  1629. package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.js.map +1 -1
  1630. package/dist/esm/core/monitoring/logger.frontend.service.d.ts.map +1 -1
  1631. package/dist/esm/core/monitoring/logger.frontend.service.js.map +1 -1
  1632. package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
  1633. package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
  1634. package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
  1635. package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
  1636. package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
  1637. package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
  1638. package/dist/esm/core/navigation/hosted-pane.constants.d.ts.map +1 -1
  1639. package/dist/esm/core/navigation/hosted-pane.constants.js.map +1 -1
  1640. package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
  1641. package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
  1642. package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
  1643. package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
  1644. package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -1
  1645. package/dist/esm/core/navigation/navigation-cascade.js.map +1 -1
  1646. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
  1647. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
  1648. package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -1
  1649. package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -1
  1650. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
  1651. package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
  1652. package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
  1653. package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
  1654. package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
  1655. package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
  1656. package/dist/esm/core/navigation/primary-destination-layout.d.ts.map +1 -1
  1657. package/dist/esm/core/navigation/primary-destination-layout.js.map +1 -1
  1658. package/dist/esm/core/navigation/split-fit.d.ts.map +1 -1
  1659. package/dist/esm/core/navigation/split-fit.js.map +1 -1
  1660. package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
  1661. package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
  1662. package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
  1663. package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
  1664. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -1
  1665. package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -1
  1666. package/dist/esm/core/navigation/useNavigationState.d.ts.map +1 -1
  1667. package/dist/esm/core/navigation/useNavigationState.js.map +1 -1
  1668. package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
  1669. package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
  1670. package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -1
  1671. package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -1
  1672. package/dist/esm/core/navigation/useSynchronousBrowserLocation.d.ts.map +1 -1
  1673. package/dist/esm/core/navigation/useSynchronousBrowserLocation.js.map +1 -1
  1674. package/dist/esm/core/navigation/useTransactionAwareSyncRetry.d.ts.map +1 -1
  1675. package/dist/esm/core/navigation/useTransactionAwareSyncRetry.js.map +1 -1
  1676. package/dist/esm/core/navigation/view-title-resolution.d.ts.map +1 -1
  1677. package/dist/esm/core/navigation/view-title-resolution.js.map +1 -1
  1678. package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -1
  1679. package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -1
  1680. package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
  1681. package/dist/esm/core/navigation/zone-collapse.js.map +1 -1
  1682. package/dist/esm/core/navigation/zone-content-geometry.d.ts.map +1 -1
  1683. package/dist/esm/core/navigation/zone-content-geometry.js.map +1 -1
  1684. package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
  1685. package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
  1686. package/dist/esm/core/navigation/zone-empty-behavior.d.ts.map +1 -1
  1687. package/dist/esm/core/navigation/zone-empty-behavior.js.map +1 -1
  1688. package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
  1689. package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
  1690. package/dist/esm/core/requests/api-readiness-checker.frontend.service.d.ts.map +1 -1
  1691. package/dist/esm/core/requests/api-readiness-checker.frontend.service.js.map +1 -1
  1692. package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
  1693. package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
  1694. package/dist/esm/core/requests/client-instance-id.frontend.service.d.ts.map +1 -1
  1695. package/dist/esm/core/requests/client-instance-id.frontend.service.js.map +1 -1
  1696. package/dist/esm/core/requests/network-backoff.frontend.utils.d.ts.map +1 -1
  1697. package/dist/esm/core/requests/network-backoff.frontend.utils.js.map +1 -1
  1698. package/dist/esm/core/requests/offline-replay-policy.frontend.d.ts.map +1 -1
  1699. package/dist/esm/core/requests/offline-replay-policy.frontend.js.map +1 -1
  1700. package/dist/esm/core/requests/request-cancellation.frontend.utils.d.ts.map +1 -1
  1701. package/dist/esm/core/requests/request-cancellation.frontend.utils.js.map +1 -1
  1702. package/dist/esm/core/requests/websockets/ConnectionStatusNotifier.d.ts.map +1 -1
  1703. package/dist/esm/core/requests/websockets/ConnectionStatusNotifier.js.map +1 -1
  1704. package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
  1705. package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
  1706. package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
  1707. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
  1708. package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
  1709. package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
  1710. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -1
  1711. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -1
  1712. package/dist/esm/core/requests/websockets/useResourceRoom.d.ts.map +1 -1
  1713. package/dist/esm/core/requests/websockets/useResourceRoom.js.map +1 -1
  1714. package/dist/esm/core/requests/websockets/useWebSocket.d.ts.map +1 -1
  1715. package/dist/esm/core/requests/websockets/useWebSocket.js.map +1 -1
  1716. package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.d.ts.map +1 -1
  1717. package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.js.map +1 -1
  1718. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
  1719. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
  1720. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
  1721. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
  1722. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
  1723. package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
  1724. package/dist/esm/core/resources/ResourceOperationViewContext.d.ts.map +1 -1
  1725. package/dist/esm/core/resources/ResourceOperationViewContext.js.map +1 -1
  1726. package/dist/esm/core/resources/ResourceOperationViewProvider.d.ts.map +1 -1
  1727. package/dist/esm/core/resources/ResourceOperationViewProvider.js.map +1 -1
  1728. package/dist/esm/core/resources/ResourceReadCacheBridge.d.ts.map +1 -1
  1729. package/dist/esm/core/resources/ResourceReadCacheBridge.js.map +1 -1
  1730. package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
  1731. package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
  1732. package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
  1733. package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
  1734. package/dist/esm/core/resources/bulk-failure-grouping.frontend.utils.d.ts.map +1 -1
  1735. package/dist/esm/core/resources/bulk-failure-grouping.frontend.utils.js.map +1 -1
  1736. package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts.map +1 -1
  1737. package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
  1738. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts.map +1 -1
  1739. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js.map +1 -1
  1740. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.d.ts.map +1 -1
  1741. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
  1742. package/dist/esm/core/resources/ephemeral-fields.utils.d.ts.map +1 -1
  1743. package/dist/esm/core/resources/ephemeral-fields.utils.js.map +1 -1
  1744. package/dist/esm/core/resources/file-serve-url.frontend.utils.d.ts.map +1 -1
  1745. package/dist/esm/core/resources/file-serve-url.frontend.utils.js.map +1 -1
  1746. package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
  1747. package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
  1748. package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
  1749. package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
  1750. package/dist/esm/core/resources/in-place/InPlaceOperationContext.d.ts.map +1 -1
  1751. package/dist/esm/core/resources/in-place/InPlaceOperationContext.js.map +1 -1
  1752. package/dist/esm/core/resources/operation-initiator-satisfaction.frontend.utils.d.ts.map +1 -1
  1753. package/dist/esm/core/resources/operation-initiator-satisfaction.frontend.utils.js.map +1 -1
  1754. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
  1755. package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
  1756. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
  1757. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
  1758. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
  1759. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
  1760. package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.map +1 -1
  1761. package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
  1762. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
  1763. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
  1764. package/dist/esm/core/resources/resource-operation-view.frontend.utils.d.ts.map +1 -1
  1765. package/dist/esm/core/resources/resource-operation-view.frontend.utils.js.map +1 -1
  1766. package/dist/esm/core/resources/resource-path.frontend.schemas.d.ts.map +1 -1
  1767. package/dist/esm/core/resources/resource-path.frontend.schemas.js.map +1 -1
  1768. package/dist/esm/core/resources/resource-read-cache.frontend.service.d.ts.map +1 -1
  1769. package/dist/esm/core/resources/resource-read-cache.frontend.service.js.map +1 -1
  1770. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
  1771. package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
  1772. package/dist/esm/core/resources/resources.frontend.schemas.d.ts +2 -2
  1773. package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
  1774. package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
  1775. package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
  1776. package/dist/esm/core/resources/rmm/HttpTransportAdapter.js.map +1 -1
  1777. package/dist/esm/core/resources/rmm/RMMRegistry.d.ts.map +1 -1
  1778. package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
  1779. package/dist/esm/core/resources/rmm/RMMRegistryContext.d.ts.map +1 -1
  1780. package/dist/esm/core/resources/rmm/RMMRegistryContext.js.map +1 -1
  1781. package/dist/esm/core/resources/rmm/RMMWebSocketBridge.d.ts.map +1 -1
  1782. package/dist/esm/core/resources/rmm/RMMWebSocketBridge.js.map +1 -1
  1783. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
  1784. package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
  1785. package/dist/esm/core/resources/rmm/canonical-read.frontend.utils.d.ts.map +1 -1
  1786. package/dist/esm/core/resources/rmm/canonical-read.frontend.utils.js.map +1 -1
  1787. package/dist/esm/core/resources/rmm/field-path.utils.d.ts.map +1 -1
  1788. package/dist/esm/core/resources/rmm/field-path.utils.js.map +1 -1
  1789. package/dist/esm/core/resources/rmm/mutation-error-report.utils.d.ts.map +1 -1
  1790. package/dist/esm/core/resources/rmm/mutation-error-report.utils.js.map +1 -1
  1791. package/dist/esm/core/resources/rmm/rmm-constants.d.ts.map +1 -1
  1792. package/dist/esm/core/resources/rmm/rmm-constants.js.map +1 -1
  1793. package/dist/esm/core/resources/rmm/rmm-noop-snapshot.d.ts.map +1 -1
  1794. package/dist/esm/core/resources/rmm/rmm-noop-snapshot.js.map +1 -1
  1795. package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
  1796. package/dist/esm/core/resources/rmm/types.js.map +1 -1
  1797. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
  1798. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
  1799. package/dist/esm/core/resources/rmm/useListInvalidation.d.ts.map +1 -1
  1800. package/dist/esm/core/resources/rmm/useListInvalidation.js.map +1 -1
  1801. package/dist/esm/core/resources/rmm/useRMMEventHandler.d.ts.map +1 -1
  1802. package/dist/esm/core/resources/rmm/useRMMEventHandler.js.map +1 -1
  1803. package/dist/esm/core/resources/rmm/useRMMSnapshot.d.ts.map +1 -1
  1804. package/dist/esm/core/resources/rmm/useRMMSnapshot.js.map +1 -1
  1805. package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
  1806. package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
  1807. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
  1808. package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
  1809. package/dist/esm/core/resources/useAuthedFileObjectUrl.frontend.hook.d.ts.map +1 -1
  1810. package/dist/esm/core/resources/useAuthedFileObjectUrl.frontend.hook.js.map +1 -1
  1811. package/dist/esm/core/resources/useBulkJobProgress.d.ts.map +1 -1
  1812. package/dist/esm/core/resources/useBulkJobProgress.js.map +1 -1
  1813. package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
  1814. package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
  1815. package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -1
  1816. package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -1
  1817. package/dist/esm/core/resources/useOperationEnabled.d.ts.map +1 -1
  1818. package/dist/esm/core/resources/useOperationEnabled.js.map +1 -1
  1819. package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
  1820. package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
  1821. package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
  1822. package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
  1823. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts.map +1 -1
  1824. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js.map +1 -1
  1825. package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
  1826. package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
  1827. package/dist/esm/core/resources/useResourceRegistry.d.ts.map +1 -1
  1828. package/dist/esm/core/resources/useResourceRegistry.js.map +1 -1
  1829. package/dist/esm/core/resources/useResourceSelection.d.ts.map +1 -1
  1830. package/dist/esm/core/resources/useResourceSelection.js.map +1 -1
  1831. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
  1832. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js.map +1 -1
  1833. package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
  1834. package/dist/esm/core/runtime/AppRouter.js.map +1 -1
  1835. package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
  1836. package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
  1837. package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
  1838. package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
  1839. package/dist/esm/core/runtime/StartupFailureScreen.d.ts.map +1 -1
  1840. package/dist/esm/core/runtime/StartupFailureScreen.js.map +1 -1
  1841. package/dist/esm/core/runtime/app-config-overrides.frontend.definitions.d.ts.map +1 -1
  1842. package/dist/esm/core/runtime/app-config-overrides.frontend.definitions.js.map +1 -1
  1843. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
  1844. package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
  1845. package/dist/esm/core/runtime/env-variable-loader.frontend.service.d.ts.map +1 -1
  1846. package/dist/esm/core/runtime/env-variable-loader.frontend.service.js.map +1 -1
  1847. package/dist/esm/core/runtime/frontend-companion-resource-inputs.d.ts.map +1 -1
  1848. package/dist/esm/core/runtime/frontend-companion-resource-inputs.js.map +1 -1
  1849. package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
  1850. package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
  1851. package/dist/esm/core/runtime/runtime.frontend.schemas.d.ts.map +1 -1
  1852. package/dist/esm/core/runtime/runtime.frontend.schemas.js.map +1 -1
  1853. package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
  1854. package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
  1855. package/dist/esm/core/runtime/startup-failure-copy.frontend.d.ts.map +1 -1
  1856. package/dist/esm/core/runtime/startup-failure-copy.frontend.js.map +1 -1
  1857. package/dist/esm/core/runtime/useApplication.d.ts.map +1 -1
  1858. package/dist/esm/core/runtime/useApplication.js.map +1 -1
  1859. package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
  1860. package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
  1861. package/dist/esm/core/scope/scope.frontend.schemas.d.ts.map +1 -1
  1862. package/dist/esm/core/scope/scope.frontend.schemas.js.map +1 -1
  1863. package/dist/esm/core/scope/scope.utils.frontend.service.d.ts.map +1 -1
  1864. package/dist/esm/core/scope/scope.utils.frontend.service.js.map +1 -1
  1865. package/dist/esm/core/scope/useAppScope.d.ts.map +1 -1
  1866. package/dist/esm/core/scope/useAppScope.js.map +1 -1
  1867. package/dist/esm/core/security/AnonymousSessionContext.d.ts.map +1 -1
  1868. package/dist/esm/core/security/AnonymousSessionContext.js.map +1 -1
  1869. package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
  1870. package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
  1871. package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
  1872. package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
  1873. package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
  1874. package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
  1875. package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
  1876. package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
  1877. package/dist/esm/core/security/auth-session.utils.d.ts.map +1 -1
  1878. package/dist/esm/core/security/auth-session.utils.js.map +1 -1
  1879. package/dist/esm/core/security/consent-gate.frontend.utils.d.ts.map +1 -1
  1880. package/dist/esm/core/security/consent-gate.frontend.utils.js.map +1 -1
  1881. package/dist/esm/core/security/cross-frontend-handoff.frontend.service.d.ts.map +1 -1
  1882. package/dist/esm/core/security/cross-frontend-handoff.frontend.service.js.map +1 -1
  1883. package/dist/esm/core/security/federated-reauthentication.frontend.d.ts.map +1 -1
  1884. package/dist/esm/core/security/federated-reauthentication.frontend.js.map +1 -1
  1885. package/dist/esm/core/security/jwt.frontend.utils.d.ts.map +1 -1
  1886. package/dist/esm/core/security/jwt.frontend.utils.js.map +1 -1
  1887. package/dist/esm/core/security/organization-onboarding.frontend.utils.d.ts.map +1 -1
  1888. package/dist/esm/core/security/organization-onboarding.frontend.utils.js.map +1 -1
  1889. package/dist/esm/core/security/pending-mfa-session-storage.frontend.utils.d.ts.map +1 -1
  1890. package/dist/esm/core/security/pending-mfa-session-storage.frontend.utils.js.map +1 -1
  1891. package/dist/esm/core/security/registration-outcome.frontend.utils.d.ts.map +1 -1
  1892. package/dist/esm/core/security/registration-outcome.frontend.utils.js.map +1 -1
  1893. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
  1894. package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
  1895. package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
  1896. package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
  1897. package/dist/esm/core/security/session-token-storage.frontend.service.d.ts.map +1 -1
  1898. package/dist/esm/core/security/session-token-storage.frontend.service.js.map +1 -1
  1899. package/dist/esm/core/security/useAuthSession.d.ts.map +1 -1
  1900. package/dist/esm/core/security/useAuthSession.js.map +1 -1
  1901. package/dist/esm/core/security/useConsentGateBehavior.d.ts.map +1 -1
  1902. package/dist/esm/core/security/useConsentGateBehavior.js.map +1 -1
  1903. package/dist/esm/core/security/useDocumentAcceptanceGateBehavior.d.ts.map +1 -1
  1904. package/dist/esm/core/security/useDocumentAcceptanceGateBehavior.js.map +1 -1
  1905. package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -1
  1906. package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -1
  1907. package/dist/esm/core/security/useResolvedAuthConfig.d.ts.map +1 -1
  1908. package/dist/esm/core/security/useResolvedAuthConfig.js.map +1 -1
  1909. package/dist/esm/core/security/useRouteOrganizationAccess.d.ts.map +1 -1
  1910. package/dist/esm/core/security/useRouteOrganizationAccess.js.map +1 -1
  1911. package/dist/esm/core/security/useStepUpAuth.d.ts.map +1 -1
  1912. package/dist/esm/core/security/useStepUpAuth.js.map +1 -1
  1913. package/dist/esm/core/security/useUserOrgs.d.ts.map +1 -1
  1914. package/dist/esm/core/security/useUserOrgs.js.map +1 -1
  1915. package/dist/esm/core/ui/SurfaceErrorBoundary.d.ts.map +1 -1
  1916. package/dist/esm/core/ui/SurfaceErrorBoundary.js.map +1 -1
  1917. package/dist/esm/core/ui/SurfaceErrorBoundary.labels.d.ts.map +1 -1
  1918. package/dist/esm/core/ui/SurfaceErrorBoundary.labels.js.map +1 -1
  1919. package/dist/esm/core/ui/SurfacePolicyContext.d.ts.map +1 -1
  1920. package/dist/esm/core/ui/SurfacePolicyContext.js.map +1 -1
  1921. package/dist/esm/core/ui/TypographyScopeContext.d.ts.map +1 -1
  1922. package/dist/esm/core/ui/TypographyScopeContext.js.map +1 -1
  1923. package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
  1924. package/dist/esm/core/ui/UIContext.js.map +1 -1
  1925. package/dist/esm/core/ui/chart-style-defaults.d.ts.map +1 -1
  1926. package/dist/esm/core/ui/chart-style-defaults.js.map +1 -1
  1927. package/dist/esm/core/ui/cn.d.ts.map +1 -1
  1928. package/dist/esm/core/ui/cn.js.map +1 -1
  1929. package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
  1930. package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
  1931. package/dist/esm/core/ui/design-token-class-groups.d.ts.map +1 -1
  1932. package/dist/esm/core/ui/design-token-class-groups.js.map +1 -1
  1933. package/dist/esm/core/ui/design-token-config.utils.d.ts.map +1 -1
  1934. package/dist/esm/core/ui/design-token-config.utils.js.map +1 -1
  1935. package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
  1936. package/dist/esm/core/ui/design-token.utils.js.map +1 -1
  1937. package/dist/esm/core/ui/material-runtime.d.ts.map +1 -1
  1938. package/dist/esm/core/ui/material-runtime.js.map +1 -1
  1939. package/dist/esm/core/ui/surface-a11y.utils.d.ts.map +1 -1
  1940. package/dist/esm/core/ui/surface-a11y.utils.js.map +1 -1
  1941. package/dist/esm/core/ui/theme-preference-storage.shared.d.ts.map +1 -1
  1942. package/dist/esm/core/ui/theme-preference-storage.shared.js.map +1 -1
  1943. package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
  1944. package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
  1945. package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
  1946. package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
  1947. package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
  1948. package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
  1949. package/dist/esm/core/ui/useUI.d.ts.map +1 -1
  1950. package/dist/esm/core/ui/useUI.js.map +1 -1
  1951. package/dist/esm/index.d.ts.map +1 -1
  1952. package/dist/esm/index.js.map +1 -1
  1953. package/dist/esm/tailwind/index.d.ts.map +1 -1
  1954. package/dist/esm/tailwind/index.js.map +1 -1
  1955. package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -1
  1956. package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -1
  1957. package/dist/esm/testing/mock-builders.d.ts.map +1 -1
  1958. package/dist/esm/testing/mock-builders.js.map +1 -1
  1959. package/dist/esm/testing/mock-factory.d.ts.map +1 -1
  1960. package/dist/esm/testing/mock-factory.js.map +1 -1
  1961. package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
  1962. package/dist/esm/testing/rmm-helpers.js.map +1 -1
  1963. package/dist/esm/testing/test-providers.d.ts.map +1 -1
  1964. package/dist/esm/testing/test-providers.js.map +1 -1
  1965. package/dist/esm/testing.d.ts.map +1 -1
  1966. package/dist/esm/testing.js.map +1 -1
  1967. package/dist/tsconfig.build.tsbuildinfo +1 -0
  1968. package/package.json +6 -6
  1969. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -0
  1970. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -0
  1971. package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cross-frontend-handoff.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/security/cross-frontend-handoff.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Cross-Frontend Handoff helper — first-party SaaS-app wrapper around\n * `POST /api/v1/auth/cross-frontend-handoff` (cross-app-jwt-propagation Step 3).\n *\n * Two surfaces:\n *\n * 1. `requestCrossFrontendHandoff(input)` — vanilla TS / no React. Wraps the\n * manual-calls HTTP client, maps backend `CrossFrontendHandoffErrorCode`\n * values onto a typed `CrossFrontendHandoffClientError`, and returns the\n * `{ handoffUrl, expiresAt }` payload unchanged. The caller decides how\n * to use the URL (`location.assign` for replace, `window.open` for new\n * tab) — the helper deliberately does NOT navigate.\n *\n * 2. `useCrossFrontendHandoff()` — thin React hook wrapper for first-party\n * app components that want `{ status, data, error, requestHandoff, reset }`\n * ergonomics without bringing React Query in for a one-shot mutation.\n *\n * DTO atoms come from `@wildo-ai/saas-models/public-runtime`\n * (saas-models-public-runtime.md K-7) so the same symbol identity used by the\n * docs-site `docs-auth-client.ts` flows through here. The runtime call delegates\n * to `getManualCallsHttpClient()`, which inherits the auth + frontend-service\n * header injection performed by the base `WildoBackendHttpClient` interceptors.\n *\n * The bearer + `X-Frontend-Service-Name` header are injected automatically by\n * the base client; callers do NOT need to thread them through.\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n CrossFrontendHandoffErrorCode,\n type CrossFrontendHandoffRequest,\n type CrossFrontendHandoffResponse,\n} from '@wildo-ai/saas-models/public-runtime';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport type { RequestOptions } from '~wildo-frontend-lib/core/requests/wildo-http-client.frontend.service';\n\n/**\n * Stable, finite set of error codes a SaaS-app caller may encounter when\n * invoking `requestCrossFrontendHandoff()`.\n *\n * Mirrors the backend enum 1:1 PLUS three runtime-only codes that never reach\n * the wire:\n *\n * - `unauthenticated` — the caller's bearer is missing/expired/rejected\n * (HTTP 401). Surfaced WITHOUT trying to parse a backend `code` so the\n * caller can deep-link to login instead of branching on UNKNOWN_TARGET_*.\n * - `network` — no HTTP response was received (offline, DNS, CORS\n * pre-flight rejection, etc.). The base client retried per its policy\n * before this code is surfaced.\n * - `malformed_response` — the request returned 2xx but the body did not\n * match `CrossFrontendHandoffResponse`, OR the request returned an error\n * body without a recognizable `error.details.code` field. Treat as a\n * transient backend incident.\n */\nexport type CrossFrontendHandoffClientErrorCode =\n | CrossFrontendHandoffErrorCode\n | 'unauthenticated'\n | 'network'\n | 'malformed_response';\n\n/**\n * Typed error thrown by `requestCrossFrontendHandoff()` and stored in the\n * `error` field of `useCrossFrontendHandoff()`.\n *\n * Subclasses native `Error` so `instanceof CrossFrontendHandoffClientError` is\n * the safe way to distinguish from generic axios / network errors at a call\n * site. The `code` discriminator is the contract surface that callers branch\n * on; `httpStatus` is provided for telemetry / Sentry breadcrumbs only.\n */\nexport class CrossFrontendHandoffClientError extends Error {\n readonly code: CrossFrontendHandoffClientErrorCode;\n readonly httpStatus: number | null;\n\n constructor(code: CrossFrontendHandoffClientErrorCode, message: string, httpStatus: number | null) {\n super(message);\n this.name = 'CrossFrontendHandoffClientError';\n this.code = code;\n this.httpStatus = httpStatus;\n }\n}\n\n/**\n * Vanilla TS handoff request — no React.\n *\n * Behavior:\n * - On 2xx with a well-formed body, returns the response unchanged.\n * - On 2xx with a malformed body, throws `code: 'malformed_response'`.\n * - On 401, throws `code: 'unauthenticated'` regardless of the backend's\n * specific code (the base client may already have triggered a refresh-loop\n * before this branch is reached).\n * - On other 4xx with a recognized `error.details.code`, throws with that\n * `CrossFrontendHandoffErrorCode` code so the caller can branch on\n * `UNKNOWN_TARGET_FRONTEND` vs `TARGET_FRONTEND_HOST_NOT_CONFIGURED`.\n * - On 4xx/5xx without a recognized code, throws `code: 'malformed_response'`.\n * - On network failure (no response), throws `code: 'network'`.\n *\n * Pass-through `options` are forwarded to the underlying HTTP client; useful\n * fields: `signal` (AbortController), `silent` (suppress global error toast).\n */\nexport async function requestCrossFrontendHandoff(\n input: CrossFrontendHandoffRequest,\n options?: RequestOptions,\n): Promise<CrossFrontendHandoffResponse> {\n let response: CrossFrontendHandoffResponse;\n try {\n response = await getManualCallsHttpClient().crossFrontendHandoff(input, options);\n } catch (rawError: unknown) {\n throw mapHandoffError(rawError);\n }\n\n if (\n !response ||\n typeof response.handoffUrl !== 'string' ||\n typeof response.expiresAt !== 'string'\n ) {\n throw new CrossFrontendHandoffClientError(\n 'malformed_response',\n 'Cross-frontend handoff response missing required fields',\n null,\n );\n }\n return { handoffUrl: response.handoffUrl, expiresAt: response.expiresAt };\n}\n\nconst HANDOFF_ERROR_CODES = new Set<string>(Object.values(CrossFrontendHandoffErrorCode));\n\n/**\n * Internal — translate any thrown value (axios error, native Error, string,\n * unknown) into a `CrossFrontendHandoffClientError`.\n *\n * The base client's `responseErrorInterceptor` mutates the axios error in\n * place: it sets `error.httpStatus`, `error.context = nested.details`, and\n * preserves the raw envelope on `error.response.data`. We read the raw\n * envelope first (most reliable) and fall back to `error.context` second.\n */\nfunction mapHandoffError(rawError: unknown): CrossFrontendHandoffClientError {\n if (rawError instanceof CrossFrontendHandoffClientError) return rawError;\n\n const errorLike = rawError as {\n response?: { status?: number; data?: { error?: { details?: { code?: unknown } } } };\n httpStatus?: number;\n context?: { code?: unknown };\n message?: string;\n } | null;\n\n const httpStatus =\n typeof errorLike?.response?.status === 'number'\n ? errorLike.response.status\n : typeof errorLike?.httpStatus === 'number'\n ? errorLike.httpStatus\n : null;\n\n if (httpStatus === null) {\n return new CrossFrontendHandoffClientError(\n 'network',\n errorLike?.message ?? 'Cross-frontend handoff request failed (no response)',\n null,\n );\n }\n\n if (httpStatus === 401) {\n return new CrossFrontendHandoffClientError(\n 'unauthenticated',\n 'Cross-frontend handoff requires an authenticated session',\n 401,\n );\n }\n\n const rawCode =\n errorLike?.response?.data?.error?.details?.code ??\n errorLike?.context?.code;\n\n if (typeof rawCode === 'string' && HANDOFF_ERROR_CODES.has(rawCode)) {\n return new CrossFrontendHandoffClientError(\n rawCode as CrossFrontendHandoffErrorCode,\n errorLike?.message ?? `Cross-frontend handoff failed (HTTP ${httpStatus})`,\n httpStatus,\n );\n }\n\n return new CrossFrontendHandoffClientError(\n 'malformed_response',\n errorLike?.message ?? `Cross-frontend handoff failed (HTTP ${httpStatus})`,\n httpStatus,\n );\n}\n\nexport type CrossFrontendHandoffStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * State + action surface returned by `useCrossFrontendHandoff()`.\n *\n * `requestHandoff` returns the resolved `CrossFrontendHandoffResponse` on\n * success and re-throws the typed `CrossFrontendHandoffClientError` on failure\n * — so callers that need to redirect immediately can `await` it without also\n * subscribing to `status`. Hook state (`status` / `data` / `error`) is updated\n * regardless, which is convenient for components that render status without\n * holding a ref to the promise.\n */\nexport interface UseCrossFrontendHandoffResult {\n status: CrossFrontendHandoffStatus;\n data: CrossFrontendHandoffResponse | null;\n error: CrossFrontendHandoffClientError | null;\n requestHandoff: (\n input: CrossFrontendHandoffRequest,\n options?: RequestOptions,\n ) => Promise<CrossFrontendHandoffResponse>;\n reset: () => void;\n}\n\n/**\n * React hook wrapper around `requestCrossFrontendHandoff()` for first-party\n * SaaS-app components.\n *\n * Why not `useMutation` / `useReducer`: this is a one-shot, fire-and-forget\n * mutation with no caching / invalidation needs; pulling React Query in for\n * three lines of state would inflate the bundle and force a peer dep that\n * `saas-frontend-lib` does not currently take. `useState` + `useCallback` +\n * an `unmounted` guard cover the use case.\n */\nexport function useCrossFrontendHandoff(): UseCrossFrontendHandoffResult {\n const [status, setStatus] = useState<CrossFrontendHandoffStatus>('idle');\n const [data, setData] = useState<CrossFrontendHandoffResponse | null>(null);\n const [error, setError] = useState<CrossFrontendHandoffClientError | null>(null);\n\n const unmountedRef = useRef(false);\n const callIdRef = useRef(0);\n\n useEffect(() => {\n unmountedRef.current = false;\n return () => {\n unmountedRef.current = true;\n };\n }, []);\n\n const requestHandoff = useCallback(\n async (\n input: CrossFrontendHandoffRequest,\n options?: RequestOptions,\n ): Promise<CrossFrontendHandoffResponse> => {\n const callId = ++callIdRef.current;\n setStatus('pending');\n setError(null);\n try {\n const response = await requestCrossFrontendHandoff(input, options);\n if (!unmountedRef.current && callId === callIdRef.current) {\n setData(response);\n setStatus('success');\n }\n return response;\n } catch (rawError: unknown) {\n const typedError =\n rawError instanceof CrossFrontendHandoffClientError\n ? rawError\n : new CrossFrontendHandoffClientError(\n 'malformed_response',\n rawError instanceof Error ? rawError.message : 'Cross-frontend handoff failed',\n null,\n );\n if (!unmountedRef.current && callId === callIdRef.current) {\n setError(typedError);\n setStatus('error');\n }\n throw typedError;\n }\n },\n [],\n );\n\n const reset = useCallback(() => {\n callIdRef.current++;\n setStatus('idle');\n setData(null);\n setError(null);\n }, []);\n\n return { status, data, error, requestHandoff, reset };\n}\n"]}
1
+ {"version":3,"file":"cross-frontend-handoff.frontend.service.js","sourceRoot":"","sources":["../../../../src/core/security/cross-frontend-handoff.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EACL,6BAA6B,GAG9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mFAAmF,CAAC;AA2B7H;;;;;;;;GAQG;AACH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,CAAsC;IAC1C,UAAU,CAAgB;IAEnC,YAAY,IAAyC,EAAE,OAAe,EAAE,UAAyB;QAC/F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAkC,EAClC,OAAwB;IAExB,IAAI,QAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,wBAAwB,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,QAAiB,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,IACE,CAAC,QAAQ;QACT,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EACtC,CAAC;QACD,MAAM,IAAI,+BAA+B,CACvC,oBAAoB,EACpB,yDAAyD,EACzD,IAAI,CACL,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAE1F;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,QAAiB;IACxC,IAAI,QAAQ,YAAY,+BAA+B;QAAE,OAAO,QAAQ,CAAC;IAEzE,MAAM,SAAS,GAAG,QAKV,CAAC;IAET,MAAM,UAAU,GACd,OAAO,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,QAAQ;QAC7C,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;QAC3B,CAAC,CAAC,OAAO,SAAS,EAAE,UAAU,KAAK,QAAQ;YACzC,CAAC,CAAC,SAAS,CAAC,UAAU;YACtB,CAAC,CAAC,IAAI,CAAC;IAEb,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,+BAA+B,CACxC,SAAS,EACT,SAAS,EAAE,OAAO,IAAI,qDAAqD,EAC3E,IAAI,CACL,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,+BAA+B,CACxC,iBAAiB,EACjB,0DAA0D,EAC1D,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI;QAC/C,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;IAE3B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,+BAA+B,CACxC,OAAwC,EACxC,SAAS,EAAE,OAAO,IAAI,uCAAuC,UAAU,GAAG,EAC1E,UAAU,CACX,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,+BAA+B,CACxC,oBAAoB,EACpB,SAAS,EAAE,OAAO,IAAI,uCAAuC,UAAU,GAAG,EAC1E,UAAU,CACX,CAAC;AACJ,CAAC;AAyBD;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA6B,MAAM,CAAC,CAAC;IACzE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAsC,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAyC,IAAI,CAAC,CAAC;IAEjF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAChC,KAAK,EACH,KAAkC,EAClC,OAAwB,EACe,EAAE;QACzC,MAAM,MAAM,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC;QACnC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC1D,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,SAAS,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,QAAiB,EAAE,CAAC;YAC3B,MAAM,UAAU,GACd,QAAQ,YAAY,+BAA+B;gBACjD,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,IAAI,+BAA+B,CACjC,oBAAoB,EACpB,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,EAC9E,IAAI,CACL,CAAC;YACR,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC1D,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrB,SAAS,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YACD,MAAM,UAAU,CAAC;QACnB,CAAC;IACH,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC","sourcesContent":["/**\n * Cross-Frontend Handoff helper — first-party SaaS-app wrapper around\n * `POST /api/v1/auth/cross-frontend-handoff` (cross-app-jwt-propagation Step 3).\n *\n * Two surfaces:\n *\n * 1. `requestCrossFrontendHandoff(input)` — vanilla TS / no React. Wraps the\n * manual-calls HTTP client, maps backend `CrossFrontendHandoffErrorCode`\n * values onto a typed `CrossFrontendHandoffClientError`, and returns the\n * `{ handoffUrl, expiresAt }` payload unchanged. The caller decides how\n * to use the URL (`location.assign` for replace, `window.open` for new\n * tab) — the helper deliberately does NOT navigate.\n *\n * 2. `useCrossFrontendHandoff()` — thin React hook wrapper for first-party\n * app components that want `{ status, data, error, requestHandoff, reset }`\n * ergonomics without bringing React Query in for a one-shot mutation.\n *\n * DTO atoms come from `@wildo-ai/saas-models/public-runtime`\n * (saas-models-public-runtime.md K-7) so the same symbol identity used by the\n * docs-site `docs-auth-client.ts` flows through here. The runtime call delegates\n * to `getManualCallsHttpClient()`, which inherits the auth + frontend-service\n * header injection performed by the base `WildoBackendHttpClient` interceptors.\n *\n * The bearer + `X-Frontend-Service-Name` header are injected automatically by\n * the base client; callers do NOT need to thread them through.\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n CrossFrontendHandoffErrorCode,\n type CrossFrontendHandoffRequest,\n type CrossFrontendHandoffResponse,\n} from '@wildo-ai/saas-models/public-runtime';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport type { RequestOptions } from '~wildo-frontend-lib/core/requests/wildo-http-client.frontend.service';\n\n/**\n * Stable, finite set of error codes a SaaS-app caller may encounter when\n * invoking `requestCrossFrontendHandoff()`.\n *\n * Mirrors the backend enum 1:1 PLUS three runtime-only codes that never reach\n * the wire:\n *\n * - `unauthenticated` — the caller's bearer is missing/expired/rejected\n * (HTTP 401). Surfaced WITHOUT trying to parse a backend `code` so the\n * caller can deep-link to login instead of branching on UNKNOWN_TARGET_*.\n * - `network` — no HTTP response was received (offline, DNS, CORS\n * pre-flight rejection, etc.). The base client retried per its policy\n * before this code is surfaced.\n * - `malformed_response` — the request returned 2xx but the body did not\n * match `CrossFrontendHandoffResponse`, OR the request returned an error\n * body without a recognizable `error.details.code` field. Treat as a\n * transient backend incident.\n */\nexport type CrossFrontendHandoffClientErrorCode =\n | CrossFrontendHandoffErrorCode\n | 'unauthenticated'\n | 'network'\n | 'malformed_response';\n\n/**\n * Typed error thrown by `requestCrossFrontendHandoff()` and stored in the\n * `error` field of `useCrossFrontendHandoff()`.\n *\n * Subclasses native `Error` so `instanceof CrossFrontendHandoffClientError` is\n * the safe way to distinguish from generic axios / network errors at a call\n * site. The `code` discriminator is the contract surface that callers branch\n * on; `httpStatus` is provided for telemetry / Sentry breadcrumbs only.\n */\nexport class CrossFrontendHandoffClientError extends Error {\n readonly code: CrossFrontendHandoffClientErrorCode;\n readonly httpStatus: number | null;\n\n constructor(code: CrossFrontendHandoffClientErrorCode, message: string, httpStatus: number | null) {\n super(message);\n this.name = 'CrossFrontendHandoffClientError';\n this.code = code;\n this.httpStatus = httpStatus;\n }\n}\n\n/**\n * Vanilla TS handoff request — no React.\n *\n * Behavior:\n * - On 2xx with a well-formed body, returns the response unchanged.\n * - On 2xx with a malformed body, throws `code: 'malformed_response'`.\n * - On 401, throws `code: 'unauthenticated'` regardless of the backend's\n * specific code (the base client may already have triggered a refresh-loop\n * before this branch is reached).\n * - On other 4xx with a recognized `error.details.code`, throws with that\n * `CrossFrontendHandoffErrorCode` code so the caller can branch on\n * `UNKNOWN_TARGET_FRONTEND` vs `TARGET_FRONTEND_HOST_NOT_CONFIGURED`.\n * - On 4xx/5xx without a recognized code, throws `code: 'malformed_response'`.\n * - On network failure (no response), throws `code: 'network'`.\n *\n * Pass-through `options` are forwarded to the underlying HTTP client; useful\n * fields: `signal` (AbortController), `silent` (suppress global error toast).\n */\nexport async function requestCrossFrontendHandoff(\n input: CrossFrontendHandoffRequest,\n options?: RequestOptions,\n): Promise<CrossFrontendHandoffResponse> {\n let response: CrossFrontendHandoffResponse;\n try {\n response = await getManualCallsHttpClient().crossFrontendHandoff(input, options);\n } catch (rawError: unknown) {\n throw mapHandoffError(rawError);\n }\n\n if (\n !response ||\n typeof response.handoffUrl !== 'string' ||\n typeof response.expiresAt !== 'string'\n ) {\n throw new CrossFrontendHandoffClientError(\n 'malformed_response',\n 'Cross-frontend handoff response missing required fields',\n null,\n );\n }\n return { handoffUrl: response.handoffUrl, expiresAt: response.expiresAt };\n}\n\nconst HANDOFF_ERROR_CODES = new Set<string>(Object.values(CrossFrontendHandoffErrorCode));\n\n/**\n * Internal — translate any thrown value (axios error, native Error, string,\n * unknown) into a `CrossFrontendHandoffClientError`.\n *\n * The base client's `responseErrorInterceptor` mutates the axios error in\n * place: it sets `error.httpStatus`, `error.context = nested.details`, and\n * preserves the raw envelope on `error.response.data`. We read the raw\n * envelope first (most reliable) and fall back to `error.context` second.\n */\nfunction mapHandoffError(rawError: unknown): CrossFrontendHandoffClientError {\n if (rawError instanceof CrossFrontendHandoffClientError) return rawError;\n\n const errorLike = rawError as {\n response?: { status?: number; data?: { error?: { details?: { code?: unknown } } } };\n httpStatus?: number;\n context?: { code?: unknown };\n message?: string;\n } | null;\n\n const httpStatus =\n typeof errorLike?.response?.status === 'number'\n ? errorLike.response.status\n : typeof errorLike?.httpStatus === 'number'\n ? errorLike.httpStatus\n : null;\n\n if (httpStatus === null) {\n return new CrossFrontendHandoffClientError(\n 'network',\n errorLike?.message ?? 'Cross-frontend handoff request failed (no response)',\n null,\n );\n }\n\n if (httpStatus === 401) {\n return new CrossFrontendHandoffClientError(\n 'unauthenticated',\n 'Cross-frontend handoff requires an authenticated session',\n 401,\n );\n }\n\n const rawCode =\n errorLike?.response?.data?.error?.details?.code ??\n errorLike?.context?.code;\n\n if (typeof rawCode === 'string' && HANDOFF_ERROR_CODES.has(rawCode)) {\n return new CrossFrontendHandoffClientError(\n rawCode as CrossFrontendHandoffErrorCode,\n errorLike?.message ?? `Cross-frontend handoff failed (HTTP ${httpStatus})`,\n httpStatus,\n );\n }\n\n return new CrossFrontendHandoffClientError(\n 'malformed_response',\n errorLike?.message ?? `Cross-frontend handoff failed (HTTP ${httpStatus})`,\n httpStatus,\n );\n}\n\nexport type CrossFrontendHandoffStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * State + action surface returned by `useCrossFrontendHandoff()`.\n *\n * `requestHandoff` returns the resolved `CrossFrontendHandoffResponse` on\n * success and re-throws the typed `CrossFrontendHandoffClientError` on failure\n * — so callers that need to redirect immediately can `await` it without also\n * subscribing to `status`. Hook state (`status` / `data` / `error`) is updated\n * regardless, which is convenient for components that render status without\n * holding a ref to the promise.\n */\nexport interface UseCrossFrontendHandoffResult {\n status: CrossFrontendHandoffStatus;\n data: CrossFrontendHandoffResponse | null;\n error: CrossFrontendHandoffClientError | null;\n requestHandoff: (\n input: CrossFrontendHandoffRequest,\n options?: RequestOptions,\n ) => Promise<CrossFrontendHandoffResponse>;\n reset: () => void;\n}\n\n/**\n * React hook wrapper around `requestCrossFrontendHandoff()` for first-party\n * SaaS-app components.\n *\n * Why not `useMutation` / `useReducer`: this is a one-shot, fire-and-forget\n * mutation with no caching / invalidation needs; pulling React Query in for\n * three lines of state would inflate the bundle and force a peer dep that\n * `saas-frontend-lib` does not currently take. `useState` + `useCallback` +\n * an `unmounted` guard cover the use case.\n */\nexport function useCrossFrontendHandoff(): UseCrossFrontendHandoffResult {\n const [status, setStatus] = useState<CrossFrontendHandoffStatus>('idle');\n const [data, setData] = useState<CrossFrontendHandoffResponse | null>(null);\n const [error, setError] = useState<CrossFrontendHandoffClientError | null>(null);\n\n const unmountedRef = useRef(false);\n const callIdRef = useRef(0);\n\n useEffect(() => {\n unmountedRef.current = false;\n return () => {\n unmountedRef.current = true;\n };\n }, []);\n\n const requestHandoff = useCallback(\n async (\n input: CrossFrontendHandoffRequest,\n options?: RequestOptions,\n ): Promise<CrossFrontendHandoffResponse> => {\n const callId = ++callIdRef.current;\n setStatus('pending');\n setError(null);\n try {\n const response = await requestCrossFrontendHandoff(input, options);\n if (!unmountedRef.current && callId === callIdRef.current) {\n setData(response);\n setStatus('success');\n }\n return response;\n } catch (rawError: unknown) {\n const typedError =\n rawError instanceof CrossFrontendHandoffClientError\n ? rawError\n : new CrossFrontendHandoffClientError(\n 'malformed_response',\n rawError instanceof Error ? rawError.message : 'Cross-frontend handoff failed',\n null,\n );\n if (!unmountedRef.current && callId === callIdRef.current) {\n setError(typedError);\n setStatus('error');\n }\n throw typedError;\n }\n },\n [],\n );\n\n const reset = useCallback(() => {\n callIdRef.current++;\n setStatus('idle');\n setData(null);\n setError(null);\n }, []);\n\n return { status, data, error, requestHandoff, reset };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"federated-reauthentication.frontend.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/federated-reauthentication.frontend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,4HAA4H;AAC5H,eAAO,MAAM,iCAAiC,2BAA2B,CAAC;AAC1E,eAAO,MAAM,sCAAsC,oCAAoC,CAAC;AAExF,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,OAAO,sCAAsC,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iGAAiG;AACjG,oBAAY,sCAAsC;IAChD,8CAA8C;IAC9C,aAAa,kBAAkB;IAC/B,qFAAqF;IACrF,SAAS,cAAc;IACvB,+HAA+H;IAC/H,SAAS,cAAc;IACvB,wEAAwE;IACxE,MAAM,WAAW;CAClB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;aAC7B,MAAM,EAAE,sCAAsC;gBAA9C,MAAM,EAAE,sCAAsC;CAI3E;AAOD;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAE1D;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,GAAG,IAAI,CAI3G;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,SAAS,GAAE,MAA2C,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B3I;AAED;;;;;GAKG;AACH,wBAAsB,oCAAoC,CACxD,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAclC"}
1
+ {"version":3,"file":"federated-reauthentication.frontend.d.ts","sourceRoot":"","sources":["../../../../src/core/security/federated-reauthentication.frontend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,4HAA4H;AAC5H,eAAO,MAAM,iCAAiC,2BAA2B,CAAC;AAC1E,eAAO,MAAM,sCAAsC,oCAAoC,CAAC;AAExF,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,OAAO,sCAAsC,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iGAAiG;AACjG,oBAAY,sCAAsC;IAChD,8CAA8C;IAC9C,aAAa,kBAAkB;IAC/B,qFAAqF;IACrF,SAAS,cAAc;IACvB,+HAA+H;IAC/H,SAAS,cAAc;IACvB,wEAAwE;IACxE,MAAM,WAAW;CAClB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;aAC7B,MAAM,EAAE,sCAAsC;gBAA9C,MAAM,EAAE,sCAAsC;CAI3E;AAOD;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAE1D;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,GAAG,IAAI,CAI3G;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,SAAS,GAAE,MAA2C,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B3I;AAED;;;;;GAKG;AACH,wBAAsB,oCAAoC,CACxD,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAclC"}
@@ -1 +1 @@
1
- {"version":3,"file":"federated-reauthentication.frontend.js","sourceRoot":"","sources":["../../../../../src/core/security/federated-reauthentication.frontend.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReAuthenticationPurpose } from '@wildo-ai/saas-models';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\n\n/**\n * Federated re-authentication in the browser (#1441): confirming it is still the account holder by\n * signing in again at a linked identity provider.\n *\n * WHY A POPUP. A step-up refusal holds the request that was refused, pending, and replays it once a\n * proof arrives (the http client's step-up contract). A full-page redirect to the provider would\n * unload the page and drop that request. So the dialog opens a window, the provider runs inside it,\n * and the backend sends the window back to `REAUTHENTICATION_CALLBACK_PAGE_PATH` on THIS frontend's\n * origin, where `AuthPage_ReAuthenticationCallback` hands the result to this window and closes.\n *\n * WHY THE WINDOW IS OPENED EMPTY FIRST. Browsers allow a popup only inside the click that asked for it.\n * The provider URL comes from a request, which finishes after the click has ended, so the dialog opens\n * a blank window synchronously in its click handler and this module navigates it afterwards.\n *\n * WHAT CROSSES THE WINDOWS, AND WHY NOT THROUGH `window.opener`. Only a one-time code, over a\n * `BroadcastChannel`, which only this origin can join. The obvious channel, `postMessage` to the opener,\n * is unreliable here: identity providers commonly serve `Cross-Origin-Opener-Policy`, and once the\n * popup has visited such a page the browser severs it from this window. The callback page then has no\n * `window.opener`, and `popup.closed` reads `true` here while the window is still open, so neither can\n * be relied on. That is also why cancelling is an explicit abort from the dialog rather than a check\n * for a closed window.\n *\n * The code is redeemed with this window's own bearer at `POST /auth/reauth/federated/exchange`, so a code\n * read from the popup's URL is worth nothing to anyone else, and the re-authentication token itself never\n * appears in a URL.\n */\n\n/** The channel and message type the callback page reports on. One constant each, so sender and receiver cannot disagree. */\nexport const REAUTHENTICATION_CALLBACK_CHANNEL = 'wildo:reauthentication';\nexport const REAUTHENTICATION_CALLBACK_MESSAGE_TYPE = 'wildo:reauthentication-callback';\n\nexport interface ReAuthenticationCallbackMessage {\n type: typeof REAUTHENTICATION_CALLBACK_MESSAGE_TYPE;\n code?: string;\n error?: string;\n}\n\n/** Why a federated re-authentication produced no proof. Each has its own words in the dialog. */\nexport enum FederatedReAuthenticationFailureReason {\n /** The browser refused to open the window. */\n POPUP_BLOCKED = 'popup_blocked',\n /** The person cancelled in the dialog. Never shown: the dialog is already closed. */\n CANCELLED = 'cancelled',\n /** The provider did not answer in time: the person left the window unfinished, or closed it (which this window cannot see). */\n TIMED_OUT = 'timed_out',\n /** The provider answered, and the answer did not confirm the person. */\n FAILED = 'failed',\n}\n\nexport class FederatedReAuthenticationFailure extends Error {\n constructor(public readonly reason: FederatedReAuthenticationFailureReason) {\n super(`Federated re-authentication did not complete: ${reason}`);\n this.name = 'FederatedReAuthenticationFailure';\n }\n}\n\n/** How long the window may stay open. The provider's own sign-in, plus MFA, fits well inside it. */\nconst REAUTHENTICATION_WINDOW_TIMEOUT_MS = 10 * 60 * 1000;\nconst POPUP_NAME = 'wildo-reauthentication';\nconst POPUP_FEATURES = 'popup=yes,width=520,height=680';\n\n/**\n * Open the (blank) window the provider will run in. MUST be called synchronously inside the click\n * that chose the provider; anything later is blocked. Returns `null` when the browser refused.\n */\nexport function openReAuthenticationWindow(): Window | null {\n return window.open('about:blank', POPUP_NAME, POPUP_FEATURES);\n}\n\n/** What the callback page sends, to every window of this origin listening. */\nexport function reportReAuthenticationCallback(message: Omit<ReAuthenticationCallbackMessage, 'type'>): void {\n const channel = new BroadcastChannel(REAUTHENTICATION_CALLBACK_CHANNEL);\n channel.postMessage({ type: REAUTHENTICATION_CALLBACK_MESSAGE_TYPE, ...message } satisfies ReAuthenticationCallbackMessage);\n channel.close();\n}\n\n/**\n * Wait for the callback page to report, and resolve with its one-time code.\n *\n * Rejects with `FAILED` when the page reports an error, `CANCELLED` when `signal` aborts (the person\n * cancelled in the dialog), and `TIMED_OUT` when the time runs out first.\n */\nexport function awaitReAuthenticationCallback(signal?: AbortSignal, timeoutMs: number = REAUTHENTICATION_WINDOW_TIMEOUT_MS): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const channel = new BroadcastChannel(REAUTHENTICATION_CALLBACK_CHANNEL);\n let settled = false;\n const finish = (outcome: () => void) => {\n if (settled) return;\n settled = true;\n channel.close();\n clearTimeout(deadline);\n signal?.removeEventListener('abort', onAbort);\n outcome();\n };\n const cancelled = () => finish(() => reject(new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.CANCELLED)));\n const onAbort = () => cancelled();\n // Any window of this origin may answer, and the first answer settles the wait. Accepted deliberately:\n // two tabs re-authenticating at once can take each other's code, and the loser then reports FAILED —\n // never a proof for the wrong account, because the exchange is bound to the bearer that minted it.\n // Correlating each attempt with a nonce echoed through the provider round trip would remove the race.\n channel.onmessage = (event: MessageEvent) => {\n const data = event.data as Partial<ReAuthenticationCallbackMessage> | null;\n if (!data || data.type !== REAUTHENTICATION_CALLBACK_MESSAGE_TYPE) return;\n finish(() => (typeof data.code === 'string' && data.code\n ? resolve(data.code)\n : reject(new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.FAILED))));\n };\n const deadline = setTimeout(() => finish(() => reject(new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.TIMED_OUT))), timeoutMs);\n if (signal?.aborted) cancelled();\n else signal?.addEventListener('abort', onAbort);\n });\n}\n\n/**\n * Run a federated re-authentication in `popup` and return the single-use proof it earned.\n *\n * `popup` is the window {@link openReAuthenticationWindow} opened in the click; `null` means the browser\n * blocked it. `signal` is the dialog's cancel. The window is closed on every failure path it can still reach.\n */\nexport async function obtainFederatedReAuthenticationToken(\n identityLinkId: string,\n purpose: ReAuthenticationPurpose,\n popup: Window | null,\n signal?: AbortSignal,\n): Promise<{ reAuthToken: string }> {\n if (!popup) throw new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.POPUP_BLOCKED);\n const client = getManualCallsHttpClient();\n try {\n const { authorizationUrl } = await client.startFederatedReAuthentication(identityLinkId, purpose);\n popup.location.href = authorizationUrl;\n const code = await awaitReAuthenticationCallback(signal);\n return await client.exchangeFederatedReAuthentication(code);\n } catch (error) {\n // May be a no-op once the provider's opener policy has severed the window; the callback page closes itself.\n try { popup.close(); } catch { /* already gone */ }\n if (error instanceof FederatedReAuthenticationFailure) throw error;\n throw new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.FAILED);\n }\n}\n"]}
1
+ {"version":3,"file":"federated-reauthentication.frontend.js","sourceRoot":"","sources":["../../../../src/core/security/federated-reauthentication.frontend.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReAuthenticationPurpose } from '@wildo-ai/saas-models';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\n\n/**\n * Federated re-authentication in the browser (#1441): confirming it is still the account holder by\n * signing in again at a linked identity provider.\n *\n * WHY A POPUP. A step-up refusal holds the request that was refused, pending, and replays it once a\n * proof arrives (the http client's step-up contract). A full-page redirect to the provider would\n * unload the page and drop that request. So the dialog opens a window, the provider runs inside it,\n * and the backend sends the window back to `REAUTHENTICATION_CALLBACK_PAGE_PATH` on THIS frontend's\n * origin, where `AuthPage_ReAuthenticationCallback` hands the result to this window and closes.\n *\n * WHY THE WINDOW IS OPENED EMPTY FIRST. Browsers allow a popup only inside the click that asked for it.\n * The provider URL comes from a request, which finishes after the click has ended, so the dialog opens\n * a blank window synchronously in its click handler and this module navigates it afterwards.\n *\n * WHAT CROSSES THE WINDOWS, AND WHY NOT THROUGH `window.opener`. Only a one-time code, over a\n * `BroadcastChannel`, which only this origin can join. The obvious channel, `postMessage` to the opener,\n * is unreliable here: identity providers commonly serve `Cross-Origin-Opener-Policy`, and once the\n * popup has visited such a page the browser severs it from this window. The callback page then has no\n * `window.opener`, and `popup.closed` reads `true` here while the window is still open, so neither can\n * be relied on. That is also why cancelling is an explicit abort from the dialog rather than a check\n * for a closed window.\n *\n * The code is redeemed with this window's own bearer at `POST /auth/reauth/federated/exchange`, so a code\n * read from the popup's URL is worth nothing to anyone else, and the re-authentication token itself never\n * appears in a URL.\n */\n\n/** The channel and message type the callback page reports on. One constant each, so sender and receiver cannot disagree. */\nexport const REAUTHENTICATION_CALLBACK_CHANNEL = 'wildo:reauthentication';\nexport const REAUTHENTICATION_CALLBACK_MESSAGE_TYPE = 'wildo:reauthentication-callback';\n\nexport interface ReAuthenticationCallbackMessage {\n type: typeof REAUTHENTICATION_CALLBACK_MESSAGE_TYPE;\n code?: string;\n error?: string;\n}\n\n/** Why a federated re-authentication produced no proof. Each has its own words in the dialog. */\nexport enum FederatedReAuthenticationFailureReason {\n /** The browser refused to open the window. */\n POPUP_BLOCKED = 'popup_blocked',\n /** The person cancelled in the dialog. Never shown: the dialog is already closed. */\n CANCELLED = 'cancelled',\n /** The provider did not answer in time: the person left the window unfinished, or closed it (which this window cannot see). */\n TIMED_OUT = 'timed_out',\n /** The provider answered, and the answer did not confirm the person. */\n FAILED = 'failed',\n}\n\nexport class FederatedReAuthenticationFailure extends Error {\n constructor(public readonly reason: FederatedReAuthenticationFailureReason) {\n super(`Federated re-authentication did not complete: ${reason}`);\n this.name = 'FederatedReAuthenticationFailure';\n }\n}\n\n/** How long the window may stay open. The provider's own sign-in, plus MFA, fits well inside it. */\nconst REAUTHENTICATION_WINDOW_TIMEOUT_MS = 10 * 60 * 1000;\nconst POPUP_NAME = 'wildo-reauthentication';\nconst POPUP_FEATURES = 'popup=yes,width=520,height=680';\n\n/**\n * Open the (blank) window the provider will run in. MUST be called synchronously inside the click\n * that chose the provider; anything later is blocked. Returns `null` when the browser refused.\n */\nexport function openReAuthenticationWindow(): Window | null {\n return window.open('about:blank', POPUP_NAME, POPUP_FEATURES);\n}\n\n/** What the callback page sends, to every window of this origin listening. */\nexport function reportReAuthenticationCallback(message: Omit<ReAuthenticationCallbackMessage, 'type'>): void {\n const channel = new BroadcastChannel(REAUTHENTICATION_CALLBACK_CHANNEL);\n channel.postMessage({ type: REAUTHENTICATION_CALLBACK_MESSAGE_TYPE, ...message } satisfies ReAuthenticationCallbackMessage);\n channel.close();\n}\n\n/**\n * Wait for the callback page to report, and resolve with its one-time code.\n *\n * Rejects with `FAILED` when the page reports an error, `CANCELLED` when `signal` aborts (the person\n * cancelled in the dialog), and `TIMED_OUT` when the time runs out first.\n */\nexport function awaitReAuthenticationCallback(signal?: AbortSignal, timeoutMs: number = REAUTHENTICATION_WINDOW_TIMEOUT_MS): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const channel = new BroadcastChannel(REAUTHENTICATION_CALLBACK_CHANNEL);\n let settled = false;\n const finish = (outcome: () => void) => {\n if (settled) return;\n settled = true;\n channel.close();\n clearTimeout(deadline);\n signal?.removeEventListener('abort', onAbort);\n outcome();\n };\n const cancelled = () => finish(() => reject(new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.CANCELLED)));\n const onAbort = () => cancelled();\n // Any window of this origin may answer, and the first answer settles the wait. Accepted deliberately:\n // two tabs re-authenticating at once can take each other's code, and the loser then reports FAILED —\n // never a proof for the wrong account, because the exchange is bound to the bearer that minted it.\n // Correlating each attempt with a nonce echoed through the provider round trip would remove the race.\n channel.onmessage = (event: MessageEvent) => {\n const data = event.data as Partial<ReAuthenticationCallbackMessage> | null;\n if (!data || data.type !== REAUTHENTICATION_CALLBACK_MESSAGE_TYPE) return;\n finish(() => (typeof data.code === 'string' && data.code\n ? resolve(data.code)\n : reject(new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.FAILED))));\n };\n const deadline = setTimeout(() => finish(() => reject(new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.TIMED_OUT))), timeoutMs);\n if (signal?.aborted) cancelled();\n else signal?.addEventListener('abort', onAbort);\n });\n}\n\n/**\n * Run a federated re-authentication in `popup` and return the single-use proof it earned.\n *\n * `popup` is the window {@link openReAuthenticationWindow} opened in the click; `null` means the browser\n * blocked it. `signal` is the dialog's cancel. The window is closed on every failure path it can still reach.\n */\nexport async function obtainFederatedReAuthenticationToken(\n identityLinkId: string,\n purpose: ReAuthenticationPurpose,\n popup: Window | null,\n signal?: AbortSignal,\n): Promise<{ reAuthToken: string }> {\n if (!popup) throw new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.POPUP_BLOCKED);\n const client = getManualCallsHttpClient();\n try {\n const { authorizationUrl } = await client.startFederatedReAuthentication(identityLinkId, purpose);\n popup.location.href = authorizationUrl;\n const code = await awaitReAuthenticationCallback(signal);\n return await client.exchangeFederatedReAuthentication(code);\n } catch (error) {\n // May be a no-op once the provider's opener policy has severed the window; the callback page closes itself.\n try { popup.close(); } catch { /* already gone */ }\n if (error instanceof FederatedReAuthenticationFailure) throw error;\n throw new FederatedReAuthenticationFailure(FederatedReAuthenticationFailureReason.FAILED);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/jwt.frontend.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,CAO1F"}
1
+ {"version":3,"file":"jwt.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/security/jwt.frontend.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,CAO1F"}
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.frontend.utils.js","sourceRoot":"","sources":["../../../../../src/core/security/jwt.frontend.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAoC,WAAmB;IACrF,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAM,CAAC;AAC/D,CAAC","sourcesContent":["/**\n * Frontend JWT utilities.\n *\n * JWT payload segments use base64url, not plain base64. Consumers that decode\n * payload claims must normalize `-` / `_` and padding before parsing.\n */\n\nfunction decodeBase64UrlToUtf8(segment: string): string {\n const normalized = segment.replace(/-/g, '+').replace(/_/g, '/');\n const paddingLength = (4 - (normalized.length % 4)) % 4;\n const padded = `${normalized}${'='.repeat(paddingLength)}`;\n const binary = atob(padded);\n const bytes = Uint8Array.from(binary, character => character.charCodeAt(0));\n\n return new TextDecoder().decode(bytes);\n}\n\n/**\n * Decode and parse the payload segment of a JWT access token.\n *\n * Throws when the token is malformed or when the payload is not valid JSON so\n * callers can apply context-specific logging/error handling policy.\n */\nexport function decodeJwtPayload<T extends Record<string, unknown>>(accessToken: string): T {\n const tokenParts = accessToken.split('.');\n if (tokenParts.length !== 3) {\n throw new Error('JWT must contain exactly three segments');\n }\n\n return JSON.parse(decodeBase64UrlToUtf8(tokenParts[1])) as T;\n}\n"]}
1
+ {"version":3,"file":"jwt.frontend.utils.js","sourceRoot":"","sources":["../../../../src/core/security/jwt.frontend.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAoC,WAAmB;IACrF,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAM,CAAC;AAC/D,CAAC","sourcesContent":["/**\n * Frontend JWT utilities.\n *\n * JWT payload segments use base64url, not plain base64. Consumers that decode\n * payload claims must normalize `-` / `_` and padding before parsing.\n */\n\nfunction decodeBase64UrlToUtf8(segment: string): string {\n const normalized = segment.replace(/-/g, '+').replace(/_/g, '/');\n const paddingLength = (4 - (normalized.length % 4)) % 4;\n const padded = `${normalized}${'='.repeat(paddingLength)}`;\n const binary = atob(padded);\n const bytes = Uint8Array.from(binary, character => character.charCodeAt(0));\n\n return new TextDecoder().decode(bytes);\n}\n\n/**\n * Decode and parse the payload segment of a JWT access token.\n *\n * Throws when the token is malformed or when the payload is not valid JSON so\n * callers can apply context-specific logging/error handling policy.\n */\nexport function decodeJwtPayload<T extends Record<string, unknown>>(accessToken: string): T {\n const tokenParts = accessToken.split('.');\n if (tokenParts.length !== 3) {\n throw new Error('JWT must contain exactly three segments');\n }\n\n return JSON.parse(decodeBase64UrlToUtf8(tokenParts[1])) as T;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"organization-onboarding.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/organization-onboarding.frontend.utils.ts"],"names":[],"mappings":"AAIA,uGAAuG;AACvG,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,iCAAiC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIjI;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE;IAAE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC1F,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5C,MAAM,GAAG,IAAI,CAGf;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG5E"}
1
+ {"version":3,"file":"organization-onboarding.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/security/organization-onboarding.frontend.utils.ts"],"names":[],"mappings":"AAIA,uGAAuG;AACvG,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,iCAAiC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIjI;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE;IAAE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC1F,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5C,MAAM,GAAG,IAAI,CAGf;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"organization-onboarding.frontend.utils.js","sourceRoot":"","sources":["../../../../../src/core/security/organization-onboarding.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAU1G;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qCAAqC,CAAC,MAA4D;IAChH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,KAAK,YAAY,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,0BAA0B,CAAC,kBAAkB,CAAC;IAC7H,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sCAAsC,CACpD,IAA0F,EAC1F,kBAA6C;IAE7C,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/D,OAAO,wBAAwB,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oCAAoC,CAAC,KAAc;IACjE,MAAM,SAAS,GAAI,KAAiF,EAAE,UAAU,EAAE,sBAAsB,CAAC;IACzI,OAAO,SAAS,KAAK,2BAA2B,CAAC,8BAA8B,CAAC;AAClF,CAAC","sourcesContent":["import { AuthenticationSessionState, AuthNextStep, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\nimport { CommonRoutePaths } from '~wildo-frontend-lib/core/runtime/routes.frontend.definitions';\nimport { appendAuthRedirectToPath } from '~wildo-frontend-lib/core/security/auth-redirect.frontend.utils';\n\n/** The members of an auth answer that say whether it parked the account at organization onboarding. */\nexport interface OrganizationOnboardingAnswerShape {\n readonly accessToken?: string | null;\n readonly sessionId?: string | null;\n readonly state?: string;\n readonly nextStep?: string;\n}\n\n/**\n * The session an auth answer parked at organization onboarding, or `null` (#1090).\n *\n * Several answers can park an account there, and each reached the client with no screen to finish it:\n * - a registration under deferred verification, or an email verification (`state: ONBOARDING_PENDING`,\n * `nextStep: ONBOARDING`) when the user type names its organization at onboarding (#1011);\n * - a second-factor enrollment that settles a registration session there (`state: ONBOARDING_PENDING`);\n * - a SIGN-IN — password, passkey, OTP, a second factor, a magic link — by an account that still owes its\n * organization (`success: false`, `nextStep: ONBOARDING`, #1091);\n * - a FEDERATED sign-in's code exchange (OAuth2 / OIDC callback, SAML ACS) for such an account\n * (`{ nextStep: ONBOARDING, sessionId }`, #1103).\n *\n * This is the ONE reading of that condition, so every adoption site in `AuthSessionContext` and the registration\n * outcome agree. It requires a session, because completion is performed ON the parked session, and no token,\n * because an answer that carries one has already signed the account in and is not asking for anything.\n * Either member (`state` or `nextStep`) is enough: the enrollment settlement names the state and the sign-in\n * names the step.\n */\nexport function parkedOrganizationOnboardingSessionId(answer: OrganizationOnboardingAnswerShape | null | undefined): string | null {\n if (!answer || answer.accessToken || !answer.sessionId) return null;\n const parked = answer.nextStep === AuthNextStep.ONBOARDING || answer.state === AuthenticationSessionState.ONBOARDING_PENDING;\n return parked ? answer.sessionId : null;\n}\n\n/**\n * Where an auth screen must send the person right now because the account is parked at organization\n * onboarding, or `null` when it is not (#1090).\n *\n * A RENDER-time answer rather than a navigation effect, on purpose: every auth screen already decides at render\n * time to bounce away — the challenge and the enrollment gate send a person with no pending second factor to\n * sign-in — and adopting a parked session clears exactly that state. An effect would lose that race and the\n * person would land on sign-in instead of onboarding. Each screen asks this BEFORE its own bounces.\n *\n * The deep-link target rides the detour, as it rides the second-factor detours. A signed-in context is never\n * parked: an answer that carried a token is not asking for onboarding.\n */\nexport function organizationOnboardingNavigationTarget(\n auth: { readonly onboardingSessionId: string | null; readonly accessToken: string | null },\n authRedirectTarget: string | null | undefined,\n): string | null {\n if (!auth.onboardingSessionId || auth.accessToken) return null;\n return appendAuthRedirectToPath(CommonRoutePaths.organizationOnboarding, authRedirectTarget);\n}\n\n/**\n * Whether a refused onboarding completion means the parked session is gone for good (#1090) — completed in\n * another tab, consumed by a concurrent completion, or expired. Such a session can never complete, so the auth\n * context forgets it; every other refusal (a policy that changed, a transient failure) leaves it parked so the\n * person can try again.\n */\nexport function isSpentOrganizationOnboardingSession(error: unknown): boolean {\n const reference = (error as { wildoError?: { customMessageReference?: string } } | null | undefined)?.wildoError?.customMessageReference;\n return reference === ErrorCustomMessageReference.AUTHENTICATION_SESSION_EXPIRED;\n}\n"]}
1
+ {"version":3,"file":"organization-onboarding.frontend.utils.js","sourceRoot":"","sources":["../../../../src/core/security/organization-onboarding.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAU1G;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qCAAqC,CAAC,MAA4D;IAChH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,KAAK,YAAY,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,0BAA0B,CAAC,kBAAkB,CAAC;IAC7H,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sCAAsC,CACpD,IAA0F,EAC1F,kBAA6C;IAE7C,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/D,OAAO,wBAAwB,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oCAAoC,CAAC,KAAc;IACjE,MAAM,SAAS,GAAI,KAAiF,EAAE,UAAU,EAAE,sBAAsB,CAAC;IACzI,OAAO,SAAS,KAAK,2BAA2B,CAAC,8BAA8B,CAAC;AAClF,CAAC","sourcesContent":["import { AuthenticationSessionState, AuthNextStep, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\nimport { CommonRoutePaths } from '~wildo-frontend-lib/core/runtime/routes.frontend.definitions';\nimport { appendAuthRedirectToPath } from '~wildo-frontend-lib/core/security/auth-redirect.frontend.utils';\n\n/** The members of an auth answer that say whether it parked the account at organization onboarding. */\nexport interface OrganizationOnboardingAnswerShape {\n readonly accessToken?: string | null;\n readonly sessionId?: string | null;\n readonly state?: string;\n readonly nextStep?: string;\n}\n\n/**\n * The session an auth answer parked at organization onboarding, or `null` (#1090).\n *\n * Several answers can park an account there, and each reached the client with no screen to finish it:\n * - a registration under deferred verification, or an email verification (`state: ONBOARDING_PENDING`,\n * `nextStep: ONBOARDING`) when the user type names its organization at onboarding (#1011);\n * - a second-factor enrollment that settles a registration session there (`state: ONBOARDING_PENDING`);\n * - a SIGN-IN — password, passkey, OTP, a second factor, a magic link — by an account that still owes its\n * organization (`success: false`, `nextStep: ONBOARDING`, #1091);\n * - a FEDERATED sign-in's code exchange (OAuth2 / OIDC callback, SAML ACS) for such an account\n * (`{ nextStep: ONBOARDING, sessionId }`, #1103).\n *\n * This is the ONE reading of that condition, so every adoption site in `AuthSessionContext` and the registration\n * outcome agree. It requires a session, because completion is performed ON the parked session, and no token,\n * because an answer that carries one has already signed the account in and is not asking for anything.\n * Either member (`state` or `nextStep`) is enough: the enrollment settlement names the state and the sign-in\n * names the step.\n */\nexport function parkedOrganizationOnboardingSessionId(answer: OrganizationOnboardingAnswerShape | null | undefined): string | null {\n if (!answer || answer.accessToken || !answer.sessionId) return null;\n const parked = answer.nextStep === AuthNextStep.ONBOARDING || answer.state === AuthenticationSessionState.ONBOARDING_PENDING;\n return parked ? answer.sessionId : null;\n}\n\n/**\n * Where an auth screen must send the person right now because the account is parked at organization\n * onboarding, or `null` when it is not (#1090).\n *\n * A RENDER-time answer rather than a navigation effect, on purpose: every auth screen already decides at render\n * time to bounce away — the challenge and the enrollment gate send a person with no pending second factor to\n * sign-in — and adopting a parked session clears exactly that state. An effect would lose that race and the\n * person would land on sign-in instead of onboarding. Each screen asks this BEFORE its own bounces.\n *\n * The deep-link target rides the detour, as it rides the second-factor detours. A signed-in context is never\n * parked: an answer that carried a token is not asking for onboarding.\n */\nexport function organizationOnboardingNavigationTarget(\n auth: { readonly onboardingSessionId: string | null; readonly accessToken: string | null },\n authRedirectTarget: string | null | undefined,\n): string | null {\n if (!auth.onboardingSessionId || auth.accessToken) return null;\n return appendAuthRedirectToPath(CommonRoutePaths.organizationOnboarding, authRedirectTarget);\n}\n\n/**\n * Whether a refused onboarding completion means the parked session is gone for good (#1090) — completed in\n * another tab, consumed by a concurrent completion, or expired. Such a session can never complete, so the auth\n * context forgets it; every other refusal (a policy that changed, a transient failure) leaves it parked so the\n * person can try again.\n */\nexport function isSpentOrganizationOnboardingSession(error: unknown): boolean {\n const reference = (error as { wildoError?: { customMessageReference?: string } } | null | undefined)?.wildoError?.customMessageReference;\n return reference === ErrorCustomMessageReference.AUTHENTICATION_SESSION_EXPIRED;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pending-mfa-session-storage.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/pending-mfa-session-storage.frontend.utils.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,6FAA6F;AAC7F,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,0GAA0G;IAC1G,KAAK,EAAE,MAAM,CAAC;CACf;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAuB,CAAC;AA8BrE;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,0BAA0B,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAiB/G;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAmB,GAAG,0BAA0B,GAAG,IAAI,CAUjG;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,IAAI,CAM9C"}
1
+ {"version":3,"file":"pending-mfa-session-storage.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/security/pending-mfa-session-storage.frontend.utils.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,6FAA6F;AAC7F,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,0GAA0G;IAC1G,KAAK,EAAE,MAAM,CAAC;CACf;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAuB,CAAC;AA8BrE;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,0BAA0B,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAiB/G;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAmB,GAAG,0BAA0B,GAAG,IAAI,CAUjG;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,IAAI,CAM9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"pending-mfa-session-storage.frontend.utils.js","sourceRoot":"","sources":["../../../../../src/core/security/pending-mfa-session-storage.frontend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SESSION_STORAGE_KEYS } from '~wildo-frontend-lib/core/commons/local-storage.frontend.schemas';\n\n/**\n * The tab-scoped memory of an MFA session that still owes a second factor (#1068).\n *\n * The auth context holds such a session only in memory, so a reload of the enrollment gate after an\n * in-app arrival used to lose it and cost a sign-in. Three places could have carried it across the reload,\n * and this is the one chosen:\n *\n * | option | why not / why |\n * |---|---|\n * | the gate URL | rejected. A REGISTRATION or INVITATION session reaches the gate this way on the ordinary path, issues tokens when a factor is enrolled, and lives 24h — its id would sit in browser history and every frontend/CDN request log |\n * | `localStorage` | rejected. It outlives the tab and is shared by every tab of the origin, so an abandoned sign-up would be recoverable long after, from anywhere on the device |\n * | **`sessionStorage`** | chosen. It survives a reload of THIS tab, dies with the tab, and never leaves the page. Script in the page can read it, exactly as it can already read the in-memory auth context this mirrors |\n *\n * \"Dies with the tab\" has one browser-defined exception worth stating: a DUPLICATED tab, and a tab opened by\n * `window.open` without `noopener`, start with a COPY of the opener's `sessionStorage`. Such a tab can recover\n * the same pending session — bounded by the same age ceiling below and the same server-side state check.\n *\n * Three rules keep the copy from outliving the session it describes, because a stale entry is a finished\n * or abandoned session brought back:\n * - ONE writer: `AuthSessionProvider` remembers and forgets from auth-state TRANSITIONS, never per call site;\n * - explicit forgets on the terminal acts that do not pass through those transitions after a hard load —\n * logout, starting a new identification, and a recovery the server refuses;\n * - a client-side ceiling ({@link PENDING_MFA_SESSION_MAX_AGE_MS}) measured from when the session FIRST\n * became pending, so re-remembering it on every recovery never extends its life.\n *\n * Nothing here is an authorization input. The server re-reads the session by id and admits second-factor\n * work only on the states it allows; this module decides only whether the gate may ASK.\n */\n\n/** The identity of a pending MFA session, as the enrollment gate needs it to recover one. */\nexport interface PendingMfaSessionReference {\n sessionId: string;\n /** Pre-fills the challenge the gate may hand back to; empty when the session was recovered without it. */\n email: string;\n}\n\ninterface StoredPendingMfaSession extends PendingMfaSessionReference {\n /** Epoch milliseconds at which this session FIRST became pending in this tab. */\n rememberedAt: number;\n}\n\n/**\n * How long a remembered pending session may be recovered, from when it first became pending.\n *\n * Deliberately far shorter than the server's session lifetime: a second factor owed and not given within\n * half an hour is an abandoned sign-in, and the cost of refusing to recover it is one sign-in. The cost of\n * recovering it is handing an unattended tab's half-finished session to whoever uses that tab next.\n */\nexport const PENDING_MFA_SESSION_MAX_AGE_MS: number = 30 * 60 * 1000;\n\n/**\n * The tab's `sessionStorage`, or `undefined` when there is none — a non-browser realm, or a browser that\n * refuses storage access. Probed through `globalThis` inside try/catch rather than by sniffing `window`, for\n * the reason `client-instance-id.frontend.service.ts` records.\n */\nfunction tabStorage(): Storage | undefined {\n try {\n return globalThis.sessionStorage ?? undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction readStored(area: Storage): StoredPendingMfaSession | null {\n try {\n const raw = area.getItem(SESSION_STORAGE_KEYS.PENDING_MFA_SESSION);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as Partial<StoredPendingMfaSession> | null;\n if (!parsed || typeof parsed.sessionId !== 'string' || !parsed.sessionId\n || typeof parsed.email !== 'string' || typeof parsed.rememberedAt !== 'number') {\n return null;\n }\n return { sessionId: parsed.sessionId, email: parsed.email, rememberedAt: parsed.rememberedAt };\n } catch {\n return null;\n }\n}\n\n/**\n * Remember a session that owes a second factor. Re-remembering the SAME session keeps its original\n * `rememberedAt` and, when the new reference carries no email, its known email — so a session recovered\n * after a reload (which has no identification response behind it) neither loses its address nor resets\n * its age.\n */\nexport function rememberPendingMfaSession(reference: PendingMfaSessionReference, now: number = Date.now()): void {\n const area = tabStorage();\n if (!area) return;\n\n const existing = readStored(area);\n const sameSession = existing?.sessionId === reference.sessionId;\n const stored: StoredPendingMfaSession = {\n sessionId: reference.sessionId,\n email: reference.email || (sameSession ? existing!.email : ''),\n rememberedAt: sameSession ? existing!.rememberedAt : now,\n };\n\n try {\n area.setItem(SESSION_STORAGE_KEYS.PENDING_MFA_SESSION, JSON.stringify(stored));\n } catch {\n // Storage full or refused: the reload simply will not be recoverable, which is the prior behaviour.\n }\n}\n\n/**\n * The remembered pending session, or `null`. An entry that is malformed or older than\n * {@link PENDING_MFA_SESSION_MAX_AGE_MS} is FORGOTTEN on read, so it cannot be recovered on a later attempt\n * either.\n */\nexport function readPendingMfaSession(now: number = Date.now()): PendingMfaSessionReference | null {\n const area = tabStorage();\n if (!area) return null;\n\n const stored = readStored(area);\n if (!stored || now - stored.rememberedAt > PENDING_MFA_SESSION_MAX_AGE_MS || stored.rememberedAt > now) {\n forgetPendingMfaSession();\n return null;\n }\n return { sessionId: stored.sessionId, email: stored.email };\n}\n\n/** Forget the remembered pending session, if any. Safe to call when nothing is remembered. */\nexport function forgetPendingMfaSession(): void {\n try {\n tabStorage()?.removeItem(SESSION_STORAGE_KEYS.PENDING_MFA_SESSION);\n } catch {\n // Unavailable storage — nothing to forget there.\n }\n}\n"]}
1
+ {"version":3,"file":"pending-mfa-session-storage.frontend.utils.js","sourceRoot":"","sources":["../../../../src/core/security/pending-mfa-session-storage.frontend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SESSION_STORAGE_KEYS } from '~wildo-frontend-lib/core/commons/local-storage.frontend.schemas';\n\n/**\n * The tab-scoped memory of an MFA session that still owes a second factor (#1068).\n *\n * The auth context holds such a session only in memory, so a reload of the enrollment gate after an\n * in-app arrival used to lose it and cost a sign-in. Three places could have carried it across the reload,\n * and this is the one chosen:\n *\n * | option | why not / why |\n * |---|---|\n * | the gate URL | rejected. A REGISTRATION or INVITATION session reaches the gate this way on the ordinary path, issues tokens when a factor is enrolled, and lives 24h — its id would sit in browser history and every frontend/CDN request log |\n * | `localStorage` | rejected. It outlives the tab and is shared by every tab of the origin, so an abandoned sign-up would be recoverable long after, from anywhere on the device |\n * | **`sessionStorage`** | chosen. It survives a reload of THIS tab, dies with the tab, and never leaves the page. Script in the page can read it, exactly as it can already read the in-memory auth context this mirrors |\n *\n * \"Dies with the tab\" has one browser-defined exception worth stating: a DUPLICATED tab, and a tab opened by\n * `window.open` without `noopener`, start with a COPY of the opener's `sessionStorage`. Such a tab can recover\n * the same pending session — bounded by the same age ceiling below and the same server-side state check.\n *\n * Three rules keep the copy from outliving the session it describes, because a stale entry is a finished\n * or abandoned session brought back:\n * - ONE writer: `AuthSessionProvider` remembers and forgets from auth-state TRANSITIONS, never per call site;\n * - explicit forgets on the terminal acts that do not pass through those transitions after a hard load —\n * logout, starting a new identification, and a recovery the server refuses;\n * - a client-side ceiling ({@link PENDING_MFA_SESSION_MAX_AGE_MS}) measured from when the session FIRST\n * became pending, so re-remembering it on every recovery never extends its life.\n *\n * Nothing here is an authorization input. The server re-reads the session by id and admits second-factor\n * work only on the states it allows; this module decides only whether the gate may ASK.\n */\n\n/** The identity of a pending MFA session, as the enrollment gate needs it to recover one. */\nexport interface PendingMfaSessionReference {\n sessionId: string;\n /** Pre-fills the challenge the gate may hand back to; empty when the session was recovered without it. */\n email: string;\n}\n\ninterface StoredPendingMfaSession extends PendingMfaSessionReference {\n /** Epoch milliseconds at which this session FIRST became pending in this tab. */\n rememberedAt: number;\n}\n\n/**\n * How long a remembered pending session may be recovered, from when it first became pending.\n *\n * Deliberately far shorter than the server's session lifetime: a second factor owed and not given within\n * half an hour is an abandoned sign-in, and the cost of refusing to recover it is one sign-in. The cost of\n * recovering it is handing an unattended tab's half-finished session to whoever uses that tab next.\n */\nexport const PENDING_MFA_SESSION_MAX_AGE_MS: number = 30 * 60 * 1000;\n\n/**\n * The tab's `sessionStorage`, or `undefined` when there is none — a non-browser realm, or a browser that\n * refuses storage access. Probed through `globalThis` inside try/catch rather than by sniffing `window`, for\n * the reason `client-instance-id.frontend.service.ts` records.\n */\nfunction tabStorage(): Storage | undefined {\n try {\n return globalThis.sessionStorage ?? undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction readStored(area: Storage): StoredPendingMfaSession | null {\n try {\n const raw = area.getItem(SESSION_STORAGE_KEYS.PENDING_MFA_SESSION);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as Partial<StoredPendingMfaSession> | null;\n if (!parsed || typeof parsed.sessionId !== 'string' || !parsed.sessionId\n || typeof parsed.email !== 'string' || typeof parsed.rememberedAt !== 'number') {\n return null;\n }\n return { sessionId: parsed.sessionId, email: parsed.email, rememberedAt: parsed.rememberedAt };\n } catch {\n return null;\n }\n}\n\n/**\n * Remember a session that owes a second factor. Re-remembering the SAME session keeps its original\n * `rememberedAt` and, when the new reference carries no email, its known email — so a session recovered\n * after a reload (which has no identification response behind it) neither loses its address nor resets\n * its age.\n */\nexport function rememberPendingMfaSession(reference: PendingMfaSessionReference, now: number = Date.now()): void {\n const area = tabStorage();\n if (!area) return;\n\n const existing = readStored(area);\n const sameSession = existing?.sessionId === reference.sessionId;\n const stored: StoredPendingMfaSession = {\n sessionId: reference.sessionId,\n email: reference.email || (sameSession ? existing!.email : ''),\n rememberedAt: sameSession ? existing!.rememberedAt : now,\n };\n\n try {\n area.setItem(SESSION_STORAGE_KEYS.PENDING_MFA_SESSION, JSON.stringify(stored));\n } catch {\n // Storage full or refused: the reload simply will not be recoverable, which is the prior behaviour.\n }\n}\n\n/**\n * The remembered pending session, or `null`. An entry that is malformed or older than\n * {@link PENDING_MFA_SESSION_MAX_AGE_MS} is FORGOTTEN on read, so it cannot be recovered on a later attempt\n * either.\n */\nexport function readPendingMfaSession(now: number = Date.now()): PendingMfaSessionReference | null {\n const area = tabStorage();\n if (!area) return null;\n\n const stored = readStored(area);\n if (!stored || now - stored.rememberedAt > PENDING_MFA_SESSION_MAX_AGE_MS || stored.rememberedAt > now) {\n forgetPendingMfaSession();\n return null;\n }\n return { sessionId: stored.sessionId, email: stored.email };\n}\n\n/** Forget the remembered pending session, if any. Safe to call when nothing is remembered. */\nexport function forgetPendingMfaSession(): void {\n try {\n tabStorage()?.removeItem(SESSION_STORAGE_KEYS.PENDING_MFA_SESSION);\n } catch {\n // Unavailable storage — nothing to forget there.\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"registration-outcome.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/registration-outcome.frontend.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AAGjI;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,mBAAmB;IAC7B;;;OAGG;IACH,SAAS,cAAc;IACvB;;;;OAIG;IACH,uBAAuB,4BAA4B;IACnD;;;;;;;;;OASG;IACH,0BAA0B,+BAA+B;IACzD,iHAAiH;IACjH,qBAAqB,0BAA0B;IAC/C;;;OAGG;IACH,eAAe,oBAAoB;IACnC;;;;OAIG;IACH,0BAA0B,+BAA+B;IACzD;;;;OAIG;IACH,gCAAgC,qCAAqC;IACrE;;;;;OAKG;IACH,UAAU,eAAe;CAC1B;AAYD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,mBAAmB,CAgClG"}
1
+ {"version":3,"file":"registration-outcome.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/security/registration-outcome.frontend.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AAGjI;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,mBAAmB;IAC7B;;;OAGG;IACH,SAAS,cAAc;IACvB;;;;OAIG;IACH,uBAAuB,4BAA4B;IACnD;;;;;;;;;OASG;IACH,0BAA0B,+BAA+B;IACzD,iHAAiH;IACjH,qBAAqB,0BAA0B;IAC/C;;;OAGG;IACH,eAAe,oBAAoB;IACnC;;;;OAIG;IACH,0BAA0B,+BAA+B;IACzD;;;;OAIG;IACH,gCAAgC,qCAAqC;IACrE;;;;;OAKG;IACH,UAAU,eAAe;CAC1B;AAYD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,mBAAmB,CAgClG"}
@@ -1 +1 @@
1
- {"version":3,"file":"registration-outcome.frontend.utils.js","sourceRoot":"","sources":["../../../../../src/core/security/registration-outcome.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,qCAAqC,EAAE,MAAM,0EAA0E,CAAC;AAEjI;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAN,IAAY,mBAiDX;AAjDD,WAAY,mBAAmB;IAC7B;;;OAGG;IACH,8CAAuB,CAAA;IACvB;;;;OAIG;IACH,0EAAmD,CAAA;IACnD;;;;;;;;;OASG;IACH,gFAAyD,CAAA;IACzD,iHAAiH;IACjH,sEAA+C,CAAA;IAC/C;;;OAGG;IACH,0DAAmC,CAAA;IACnC;;;;OAIG;IACH,gFAAyD,CAAA;IACzD;;;;OAIG;IACH,4FAAqE,CAAA;IACrE;;;;;OAKG;IACH,gDAAyB,CAAA;AAC3B,CAAC,EAjDW,mBAAmB,KAAnB,mBAAmB,QAiD9B;AAED;;;;GAIG;AACH,MAAM,iCAAiC,GAA4C,IAAI,GAAG,CAAC;IACzF,0BAA0B,CAAC,SAAS;IACpC,0BAA0B,CAAC,oBAAoB;CAChD,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAiC;IAC3E,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,iCAAiC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClH,OAAO,mBAAmB,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,mBAAmB,CAAC,qBAAqB,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,0BAA0B,CAAC,uBAAuB,EAAE,CAAC;QAC1E,qGAAqG;QACrG,8DAA8D;QAC9D,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC3G,CAAC;IAED,IAAI,qCAAqC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,mBAAmB,CAAC,gCAAgC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAAC,eAAe,EAAE,CAAC;QACvD,OAAO,mBAAmB,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC1D,OAAO,mBAAmB,CAAC,0BAA0B,CAAC;IACxD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjI,OAAO,mBAAmB,CAAC,0BAA0B,CAAC;IACxD,CAAC;IAED,OAAO,mBAAmB,CAAC,UAAU,CAAC;AACxC,CAAC","sourcesContent":["import { AuthenticationSessionState, AuthNextStep } from '@wildo-ai/saas-models';\nimport type { RegisterAccountResponse } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { parkedOrganizationOnboardingSessionId } from '~wildo-frontend-lib/core/security/organization-onboarding.frontend.utils';\n\n/**\n * What a public registration ANSWER means for the person who just submitted the form (#972).\n *\n * `POST /auth/register` does not have one outcome. Depending on the registrant's user-type policy it\n * signs them in, parks them at a second-factor enrollment they owe, asks them to verify their address,\n * or — for an address that already has an account — answers with a bare acknowledgement. The registration\n * screen used to ignore all of that and announce \"check your\n * email\" for every answer, which sent a registrant who had to enroll a second factor away without the\n * session that enrollment completes, and told one who had just been signed in to go and verify.\n *\n * This is the ONE classification of that answer. `AuthSessionContext.registerAccount` adopts the auth\n * state from it and the registration screen renders from it, so the two cannot disagree about which\n * outcome an answer was. Separately-written predicates over the same answer are how the auth screens\n * came to disagree before: their MFA routing copies differed on whether `availableEnrollmentMethods`\n * or the usable-factor set decided enrollment.\n */\nexport enum RegistrationOutcome {\n /**\n * The registration pipeline COMPLETED (or entered the enrollment grace period) and an access token\n * came back. The person is signed in; the refresh token arrived as an HttpOnly cookie.\n */\n SIGNED_IN = 'signed_in',\n /**\n * The user type requires a second factor with no grace period and nothing is enrolled. The answer\n * carries the registration session; enrolling on the enrollment gate completes it and signs the\n * person in (#603). Tokens are deliberately withheld until then.\n */\n MFA_ENROLLMENT_REQUIRED = 'mfa_enrollment_required',\n /**\n * The account exists and its address must be verified before it can sign in — OR the address\n * already had an account. Both are the same answer: the bare acknowledgement.\n *\n * Since #1010 that sameness is the BACKEND's, not only this screen's. Under verification-required\n * registration a new account's answer no longer carries a registration session (`sessionId`,\n * `state: REGISTERED`) — the emailed link is the continuation — so the wire cannot tell a new address\n * from a registered one either. Deferred verification is different by construction: it signs a new\n * registrant in on the spot, which no acknowledgement can imitate.\n */\n EMAIL_VERIFICATION_PENDING = 'email_verification_pending',\n /** The address belongs to a domain whose organization enforces single sign-on; self-registration was refused. */\n SSO_REDIRECT_REQUIRED = 'sso_redirect_required',\n /**\n * A password-less registration: the account exists and a magic link is on its way. Clicking it proves\n * the address and signs the person in, so there is no verification email to resend.\n */\n MAGIC_LINK_SENT = 'magic_link_sent',\n /**\n * A passkey registration (#1093): the account exists, a magic link is on its way, and the passkey is\n * enrolled once the link has signed the person in — a passkey proves an authenticator, never an\n * address, so public passkey sign-up routes through the link. Like MAGIC_LINK_SENT, nothing to resend.\n */\n PASSKEY_ENROLLMENT_PENDING = 'passkey_enrollment_pending',\n /**\n * The account's user type names its organization at onboarding and the answer parked the registration\n * session there (`state: ONBOARDING_PENDING`, #1011). The context adopts the session and the person is sent\n * to the organization-onboarding step, which creates the organization and signs them in (#1090).\n */\n ORGANIZATION_ONBOARDING_REQUIRED = 'organization_onboarding_required',\n /**\n * Anything else: the account was (or may have been) created, but the answer names a step this screen\n * does not carry out — an enrollment or onboarding answer with no session to continue on, or a state\n * added to the pipeline after this was written. Rendered as\n * \"not finished, sign in to continue\"; never as \"complete\".\n */\n UNFINISHED = 'unfinished',\n}\n\n/**\n * The session states in which the registration pipeline issues tokens — the backend's own issuance\n * predicate (`registerUser`, deferred-verification branch), restated as data so a token arriving beside\n * any OTHER state is not adopted as a finished sign-in.\n */\nconst TOKEN_ISSUING_REGISTRATION_STATES: ReadonlySet<AuthenticationSessionState> = new Set([\n AuthenticationSessionState.COMPLETED,\n AuthenticationSessionState.MFA_ENROLLMENT_GRACE,\n]);\n\n/**\n * Classify a registration answer. Order matters and is the precedence the backend's branches imply:\n * a signed-in answer wins; the SSO refusal and the magic-link answer carry no session state; an\n * answer with no state, no next step and no session is the acknowledgement — a new account awaiting\n * address verification and an already-registered address alike (#1010).\n *\n * There is no `state: REGISTERED` branch: no registration answer carries that state any more, so an\n * answer that did would be one this was not written for, and lands in UNFINISHED like any other.\n */\nexport function classifyRegistrationOutcome(response: RegisterAccountResponse): RegistrationOutcome {\n if (response.accessToken && response.state !== undefined && TOKEN_ISSUING_REGISTRATION_STATES.has(response.state)) {\n return RegistrationOutcome.SIGNED_IN;\n }\n\n if (response.ssoRedirectHint === true) {\n return RegistrationOutcome.SSO_REDIRECT_REQUIRED;\n }\n\n if (response.state === AuthenticationSessionState.MFA_ENROLLMENT_REQUIRED) {\n // The gate enrolls ON the session. Without one there is nothing to complete, and routing there would\n // strand the person on a screen that bounces them to sign-in.\n return response.sessionId ? RegistrationOutcome.MFA_ENROLLMENT_REQUIRED : RegistrationOutcome.UNFINISHED;\n }\n\n if (parkedOrganizationOnboardingSessionId(response)) {\n return RegistrationOutcome.ORGANIZATION_ONBOARDING_REQUIRED;\n }\n\n if (response.nextStep === AuthNextStep.MAGIC_LINK_SENT) {\n return RegistrationOutcome.MAGIC_LINK_SENT;\n }\n\n if (response.nextStep === AuthNextStep.PASSKEY_ENROLLMENT) {\n return RegistrationOutcome.PASSKEY_ENROLLMENT_PENDING;\n }\n\n if (response.state === undefined && response.nextStep === undefined && response.sessionId === undefined && !response.accessToken) {\n return RegistrationOutcome.EMAIL_VERIFICATION_PENDING;\n }\n\n return RegistrationOutcome.UNFINISHED;\n}\n"]}
1
+ {"version":3,"file":"registration-outcome.frontend.utils.js","sourceRoot":"","sources":["../../../../src/core/security/registration-outcome.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,qCAAqC,EAAE,MAAM,0EAA0E,CAAC;AAEjI;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAN,IAAY,mBAiDX;AAjDD,WAAY,mBAAmB;IAC7B;;;OAGG;IACH,8CAAuB,CAAA;IACvB;;;;OAIG;IACH,0EAAmD,CAAA;IACnD;;;;;;;;;OASG;IACH,gFAAyD,CAAA;IACzD,iHAAiH;IACjH,sEAA+C,CAAA;IAC/C;;;OAGG;IACH,0DAAmC,CAAA;IACnC;;;;OAIG;IACH,gFAAyD,CAAA;IACzD;;;;OAIG;IACH,4FAAqE,CAAA;IACrE;;;;;OAKG;IACH,gDAAyB,CAAA;AAC3B,CAAC,EAjDW,mBAAmB,KAAnB,mBAAmB,QAiD9B;AAED;;;;GAIG;AACH,MAAM,iCAAiC,GAA4C,IAAI,GAAG,CAAC;IACzF,0BAA0B,CAAC,SAAS;IACpC,0BAA0B,CAAC,oBAAoB;CAChD,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAiC;IAC3E,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,iCAAiC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClH,OAAO,mBAAmB,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,mBAAmB,CAAC,qBAAqB,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,0BAA0B,CAAC,uBAAuB,EAAE,CAAC;QAC1E,qGAAqG;QACrG,8DAA8D;QAC9D,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC3G,CAAC;IAED,IAAI,qCAAqC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,mBAAmB,CAAC,gCAAgC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAAC,eAAe,EAAE,CAAC;QACvD,OAAO,mBAAmB,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC1D,OAAO,mBAAmB,CAAC,0BAA0B,CAAC;IACxD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjI,OAAO,mBAAmB,CAAC,0BAA0B,CAAC;IACxD,CAAC;IAED,OAAO,mBAAmB,CAAC,UAAU,CAAC;AACxC,CAAC","sourcesContent":["import { AuthenticationSessionState, AuthNextStep } from '@wildo-ai/saas-models';\nimport type { RegisterAccountResponse } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { parkedOrganizationOnboardingSessionId } from '~wildo-frontend-lib/core/security/organization-onboarding.frontend.utils';\n\n/**\n * What a public registration ANSWER means for the person who just submitted the form (#972).\n *\n * `POST /auth/register` does not have one outcome. Depending on the registrant's user-type policy it\n * signs them in, parks them at a second-factor enrollment they owe, asks them to verify their address,\n * or — for an address that already has an account — answers with a bare acknowledgement. The registration\n * screen used to ignore all of that and announce \"check your\n * email\" for every answer, which sent a registrant who had to enroll a second factor away without the\n * session that enrollment completes, and told one who had just been signed in to go and verify.\n *\n * This is the ONE classification of that answer. `AuthSessionContext.registerAccount` adopts the auth\n * state from it and the registration screen renders from it, so the two cannot disagree about which\n * outcome an answer was. Separately-written predicates over the same answer are how the auth screens\n * came to disagree before: their MFA routing copies differed on whether `availableEnrollmentMethods`\n * or the usable-factor set decided enrollment.\n */\nexport enum RegistrationOutcome {\n /**\n * The registration pipeline COMPLETED (or entered the enrollment grace period) and an access token\n * came back. The person is signed in; the refresh token arrived as an HttpOnly cookie.\n */\n SIGNED_IN = 'signed_in',\n /**\n * The user type requires a second factor with no grace period and nothing is enrolled. The answer\n * carries the registration session; enrolling on the enrollment gate completes it and signs the\n * person in (#603). Tokens are deliberately withheld until then.\n */\n MFA_ENROLLMENT_REQUIRED = 'mfa_enrollment_required',\n /**\n * The account exists and its address must be verified before it can sign in — OR the address\n * already had an account. Both are the same answer: the bare acknowledgement.\n *\n * Since #1010 that sameness is the BACKEND's, not only this screen's. Under verification-required\n * registration a new account's answer no longer carries a registration session (`sessionId`,\n * `state: REGISTERED`) — the emailed link is the continuation — so the wire cannot tell a new address\n * from a registered one either. Deferred verification is different by construction: it signs a new\n * registrant in on the spot, which no acknowledgement can imitate.\n */\n EMAIL_VERIFICATION_PENDING = 'email_verification_pending',\n /** The address belongs to a domain whose organization enforces single sign-on; self-registration was refused. */\n SSO_REDIRECT_REQUIRED = 'sso_redirect_required',\n /**\n * A password-less registration: the account exists and a magic link is on its way. Clicking it proves\n * the address and signs the person in, so there is no verification email to resend.\n */\n MAGIC_LINK_SENT = 'magic_link_sent',\n /**\n * A passkey registration (#1093): the account exists, a magic link is on its way, and the passkey is\n * enrolled once the link has signed the person in — a passkey proves an authenticator, never an\n * address, so public passkey sign-up routes through the link. Like MAGIC_LINK_SENT, nothing to resend.\n */\n PASSKEY_ENROLLMENT_PENDING = 'passkey_enrollment_pending',\n /**\n * The account's user type names its organization at onboarding and the answer parked the registration\n * session there (`state: ONBOARDING_PENDING`, #1011). The context adopts the session and the person is sent\n * to the organization-onboarding step, which creates the organization and signs them in (#1090).\n */\n ORGANIZATION_ONBOARDING_REQUIRED = 'organization_onboarding_required',\n /**\n * Anything else: the account was (or may have been) created, but the answer names a step this screen\n * does not carry out — an enrollment or onboarding answer with no session to continue on, or a state\n * added to the pipeline after this was written. Rendered as\n * \"not finished, sign in to continue\"; never as \"complete\".\n */\n UNFINISHED = 'unfinished',\n}\n\n/**\n * The session states in which the registration pipeline issues tokens — the backend's own issuance\n * predicate (`registerUser`, deferred-verification branch), restated as data so a token arriving beside\n * any OTHER state is not adopted as a finished sign-in.\n */\nconst TOKEN_ISSUING_REGISTRATION_STATES: ReadonlySet<AuthenticationSessionState> = new Set([\n AuthenticationSessionState.COMPLETED,\n AuthenticationSessionState.MFA_ENROLLMENT_GRACE,\n]);\n\n/**\n * Classify a registration answer. Order matters and is the precedence the backend's branches imply:\n * a signed-in answer wins; the SSO refusal and the magic-link answer carry no session state; an\n * answer with no state, no next step and no session is the acknowledgement — a new account awaiting\n * address verification and an already-registered address alike (#1010).\n *\n * There is no `state: REGISTERED` branch: no registration answer carries that state any more, so an\n * answer that did would be one this was not written for, and lands in UNFINISHED like any other.\n */\nexport function classifyRegistrationOutcome(response: RegisterAccountResponse): RegistrationOutcome {\n if (response.accessToken && response.state !== undefined && TOKEN_ISSUING_REGISTRATION_STATES.has(response.state)) {\n return RegistrationOutcome.SIGNED_IN;\n }\n\n if (response.ssoRedirectHint === true) {\n return RegistrationOutcome.SSO_REDIRECT_REQUIRED;\n }\n\n if (response.state === AuthenticationSessionState.MFA_ENROLLMENT_REQUIRED) {\n // The gate enrolls ON the session. Without one there is nothing to complete, and routing there would\n // strand the person on a screen that bounces them to sign-in.\n return response.sessionId ? RegistrationOutcome.MFA_ENROLLMENT_REQUIRED : RegistrationOutcome.UNFINISHED;\n }\n\n if (parkedOrganizationOnboardingSessionId(response)) {\n return RegistrationOutcome.ORGANIZATION_ONBOARDING_REQUIRED;\n }\n\n if (response.nextStep === AuthNextStep.MAGIC_LINK_SENT) {\n return RegistrationOutcome.MAGIC_LINK_SENT;\n }\n\n if (response.nextStep === AuthNextStep.PASSKEY_ENROLLMENT) {\n return RegistrationOutcome.PASSKEY_ENROLLMENT_PENDING;\n }\n\n if (response.state === undefined && response.nextStep === undefined && response.sessionId === undefined && !response.accessToken) {\n return RegistrationOutcome.EMAIL_VERIFICATION_PENDING;\n }\n\n return RegistrationOutcome.UNFINISHED;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"route-organization-access.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/route-organization-access.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,gCAAgC,EAChC,uCAAuC,EACxC,MAAM,+DAA+D,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,oBAAY,uBAAuB;IACjC,qFAAqF;IACrF,aAAa,kBAAkB;IAC/B;;;;OAIG;IACH,WAAW,gBAAgB;IAC3B,8GAA8G;IAC9G,iBAAiB,sBAAsB;IACvC,sGAAsG;IACtG,SAAS,cAAc;IACvB,uIAAuI;IACvI,QAAQ,aAAa;IACrB;;;;;;OAMG;IACH,OAAO,YAAY;IACnB;;;;OAIG;IACH,YAAY,iBAAiB;CAC9B;AAED,+HAA+H;AAC/H,MAAM,WAAW,gCAAgC;IAC/C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,wDAAwD;IACxD,6BAA6B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,aAAa,CAAC,gCAAgC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/E,cAAc,EAAE,MAAM,GACrB,OAAO,CAMT;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,qBAAqB,EAAE,gCAAgC,GAAG,SAAS,GAClE,uCAAuC,GAAG,SAAS,CAWrD"}
1
+ {"version":3,"file":"route-organization-access.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/security/route-organization-access.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,gCAAgC,EAChC,uCAAuC,EACxC,MAAM,+DAA+D,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,oBAAY,uBAAuB;IACjC,qFAAqF;IACrF,aAAa,kBAAkB;IAC/B;;;;OAIG;IACH,WAAW,gBAAgB;IAC3B,8GAA8G;IAC9G,iBAAiB,sBAAsB;IACvC,sGAAsG;IACtG,SAAS,cAAc;IACvB,uIAAuI;IACvI,QAAQ,aAAa;IACrB;;;;;;OAMG;IACH,OAAO,YAAY;IACnB;;;;OAIG;IACH,YAAY,iBAAiB;CAC9B;AAED,+HAA+H;AAC/H,MAAM,WAAW,gCAAgC;IAC/C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,wDAAwD;IACxD,6BAA6B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,aAAa,CAAC,gCAAgC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/E,cAAc,EAAE,MAAM,GACrB,OAAO,CAMT;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,qBAAqB,EAAE,gCAAgC,GAAG,SAAS,GAClE,uCAAuC,GAAG,SAAS,CAWrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-organization-access.frontend.utils.js","sourceRoot":"","sources":["../../../../../src/core/security/route-organization-access.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAM/B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAN,IAAY,uBA6BX;AA7BD,WAAY,uBAAuB;IACjC,qFAAqF;IACrF,0DAA+B,CAAA;IAC/B;;;;OAIG;IACH,sDAA2B,CAAA;IAC3B,8GAA8G;IAC9G,kEAAuC,CAAA;IACvC,sGAAsG;IACtG,kDAAuB,CAAA;IACvB,uIAAuI;IACvI,gDAAqB,CAAA;IACrB;;;;;;OAMG;IACH,8CAAmB,CAAA;IACnB;;;;OAIG;IACH,wDAA6B,CAAA;AAC/B,CAAC,EA7BW,uBAAuB,KAAvB,uBAAuB,QA6BlC;AAWD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iCAAiC,CAC/C,WAA+E,EAC/E,cAAsB;IAEtB,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAC7B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,cAAc,KAAK,cAAc;WACvD,UAAU,CAAC,MAAM,KAAK,wBAAwB,CAAC,MAAM;WACrD,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,qBAAmE;IAEnE,OAAO,qBAAqB,EAAE,UAAU,EAAE,IAAI,CAC5C,CAAC,SAAkD,EAAE,EAAE,CACrD,SAAS,CAAC,mBAAmB,KAAK,qBAAqB,CAAC,IAAI;WACzD,SAAS,CAAC,kBAAkB,KAAK,IAAI;WACrC,SAAS,CAAC,eAAe,KAAK,IAAI;WAClC,CACD,SAAS,CAAC,WAAW,KAAK,4BAA4B,CAAC,QAAQ;eAC5D,SAAS,CAAC,WAAW,KAAK,4BAA4B,CAAC,sBAAsB,CACjF,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import {\n CoreResourceOperation,\n OrganizationMemberStatus,\n isServiceProviderMembership,\n ResourceOperationVariantType,\n} from '@wildo-ai/saas-models';\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\n\n/**\n * Whether the signed-in account may open the organization a route addresses (`/organizations/:id/…`).\n *\n * ## Why the route needs its own answer\n *\n * The AppScope organization is membership-checked: `UserOrgsContext` only commits an organization the\n * account belongs to. A route's organization segment is not. `ScopeUtilsService.buildResourceOperationContextIdentifiers`\n * places the URL's identifiers LAST, so they override the checked scope, and the page issues its reads\n * against whatever organization the link names. The link is not always the account's own: a session\n * that expires on `/organizations/A/tasks` saves that URL as the post-login `redirect`, and a DIFFERENT\n * account signing in is sent straight to it. Every read then answered 403, and the person was left on\n * a page that could never load.\n *\n * ## Why the server decides, and the membership list only short-circuits\n *\n * The user context embeds `organizationMembers`, but that array is a context projection capped at\n * `DEFAULT_RELATIONSHIP_CONTEXT_POLICY.limit` (20, newest first) and \"cannot say it was truncated\".\n * A refusal computed from it would eject a member of a 21st organization, and it would also eject a\n * platform operator on a crossing the server admits. So an ACTIVE membership found in the list is\n * trusted (a positive answer cannot be invented by truncation), and anything else is asked of the\n * server with one silent READ of the organization. Only a refusal from that READ redirects.\n */\nexport enum RouteOrganizationAccess {\n /** The current route carries no organization segment. There is nothing to decide. */\n NOT_ADDRESSED = 'NOT_ADDRESSED',\n /**\n * The route addresses an organization, but the session cannot be judged yet or at all: restore is\n * unresolved, no user context was loaded, or the loaded user is not the token's subject (a stale\n * context from the previous account). The route renders as it would without this check.\n */\n UNDECIDABLE = 'UNDECIDABLE',\n /** The loaded user context carries an ACTIVE membership in the addressed organization. No request is made. */\n ACTIVE_MEMBERSHIP = 'ACTIVE_MEMBERSHIP',\n /** No active membership is known, and the server is being asked. The page must not load meanwhile. */\n VERIFYING = 'VERIFYING',\n /** The server answered the organization READ. The account may open it (a membership past the context cap, or an admitted crossing). */\n ADMITTED = 'ADMITTED',\n /**\n * The server refused the organization READ (403, or the deliberate 404 a non-member receives so the\n * answer is not an existence oracle). The route must not render.\n *\n * A link to an organization that does not exist lands here too, and on purpose: the server answers it\n * with the same 404, so the frontend cannot tell the two apart, and must not try to.\n */\n REFUSED = 'REFUSED',\n /**\n * The READ failed for a reason that says nothing about access (network, 5xx, no READ operation mounted).\n * The route renders, and its own requests report whatever is wrong: a transient failure must never\n * eject someone from a page they may open.\n */\n INCONCLUSIVE = 'INCONCLUSIVE',\n}\n\n/** The membership fields this decision reads, structurally, so the check does not depend on the context's population shape. */\nexport interface RouteOrganizationMembershipFacts {\n organizationId?: string | null;\n status?: OrganizationMemberStatus | string | null;\n /** Present on a service-provider membership (#1597). */\n serviceProviderRelationshipId?: string | null;\n providerOrganizationId?: string | null;\n}\n\n/**\n * True when the memberships carry an ACTIVE membership in `organizationId`.\n *\n * Only ACTIVE counts: an INVITED, INACTIVE or SUSPENDED membership confers no access on the server, so\n * treating it as a pass would let exactly the refused reads through. Such a membership falls through to\n * the server probe instead, which answers correctly either way.\n *\n * A SERVICE-PROVIDER membership never counts (#1597, review 6): its status is a mirror of the relationship, which\n * the server re-checks on every request — a suspended relationship, or one past its term, still shows an ACTIVE row\n * here. It falls through to the server probe like any other membership the client cannot vouch for.\n */\nexport function hasActiveMembershipInOrganization(\n memberships: ReadonlyArray<RouteOrganizationMembershipFacts> | null | undefined,\n organizationId: string,\n): boolean {\n return (memberships ?? []).some(\n (membership) => membership.organizationId === organizationId\n && membership.status === OrganizationMemberStatus.ACTIVE\n && !isServiceProviderMembership(membership),\n );\n}\n\n/**\n * The default, non-bulk API READ of a resource — the operation that fetches one row by its identifier.\n *\n * Shared by the session's organization loading and the route access probe, which must address the same\n * operation: if they disagreed, the probe could admit an organization the session cannot load.\n */\nexport function findDefaultApiReadOperation(\n resourceConfiguration: AnyFrontendResourceConfiguration | undefined,\n): FrontendResourceConfiguration_Operation | undefined {\n return resourceConfiguration?.operations?.find(\n (operation: FrontendResourceConfiguration_Operation) =>\n operation.operationIdentifier === CoreResourceOperation.READ\n && operation.isOperationDefault === true\n && operation.isBulkOperation !== true\n && (\n operation.variantType === ResourceOperationVariantType.API_CALL\n || operation.variantType === ResourceOperationVariantType.API_CALL_WITH_CALLBACK\n ),\n );\n}\n"]}
1
+ {"version":3,"file":"route-organization-access.frontend.utils.js","sourceRoot":"","sources":["../../../../src/core/security/route-organization-access.frontend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAM/B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAN,IAAY,uBA6BX;AA7BD,WAAY,uBAAuB;IACjC,qFAAqF;IACrF,0DAA+B,CAAA;IAC/B;;;;OAIG;IACH,sDAA2B,CAAA;IAC3B,8GAA8G;IAC9G,kEAAuC,CAAA;IACvC,sGAAsG;IACtG,kDAAuB,CAAA;IACvB,uIAAuI;IACvI,gDAAqB,CAAA;IACrB;;;;;;OAMG;IACH,8CAAmB,CAAA;IACnB;;;;OAIG;IACH,wDAA6B,CAAA;AAC/B,CAAC,EA7BW,uBAAuB,KAAvB,uBAAuB,QA6BlC;AAWD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iCAAiC,CAC/C,WAA+E,EAC/E,cAAsB;IAEtB,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAC7B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,cAAc,KAAK,cAAc;WACvD,UAAU,CAAC,MAAM,KAAK,wBAAwB,CAAC,MAAM;WACrD,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,qBAAmE;IAEnE,OAAO,qBAAqB,EAAE,UAAU,EAAE,IAAI,CAC5C,CAAC,SAAkD,EAAE,EAAE,CACrD,SAAS,CAAC,mBAAmB,KAAK,qBAAqB,CAAC,IAAI;WACzD,SAAS,CAAC,kBAAkB,KAAK,IAAI;WACrC,SAAS,CAAC,eAAe,KAAK,IAAI;WAClC,CACD,SAAS,CAAC,WAAW,KAAK,4BAA4B,CAAC,QAAQ;eAC5D,SAAS,CAAC,WAAW,KAAK,4BAA4B,CAAC,sBAAsB,CACjF,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import {\n CoreResourceOperation,\n OrganizationMemberStatus,\n isServiceProviderMembership,\n ResourceOperationVariantType,\n} from '@wildo-ai/saas-models';\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\n\n/**\n * Whether the signed-in account may open the organization a route addresses (`/organizations/:id/…`).\n *\n * ## Why the route needs its own answer\n *\n * The AppScope organization is membership-checked: `UserOrgsContext` only commits an organization the\n * account belongs to. A route's organization segment is not. `ScopeUtilsService.buildResourceOperationContextIdentifiers`\n * places the URL's identifiers LAST, so they override the checked scope, and the page issues its reads\n * against whatever organization the link names. The link is not always the account's own: a session\n * that expires on `/organizations/A/tasks` saves that URL as the post-login `redirect`, and a DIFFERENT\n * account signing in is sent straight to it. Every read then answered 403, and the person was left on\n * a page that could never load.\n *\n * ## Why the server decides, and the membership list only short-circuits\n *\n * The user context embeds `organizationMembers`, but that array is a context projection capped at\n * `DEFAULT_RELATIONSHIP_CONTEXT_POLICY.limit` (20, newest first) and \"cannot say it was truncated\".\n * A refusal computed from it would eject a member of a 21st organization, and it would also eject a\n * platform operator on a crossing the server admits. So an ACTIVE membership found in the list is\n * trusted (a positive answer cannot be invented by truncation), and anything else is asked of the\n * server with one silent READ of the organization. Only a refusal from that READ redirects.\n */\nexport enum RouteOrganizationAccess {\n /** The current route carries no organization segment. There is nothing to decide. */\n NOT_ADDRESSED = 'NOT_ADDRESSED',\n /**\n * The route addresses an organization, but the session cannot be judged yet or at all: restore is\n * unresolved, no user context was loaded, or the loaded user is not the token's subject (a stale\n * context from the previous account). The route renders as it would without this check.\n */\n UNDECIDABLE = 'UNDECIDABLE',\n /** The loaded user context carries an ACTIVE membership in the addressed organization. No request is made. */\n ACTIVE_MEMBERSHIP = 'ACTIVE_MEMBERSHIP',\n /** No active membership is known, and the server is being asked. The page must not load meanwhile. */\n VERIFYING = 'VERIFYING',\n /** The server answered the organization READ. The account may open it (a membership past the context cap, or an admitted crossing). */\n ADMITTED = 'ADMITTED',\n /**\n * The server refused the organization READ (403, or the deliberate 404 a non-member receives so the\n * answer is not an existence oracle). The route must not render.\n *\n * A link to an organization that does not exist lands here too, and on purpose: the server answers it\n * with the same 404, so the frontend cannot tell the two apart, and must not try to.\n */\n REFUSED = 'REFUSED',\n /**\n * The READ failed for a reason that says nothing about access (network, 5xx, no READ operation mounted).\n * The route renders, and its own requests report whatever is wrong: a transient failure must never\n * eject someone from a page they may open.\n */\n INCONCLUSIVE = 'INCONCLUSIVE',\n}\n\n/** The membership fields this decision reads, structurally, so the check does not depend on the context's population shape. */\nexport interface RouteOrganizationMembershipFacts {\n organizationId?: string | null;\n status?: OrganizationMemberStatus | string | null;\n /** Present on a service-provider membership (#1597). */\n serviceProviderRelationshipId?: string | null;\n providerOrganizationId?: string | null;\n}\n\n/**\n * True when the memberships carry an ACTIVE membership in `organizationId`.\n *\n * Only ACTIVE counts: an INVITED, INACTIVE or SUSPENDED membership confers no access on the server, so\n * treating it as a pass would let exactly the refused reads through. Such a membership falls through to\n * the server probe instead, which answers correctly either way.\n *\n * A SERVICE-PROVIDER membership never counts (#1597, review 6): its status is a mirror of the relationship, which\n * the server re-checks on every request — a suspended relationship, or one past its term, still shows an ACTIVE row\n * here. It falls through to the server probe like any other membership the client cannot vouch for.\n */\nexport function hasActiveMembershipInOrganization(\n memberships: ReadonlyArray<RouteOrganizationMembershipFacts> | null | undefined,\n organizationId: string,\n): boolean {\n return (memberships ?? []).some(\n (membership) => membership.organizationId === organizationId\n && membership.status === OrganizationMemberStatus.ACTIVE\n && !isServiceProviderMembership(membership),\n );\n}\n\n/**\n * The default, non-bulk API READ of a resource — the operation that fetches one row by its identifier.\n *\n * Shared by the session's organization loading and the route access probe, which must address the same\n * operation: if they disagreed, the probe could admit an organization the session cannot load.\n */\nexport function findDefaultApiReadOperation(\n resourceConfiguration: AnyFrontendResourceConfiguration | undefined,\n): FrontendResourceConfiguration_Operation | undefined {\n return resourceConfiguration?.operations?.find(\n (operation: FrontendResourceConfiguration_Operation) =>\n operation.operationIdentifier === CoreResourceOperation.READ\n && operation.isOperationDefault === true\n && operation.isBulkOperation !== true\n && (\n operation.variantType === ResourceOperationVariantType.API_CALL\n || operation.variantType === ResourceOperationVariantType.API_CALL_WITH_CALLBACK\n ),\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"security.frontend.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/security.frontend.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,WAAW,EACX,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAClD,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mBAAmB,EAAE,eAAe,EAAE,CAAC;IACvC,0BAA0B,EAAE,UAAU,EAAE,CAAC;IACzC,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC;;;;;;;;;;OAUG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,oEAAoE;IACpE,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,wGAAwG;IACxG,aAAa,CAAC,EAAE;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,2BAA2B,CAAC,EAAE;QAC5B;;;;;WAKG;QACH,UAAU,EAAE,MAAM,CAAC;QACnB;;;;;;;;;WASG;QACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,mGAAmG;QACnG,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAoB9B,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAE/E;AAED;;;;;;;;;;;;;GAaG;AACH,oBAAY,sBAAsB;IAChC,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAChB;AAED;;;;;;;;;GASG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;;CAKrD;AAED;;;;;;;GAOG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;;CAKxD"}
1
+ {"version":3,"file":"security.frontend.schemas.d.ts","sourceRoot":"","sources":["../../../../src/core/security/security.frontend.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,WAAW,EACX,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAClD,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mBAAmB,EAAE,eAAe,EAAE,CAAC;IACvC,0BAA0B,EAAE,UAAU,EAAE,CAAC;IACzC,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC;;;;;;;;;;OAUG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,oEAAoE;IACpE,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,wGAAwG;IACxG,aAAa,CAAC,EAAE;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,2BAA2B,CAAC,EAAE;QAC5B;;;;;WAKG;QACH,UAAU,EAAE,MAAM,CAAC;QACnB;;;;;;;;;WASG;QACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,mGAAmG;QACnG,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAoB9B,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAE/E;AAED;;;;;;;;;;;;;GAaG;AACH,oBAAY,sBAAsB;IAChC,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAChB;AAED;;;;;;;;;GASG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;;CAKrD;AAED;;;;;;;GAOG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;;CAKxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"security.frontend.schemas.js","sourceRoot":"","sources":["../../../../../src/core/security/security.frontend.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,eAAe,GAKhB,MAAM,uBAAuB,CAAC;AA6G/B;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,IAAI;IAClB,mBAAmB,EAAE,EAAE;IACvB,0BAA0B,EAAE,EAAE;IAC9B,2BAA2B,EAAE,EAAE;IAC/B,yBAAyB,EAAE,EAAE;IAC7B,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,SAAS;IACxB,2BAA2B,EAAE,SAAS;CACvC,CAAC;AAUF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAoB;IAC5D,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,qDAA2B,CAAA;IAC3B,yCAAe,CAAA;AACjB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;QACE,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IACvD;QACE,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF","sourcesContent":["/**\n * Security Frontend Schemas\n * \n * Core authentication and authorization types for the frontend security layer.\n */\n\nimport { z } from 'zod';\nimport { \n AuthIdentificationResponse,\n AuthFactorLevel,\n SessionType,\n type AuthMethod,\n type AvailableMethod,\n type AuthSessionPurpose,\n} from '@wildo-ai/saas-models';\n\n/**\n * Authentication state — contains only authentication-related fields.\n *\n * **No `refreshToken` field** (Auth-hardening Slice A Step 6,\n * 2026-04-13). Pre-Slice-A this carried `refreshToken: string | null`\n * mirroring the legacy body-channel rotation contract. A-Step 2\n * (cookie migration) made the cookie the sole owner of the refresh\n * token, A-Step 3 stopped this state from being read by any consumer,\n * and A-Step 6 dropped the field entirely. The refresh token now lives\n * EXCLUSIVELY in the `__wildo_refresh` `HttpOnly` cookie — JS-invisible\n * by design (XSS exfiltration surface closed). Consumers that want to\n * \"check if the user has a valid session\" should look at `accessToken`\n * (or `sessionRestored`) — never at the cookie, which is opaque to JS.\n */\nexport interface AuthState {\n isLoading: boolean;\n error: string | null;\n sessionId: string | null;\n accessToken: string | null;\n identification: AuthIdentificationResponse | null;\n sessionState: any | null;\n isRestoringSession: boolean;\n sessionRestored: boolean;\n mfaRequired: boolean;\n mfaSessionId: string | null;\n availableMfaMethods: AvailableMethod[];\n availableEnrollmentMethods: AuthMethod[];\n enrolledSecondFactorMethods: string[];\n usableSecondFactorMethods: string[];\n /**\n * The authentication session an answer parked at organization onboarding (#1090), or `null`.\n *\n * Set by an answer that parked the account — a registration, an email verification, an enrollment settlement,\n * a sign-in (#1091) or a federated sign-in's code exchange (#1103) — and read together with `accessToken`: while it is set and no token is held, the one\n * step left is naming the organization the account's user type owes. The sign-in, registration, verification,\n * magic-link, challenge, enrollment and federated-callback screens send the person to the organization-onboarding step in that\n * state (`organizationOnboardingNavigationTarget`). Cleared by completing onboarding, by abandoning it, by a\n * spent session, by a new identification and by sign-out. Memory only, deliberately: the obligation is durable\n * on the server, so a lost tab signs in again and is parked again.\n */\n onboardingSessionId: string | null;\n purpose: AuthSessionPurpose | null;\n /** W7.3b: Session type — null before authentication is resolved. */\n sessionType: SessionType | null;\n /** W7.3b: Context data for one-off sessions (only present when sessionType === SessionType.ONE_OFF). */\n oneOffContext?: {\n originTokenId: string;\n tokenType: string;\n consumableTokenValue?: string;\n tokenExpiresAt?: string;\n scopedInitiatorIds?: Record<string, string>;\n applicationId?: string;\n };\n /**\n * cross-app-jwt-propagation.md Step 5: Context data populated when an\n * AUTH_CODE_EXCHANGE token was minted by the cross-frontend-handoff issuer.\n * `AuthSessionContext.handleAuthCodeExchange()` populates this field only\n * when the token-exchange response carries a top-level `returnPath`; OAuth2\n * callback codes omit that field and therefore leave this context undefined.\n *\n * Distinct from `oneOffContext` on purpose (semantic distinction over\n * convenience — see `design-philosophy.mdc`):\n * - `oneOffContext` describes a W7.3b ephemeral one-off session\n * (resource-scoped targeting, applicationId, consumable replay).\n * - `crossFrontendHandoffContext` describes a session-transfer landing\n * (returnPath, source/target frontend telemetry). The session itself\n * is a regular persistent session driven by the receiver's storage\n * adapter (cross-app-jwt-propagation.md K-7).\n *\n * Consumed by `Auth_OneOffSession` in cross-frontend-handoff mode to drive\n * post-exchange navigation (`returnPath`); also available to app-level\n * telemetry hooks that want to know \"this user just landed via a handoff\n * from $sourceFrontendServiceName\".\n */\n crossFrontendHandoffContext?: {\n /**\n * Path to navigate to after the exchange completes. Already passed\n * `CrossFrontendHandoff_ReturnPathSchema` refines at issuance, but\n * receivers MUST sanitize defense-in-depth (a malicious caller could\n * hand-craft an exchange URL bypassing the issuer).\n */\n returnPath: string;\n /**\n * The frontend that initiated the handoff (e.g., `'admin-console'`).\n * Optional because the source frontend identifies itself only via the\n * `X-Frontend-Service-Name` request header (set by the shared HTTP\n * client interceptor). Non-browser callers — server-to-server\n * invocations, hand-crafted curl sessions — may legitimately omit\n * the header (the issuer falls back to \"unknown\" source for audit\n * purposes), in which case the receiver simply has no source\n * identity to display in telemetry / breadcrumbs.\n */\n sourceFrontendServiceName?: string;\n /** The target frontend the handoff was minted for. Useful for telemetry / breadcrumb rendering. */\n targetServiceKey?: string;\n };\n}\n\n/**\n * Effective permissions for the current user\n * Contains app-level permissions and per-organization permissions\n */\nexport type EffectivePermissions = {\n appLevel: string[];\n organizations: Record<string, string[]>;\n};\n\n/**\n * Empty/initial authentication state\n */\nexport const EMPTY_AUTH_STATE: AuthState = {\n isLoading: false,\n error: null,\n sessionId: null,\n accessToken: null,\n identification: null,\n sessionState: null,\n isRestoringSession: false,\n sessionRestored: false,\n mfaRequired: false,\n mfaSessionId: null,\n availableMfaMethods: [],\n availableEnrollmentMethods: [],\n enrolledSecondFactorMethods: [],\n usableSecondFactorMethods: [],\n onboardingSessionId: null,\n purpose: null,\n sessionType: null,\n oneOffContext: undefined,\n crossFrontendHandoffContext: undefined,\n};\n\n// ─── Auth UI State Types ─────────────────────────────────────────────\n\nexport type ResendStatus = 'idle' | 'sending' | 'sent' | 'error';\n\nexport type MfaPageErrorType = 'expired' | 'no_methods' | 'generic';\n\nexport type UIFactorLevel = 'first' | 'second';\n\n/**\n * The ONE translation between the UI's factor vocabulary (`'first' | 'second'`, which selects the\n * page, its labels and its layout) and the wire vocabulary `AuthFactorLevel`, which every\n * authenticate-shaped request carries. They are different vocabularies on purpose — the UI has no\n * `IDENTIFICATION` page — so a UI level must be translated at the seam, never forwarded.\n *\n * Measured 2026-09-15: the passkey sign-in forwarded `'first'` verbatim into\n * `POST /auth/passkey/authenticate/verify`. The orchestrator's `=== FIRST` branch did not match it,\n * treated the attempt as a second factor, and the response it built failed the wire enum — `400\n * validation` on every passkey sign-in, and the same for passkey as an MFA second factor, which\n * forwarded `'second'`. The password and OTP paths never hit it because they write\n * `AuthFactorLevel.FIRST` / `.SECOND` by hand at their own sites; this function is where that\n * translation now lives once.\n */\nexport function authFactorLevelForUiLevel(level: UIFactorLevel): AuthFactorLevel {\n return level === 'second' ? AuthFactorLevel.SECOND : AuthFactorLevel.FIRST;\n}\n\n/**\n * How a username-less passkey sign-in asks the browser for a credential.\n *\n * The distinction is about who starts the prompt, and it decides how a failure is shown:\n *\n * - `CONDITIONAL` — passkey AUTOFILL. Started silently when the sign-in page renders; the browser offers\n * the person's passkeys in the email field's autofill list and the call waits until one is picked. It\n * may never resolve, is aborted when the page moves on, and a failure before a passkey is picked is\n * NOT an error the person caused — so nothing is shown for it.\n * - `MODAL` — the person pressed \"Sign in with a passkey\". The browser shows its account picker at once,\n * and every failure, cancellation included, is reported on the page.\n *\n * spec-cite: https://web.dev/articles/passkey-form-autofill — conditional UI is invoked with `mediation: 'conditional'`, \"the crucial flag that makes the WebAuthn API call conditional. It tells the browser to wait for user interaction.\"\n */\nexport enum PasskeySignInMediation {\n CONDITIONAL = 'conditional',\n MODAL = 'modal',\n}\n\n/**\n * A waiting passkey AUTOFILL request was stopped because its challenge was about to expire.\n *\n * Autofill waits for as long as the sign-in page stays open, but the server's challenge — and the\n * username-less session bound to it — lasts `expiresInSeconds`. Picking a passkey after that would fail\n * on a session that no longer exists, so the context stops the wait shortly before and throws THIS, and\n * the sign-in page starts a fresh request. Any other refusal of an autofill wait (the page moving on, the\n * button starting its own ceremony) is NOT this error, which is what stops the page restarting over a\n * ceremony the person began.\n */\nexport class PasskeyAutofillExpiredError extends Error {\n constructor() {\n super('Passkey autofill challenge expired before a passkey was picked');\n this.name = 'PasskeyAutofillExpiredError';\n }\n}\n\n/**\n * Thrown by a passkey AUTOFILL ceremony that stepped aside because a ceremony the person started\n * themselves (the passkey button, or a second-factor passkey step) is already open.\n *\n * Starting a WebAuthn request aborts any pending one, so an autofill whose options arrived after the\n * button opened its prompt would close the prompt the person is looking at. The autofill loop treats this\n * like any other refusal and stops; the page starts a fresh autofill once the person's ceremony ends.\n */\nexport class PasskeyAutofillSupersededError extends Error {\n constructor() {\n super('Passkey autofill stepped aside for a ceremony the person started');\n this.name = 'PasskeyAutofillSupersededError';\n }\n}\n"]}
1
+ {"version":3,"file":"security.frontend.schemas.js","sourceRoot":"","sources":["../../../../src/core/security/security.frontend.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,eAAe,GAKhB,MAAM,uBAAuB,CAAC;AA6G/B;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,IAAI;IAClB,mBAAmB,EAAE,EAAE;IACvB,0BAA0B,EAAE,EAAE;IAC9B,2BAA2B,EAAE,EAAE;IAC/B,yBAAyB,EAAE,EAAE;IAC7B,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,SAAS;IACxB,2BAA2B,EAAE,SAAS;CACvC,CAAC;AAUF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAoB;IAC5D,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,qDAA2B,CAAA;IAC3B,yCAAe,CAAA;AACjB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;QACE,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IACvD;QACE,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF","sourcesContent":["/**\n * Security Frontend Schemas\n * \n * Core authentication and authorization types for the frontend security layer.\n */\n\nimport { z } from 'zod';\nimport { \n AuthIdentificationResponse,\n AuthFactorLevel,\n SessionType,\n type AuthMethod,\n type AvailableMethod,\n type AuthSessionPurpose,\n} from '@wildo-ai/saas-models';\n\n/**\n * Authentication state — contains only authentication-related fields.\n *\n * **No `refreshToken` field** (Auth-hardening Slice A Step 6,\n * 2026-04-13). Pre-Slice-A this carried `refreshToken: string | null`\n * mirroring the legacy body-channel rotation contract. A-Step 2\n * (cookie migration) made the cookie the sole owner of the refresh\n * token, A-Step 3 stopped this state from being read by any consumer,\n * and A-Step 6 dropped the field entirely. The refresh token now lives\n * EXCLUSIVELY in the `__wildo_refresh` `HttpOnly` cookie — JS-invisible\n * by design (XSS exfiltration surface closed). Consumers that want to\n * \"check if the user has a valid session\" should look at `accessToken`\n * (or `sessionRestored`) — never at the cookie, which is opaque to JS.\n */\nexport interface AuthState {\n isLoading: boolean;\n error: string | null;\n sessionId: string | null;\n accessToken: string | null;\n identification: AuthIdentificationResponse | null;\n sessionState: any | null;\n isRestoringSession: boolean;\n sessionRestored: boolean;\n mfaRequired: boolean;\n mfaSessionId: string | null;\n availableMfaMethods: AvailableMethod[];\n availableEnrollmentMethods: AuthMethod[];\n enrolledSecondFactorMethods: string[];\n usableSecondFactorMethods: string[];\n /**\n * The authentication session an answer parked at organization onboarding (#1090), or `null`.\n *\n * Set by an answer that parked the account — a registration, an email verification, an enrollment settlement,\n * a sign-in (#1091) or a federated sign-in's code exchange (#1103) — and read together with `accessToken`: while it is set and no token is held, the one\n * step left is naming the organization the account's user type owes. The sign-in, registration, verification,\n * magic-link, challenge, enrollment and federated-callback screens send the person to the organization-onboarding step in that\n * state (`organizationOnboardingNavigationTarget`). Cleared by completing onboarding, by abandoning it, by a\n * spent session, by a new identification and by sign-out. Memory only, deliberately: the obligation is durable\n * on the server, so a lost tab signs in again and is parked again.\n */\n onboardingSessionId: string | null;\n purpose: AuthSessionPurpose | null;\n /** W7.3b: Session type — null before authentication is resolved. */\n sessionType: SessionType | null;\n /** W7.3b: Context data for one-off sessions (only present when sessionType === SessionType.ONE_OFF). */\n oneOffContext?: {\n originTokenId: string;\n tokenType: string;\n consumableTokenValue?: string;\n tokenExpiresAt?: string;\n scopedInitiatorIds?: Record<string, string>;\n applicationId?: string;\n };\n /**\n * cross-app-jwt-propagation.md Step 5: Context data populated when an\n * AUTH_CODE_EXCHANGE token was minted by the cross-frontend-handoff issuer.\n * `AuthSessionContext.handleAuthCodeExchange()` populates this field only\n * when the token-exchange response carries a top-level `returnPath`; OAuth2\n * callback codes omit that field and therefore leave this context undefined.\n *\n * Distinct from `oneOffContext` on purpose (semantic distinction over\n * convenience — see `design-philosophy.mdc`):\n * - `oneOffContext` describes a W7.3b ephemeral one-off session\n * (resource-scoped targeting, applicationId, consumable replay).\n * - `crossFrontendHandoffContext` describes a session-transfer landing\n * (returnPath, source/target frontend telemetry). The session itself\n * is a regular persistent session driven by the receiver's storage\n * adapter (cross-app-jwt-propagation.md K-7).\n *\n * Consumed by `Auth_OneOffSession` in cross-frontend-handoff mode to drive\n * post-exchange navigation (`returnPath`); also available to app-level\n * telemetry hooks that want to know \"this user just landed via a handoff\n * from $sourceFrontendServiceName\".\n */\n crossFrontendHandoffContext?: {\n /**\n * Path to navigate to after the exchange completes. Already passed\n * `CrossFrontendHandoff_ReturnPathSchema` refines at issuance, but\n * receivers MUST sanitize defense-in-depth (a malicious caller could\n * hand-craft an exchange URL bypassing the issuer).\n */\n returnPath: string;\n /**\n * The frontend that initiated the handoff (e.g., `'admin-console'`).\n * Optional because the source frontend identifies itself only via the\n * `X-Frontend-Service-Name` request header (set by the shared HTTP\n * client interceptor). Non-browser callers — server-to-server\n * invocations, hand-crafted curl sessions — may legitimately omit\n * the header (the issuer falls back to \"unknown\" source for audit\n * purposes), in which case the receiver simply has no source\n * identity to display in telemetry / breadcrumbs.\n */\n sourceFrontendServiceName?: string;\n /** The target frontend the handoff was minted for. Useful for telemetry / breadcrumb rendering. */\n targetServiceKey?: string;\n };\n}\n\n/**\n * Effective permissions for the current user\n * Contains app-level permissions and per-organization permissions\n */\nexport type EffectivePermissions = {\n appLevel: string[];\n organizations: Record<string, string[]>;\n};\n\n/**\n * Empty/initial authentication state\n */\nexport const EMPTY_AUTH_STATE: AuthState = {\n isLoading: false,\n error: null,\n sessionId: null,\n accessToken: null,\n identification: null,\n sessionState: null,\n isRestoringSession: false,\n sessionRestored: false,\n mfaRequired: false,\n mfaSessionId: null,\n availableMfaMethods: [],\n availableEnrollmentMethods: [],\n enrolledSecondFactorMethods: [],\n usableSecondFactorMethods: [],\n onboardingSessionId: null,\n purpose: null,\n sessionType: null,\n oneOffContext: undefined,\n crossFrontendHandoffContext: undefined,\n};\n\n// ─── Auth UI State Types ─────────────────────────────────────────────\n\nexport type ResendStatus = 'idle' | 'sending' | 'sent' | 'error';\n\nexport type MfaPageErrorType = 'expired' | 'no_methods' | 'generic';\n\nexport type UIFactorLevel = 'first' | 'second';\n\n/**\n * The ONE translation between the UI's factor vocabulary (`'first' | 'second'`, which selects the\n * page, its labels and its layout) and the wire vocabulary `AuthFactorLevel`, which every\n * authenticate-shaped request carries. They are different vocabularies on purpose — the UI has no\n * `IDENTIFICATION` page — so a UI level must be translated at the seam, never forwarded.\n *\n * Measured 2026-09-15: the passkey sign-in forwarded `'first'` verbatim into\n * `POST /auth/passkey/authenticate/verify`. The orchestrator's `=== FIRST` branch did not match it,\n * treated the attempt as a second factor, and the response it built failed the wire enum — `400\n * validation` on every passkey sign-in, and the same for passkey as an MFA second factor, which\n * forwarded `'second'`. The password and OTP paths never hit it because they write\n * `AuthFactorLevel.FIRST` / `.SECOND` by hand at their own sites; this function is where that\n * translation now lives once.\n */\nexport function authFactorLevelForUiLevel(level: UIFactorLevel): AuthFactorLevel {\n return level === 'second' ? AuthFactorLevel.SECOND : AuthFactorLevel.FIRST;\n}\n\n/**\n * How a username-less passkey sign-in asks the browser for a credential.\n *\n * The distinction is about who starts the prompt, and it decides how a failure is shown:\n *\n * - `CONDITIONAL` — passkey AUTOFILL. Started silently when the sign-in page renders; the browser offers\n * the person's passkeys in the email field's autofill list and the call waits until one is picked. It\n * may never resolve, is aborted when the page moves on, and a failure before a passkey is picked is\n * NOT an error the person caused — so nothing is shown for it.\n * - `MODAL` — the person pressed \"Sign in with a passkey\". The browser shows its account picker at once,\n * and every failure, cancellation included, is reported on the page.\n *\n * spec-cite: https://web.dev/articles/passkey-form-autofill — conditional UI is invoked with `mediation: 'conditional'`, \"the crucial flag that makes the WebAuthn API call conditional. It tells the browser to wait for user interaction.\"\n */\nexport enum PasskeySignInMediation {\n CONDITIONAL = 'conditional',\n MODAL = 'modal',\n}\n\n/**\n * A waiting passkey AUTOFILL request was stopped because its challenge was about to expire.\n *\n * Autofill waits for as long as the sign-in page stays open, but the server's challenge — and the\n * username-less session bound to it — lasts `expiresInSeconds`. Picking a passkey after that would fail\n * on a session that no longer exists, so the context stops the wait shortly before and throws THIS, and\n * the sign-in page starts a fresh request. Any other refusal of an autofill wait (the page moving on, the\n * button starting its own ceremony) is NOT this error, which is what stops the page restarting over a\n * ceremony the person began.\n */\nexport class PasskeyAutofillExpiredError extends Error {\n constructor() {\n super('Passkey autofill challenge expired before a passkey was picked');\n this.name = 'PasskeyAutofillExpiredError';\n }\n}\n\n/**\n * Thrown by a passkey AUTOFILL ceremony that stepped aside because a ceremony the person started\n * themselves (the passkey button, or a second-factor passkey step) is already open.\n *\n * Starting a WebAuthn request aborts any pending one, so an autofill whose options arrived after the\n * button opened its prompt would close the prompt the person is looking at. The autofill loop treats this\n * like any other refusal and stops; the page starts a fresh autofill once the person's ceremony ends.\n */\nexport class PasskeyAutofillSupersededError extends Error {\n constructor() {\n super('Passkey autofill stepped aside for a ceremony the person started');\n this.name = 'PasskeyAutofillSupersededError';\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"session-token-storage.frontend.service.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/session-token-storage.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AASH,MAAM,WAAW,mBAAmB;IAClC,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE3E,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE9C,KAAK,IAAI,IAAI,CAAC;CACf;AAQD,qBAAa,6BAA8B,YAAW,mBAAmB;IACvE,cAAc,IAAI,MAAM,GAAG,IAAI;IAG/B;;;;;;OAMG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAGhC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY1E,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAGlC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK7C,KAAK,IAAI,IAAI;CAKd;AAED,qBAAa,4BAA6B,YAAW,mBAAmB;IACtE,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAuB;IAE9C,cAAc,IAAI,MAAM,GAAG,IAAI;IAC/B,eAAe,IAAI,MAAM,GAAG,IAAI;IAChC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI1E,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAClC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAC7C,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"session-token-storage.frontend.service.d.ts","sourceRoot":"","sources":["../../../../src/core/security/session-token-storage.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AASH,MAAM,WAAW,mBAAmB;IAClC,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE3E,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE9C,KAAK,IAAI,IAAI,CAAC;CACf;AAQD,qBAAa,6BAA8B,YAAW,mBAAmB;IACvE,cAAc,IAAI,MAAM,GAAG,IAAI;IAG/B;;;;;;OAMG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAGhC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY1E,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAGlC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK7C,KAAK,IAAI,IAAI;CAKd;AAED,qBAAa,4BAA6B,YAAW,mBAAmB;IACtE,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAuB;IAE9C,cAAc,IAAI,MAAM,GAAG,IAAI;IAC/B,eAAe,IAAI,MAAM,GAAG,IAAI;IAChC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI1E,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAClC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAC7C,KAAK,IAAI,IAAI;CAKd"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-token-storage.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/security/session-token-storage.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,iEAAiE,CAAC;AAazE;;;GAGG;AACH,IAAI,8BAA8B,GAAG,KAAK,CAAC;AAE3C,MAAM,OAAO,6BAA6B;IACxC,cAAc;QACZ,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IACD;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,WAA0B,EAAE,YAA2B;QACjE,WAAW;YACT,CAAC,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC;YAChE,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,8BAA8B,EAAE,CAAC;YAC7D,8BAA8B,GAAG,IAAI,CAAC;YACtC,OAAO,CAAC,IAAI,CACV,gNAAgN,CACjN,CAAC;QACJ,CAAC;QACD,sBAAsB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IACD,iBAAiB;QACf,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACzE,CAAC;IACD,iBAAiB,CAAC,KAAoB;QACpC,KAAK;YACH,CAAC,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,KAAK,CAAC;YACxE,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACzE,CAAC;IACD,KAAK;QACH,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrD,sBAAsB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACzD,sBAAsB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,OAAO,4BAA4B;IAC/B,YAAY,GAAkB,IAAI,CAAC;IACnC,aAAa,GAAkB,IAAI,CAAC;IACpC,eAAe,GAAkB,IAAI,CAAC;IAE9C,cAAc,KAAoB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,eAAe,KAAoB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,WAAW,CAAC,WAA0B,EAAE,YAA2B;QACjE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IACD,iBAAiB,KAAoB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACnE,iBAAiB,CAAC,KAAoB,IAAU,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;IAC/E,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;CACF","sourcesContent":["/**\n * W7.3b: Session Token Storage — Strategy pattern for token persistence.\n *\n * PersistentSessionTokenStorage: Delegates to localStorage (survives tab close).\n * EphemeralSessionTokenStorage: In-memory only (dies with the tab/component instance).\n *\n * Auth-hardening Slice A Step 3 (2026-04-13) — `PersistentSessionTokenStorage`\n * NO LONGER persists the refresh token in localStorage. The refresh token now\n * travels via the `__wildo_refresh` `HttpOnly` cookie (see\n * `auth-controller.utils.ts` and `authentication-controller.backend.service.ts`).\n * The cookie is invisible to JS, which closes the XSS exfiltration surface\n * that ANY localStorage-backed refresh token inherently has.\n *\n * The `storeTokens()` signature still accepts a `refreshToken` parameter for\n * source-compat with `EphemeralSessionTokenStorage` (which keeps the in-memory\n * field for one-off / test contexts), but `PersistentSessionTokenStorage`\n * silently ignores the argument and emits a one-line `console.warn` if a\n * non-null value is passed during the transition window. The existing\n * `removeLocalStorageItem(REFRESH_TOKEN)` is kept on every `storeTokens()`\n * AND `clear()` invocation so any leftover localStorage value from a\n * pre-migration session is wiped on the user's next interaction.\n */\n\nimport {\n LOCAL_STORAGE_KEYS,\n getLocalStorageItem,\n setLocalStorageItem,\n removeLocalStorageItem,\n} from '~wildo-frontend-lib/core/commons/local-storage.frontend.schemas';\n\nexport interface SessionTokenStorage {\n getAccessToken(): string | null;\n getRefreshToken(): string | null;\n storeTokens(accessToken: string | null, refreshToken: string | null): void;\n\n getOrganizationId(): string | null;\n setOrganizationId(orgId: string | null): void;\n\n clear(): void;\n}\n\n/**\n * Module-scoped flag — emit the deprecation warning ONCE per page load even if\n * `storeTokens()` is called many times during a session. Avoids log spam.\n */\nlet _refreshTokenArgWarningEmitted = false;\n\nexport class PersistentSessionTokenStorage implements SessionTokenStorage {\n getAccessToken(): string | null {\n return getLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN);\n }\n /**\n * Always returns `null` — refresh tokens no longer live in localStorage\n * (Auth-hardening Slice A Step 3). The `__wildo_refresh` `HttpOnly` cookie\n * carries the refresh token; JS can never read it. Method kept for\n * `SessionTokenStorage` interface conformance — `EphemeralSessionTokenStorage`\n * still uses it for in-memory contexts.\n */\n getRefreshToken(): string | null {\n return null;\n }\n storeTokens(accessToken: string | null, refreshToken: string | null): void {\n accessToken\n ? setLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN, accessToken)\n : removeLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN);\n if (refreshToken !== null && !_refreshTokenArgWarningEmitted) {\n _refreshTokenArgWarningEmitted = true;\n console.warn(\n '[wildo-auth] PersistentSessionTokenStorage.storeTokens() received a non-null refreshToken — argument is ignored. Refresh tokens now travel via the `__wildo_refresh` HttpOnly cookie (Auth-hardening Slice A).',\n );\n }\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.REFRESH_TOKEN);\n }\n getOrganizationId(): string | null {\n return getLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID);\n }\n setOrganizationId(orgId: string | null): void {\n orgId\n ? setLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID, orgId)\n : removeLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID);\n }\n clear(): void {\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN);\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.REFRESH_TOKEN);\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID);\n }\n}\n\nexport class EphemeralSessionTokenStorage implements SessionTokenStorage {\n private _accessToken: string | null = null;\n private _refreshToken: string | null = null;\n private _organizationId: string | null = null;\n\n getAccessToken(): string | null { return this._accessToken; }\n getRefreshToken(): string | null { return this._refreshToken; }\n storeTokens(accessToken: string | null, refreshToken: string | null): void {\n this._accessToken = accessToken;\n this._refreshToken = refreshToken;\n }\n getOrganizationId(): string | null { return this._organizationId; }\n setOrganizationId(orgId: string | null): void { this._organizationId = orgId; }\n clear(): void {\n this._accessToken = null;\n this._refreshToken = null;\n this._organizationId = null;\n }\n}\n"]}
1
+ {"version":3,"file":"session-token-storage.frontend.service.js","sourceRoot":"","sources":["../../../../src/core/security/session-token-storage.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,iEAAiE,CAAC;AAazE;;;GAGG;AACH,IAAI,8BAA8B,GAAG,KAAK,CAAC;AAE3C,MAAM,OAAO,6BAA6B;IACxC,cAAc;QACZ,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IACD;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,WAA0B,EAAE,YAA2B;QACjE,WAAW;YACT,CAAC,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC;YAChE,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,8BAA8B,EAAE,CAAC;YAC7D,8BAA8B,GAAG,IAAI,CAAC;YACtC,OAAO,CAAC,IAAI,CACV,gNAAgN,CACjN,CAAC;QACJ,CAAC;QACD,sBAAsB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IACD,iBAAiB;QACf,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACzE,CAAC;IACD,iBAAiB,CAAC,KAAoB;QACpC,KAAK;YACH,CAAC,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,KAAK,CAAC;YACxE,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACzE,CAAC;IACD,KAAK;QACH,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrD,sBAAsB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACzD,sBAAsB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,OAAO,4BAA4B;IAC/B,YAAY,GAAkB,IAAI,CAAC;IACnC,aAAa,GAAkB,IAAI,CAAC;IACpC,eAAe,GAAkB,IAAI,CAAC;IAE9C,cAAc,KAAoB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,eAAe,KAAoB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,WAAW,CAAC,WAA0B,EAAE,YAA2B;QACjE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IACD,iBAAiB,KAAoB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACnE,iBAAiB,CAAC,KAAoB,IAAU,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;IAC/E,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;CACF","sourcesContent":["/**\n * W7.3b: Session Token Storage — Strategy pattern for token persistence.\n *\n * PersistentSessionTokenStorage: Delegates to localStorage (survives tab close).\n * EphemeralSessionTokenStorage: In-memory only (dies with the tab/component instance).\n *\n * Auth-hardening Slice A Step 3 (2026-04-13) — `PersistentSessionTokenStorage`\n * NO LONGER persists the refresh token in localStorage. The refresh token now\n * travels via the `__wildo_refresh` `HttpOnly` cookie (see\n * `auth-controller.utils.ts` and `authentication-controller.backend.service.ts`).\n * The cookie is invisible to JS, which closes the XSS exfiltration surface\n * that ANY localStorage-backed refresh token inherently has.\n *\n * The `storeTokens()` signature still accepts a `refreshToken` parameter for\n * source-compat with `EphemeralSessionTokenStorage` (which keeps the in-memory\n * field for one-off / test contexts), but `PersistentSessionTokenStorage`\n * silently ignores the argument and emits a one-line `console.warn` if a\n * non-null value is passed during the transition window. The existing\n * `removeLocalStorageItem(REFRESH_TOKEN)` is kept on every `storeTokens()`\n * AND `clear()` invocation so any leftover localStorage value from a\n * pre-migration session is wiped on the user's next interaction.\n */\n\nimport {\n LOCAL_STORAGE_KEYS,\n getLocalStorageItem,\n setLocalStorageItem,\n removeLocalStorageItem,\n} from '~wildo-frontend-lib/core/commons/local-storage.frontend.schemas';\n\nexport interface SessionTokenStorage {\n getAccessToken(): string | null;\n getRefreshToken(): string | null;\n storeTokens(accessToken: string | null, refreshToken: string | null): void;\n\n getOrganizationId(): string | null;\n setOrganizationId(orgId: string | null): void;\n\n clear(): void;\n}\n\n/**\n * Module-scoped flag — emit the deprecation warning ONCE per page load even if\n * `storeTokens()` is called many times during a session. Avoids log spam.\n */\nlet _refreshTokenArgWarningEmitted = false;\n\nexport class PersistentSessionTokenStorage implements SessionTokenStorage {\n getAccessToken(): string | null {\n return getLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN);\n }\n /**\n * Always returns `null` — refresh tokens no longer live in localStorage\n * (Auth-hardening Slice A Step 3). The `__wildo_refresh` `HttpOnly` cookie\n * carries the refresh token; JS can never read it. Method kept for\n * `SessionTokenStorage` interface conformance — `EphemeralSessionTokenStorage`\n * still uses it for in-memory contexts.\n */\n getRefreshToken(): string | null {\n return null;\n }\n storeTokens(accessToken: string | null, refreshToken: string | null): void {\n accessToken\n ? setLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN, accessToken)\n : removeLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN);\n if (refreshToken !== null && !_refreshTokenArgWarningEmitted) {\n _refreshTokenArgWarningEmitted = true;\n console.warn(\n '[wildo-auth] PersistentSessionTokenStorage.storeTokens() received a non-null refreshToken — argument is ignored. Refresh tokens now travel via the `__wildo_refresh` HttpOnly cookie (Auth-hardening Slice A).',\n );\n }\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.REFRESH_TOKEN);\n }\n getOrganizationId(): string | null {\n return getLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID);\n }\n setOrganizationId(orgId: string | null): void {\n orgId\n ? setLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID, orgId)\n : removeLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID);\n }\n clear(): void {\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.JWT_TOKEN);\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.REFRESH_TOKEN);\n removeLocalStorageItem(LOCAL_STORAGE_KEYS.CURRENT_ORGANIZATION_ID);\n }\n}\n\nexport class EphemeralSessionTokenStorage implements SessionTokenStorage {\n private _accessToken: string | null = null;\n private _refreshToken: string | null = null;\n private _organizationId: string | null = null;\n\n getAccessToken(): string | null { return this._accessToken; }\n getRefreshToken(): string | null { return this._refreshToken; }\n storeTokens(accessToken: string | null, refreshToken: string | null): void {\n this._accessToken = accessToken;\n this._refreshToken = refreshToken;\n }\n getOrganizationId(): string | null { return this._organizationId; }\n setOrganizationId(orgId: string | null): void { this._organizationId = orgId; }\n clear(): void {\n this._accessToken = null;\n this._refreshToken = null;\n this._organizationId = null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthSession.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/useAuthSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACvF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAO,sBAMjC,CAAC"}
1
+ {"version":3,"file":"useAuthSession.d.ts","sourceRoot":"","sources":["../../../../src/core/security/useAuthSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACvF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAO,sBAMjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthSession.js","sourceRoot":"","sources":["../../../../../src/core/security/useAuthSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAA+B,MAAM,sBAAsB,CAAC;AACvF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAA2B,EAAE;IACzD,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/**\n * useAuthSession Hook\n * \n * Separated from AuthSessionContext.tsx for React Fast Refresh compatibility.\n */\n\nimport { useContext } from 'react';\nimport { AuthSessionContext, type AuthSessionContextType } from './AuthSessionContext';\n/**\n * Hook to access the Auth Session context\n * @returns AuthSessionContextType with auth state and authentication functions\n * @throws Error if used outside of AuthSessionProvider\n */\nexport const useAuthSession = (): AuthSessionContextType => {\n const context = useContext(AuthSessionContext);\n if (!context) {\n throw new Error('useAuthSession must be used within an AuthSessionProvider');\n }\n return context;\n};\n"]}
1
+ {"version":3,"file":"useAuthSession.js","sourceRoot":"","sources":["../../../../src/core/security/useAuthSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAA+B,MAAM,sBAAsB,CAAC;AACvF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAA2B,EAAE;IACzD,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/**\n * useAuthSession Hook\n * \n * Separated from AuthSessionContext.tsx for React Fast Refresh compatibility.\n */\n\nimport { useContext } from 'react';\nimport { AuthSessionContext, type AuthSessionContextType } from './AuthSessionContext';\n/**\n * Hook to access the Auth Session context\n * @returns AuthSessionContextType with auth state and authentication functions\n * @throws Error if used outside of AuthSessionProvider\n */\nexport const useAuthSession = (): AuthSessionContextType => {\n const context = useContext(AuthSessionContext);\n if (!context) {\n throw new Error('useAuthSession must be used within an AuthSessionProvider');\n }\n return context;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useConsentGateBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/useConsentGateBehavior.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAIvC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,UAAU,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,qBAAqB,EAAE,SAAS,cAAc,EAAE,CAAC;IACjD;;;;;;;;OAQG;IACH,MAAM,EAAE,CACN,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,QAAQ,EAAE,SAAS,cAAc,EAAE,EACnC,yBAAyB,CAAC,EAAE,OAAO,KAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,kEAAkE;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAkD5D"}
1
+ {"version":3,"file":"useConsentGateBehavior.d.ts","sourceRoot":"","sources":["../../../../src/core/security/useConsentGateBehavior.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAIvC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,UAAU,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,qBAAqB,EAAE,SAAS,cAAc,EAAE,CAAC;IACjD;;;;;;;;OAQG;IACH,MAAM,EAAE,CACN,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,QAAQ,EAAE,SAAS,cAAc,EAAE,EACnC,yBAAyB,CAAC,EAAE,OAAO,KAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,kEAAkE;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAkD5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useConsentGateBehavior.js","sourceRoot":"","sources":["../../../../../src/core/security/useConsentGateBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,GAA0B,qBAAqB,CAAC,SAAS,EAAE,CAAC;AA8BxE;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAA4B,EAAE,CAAC,CAAC;IAElG,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,sBAAsB,CAAC;QAC3B,yBAAyB,EAAE,SAAS,CAAC,UAAU,EAAE,yBAAyB;QAC1E,gBAAgB,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;QACvD,wBAAwB,EAAE,SAAS,CAAC,SAAS,EAAE,eAAe,KAAK,KAAK;QACxE,iCAAiC,EAAE,SAAS,CAAC,UAAU,EAAE,iCAAiC;QAC1F,OAAO;KACR,CAAC,EACF;QACE,SAAS,CAAC,SAAS,EAAE,OAAO;QAC5B,SAAS,CAAC,SAAS,EAAE,eAAe;QACpC,SAAS,CAAC,UAAU,EAAE,yBAAyB;QAC/C,SAAS,CAAC,UAAU,EAAE,iCAAiC;QACvD,OAAO;KACR,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAC9B,OAAkC,EAClC,QAAmC,EACnC,yBAAyB,GAAG,KAAK,EAClB,EAAE;QACjB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAClD,wFAAwF;YACxF,+CAA+C;YAC/C,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,qBAAqB,CAAC,sBAAsB,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnC,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC5F,CAAC","sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ConsentPurpose } from '@wildo-ai/saas-models';\n\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication';\nimport { useUserOrgs } from '~wildo-frontend-lib/core/security/useUserOrgs';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport {\n composeConsentDecision,\n consentWithdrawalCost,\n deriveConsentGateState,\n type ConsentGateState,\n} from './consent-gate.frontend.utils';\n\nconst logger: LoggerFrontendService = LoggerFrontendService.getLogger();\n\nexport interface ConsentGateBehavior extends ConsentGateState {\n /** A decision is being written. */\n isSaving: boolean;\n /** The last decision could not be written; the gate stays in its current state. */\n saveFailed: boolean;\n /**\n * The required purposes the LAST `decide()` call would have left unmet, held here because it was not\n * acknowledged (R9). Cleared by any subsequent `decide()` call, whatever it decides.\n */\n pendingWithdrawalCost: readonly ConsentPurpose[];\n /**\n * Record the person's choice among `offered` purposes: each offered purpose is granted exactly when it\n * is in `selected`, and every purpose not offered keeps its stored grant.\n *\n * Withdrawing a required purpose is never refused — consent must be as easy to withdraw as to give —\n * but it is never SILENT either (R9). When the choice would leave a required purpose unmet, the first\n * call reports the cost via `pendingWithdrawalCost` and saves NOTHING; pass\n * `acknowledgeWithdrawalCost: true` once the surface has shown that cost to save anyway.\n */\n decide: (\n offered: readonly ConsentPurpose[],\n selected: readonly ConsentPurpose[],\n acknowledgeWithdrawalCost?: boolean,\n ) => Promise<void>;\n /** Leave the application instead of granting required consent. */\n signOut: () => void;\n}\n\n/**\n * The application-tier consent gate's behaviour (#534 / #453): reads the application's requirement and\n * analytics posture, reads the person's stored decision, and writes decisions through\n * `UserOrgsContext.recordConsentDecision` — the self-preferences UPDATE whose server-side hook owns the\n * decision instant and whose `privacy.consentedPurposes` is audit evidence.\n *\n * assurance-control: WILDO.PRIVACY.CONSENT_RECORD — an affirmative, recorded choice replaces a default;\n * required purposes are enforced before any signed-in route renders.\n */\nexport function useConsentGateBehavior(): ConsentGateBehavior {\n const { appConfig } = useApplication();\n const { privacy, recordConsentDecision, logout } = useUserOrgs();\n const [isSaving, setIsSaving] = useState(false);\n const [saveFailed, setSaveFailed] = useState(false);\n const [pendingWithdrawalCost, setPendingWithdrawalCost] = useState<readonly ConsentPurpose[]>([]);\n\n const state = useMemo(\n () => deriveConsentGateState({\n serviceConsentRequirement: appConfig.compliance?.serviceConsentRequirement,\n analyticsEnabled: appConfig.analytics?.enabled === true,\n analyticsRequiresConsent: appConfig.analytics?.requiresConsent !== false,\n capabilityDeclaredConsentPurposes: appConfig.compliance?.capabilityDeclaredConsentPurposes,\n privacy,\n }),\n [\n appConfig.analytics?.enabled,\n appConfig.analytics?.requiresConsent,\n appConfig.compliance?.serviceConsentRequirement,\n appConfig.compliance?.capabilityDeclaredConsentPurposes,\n privacy,\n ],\n );\n\n const decide = useCallback(async (\n offered: readonly ConsentPurpose[],\n selected: readonly ConsentPurpose[],\n acknowledgeWithdrawalCost = false,\n ): Promise<void> => {\n setSaveFailed(false);\n const cost = consentWithdrawalCost(state, offered, selected);\n if (cost.length > 0 && !acknowledgeWithdrawalCost) {\n // Report and stop — do NOT save. Refusing the withdrawal is not available (R9); what is\n // available is not letting it happen silently.\n setPendingWithdrawalCost(cost);\n return;\n }\n setPendingWithdrawalCost([]);\n setIsSaving(true);\n try {\n await recordConsentDecision(composeConsentDecision(state.grantedPurposes, offered, selected));\n } catch (error) {\n logger.error('Consent decision could not be recorded', { error });\n setSaveFailed(true);\n } finally {\n setIsSaving(false);\n }\n }, [recordConsentDecision, state]);\n\n return { ...state, isSaving, saveFailed, pendingWithdrawalCost, decide, signOut: logout };\n}\n"]}
1
+ {"version":3,"file":"useConsentGateBehavior.js","sourceRoot":"","sources":["../../../../src/core/security/useConsentGateBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,GAA0B,qBAAqB,CAAC,SAAS,EAAE,CAAC;AA8BxE;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAA4B,EAAE,CAAC,CAAC;IAElG,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,sBAAsB,CAAC;QAC3B,yBAAyB,EAAE,SAAS,CAAC,UAAU,EAAE,yBAAyB;QAC1E,gBAAgB,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;QACvD,wBAAwB,EAAE,SAAS,CAAC,SAAS,EAAE,eAAe,KAAK,KAAK;QACxE,iCAAiC,EAAE,SAAS,CAAC,UAAU,EAAE,iCAAiC;QAC1F,OAAO;KACR,CAAC,EACF;QACE,SAAS,CAAC,SAAS,EAAE,OAAO;QAC5B,SAAS,CAAC,SAAS,EAAE,eAAe;QACpC,SAAS,CAAC,UAAU,EAAE,yBAAyB;QAC/C,SAAS,CAAC,UAAU,EAAE,iCAAiC;QACvD,OAAO;KACR,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAC9B,OAAkC,EAClC,QAAmC,EACnC,yBAAyB,GAAG,KAAK,EAClB,EAAE;QACjB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAClD,wFAAwF;YACxF,+CAA+C;YAC/C,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,qBAAqB,CAAC,sBAAsB,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnC,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC5F,CAAC","sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ConsentPurpose } from '@wildo-ai/saas-models';\n\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication';\nimport { useUserOrgs } from '~wildo-frontend-lib/core/security/useUserOrgs';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport {\n composeConsentDecision,\n consentWithdrawalCost,\n deriveConsentGateState,\n type ConsentGateState,\n} from './consent-gate.frontend.utils';\n\nconst logger: LoggerFrontendService = LoggerFrontendService.getLogger();\n\nexport interface ConsentGateBehavior extends ConsentGateState {\n /** A decision is being written. */\n isSaving: boolean;\n /** The last decision could not be written; the gate stays in its current state. */\n saveFailed: boolean;\n /**\n * The required purposes the LAST `decide()` call would have left unmet, held here because it was not\n * acknowledged (R9). Cleared by any subsequent `decide()` call, whatever it decides.\n */\n pendingWithdrawalCost: readonly ConsentPurpose[];\n /**\n * Record the person's choice among `offered` purposes: each offered purpose is granted exactly when it\n * is in `selected`, and every purpose not offered keeps its stored grant.\n *\n * Withdrawing a required purpose is never refused — consent must be as easy to withdraw as to give —\n * but it is never SILENT either (R9). When the choice would leave a required purpose unmet, the first\n * call reports the cost via `pendingWithdrawalCost` and saves NOTHING; pass\n * `acknowledgeWithdrawalCost: true` once the surface has shown that cost to save anyway.\n */\n decide: (\n offered: readonly ConsentPurpose[],\n selected: readonly ConsentPurpose[],\n acknowledgeWithdrawalCost?: boolean,\n ) => Promise<void>;\n /** Leave the application instead of granting required consent. */\n signOut: () => void;\n}\n\n/**\n * The application-tier consent gate's behaviour (#534 / #453): reads the application's requirement and\n * analytics posture, reads the person's stored decision, and writes decisions through\n * `UserOrgsContext.recordConsentDecision` — the self-preferences UPDATE whose server-side hook owns the\n * decision instant and whose `privacy.consentedPurposes` is audit evidence.\n *\n * assurance-control: WILDO.PRIVACY.CONSENT_RECORD — an affirmative, recorded choice replaces a default;\n * required purposes are enforced before any signed-in route renders.\n */\nexport function useConsentGateBehavior(): ConsentGateBehavior {\n const { appConfig } = useApplication();\n const { privacy, recordConsentDecision, logout } = useUserOrgs();\n const [isSaving, setIsSaving] = useState(false);\n const [saveFailed, setSaveFailed] = useState(false);\n const [pendingWithdrawalCost, setPendingWithdrawalCost] = useState<readonly ConsentPurpose[]>([]);\n\n const state = useMemo(\n () => deriveConsentGateState({\n serviceConsentRequirement: appConfig.compliance?.serviceConsentRequirement,\n analyticsEnabled: appConfig.analytics?.enabled === true,\n analyticsRequiresConsent: appConfig.analytics?.requiresConsent !== false,\n capabilityDeclaredConsentPurposes: appConfig.compliance?.capabilityDeclaredConsentPurposes,\n privacy,\n }),\n [\n appConfig.analytics?.enabled,\n appConfig.analytics?.requiresConsent,\n appConfig.compliance?.serviceConsentRequirement,\n appConfig.compliance?.capabilityDeclaredConsentPurposes,\n privacy,\n ],\n );\n\n const decide = useCallback(async (\n offered: readonly ConsentPurpose[],\n selected: readonly ConsentPurpose[],\n acknowledgeWithdrawalCost = false,\n ): Promise<void> => {\n setSaveFailed(false);\n const cost = consentWithdrawalCost(state, offered, selected);\n if (cost.length > 0 && !acknowledgeWithdrawalCost) {\n // Report and stop — do NOT save. Refusing the withdrawal is not available (R9); what is\n // available is not letting it happen silently.\n setPendingWithdrawalCost(cost);\n return;\n }\n setPendingWithdrawalCost([]);\n setIsSaving(true);\n try {\n await recordConsentDecision(composeConsentDecision(state.grantedPurposes, offered, selected));\n } catch (error) {\n logger.error('Consent decision could not be recorded', { error });\n setSaveFailed(true);\n } finally {\n setIsSaving(false);\n }\n }, [recordConsentDecision, state]);\n\n return { ...state, isSaving, saveFailed, pendingWithdrawalCost, decide, signOut: logout };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentAcceptanceGateBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/core/security/useDocumentAcceptanceGateBehavior.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oCAAoC,EAQrC,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EACV,+BAA+B,EAEhC,MAAM,6EAA6E,CAAC;AAErF,iDAAiD;AACjD,oBAAY,4BAA4B;IACtC,gHAAgH;IAChH,cAAc,mBAAmB;IACjC,oGAAoG;IACpG,QAAQ,aAAa;IACrB,uBAAuB;IACvB,SAAS,cAAc;IACvB,yGAAyG;IACzG,QAAQ,aAAa;IACrB;;;;;OAKG;IACH,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,qHAAqH;IACrH,QAAQ,CAAC,MAAM,EAAE,oCAAoC,GAAG,SAAS,CAAC;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;IACrD,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,iCAAiC,IAAI,8BAA8B,CAkHlF"}
1
+ {"version":3,"file":"useDocumentAcceptanceGateBehavior.d.ts","sourceRoot":"","sources":["../../../../src/core/security/useDocumentAcceptanceGateBehavior.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oCAAoC,EAQrC,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EACV,+BAA+B,EAEhC,MAAM,6EAA6E,CAAC;AAErF,iDAAiD;AACjD,oBAAY,4BAA4B;IACtC,gHAAgH;IAChH,cAAc,mBAAmB;IACjC,oGAAoG;IACpG,QAAQ,aAAa;IACrB,uBAAuB;IACvB,SAAS,cAAc;IACvB,yGAAyG;IACzG,QAAQ,aAAa;IACrB;;;;;OAKG;IACH,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,qHAAqH;IACrH,QAAQ,CAAC,MAAM,EAAE,oCAAoC,GAAG,SAAS,CAAC;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;IACrD,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,iCAAiC,IAAI,8BAA8B,CAkHlF"}