@solidxai/core-ui 0.1.8-beta.19 → 0.1.8-beta.20

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 (302) hide show
  1. package/dist/adapters/auth/getSession.d.ts.map +1 -1
  2. package/dist/adapters/auth/getSession.js +1 -1
  3. package/dist/adapters/auth/getSession.js.map +1 -1
  4. package/dist/adapters/auth/getSession.ts +1 -0
  5. package/dist/adapters/auth/helper.d.ts.map +1 -1
  6. package/dist/adapters/auth/helper.js +1 -0
  7. package/dist/adapters/auth/helper.js.map +1 -1
  8. package/dist/adapters/auth/helper.ts +3 -1
  9. package/dist/adapters/auth/signIn.d.ts.map +1 -1
  10. package/dist/adapters/auth/signIn.js +1 -0
  11. package/dist/adapters/auth/signIn.js.map +1 -1
  12. package/dist/adapters/auth/signIn.ts +3 -1
  13. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
  14. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  15. package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
  16. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  17. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
  18. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  19. package/dist/adapters/auth/signOut.js +7 -1
  20. package/dist/adapters/auth/signOut.js.map +1 -1
  21. package/dist/adapters/auth/signOut.ts +7 -1
  22. package/dist/adapters/auth/types.d.ts +1 -0
  23. package/dist/adapters/auth/types.d.ts.map +1 -1
  24. package/dist/adapters/auth/types.js.map +1 -1
  25. package/dist/adapters/auth/types.ts +1 -0
  26. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  27. package/dist/components/auth/AuthLayout.js +2 -1
  28. package/dist/components/auth/AuthLayout.js.map +1 -1
  29. package/dist/components/auth/AuthLayout.tsx +2 -1
  30. package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
  31. package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
  32. package/dist/components/auth/FacebookAuthChecking.js +103 -0
  33. package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
  34. package/dist/components/auth/FacebookAuthChecking.tsx +64 -0
  35. package/dist/components/auth/GoogleAuthChecking.js +0 -1
  36. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  37. package/dist/components/auth/GoogleAuthChecking.tsx +1 -1
  38. package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
  39. package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
  40. package/dist/components/auth/MicrosoftAuthChecking.js +103 -0
  41. package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
  42. package/dist/components/auth/MicrosoftAuthChecking.tsx +64 -0
  43. package/dist/components/auth/SolidInitialLoginOtp.js +0 -1
  44. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  45. package/dist/components/auth/SolidInitialLoginOtp.tsx +1 -1
  46. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  47. package/dist/components/auth/SolidInitiateRegisterOtp.js +28 -12
  48. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  49. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +26 -11
  50. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  51. package/dist/components/auth/SolidLogin.js +7 -4
  52. package/dist/components/auth/SolidLogin.js.map +1 -1
  53. package/dist/components/auth/SolidLogin.tsx +15 -3
  54. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  55. package/dist/components/auth/SolidRegister.js +48 -17
  56. package/dist/components/auth/SolidRegister.js.map +1 -1
  57. package/dist/components/auth/SolidRegister.tsx +87 -30
  58. package/dist/components/common/AuthBanner.js.map +1 -1
  59. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  60. package/dist/components/common/GeneralSettings.js +228 -146
  61. package/dist/components/common/GeneralSettings.js.map +1 -1
  62. package/dist/components/common/GeneralSettings.tsx +1103 -772
  63. package/dist/components/common/SettingsComponent.d.ts +2 -0
  64. package/dist/components/common/SettingsComponent.d.ts.map +1 -0
  65. package/dist/components/common/SettingsComponent.js +351 -0
  66. package/dist/components/common/SettingsComponent.js.map +1 -0
  67. package/dist/components/common/SettingsComponent.module.css +421 -0
  68. package/dist/components/common/SettingsComponent.tsx +582 -0
  69. package/dist/components/common/SocialMediaLogin.d.ts +8 -1
  70. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  71. package/dist/components/common/SocialMediaLogin.js +6 -13
  72. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  73. package/dist/components/common/SocialMediaLogin.tsx +120 -58
  74. package/dist/components/common/SolidExport.d.ts.map +1 -1
  75. package/dist/components/common/SolidExport.js +1 -1
  76. package/dist/components/common/SolidExport.js.map +1 -1
  77. package/dist/components/common/SolidExport.tsx +2 -1
  78. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  79. package/dist/components/common/SolidFormStepper.js +2 -1
  80. package/dist/components/common/SolidFormStepper.js.map +1 -1
  81. package/dist/components/common/SolidFormStepper.tsx +2 -1
  82. package/dist/components/common/solid-export.css +26 -0
  83. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  84. package/dist/components/core/card/SolidCardView.js +24 -25
  85. package/dist/components/core/card/SolidCardView.js.map +1 -1
  86. package/dist/components/core/card/SolidCardView.tsx +22 -27
  87. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  88. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  89. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  90. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  91. package/dist/components/core/chatter/SolidChatter.js +39 -9
  92. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  93. package/dist/components/core/chatter/SolidChatter.tsx +42 -7
  94. package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
  95. package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
  96. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  97. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
  98. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
  99. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  100. package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
  101. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  102. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
  103. package/dist/components/core/chatter/chatter.module.css +0 -3
  104. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  105. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
  106. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  107. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
  108. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  109. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
  110. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  111. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
  112. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
  113. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
  114. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
  115. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
  116. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
  117. package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
  118. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  119. package/dist/components/core/form/SolidFormActionHeader.js +5 -3
  120. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  121. package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
  122. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  123. package/dist/components/core/form/SolidFormView.js +67 -27
  124. package/dist/components/core/form/SolidFormView.js.map +1 -1
  125. package/dist/components/core/form/SolidFormView.tsx +54 -7
  126. package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
  127. package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
  128. package/dist/components/core/form/fields/SolidComputedField.js +128 -0
  129. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
  130. package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
  131. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  132. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +11 -3
  133. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  134. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +13 -4
  135. package/dist/components/core/kanban/KanbanBoard.js +1 -1
  136. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  137. package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
  138. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  139. package/dist/components/core/kanban/SolidKanbanView.js +216 -102
  140. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  141. package/dist/components/core/kanban/SolidKanbanView.tsx +204 -72
  142. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  143. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  144. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  145. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  146. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  147. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  148. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  149. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  150. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  151. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  152. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  153. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  154. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  155. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  156. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  157. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  158. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  159. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  160. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  161. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  162. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  163. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  164. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  165. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  166. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  167. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  168. package/dist/components/core/list/SolidListView.js +58 -61
  169. package/dist/components/core/list/SolidListView.js.map +1 -1
  170. package/dist/components/core/list/SolidListView.tsx +42 -46
  171. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  172. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  173. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  174. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  175. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  176. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  177. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  178. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  179. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  180. package/dist/components/layout/user-profile-menu.js +15 -14
  181. package/dist/components/layout/user-profile-menu.js.map +1 -1
  182. package/dist/components/layout/user-profile-menu.tsx +8 -6
  183. package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
  184. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  185. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  186. package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
  187. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
  188. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  189. package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
  190. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  191. package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
  192. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
  193. package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
  194. package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
  195. package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
  196. package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
  197. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  198. package/dist/components/shad-cn-ui/SolidTabs.js +2 -2
  199. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  200. package/dist/components/shad-cn-ui/SolidTabs.tsx +12 -1
  201. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  202. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  203. package/dist/components/solid-ui/SolidButton.js +36 -0
  204. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  205. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  206. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  207. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  208. package/dist/components/solid-ui/SolidTabs.js +22 -0
  209. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  210. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  211. package/dist/components/solid-ui/index.d.ts +3 -0
  212. package/dist/components/solid-ui/index.d.ts.map +1 -0
  213. package/dist/components/solid-ui/index.js +3 -0
  214. package/dist/components/solid-ui/index.js.map +1 -0
  215. package/dist/components/solid-ui/index.ts +2 -0
  216. package/dist/helpers/registry.d.ts +2 -2
  217. package/dist/helpers/registry.d.ts.map +1 -1
  218. package/dist/helpers/registry.js +4 -0
  219. package/dist/helpers/registry.js.map +1 -1
  220. package/dist/helpers/registry.ts +5 -3
  221. package/dist/helpers/settingsPayload.d.ts +32 -0
  222. package/dist/helpers/settingsPayload.d.ts.map +1 -0
  223. package/dist/helpers/settingsPayload.js +72 -0
  224. package/dist/helpers/settingsPayload.js.map +1 -0
  225. package/dist/helpers/settingsPayload.ts +125 -0
  226. package/dist/index.d.ts +4 -0
  227. package/dist/index.d.ts.map +1 -1
  228. package/dist/index.js +4 -0
  229. package/dist/index.js.map +1 -1
  230. package/dist/index.ts +4 -0
  231. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  232. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  233. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  234. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  235. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  236. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  237. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  238. package/dist/resources/globals.css +5 -1
  239. package/dist/resources/shadcn-base.css +242 -81
  240. package/dist/resources/solid-responsive.css +22 -4
  241. package/dist/routes/AppEventListener.js +1 -1
  242. package/dist/routes/AppEventListener.js.map +1 -1
  243. package/dist/routes/AppEventListener.tsx +1 -1
  244. package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
  245. package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
  246. package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
  247. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
  248. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
  249. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
  250. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
  251. package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
  252. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
  253. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
  254. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
  255. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
  256. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
  257. package/dist/routes/solidRoutes.d.ts.map +1 -1
  258. package/dist/routes/solidRoutes.js +5 -1
  259. package/dist/routes/solidRoutes.js.map +1 -1
  260. package/dist/routes/solidRoutes.tsx +5 -1
  261. package/dist/routes/types.d.ts +1 -1
  262. package/dist/routes/types.d.ts.map +1 -1
  263. package/dist/routes/types.js.map +1 -1
  264. package/dist/routes/types.ts +2 -0
  265. package/dist/types/extension-registry.d.ts +1 -0
  266. package/dist/types/extension-registry.d.ts.map +1 -1
  267. package/dist/types/extension-registry.js +1 -0
  268. package/dist/types/extension-registry.js.map +1 -1
  269. package/dist/types/extension-registry.ts +1 -0
  270. package/dist/types/index.d.ts +2 -0
  271. package/dist/types/solid-core.d.ts +10 -0
  272. package/package.json +1 -1
  273. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  274. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  275. package/dist/components/auth/SolidOTPVerify.js +0 -67
  276. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  277. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  278. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  279. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  280. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  281. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  282. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  283. package/dist/nextAuth/authProviders.d.ts +0 -4
  284. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  285. package/dist/nextAuth/authProviders.js +0 -198
  286. package/dist/nextAuth/authProviders.js.map +0 -1
  287. package/dist/nextAuth/authProviders.tsx +0 -232
  288. package/dist/nextAuth/handleLogout.d.ts +0 -2
  289. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  290. package/dist/nextAuth/handleLogout.js +0 -36
  291. package/dist/nextAuth/handleLogout.js.map +0 -1
  292. package/dist/nextAuth/handleLogout.tsx +0 -39
  293. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  294. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  295. package/dist/nextAuth/refreshAccessToken.js +0 -24
  296. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  297. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  298. package/dist/redux/features/settingsSlice.d.ts +0 -20
  299. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  300. package/dist/redux/features/settingsSlice.js +0 -39
  301. package/dist/redux/features/settingsSlice.js.map +0 -1
  302. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -1 +1 @@
1
- {"version":3,"file":"getSession.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/getSession.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOvC,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAsCnD"}
1
+ {"version":3,"file":"getSession.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/getSession.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOvC,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAuCnD"}
@@ -80,7 +80,7 @@ export function getSession() {
80
80
  _c.sent();
81
81
  return [2 /*return*/, null];
82
82
  case 3:
83
- nextSession = __assign(__assign({}, session), { user: __assign(__assign({}, session.user), { accessToken: refreshed.accessToken, refreshToken: (_b = refreshed.refreshToken) !== null && _b !== void 0 ? _b : session.user.refreshToken, accessTokenExpires: refreshed.accessTokenExpires }), error: null });
83
+ nextSession = __assign(__assign({}, session), { user: __assign(__assign({}, session.user), { accessToken: refreshed.accessToken, refreshToken: (_b = refreshed.refreshToken) !== null && _b !== void 0 ? _b : session.user.refreshToken, accessTokenExpires: refreshed.accessTokenExpires }), error: null, refreshed: true });
84
84
  saveSession(nextSession);
85
85
  eventBus.emit(AppEvents.SessionUpdated, nextSession);
86
86
  return [2 /*return*/, nextSession];
@@ -1 +1 @@
1
- {"version":3,"file":"getSession.js","sourceRoot":"","sources":["../../../src/adapters/auth/getSession.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,2EAA2E;AAC3E,sEAAsE;AACtE,IAAI,cAAc,GAAwB,IAAI,CAAC;AAE/C,MAAM,UAAgB,UAAU;;;;;;;oBACxB,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC9B,IAAI,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,WAAW,CAAA;wBAAE,sBAAO,IAAI,EAAC;oBAEvC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBAC5C,QAAQ,GAAG,KAAM,CAAC;yBACpB,CAAA,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAA,EAA/C,wBAA+C;oBACjD,IAAI,CAAC,cAAc,EAAE;wBACnB,cAAc,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC;4BACvF,cAAc,GAAG,IAAI,CAAC;wBACxB,CAAC,CAAC,CAAC;qBACJ;oBAEiB,qBAAM,cAAc,EAAA;;oBAAhC,SAAS,GAAG,SAAoB;yBAGlC,CAAA,CAAC,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,KAAK,KAAI,CAAC,CAAC,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,WAAW,CAAA,CAAA,EAA7D,wBAA6D;oBAC/D,YAAY,EAAE,CAAC;oBACf,qBAAM,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EAAA;;oBAA7C,SAA6C,CAAC;oBAC9C,sBAAO,IAAI,EAAC;;oBAGR,WAAW,yBACZ,OAAO,KACV,IAAI,wBACC,OAAO,CAAC,IAAI,KACf,WAAW,EAAG,SAAiB,CAAC,WAAW,EAC3C,YAAY,EAAE,MAAC,SAAiB,CAAC,YAAY,mCAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAC1E,kBAAkB,EAAG,SAAiB,CAAC,kBAAkB,KAE3D,KAAK,EAAE,IAAI,GACZ,CAAC;oBACF,WAAW,CAAC,WAAW,CAAC,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;oBACrD,sBAAO,WAAW,EAAC;wBAGrB,sBAAO,OAAO,EAAC;;;;CAChB","sourcesContent":["import { loadSession, saveSession, clearSession } from \"./storage\";\nimport { refreshAccessToken } from \"./refreshAccessToken\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport type { Session } from \"./types\";\nimport { signOut } from \"./signOut\";\n\n// NOTE: Single-flight refresh prevents a burst of concurrent requests from\n// triggering multiple refresh calls and racing to update the session.\nlet refreshPromise: Promise<any> | null = null;\n\nexport async function getSession(): Promise<Session> {\n const session = loadSession();\n if (!session?.user?.accessToken) return null;\n\n const expiresAt = session.user.accessTokenExpires;\n const bufferMs = 60_000;\n if (expiresAt && Date.now() >= expiresAt - bufferMs) {\n if (!refreshPromise) {\n refreshPromise = refreshAccessToken({ refreshToken: session.user.refreshToken }).finally(() => {\n refreshPromise = null;\n });\n }\n\n const refreshed = await refreshPromise;\n // NOTE: On refresh failure, clear storage and stop; do not persist a broken session,\n // which can otherwise cause repeated refresh attempts and redirect loops.\n if ((refreshed as any)?.error || !(refreshed as any)?.accessToken) {\n clearSession();\n await signOut({ callbackUrl: \"/auth/login\" });\n return null;\n }\n\n const nextSession: Session = {\n ...session,\n user: {\n ...session.user,\n accessToken: (refreshed as any).accessToken,\n refreshToken: (refreshed as any).refreshToken ?? session.user.refreshToken,\n accessTokenExpires: (refreshed as any).accessTokenExpires,\n },\n error: null,\n };\n saveSession(nextSession);\n eventBus.emit(AppEvents.SessionUpdated, nextSession);\n return nextSession;\n }\n\n return session;\n}\n"]}
1
+ {"version":3,"file":"getSession.js","sourceRoot":"","sources":["../../../src/adapters/auth/getSession.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,2EAA2E;AAC3E,sEAAsE;AACtE,IAAI,cAAc,GAAwB,IAAI,CAAC;AAE/C,MAAM,UAAgB,UAAU;;;;;;;oBACxB,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC9B,IAAI,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,WAAW,CAAA;wBAAE,sBAAO,IAAI,EAAC;oBAEvC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBAC5C,QAAQ,GAAG,KAAM,CAAC;yBACpB,CAAA,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAA,EAA/C,wBAA+C;oBACjD,IAAI,CAAC,cAAc,EAAE;wBACnB,cAAc,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC;4BACvF,cAAc,GAAG,IAAI,CAAC;wBACxB,CAAC,CAAC,CAAC;qBACJ;oBAEiB,qBAAM,cAAc,EAAA;;oBAAhC,SAAS,GAAG,SAAoB;yBAGlC,CAAA,CAAC,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,KAAK,KAAI,CAAC,CAAC,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,WAAW,CAAA,CAAA,EAA7D,wBAA6D;oBAC/D,YAAY,EAAE,CAAC;oBACf,qBAAM,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EAAA;;oBAA7C,SAA6C,CAAC;oBAC9C,sBAAO,IAAI,EAAC;;oBAGR,WAAW,yBACZ,OAAO,KACV,IAAI,wBACC,OAAO,CAAC,IAAI,KACf,WAAW,EAAG,SAAiB,CAAC,WAAW,EAC3C,YAAY,EAAE,MAAC,SAAiB,CAAC,YAAY,mCAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAC1E,kBAAkB,EAAG,SAAiB,CAAC,kBAAkB,KAE3D,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,IAAI,GAChB,CAAC;oBACF,WAAW,CAAC,WAAW,CAAC,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;oBACrD,sBAAO,WAAW,EAAC;wBAGrB,sBAAO,OAAO,EAAC;;;;CAChB","sourcesContent":["import { loadSession, saveSession, clearSession } from \"./storage\";\nimport { refreshAccessToken } from \"./refreshAccessToken\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport type { Session } from \"./types\";\nimport { signOut } from \"./signOut\";\n\n// NOTE: Single-flight refresh prevents a burst of concurrent requests from\n// triggering multiple refresh calls and racing to update the session.\nlet refreshPromise: Promise<any> | null = null;\n\nexport async function getSession(): Promise<Session> {\n const session = loadSession();\n if (!session?.user?.accessToken) return null;\n\n const expiresAt = session.user.accessTokenExpires;\n const bufferMs = 60_000;\n if (expiresAt && Date.now() >= expiresAt - bufferMs) {\n if (!refreshPromise) {\n refreshPromise = refreshAccessToken({ refreshToken: session.user.refreshToken }).finally(() => {\n refreshPromise = null;\n });\n }\n\n const refreshed = await refreshPromise;\n // NOTE: On refresh failure, clear storage and stop; do not persist a broken session,\n // which can otherwise cause repeated refresh attempts and redirect loops.\n if ((refreshed as any)?.error || !(refreshed as any)?.accessToken) {\n clearSession();\n await signOut({ callbackUrl: \"/auth/login\" });\n return null;\n }\n\n const nextSession: Session = {\n ...session,\n user: {\n ...session.user,\n accessToken: (refreshed as any).accessToken,\n refreshToken: (refreshed as any).refreshToken ?? session.user.refreshToken,\n accessTokenExpires: (refreshed as any).accessTokenExpires,\n },\n error: null,\n refreshed: true,\n };\n saveSession(nextSession);\n eventBus.emit(AppEvents.SessionUpdated, nextSession);\n return nextSession;\n }\n\n return session;\n}\n"]}
@@ -39,6 +39,7 @@ export async function getSession(): Promise<Session> {
39
39
  accessTokenExpires: (refreshed as any).accessTokenExpires,
40
40
  },
41
41
  error: null,
42
+ refreshed: true,
42
43
  };
43
44
  saveSession(nextSession);
44
45
  eventBus.emit(AppEvents.SessionUpdated, nextSession);
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/helper.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,WAAW,EAAC,MAAM,EAAG,YAAY,EAAE,MAAM,EAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,GAAG,GAAG,UAAU,CAiC/G"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/helper.ts"],"names":[],"mappings":"AAKA,KAAK,UAAU,GAAG;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,WAAW,EAAC,MAAM,EAAG,YAAY,EAAE,MAAM,EAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,GAAG,GAAG,UAAU,CAkC/G"}
@@ -24,6 +24,7 @@ export function handleAuthSuccess(accessToken, refreshToken, user, status) {
24
24
  var session = {
25
25
  user: __assign(__assign({}, user), { accessToken: accessToken, refreshToken: refreshToken, accessTokenExpires: accessTokenExpires }),
26
26
  error: null,
27
+ refreshed: false,
27
28
  };
28
29
  saveSession(session);
29
30
  eventBus.emit(AppEvents.SessionUpdated, session);
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/adapters/auth/helper.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAS7D,MAAM,UAAU,iBAAiB,CAAC,WAAkB,EAAG,YAAoB,EAAG,IAAS,EAAE,MAAU;IAE/F,yDAAyD;IACzD,2DAA2D;IAC3D,iDAAiD;IAEjD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;QAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,MAAM,EAAC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KAC9F;IAED,IAAM,OAAO,GAAG,SAAS,CAAmB,WAAW,CAAC,CAAC;IACzD,IAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAExE,IAAM,OAAO,GAAG;QACZ,IAAI,wBACG,IAAI,KACP,WAAW,aAAA,EACX,YAAY,cAAA,EACZ,kBAAkB,oBAAA,GACrB;QACD,KAAK,EAAE,IAAI;KACd,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO;QACH,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,IAAI;KACZ,CAAC;AAEN,CAAC","sourcesContent":["import { jwtDecode } from \"jwt-decode\";\nimport { saveSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\n\ntype AuthResult = {\n ok: boolean;\n error: string | null;\n status: number;\n url: string | null;\n};\n\nexport function handleAuthSuccess(accessToken:string , refreshToken: string , user: any ,status:any): AuthResult{\n\n // const accessToken = response?.data?.data?.accessToken;\n // const refreshToken = response?.data?.data?.refreshToken;\n // const user = response?.data?.data?.user || {};\n\n if (!accessToken || !refreshToken) {\n return { ok: false, error: \"Missing tokens in response\", status:status || 500, url: null };\n }\n\n const decoded = jwtDecode<{ exp?: number }>(accessToken);\n const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;\n\n const session = {\n user: {\n ...user,\n accessToken,\n refreshToken,\n accessTokenExpires,\n },\n error: null,\n };\n\n saveSession(session);\n eventBus.emit(AppEvents.SessionUpdated, session);\n\n return {\n ok: true,\n error: null,\n status: status,\n url: null,\n };\n\n}"]}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/adapters/auth/helper.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAU7D,MAAM,UAAU,iBAAiB,CAAC,WAAkB,EAAG,YAAoB,EAAG,IAAS,EAAE,MAAU;IAE/F,yDAAyD;IACzD,2DAA2D;IAC3D,iDAAiD;IAEjD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;QAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,MAAM,EAAC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KAC9F;IAED,IAAM,OAAO,GAAG,SAAS,CAAmB,WAAW,CAAC,CAAC;IACzD,IAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAExE,IAAM,OAAO,GAAY;QACrB,IAAI,wBACG,IAAI,KACP,WAAW,aAAA,EACX,YAAY,cAAA,EACZ,kBAAkB,oBAAA,GACrB;QACD,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,KAAK;KACnB,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO;QACH,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,IAAI;KACZ,CAAC;AAEN,CAAC","sourcesContent":["import { jwtDecode } from \"jwt-decode\";\nimport { saveSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport { Session } from \"./types\";\n\ntype AuthResult = {\n ok: boolean;\n error: string | null;\n status: number;\n url: string | null;\n};\n\nexport function handleAuthSuccess(accessToken:string , refreshToken: string , user: any ,status:any): AuthResult{\n\n // const accessToken = response?.data?.data?.accessToken;\n // const refreshToken = response?.data?.data?.refreshToken;\n // const user = response?.data?.data?.user || {};\n\n if (!accessToken || !refreshToken) {\n return { ok: false, error: \"Missing tokens in response\", status:status || 500, url: null };\n }\n\n const decoded = jwtDecode<{ exp?: number }>(accessToken);\n const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;\n\n const session: Session = {\n user: {\n ...user,\n accessToken,\n refreshToken,\n accessTokenExpires,\n },\n error: null,\n refreshed: false,\n };\n\n saveSession(session);\n eventBus.emit(AppEvents.SessionUpdated, session);\n\n return {\n ok: true,\n error: null,\n status: status,\n url: null,\n };\n\n}"]}
@@ -1,6 +1,7 @@
1
1
  import { jwtDecode } from "jwt-decode";
2
2
  import { saveSession } from "./storage";
3
3
  import { eventBus, AppEvents } from "../../helpers/eventBus";
4
+ import { Session } from "./types";
4
5
 
5
6
  type AuthResult = {
6
7
  ok: boolean;
@@ -22,7 +23,7 @@ export function handleAuthSuccess(accessToken:string , refreshToken: string , us
22
23
  const decoded = jwtDecode<{ exp?: number }>(accessToken);
23
24
  const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;
24
25
 
25
- const session = {
26
+ const session: Session = {
26
27
  user: {
27
28
  ...user,
28
29
  accessToken,
@@ -30,6 +31,7 @@ export function handleAuthSuccess(accessToken:string , refreshToken: string , us
30
31
  accessTokenExpires,
31
32
  },
32
33
  error: null,
34
+ refreshed: false,
33
35
  };
34
36
 
35
37
  saveSession(session);
@@ -1 +1 @@
1
- {"version":3,"file":"signIn.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/signIn.ts"],"names":[],"mappings":"AAMA,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAwDzF"}
1
+ {"version":3,"file":"signIn.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/signIn.ts"],"names":[],"mappings":"AAOA,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAyDzF"}
@@ -92,6 +92,7 @@ export function signIn(provider, options) {
92
92
  session = {
93
93
  user: __assign(__assign({}, user), { accessToken: accessToken, refreshToken: refreshToken, accessTokenExpires: accessTokenExpires }),
94
94
  error: null,
95
+ refreshed: false,
95
96
  };
96
97
  saveSession(session);
97
98
  eventBus.emit(AppEvents.SessionUpdated, session);
@@ -1 +1 @@
1
- {"version":3,"file":"signIn.js","sourceRoot":"","sources":["../../../src/adapters/auth/signIn.ts"],"names":[],"mappings":"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","sourcesContent":["import { jwtDecode } from \"jwt-decode\";\nimport { env } from \"../env\";\nimport { saveSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport { solidPost } from \"../..//http/solidHttp\";\n\ntype SignInResponse = {\n ok: boolean;\n error: string | null;\n status: number;\n url: string | null;\n};\n\nexport async function signIn(provider: string, options: any = {}): Promise<SignInResponse> {\n if (provider !== \"credentials\") {\n return { ok: false, error: `Unsupported provider: ${provider}`, status: 400, url: null };\n }\n\n const { identifier, password } = options;\n const apiUrl = env(\"API_URL\");\n\n if (!apiUrl) {\n return { ok: false, error: \"API_URL is not configured\", status: 500, url: null };\n }\n\n try {\n const response = await solidPost(\n `${apiUrl}/api/iam/authenticate`,\n {\n username: identifier,\n email: identifier.includes('@') ? identifier : null,\n password,\n },\n {\n headers: {\n accept: \"*/*\",\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n const accessToken = response?.data?.data?.accessToken;\n const refreshToken = response?.data?.data?.refreshToken;\n const user = response?.data?.data?.user || {};\n\n if (!accessToken || !refreshToken) {\n return { ok: false, error: \"Missing tokens in response\", status: response.status || 500, url: null };\n }\n\n const decoded = jwtDecode<{ exp?: number }>(accessToken);\n const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;\n\n const session = {\n user: {\n ...user,\n accessToken,\n refreshToken,\n accessTokenExpires,\n },\n error: null,\n };\n saveSession(session);\n eventBus.emit(AppEvents.SessionUpdated, session);\n\n return { ok: true, error: null, status: response.status || 200, url: null };\n } catch (error: any) {\n const message = error?.response?.data?.message || error?.response?.data?.data?.message || error?.message || \"Login failed\";\n return { ok: false, error: message, status: error?.response?.status || 500, url: null };\n }\n}\n"]}
1
+ {"version":3,"file":"signIn.js","sourceRoot":"","sources":["../../../src/adapters/auth/signIn.ts"],"names":[],"mappings":"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","sourcesContent":["import { jwtDecode } from \"jwt-decode\";\nimport { env } from \"../env\";\nimport { saveSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport { solidPost } from \"../..//http/solidHttp\";\nimport { Session } from \"./types\";\n\ntype SignInResponse = {\n ok: boolean;\n error: string | null;\n status: number;\n url: string | null;\n};\n\nexport async function signIn(provider: string, options: any = {}): Promise<SignInResponse> {\n if (provider !== \"credentials\") {\n return { ok: false, error: `Unsupported provider: ${provider}`, status: 400, url: null };\n }\n\n const { identifier, password } = options;\n const apiUrl = env(\"API_URL\");\n\n if (!apiUrl) {\n return { ok: false, error: \"API_URL is not configured\", status: 500, url: null };\n }\n\n try {\n const response = await solidPost(\n `${apiUrl}/api/iam/authenticate`,\n {\n username: identifier,\n email: identifier.includes('@') ? identifier : null,\n password,\n },\n {\n headers: {\n accept: \"*/*\",\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n const accessToken = response?.data?.data?.accessToken;\n const refreshToken = response?.data?.data?.refreshToken;\n const user = response?.data?.data?.user || {};\n\n if (!accessToken || !refreshToken) {\n return { ok: false, error: \"Missing tokens in response\", status: response.status || 500, url: null };\n }\n\n const decoded = jwtDecode<{ exp?: number }>(accessToken);\n const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;\n\n const session: Session = {\n user: {\n ...user,\n accessToken,\n refreshToken,\n accessTokenExpires,\n },\n error: null,\n refreshed: false,\n };\n saveSession(session);\n eventBus.emit(AppEvents.SessionUpdated, session);\n\n return { ok: true, error: null, status: response.status || 200, url: null };\n } catch (error: any) {\n const message = error?.response?.data?.message || error?.response?.data?.data?.message || error?.message || \"Login failed\";\n return { ok: false, error: message, status: error?.response?.status || 500, url: null };\n }\n}\n"]}
@@ -3,6 +3,7 @@ import { env } from "../env";
3
3
  import { saveSession } from "./storage";
4
4
  import { eventBus, AppEvents } from "../../helpers/eventBus";
5
5
  import { solidPost } from "../..//http/solidHttp";
6
+ import { Session } from "./types";
6
7
 
7
8
  type SignInResponse = {
8
9
  ok: boolean;
@@ -50,7 +51,7 @@ export async function signIn(provider: string, options: any = {}): Promise<SignI
50
51
  const decoded = jwtDecode<{ exp?: number }>(accessToken);
51
52
  const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;
52
53
 
53
- const session = {
54
+ const session: Session = {
54
55
  user: {
55
56
  ...user,
56
57
  accessToken,
@@ -58,6 +59,7 @@ export async function signIn(provider: string, options: any = {}): Promise<SignI
58
59
  accessTokenExpires,
59
60
  },
60
61
  error: null,
62
+ refreshed: false,
61
63
  };
62
64
  saveSession(session);
63
65
  eventBus.emit(AppEvents.SessionUpdated, session);
@@ -7,6 +7,7 @@ type SignInResponse = {
7
7
  type SignInWithOAuthAccessCodeOptions = {
8
8
  accessCode: string;
9
9
  userAgent?: string;
10
+ provider?: "google" | "facebook" | "microsoft";
10
11
  };
11
12
  export declare function signInWithOAuthAccessCode(options: SignInWithOAuthAccessCodeOptions): Promise<SignInResponse>;
12
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"signInWithOAuthAccessCode.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/signInWithOAuthAccessCode.ts"],"names":[],"mappings":"AAMA,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,gCAAgC,GAAG,OAAO,CAAC,cAAc,CAAC,CA6DlH"}
1
+ {"version":3,"file":"signInWithOAuthAccessCode.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/signInWithOAuthAccessCode.ts"],"names":[],"mappings":"AAOA,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;CAChD,CAAC;AAEF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,gCAAgC,GAAG,OAAO,CAAC,cAAc,CAAC,CA8DlH"}
@@ -53,29 +53,29 @@ import { solidGet } from "../..//http/solidHttp";
53
53
  export function signInWithOAuthAccessCode(options) {
54
54
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
55
55
  return __awaiter(this, void 0, void 0, function () {
56
- var accessCode, userAgent, apiUrl, headers, response, message, accessToken, refreshToken, user, decoded, accessTokenExpires, session, error_1, message;
57
- return __generator(this, function (_t) {
58
- switch (_t.label) {
56
+ var accessCode, userAgent, _t, provider, apiUrl, headers, response, message, accessToken, refreshToken, user, decoded, accessTokenExpires, session, error_1, message;
57
+ return __generator(this, function (_u) {
58
+ switch (_u.label) {
59
59
  case 0:
60
- accessCode = options.accessCode, userAgent = options.userAgent;
60
+ accessCode = options.accessCode, userAgent = options.userAgent, _t = options.provider, provider = _t === void 0 ? "google" : _t;
61
61
  apiUrl = env("API_URL");
62
62
  if (!apiUrl) {
63
63
  return [2 /*return*/, { ok: false, error: "API_URL is not configured", status: 500, url: null }];
64
64
  }
65
- _t.label = 1;
65
+ _u.label = 1;
66
66
  case 1:
67
- _t.trys.push([1, 3, , 4]);
67
+ _u.trys.push([1, 3, , 4]);
68
68
  headers = {
69
69
  accept: "*/*",
70
70
  };
71
71
  if (userAgent) {
72
72
  headers["User-Agent"] = userAgent;
73
73
  }
74
- return [4 /*yield*/, solidGet("".concat(apiUrl, "/api/iam/google/authenticate?accessCode=").concat(encodeURIComponent(accessCode)), {
74
+ return [4 /*yield*/, solidGet("".concat(apiUrl, "/api/iam/").concat(provider, "/authenticate?accessCode=").concat(encodeURIComponent(accessCode)), {
75
75
  headers: headers,
76
76
  })];
77
77
  case 2:
78
- response = _t.sent();
78
+ response = _u.sent();
79
79
  if (((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.statusCode) && ((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.statusCode) !== 200) {
80
80
  message = ((_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.error) || ((_d = response === null || response === void 0 ? void 0 : response.data) === null || _d === void 0 ? void 0 : _d.message) || "Login failed";
81
81
  return [2 /*return*/, { ok: false, error: message, status: ((_e = response === null || response === void 0 ? void 0 : response.data) === null || _e === void 0 ? void 0 : _e.statusCode) || response.status || 400, url: null }];
@@ -91,12 +91,13 @@ export function signInWithOAuthAccessCode(options) {
91
91
  session = {
92
92
  user: __assign(__assign({}, user), { accessToken: accessToken, refreshToken: refreshToken, accessTokenExpires: accessTokenExpires }),
93
93
  error: null,
94
+ refreshed: false,
94
95
  };
95
96
  saveSession(session);
96
97
  eventBus.emit(AppEvents.SessionUpdated, session);
97
98
  return [2 /*return*/, { ok: true, error: null, status: response.status || 200, url: null }];
98
99
  case 3:
99
- error_1 = _t.sent();
100
+ error_1 = _u.sent();
100
101
  message = ((_o = (_m = error_1 === null || error_1 === void 0 ? void 0 : error_1.response) === null || _m === void 0 ? void 0 : _m.data) === null || _o === void 0 ? void 0 : _o.message) ||
101
102
  ((_r = (_q = (_p = error_1 === null || error_1 === void 0 ? void 0 : error_1.response) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.data) === null || _r === void 0 ? void 0 : _r.message) ||
102
103
  (error_1 === null || error_1 === void 0 ? void 0 : error_1.message) ||
@@ -1 +1 @@
1
- {"version":3,"file":"signInWithOAuthAccessCode.js","sourceRoot":"","sources":["../../../src/adapters/auth/signInWithOAuthAccessCode.ts"],"names":[],"mappings":"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","sourcesContent":["import { jwtDecode } from \"jwt-decode\";\nimport { env } from \"../env\";\nimport { saveSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport { solidGet } from \"../..//http/solidHttp\";\n\ntype SignInResponse = {\n ok: boolean;\n error: string | null;\n status: number;\n url: string | null;\n};\n\ntype SignInWithOAuthAccessCodeOptions = {\n accessCode: string;\n userAgent?: string;\n};\n\nexport async function signInWithOAuthAccessCode(options: SignInWithOAuthAccessCodeOptions): Promise<SignInResponse> {\n const { accessCode, userAgent } = options;\n const apiUrl = env(\"API_URL\");\n\n if (!apiUrl) {\n return { ok: false, error: \"API_URL is not configured\", status: 500, url: null };\n }\n\n try {\n const headers: Record<string, string> = {\n accept: \"*/*\",\n };\n\n if (userAgent) {\n headers[\"User-Agent\"] = userAgent;\n }\n\n const response = await solidGet(\n `${apiUrl}/api/iam/google/authenticate?accessCode=${encodeURIComponent(accessCode)}`,\n {\n headers,\n }\n );\n\n if (response?.data?.statusCode && response?.data?.statusCode !== 200) {\n const message = response?.data?.error || response?.data?.message || \"Login failed\";\n return { ok: false, error: message, status: response?.data?.statusCode || response.status || 400, url: null };\n }\n\n const accessToken = response?.data?.data?.accessToken;\n const refreshToken = response?.data?.data?.refreshToken;\n const user = response?.data?.data?.user || {};\n\n if (!accessToken || !refreshToken) {\n return { ok: false, error: \"Missing tokens in response\", status: response.status || 500, url: null };\n }\n\n const decoded = jwtDecode<{ exp?: number }>(accessToken);\n const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;\n\n const session = {\n user: {\n ...user,\n accessToken,\n refreshToken,\n accessTokenExpires,\n },\n error: null,\n };\n saveSession(session);\n eventBus.emit(AppEvents.SessionUpdated, session);\n\n return { ok: true, error: null, status: response.status || 200, url: null };\n } catch (error: any) {\n const message =\n error?.response?.data?.message ||\n error?.response?.data?.data?.message ||\n error?.message ||\n \"Login failed\";\n return { ok: false, error: message, status: error?.response?.status || 500, url: null };\n }\n}\n"]}
1
+ {"version":3,"file":"signInWithOAuthAccessCode.js","sourceRoot":"","sources":["../../../src/adapters/auth/signInWithOAuthAccessCode.ts"],"names":[],"mappings":"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","sourcesContent":["import { jwtDecode } from \"jwt-decode\";\nimport { env } from \"../env\";\nimport { saveSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport { solidGet } from \"../..//http/solidHttp\";\nimport { Session } from \"./types\";\n\ntype SignInResponse = {\n ok: boolean;\n error: string | null;\n status: number;\n url: string | null;\n};\n\ntype SignInWithOAuthAccessCodeOptions = {\n accessCode: string;\n userAgent?: string;\n provider?: \"google\" | \"facebook\" | \"microsoft\";\n};\n\nexport async function signInWithOAuthAccessCode(options: SignInWithOAuthAccessCodeOptions): Promise<SignInResponse> {\n const { accessCode, userAgent, provider = \"google\" } = options;\n const apiUrl = env(\"API_URL\");\n\n if (!apiUrl) {\n return { ok: false, error: \"API_URL is not configured\", status: 500, url: null };\n }\n\n try {\n const headers: Record<string, string> = {\n accept: \"*/*\",\n };\n\n if (userAgent) {\n headers[\"User-Agent\"] = userAgent;\n }\n\n const response = await solidGet(\n `${apiUrl}/api/iam/${provider}/authenticate?accessCode=${encodeURIComponent(accessCode)}`,\n {\n headers,\n }\n );\n\n if (response?.data?.statusCode && response?.data?.statusCode !== 200) {\n const message = response?.data?.error || response?.data?.message || \"Login failed\";\n return { ok: false, error: message, status: response?.data?.statusCode || response.status || 400, url: null };\n }\n\n const accessToken = response?.data?.data?.accessToken;\n const refreshToken = response?.data?.data?.refreshToken;\n const user = response?.data?.data?.user || {};\n\n if (!accessToken || !refreshToken) {\n return { ok: false, error: \"Missing tokens in response\", status: response.status || 500, url: null };\n }\n\n const decoded = jwtDecode<{ exp?: number }>(accessToken);\n const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;\n\n const session: Session = {\n user: {\n ...user,\n accessToken,\n refreshToken,\n accessTokenExpires,\n },\n error: null,\n refreshed: false,\n };\n saveSession(session);\n eventBus.emit(AppEvents.SessionUpdated, session);\n\n return { ok: true, error: null, status: response.status || 200, url: null };\n } catch (error: any) {\n const message =\n error?.response?.data?.message ||\n error?.response?.data?.data?.message ||\n error?.message ||\n \"Login failed\";\n return { ok: false, error: message, status: error?.response?.status || 500, url: null };\n }\n}\n"]}
@@ -3,6 +3,7 @@ import { env } from "../env";
3
3
  import { saveSession } from "./storage";
4
4
  import { eventBus, AppEvents } from "../../helpers/eventBus";
5
5
  import { solidGet } from "../..//http/solidHttp";
6
+ import { Session } from "./types";
6
7
 
7
8
  type SignInResponse = {
8
9
  ok: boolean;
@@ -14,10 +15,11 @@ type SignInResponse = {
14
15
  type SignInWithOAuthAccessCodeOptions = {
15
16
  accessCode: string;
16
17
  userAgent?: string;
18
+ provider?: "google" | "facebook" | "microsoft";
17
19
  };
18
20
 
19
21
  export async function signInWithOAuthAccessCode(options: SignInWithOAuthAccessCodeOptions): Promise<SignInResponse> {
20
- const { accessCode, userAgent } = options;
22
+ const { accessCode, userAgent, provider = "google" } = options;
21
23
  const apiUrl = env("API_URL");
22
24
 
23
25
  if (!apiUrl) {
@@ -34,7 +36,7 @@ export async function signInWithOAuthAccessCode(options: SignInWithOAuthAccessCo
34
36
  }
35
37
 
36
38
  const response = await solidGet(
37
- `${apiUrl}/api/iam/google/authenticate?accessCode=${encodeURIComponent(accessCode)}`,
39
+ `${apiUrl}/api/iam/${provider}/authenticate?accessCode=${encodeURIComponent(accessCode)}`,
38
40
  {
39
41
  headers,
40
42
  }
@@ -56,7 +58,7 @@ export async function signInWithOAuthAccessCode(options: SignInWithOAuthAccessCo
56
58
  const decoded = jwtDecode<{ exp?: number }>(accessToken);
57
59
  const accessTokenExpires = decoded.exp ? decoded.exp * 1000 : undefined;
58
60
 
59
- const session = {
61
+ const session: Session = {
60
62
  user: {
61
63
  ...user,
62
64
  accessToken,
@@ -64,6 +66,7 @@ export async function signInWithOAuthAccessCode(options: SignInWithOAuthAccessCo
64
66
  accessTokenExpires,
65
67
  },
66
68
  error: null,
69
+ refreshed: false,
67
70
  };
68
71
  saveSession(session);
69
72
  eventBus.emit(AppEvents.SessionUpdated, session);
@@ -1 +1 @@
1
- {"version":3,"file":"signOut.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/signOut.ts"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,iBAOzD"}
1
+ {"version":3,"file":"signOut.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/signOut.ts"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,iBAazD"}
@@ -39,11 +39,17 @@ import { eventBus, AppEvents } from "../../helpers/eventBus";
39
39
  export function signOut(options) {
40
40
  if (options === void 0) { options = {}; }
41
41
  return __awaiter(this, void 0, void 0, function () {
42
+ var currentPathname;
42
43
  return __generator(this, function (_a) {
43
44
  clearSession();
44
45
  eventBus.emit(AppEvents.SessionCleared);
45
46
  if (options.callbackUrl && typeof window !== "undefined") {
46
- window.location.href = options.callbackUrl;
47
+ currentPathname = window.location.pathname;
48
+ // Only force the post-logout redirect when the admin app shell is active.
49
+ // Other shells can react to SessionCleared and decide their own navigation.
50
+ if (currentPathname.startsWith("/admin")) {
51
+ window.location.href = options.callbackUrl;
52
+ }
47
53
  }
48
54
  return [2 /*return*/];
49
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"signOut.js","sourceRoot":"","sources":["../../../src/adapters/auth/signOut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,UAAgB,OAAO,CAAC,OAA4B;IAA5B,wBAAA,EAAA,YAA4B;;;YACxD,YAAY,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACxC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;aAC5C;YACD,sBAAO;;;CACR","sourcesContent":["import { clearSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\n\ntype SignOutOptions = {\n callbackUrl?: string;\n};\n\nexport async function signOut(options: SignOutOptions = {}) {\n clearSession();\n eventBus.emit(AppEvents.SessionCleared);\n if (options.callbackUrl && typeof window !== \"undefined\") {\n window.location.href = options.callbackUrl;\n }\n return;\n}\n"]}
1
+ {"version":3,"file":"signOut.js","sourceRoot":"","sources":["../../../src/adapters/auth/signOut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,UAAgB,OAAO,CAAC,OAA4B;IAA5B,wBAAA,EAAA,YAA4B;;;;YACxD,YAAY,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACxC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBAClD,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAEjD,0EAA0E;gBAC1E,4EAA4E;gBAC5E,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;iBAC5C;aACF;YACD,sBAAO;;;CACR","sourcesContent":["import { clearSession } from \"./storage\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\n\ntype SignOutOptions = {\n callbackUrl?: string;\n};\n\nexport async function signOut(options: SignOutOptions = {}) {\n clearSession();\n eventBus.emit(AppEvents.SessionCleared);\n if (options.callbackUrl && typeof window !== \"undefined\") {\n const currentPathname = window.location.pathname;\n\n // Only force the post-logout redirect when the admin app shell is active.\n // Other shells can react to SessionCleared and decide their own navigation.\n if (currentPathname.startsWith(\"/admin\")) {\n window.location.href = options.callbackUrl;\n }\n }\n return;\n}\n"]}
@@ -9,7 +9,13 @@ export async function signOut(options: SignOutOptions = {}) {
9
9
  clearSession();
10
10
  eventBus.emit(AppEvents.SessionCleared);
11
11
  if (options.callbackUrl && typeof window !== "undefined") {
12
- window.location.href = options.callbackUrl;
12
+ const currentPathname = window.location.pathname;
13
+
14
+ // Only force the post-logout redirect when the admin app shell is active.
15
+ // Other shells can react to SessionCleared and decide their own navigation.
16
+ if (currentPathname.startsWith("/admin")) {
17
+ window.location.href = options.callbackUrl;
18
+ }
13
19
  }
14
20
  return;
15
21
  }
@@ -6,5 +6,6 @@ export type Session = {
6
6
  [key: string]: any;
7
7
  };
8
8
  error?: string | null;
9
+ refreshed?: boolean;
9
10
  } | null;
10
11
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,CAAC,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,CAAC,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/auth/types.ts"],"names":[],"mappings":"","sourcesContent":["export type Session = {\n user?: {\n accessToken: string;\n refreshToken: string;\n accessTokenExpires?: number;\n [key: string]: any;\n };\n error?: string | null;\n} | null;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/auth/types.ts"],"names":[],"mappings":"","sourcesContent":["export type Session = {\n user?: {\n accessToken: string;\n refreshToken: string;\n accessTokenExpires?: number;\n [key: string]: any;\n };\n error?: string | null;\n refreshed?: boolean;\n} | null;\n"]}
@@ -6,4 +6,5 @@ export type Session = {
6
6
  [key: string]: any;
7
7
  };
8
8
  error?: string | null;
9
+ refreshed?: boolean;
9
10
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,UAAU;cAA8B,MAAM,SAAS;oDA6NnE,CAAA"}
1
+ {"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,UAAU;cAA8B,MAAM,SAAS;oDA6NnE,CAAA"}
@@ -47,6 +47,7 @@ import { SolidButton, SolidDialog, SolidDivider } from "../shad-cn-ui";
47
47
  import { LayoutContext } from "../layout/context/layoutcontext";
48
48
  import { solidGet } from "../../http/solidHttp";
49
49
  import { AuthSettingsContext } from "./AuthSettingsContext";
50
+ import { toLegacySettingsShape } from "../../helpers/settingsPayload";
50
51
  var SHADCN_PLACEHOLDER_IMAGE = "https://ui.shadcn.com/placeholder.svg";
51
52
  export var AuthLayout = function (_a) {
52
53
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
@@ -71,7 +72,7 @@ export var AuthLayout = function (_a) {
71
72
  return [4 /*yield*/, solidGet("/setting/wrapped")];
72
73
  case 2:
73
74
  response = _b.sent();
74
- setSolidSettingsData((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : null);
75
+ setSolidSettingsData(toLegacySettingsShape((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : null));
75
76
  return [3 /*break*/, 5];
76
77
  case 3:
77
78
  error_1 = _b.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLayout.js","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport Image from \"../common/Image\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { env } from \"../../adapters/env\";\nimport { SolidButton, SolidDialog, SolidDivider } from \"../shad-cn-ui\";\nimport { LayoutContext } from \"../layout/context/layoutcontext\";\nimport { solidGet } from \"../../http/solidHttp\";\nimport { AuthSettingsContext } from \"./AuthSettingsContext\";\n\nconst SHADCN_PLACEHOLDER_IMAGE = \"https://ui.shadcn.com/placeholder.svg\";\n\nexport const AuthLayout = ({ children }: { children: React.ReactNode }) => {\n const layoutContext = useContext(LayoutContext);\n const [solidSettingsData, setSolidSettingsData] = useState<any>(null);\n const [isLoadingAuthSettings, setIsLoadingAuthSettings] = useState(true);\n\n const [allowRegistration, setAllowRegistration] = useState<boolean | null>(null);\n const [isRestricted, setIsRestricted] = useState(false);\n const pathname = usePathname();\n const router = useRouter();\n\n const loadAuthSettings = useCallback(async () => {\n setIsLoadingAuthSettings(true);\n try {\n const response = await solidGet(\"/setting/wrapped\");\n setSolidSettingsData(response?.data ?? null);\n } catch (error) {\n console.error(\"Failed to load auth settings\", error);\n setSolidSettingsData(null);\n } finally {\n setIsLoadingAuthSettings(false);\n }\n }, []);\n\n useEffect(() => {\n loadAuthSettings();\n }, [loadAuthSettings]);\n\n useEffect(() => {\n const allowPublicRegistration = solidSettingsData?.data?.allowPublicRegistration;\n if (allowPublicRegistration === false) {\n setAllowRegistration(false);\n if (pathname === \"/auth/register\") {\n setIsRestricted(true);\n } else {\n setIsRestricted(false);\n }\n } else if (allowPublicRegistration === true) {\n setAllowRegistration(true);\n setIsRestricted(false);\n }\n }, [solidSettingsData, pathname]);\n\n if (isLoadingAuthSettings && pathname === \"/auth/register\") {\n return null;\n }\n\n const authChildren = allowRegistration !== false || pathname !== \"/auth/register\" ? children : null;\n const handleRegistration = () => {\n router.push(\"/auth/login\");\n setIsRestricted(false);\n }\n\n const solidSideBanner = () => {\n const layout = solidSettingsData?.data?.authPagesLayout;\n\n let src = '';\n\n if (layout === 'left') {\n src = solidSettingsData?.data?.authScreenLeftBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'right') {\n src = solidSettingsData?.data?.authScreenRightBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'center') {\n src = solidSettingsData?.data?.authScreenCenterBackgroundImage || (AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage;\n }\n\n // Normalize image path if coming from API\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n if (!isBlobOrAbsolute && !src?.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return src;\n };\n\n const normalizeAssetUrl = (src?: string) => {\n if (!src) return \"\";\n const isBlobOrAbsolute = src.startsWith(\"blob:\") || src.startsWith(\"http\");\n if (isBlobOrAbsolute || src.startsWith(\"/\")) return src;\n return `${env(\"API_URL\")}/${src}`;\n };\n\n const authLogoSrc = normalizeAssetUrl(solidSettingsData?.data?.appLogo || \"\");\n const appName = solidSettingsData?.data?.appTitle?.trim() || \"\";\n\n const renderBrand = (align: \"center\" | \"start\" = \"start\") => {\n if (!authLogoSrc && !appName) return null;\n\n const brandLabel = appName || \"Application logo\";\n\n return (\n <div className={`solid-auth-brand ${align === \"center\" ? \"is-center\" : \"\"}`} aria-label={brandLabel}>\n {authLogoSrc ? (\n <span className=\"solid-auth-brand-logo\">\n <img src={authLogoSrc} alt={brandLabel} />\n </span>\n ) : null}\n {appName ? <span className=\"solid-auth-brand-text\">{appName}</span> : null}\n </div>\n );\n };\n\n const authLayout = solidSettingsData?.data?.authPagesLayout || \"center\";\n const authTheme = layoutContext?.themeMode === \"dark\" ? \"dark\" : \"light\";\n const isCenter = authLayout === \"center\";\n const isLeft = authLayout === \"left\";\n const isRight = authLayout === \"right\";\n const authSettingsContextValue = useMemo(\n () => ({\n solidSettingsData,\n isLoadingAuthSettings,\n reloadAuthSettings: loadAuthSettings,\n }),\n [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]\n );\n\n const formPane = (\n <div className=\"solid-auth-form-pane solid-login-dark-bg\">\n <div className=\"solid-auth-form-pane-inner\">\n {renderBrand(\"start\")}\n {authChildren}\n </div>\n </div>\n );\n\n const imagePane = (\n <div\n className={`solid-auth-image-pane position-relative ${isLeft ? \"solid-left-layout pane-on-right\" : \"solid-right-layout pane-on-left\"}`.trim()}\n style={{ backgroundImage: `url(${solidSideBanner()})` }}\n >\n {solidSettingsData?.data?.appLogoPosition === \"in_image_view\" &&\n <div className={`solid-logo flex align-items-center gap-3 ${solidSettingsData?.data?.appLogoPosition}`}>\n <Image\n alt=\"solid logo\"\n src={solidSettingsData?.data?.appLogo || SolidLogo}\n className=\"relative\"\n fill\n />\n </div>\n }\n {solidSettingsData?.data?.showAuthContent &&\n <div className=\"w-full\" style={{ zIndex: 1 }}>\n <div className=\"grid\">\n <div className=\"col-8 mx-auto\">\n {solidSettingsData?.data?.appSubtitle && <h1 className=\"solid-auth-image-subtitle m-0\">{solidSettingsData?.data?.appSubtitle}</h1>}\n {solidSettingsData?.data?.appTitle && <h1 className=\"solid-auth-image-title mt-0\">{solidSettingsData?.data?.appTitle}</h1>}\n {solidSettingsData?.data?.appDescription && <p className=\"solid-auth-image-helper-text\">{solidSettingsData?.data?.appDescription}</p>}\n </div>\n </div>\n </div>\n }\n </div>\n );\n\n return (\n <AuthSettingsContext.Provider value={authSettingsContextValue}>\n <div className={`solid-auth-theme-wrapper ${authLayout} auth-theme-${authTheme}`} data-auth-theme={authTheme}>\n {!isCenter && (\n <div className=\"solid-auth-split\">\n {isLeft && formPane}\n {imagePane}\n {isRight && formPane}\n </div>\n )}\n {isCenter && <div className=\"solid-center-layout\">\n <div className=\"solid-auth-center-stack\">\n {renderBrand(\"center\")}\n {authChildren}\n </div>\n </div>}\n {/* {solidSettingsData?.data?.showLegalLinks === true && */}\n <div className={`absolute hidden md:flex ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'solid-auth-footer flex flex-column sm:flex-row align-items-center justify-content-between' : 'solid-auth-footer-2 grid'}`}>\n {solidSettingsData?.data?.authPagesLayout !== 'left' &&\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 lg:col-5 xl:col-6 flex justify-content-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true &&\n <p className={`solid-auth-input-label text-sm m-0 ${solidSettingsData?.data?.authPagesLayout}`}>Made with <svg className=\"mx-1\" width=\"12px\" height=\"12px\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" strokeLinecap=\"round\" strokeLinejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <path d=\"M1.24264 8.24264L8 15L14.7574 8.24264C15.553 7.44699 16 6.36786 16 5.24264V5.05234C16 2.8143 14.1857 1 11.9477 1C10.7166 1 9.55233 1.55959 8.78331 2.52086L8 3.5L7.21669 2.52086C6.44767 1.55959 5.28338 1 4.05234 1C1.8143 1 0 2.8143 0 5.05234V5.24264C0 6.36786 0.44699 7.44699 1.24264 8.24264Z\" fill=\"#ff0000\"></path> </g></svg> in Mumbai</p>\n }\n </div>\n }\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 flex justify-content-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true && <div className={`flex flex-column sm:flex-row align-items-center gap-1 sm:gap-5 solid-auth-subtitle mr-3 ${solidSettingsData?.data?.authPagesLayout === 'left' ? 'left' : ''}`}>\n {solidSettingsData?.data?.appTnc !== \"\" && <p className=\"m-0 \"> <Link className=\"text-sm no-underline font-normal\" href={solidSettingsData?.data?.appTnc}>Terms of Service</Link></p>}\n {solidSettingsData?.data?.appPrivacyPolicy !== \"\" && <p className=\"m-0 \"> <Link className=\"text-sm no-underline font-normal\" href={solidSettingsData?.data?.appPrivacyPolicy}>Privacy Policy.</Link></p>}\n </div>\n }\n {solidSettingsData?.data?.copyright !== \"\" &&\n <div className=\"mt-1\">\n <p className=\"m-0 text-sm font-normal\">{solidSettingsData?.data?.copyright}</p>\n </div>\n }\n </div>\n {\n solidSettingsData?.data?.authPagesLayout === 'left' &&\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 lg:col-5 xl:col-6 flex justify-content-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true &&\n <p className={`solid-auth-input-label text-sm m-0 right`}>Made with <svg className=\"mx-1\" width=\"12px\" height=\"12px\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" strokeLinecap=\"round\" strokeLinejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <path d=\"M1.24264 8.24264L8 15L14.7574 8.24264C15.553 7.44699 16 6.36786 16 5.24264V5.05234C16 2.8143 14.1857 1 11.9477 1C10.7166 1 9.55233 1.55959 8.78331 2.52086L8 3.5L7.21669 2.52086C6.44767 1.55959 5.28338 1 4.05234 1C1.8143 1 0 2.8143 0 5.05234V5.24264C0 6.36786 0.44699 7.44699 1.24264 8.24264Z\" fill=\"#ff0000\"></path> </g></svg> in Mumbai</p>\n }\n </div>\n }\n </div >\n\n {/* } */}\n <SolidDialog\n visible={isRestricted}\n onHide={handleRegistration}\n header=\"Access Restricted\"\n headerClassName=\"py-2\" contentClassName=\"px-0 pb-0\"\n className=\"solid-confirm-dialog \"\n footer={\n < div className=\"flex align-items-center justify-content-start\" >\n <SolidButton size=\"sm\" onClick={handleRegistration}>Close</SolidButton>\n </div >\n }\n >\n <SolidDivider className=\"m-0\" />\n <div className=\"p-4\">\n <p>Sign-up is not available. Please contact the admin.</p>\n </div>\n </SolidDialog >\n </div >\n </AuthSettingsContext.Provider>\n )\n}\n"]}
1
+ {"version":3,"file":"AuthLayout.js","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,SAAS,MAAM,uCAAuC,CAAA;AAC7D,OAAO,+BAA+B,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,IAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEzE,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,EAA2C;;QAAzC,QAAQ,cAAA;IACjC,IAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAA,KAA4C,QAAQ,CAAM,IAAI,CAAC,EAA9D,iBAAiB,QAAA,EAAE,oBAAoB,QAAuB,CAAC;IAChE,IAAA,KAAoD,QAAQ,CAAC,IAAI,CAAC,EAAjE,qBAAqB,QAAA,EAAE,wBAAwB,QAAkB,CAAC;IAEnE,IAAA,MAA4C,QAAQ,CAAiB,IAAI,CAAC,EAAzE,iBAAiB,SAAA,EAAE,oBAAoB,SAAkC,CAAC;IAC3E,IAAA,MAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,SAAA,EAAE,eAAe,SAAmB,CAAC;IACxD,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAM,gBAAgB,GAAG,WAAW,CAAC;;;;;;oBACjC,wBAAwB,CAAC,IAAI,CAAC,CAAC;;;;oBAEV,qBAAM,QAAQ,CAAC,kBAAkB,CAAC,EAAA;;oBAA7C,QAAQ,GAAG,SAAkC;oBACnD,oBAAoB,CAAC,qBAAqB,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC,CAAC;;;;oBAEpE,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,OAAK,CAAC,CAAC;oBACrD,oBAAoB,CAAC,IAAI,CAAC,CAAC;;;oBAE3B,wBAAwB,CAAC,KAAK,CAAC,CAAC;;;;;SAEvC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC;QACN,gBAAgB,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,SAAS,CAAC;;QACN,IAAM,uBAAuB,GAAG,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,uBAAuB,CAAC;QACjF,IAAI,uBAAuB,KAAK,KAAK,EAAE;YACnC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,QAAQ,KAAK,gBAAgB,EAAE;gBAC/B,eAAe,CAAC,IAAI,CAAC,CAAC;aACzB;iBAAM;gBACH,eAAe,CAAC,KAAK,CAAC,CAAC;aAC1B;SACJ;aAAM,IAAI,uBAAuB,KAAK,IAAI,EAAE;YACzC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC3B,eAAe,CAAC,KAAK,CAAC,CAAC;SAC1B;IACL,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElC,IAAI,qBAAqB,IAAI,QAAQ,KAAK,gBAAgB,EAAE;QACxD,OAAO,IAAI,CAAC;KACf;IAED,IAAM,YAAY,GAAG,iBAAiB,KAAK,KAAK,IAAI,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACpG,IAAM,kBAAkB,GAAG;QACvB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAA;IAED,IAAM,eAAe,GAAG;;QACpB,IAAM,MAAM,GAAG,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,CAAC;QAExD,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,IAAI,MAAM,KAAK,MAAM,EAAE;YACnB,GAAG,GAAG,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,6BAA6B,KAAI,wBAAwB,CAAC;SAC5F;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE;YAC3B,GAAG,GAAG,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,8BAA8B,KAAI,wBAAwB,CAAC;SAC7F;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC5B,GAAG,GAAG,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,+BAA+B,KAAK,+BAAuC,CAAC,GAAG,IAAI,+BAA+B,CAAC;SACrJ;QAED,0CAA0C;QAC1C,IAAM,gBAAgB,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,OAAO,CAAC,MAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC;QAC7E,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,GAAG,CAAC,CAAA,EAAE;YAC5C,GAAG,GAAG,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;SACpC;QAED,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG,UAAC,GAAY;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,gBAAgB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QACxD,OAAO,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;IACtC,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,iBAAiB,CAAC,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;IAC9E,IAAM,OAAO,GAAG,CAAA,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,QAAQ,0CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;IAEhE,IAAM,WAAW,GAAG,UAAC,KAAmC;QAAnC,sBAAA,EAAA,eAAmC;QACpD,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1C,IAAM,UAAU,GAAG,OAAO,IAAI,kBAAkB,CAAC;QAEjD,OAAO,CACH,eAAK,SAAS,EAAE,2BAAoB,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAE,gBAAc,UAAU,aAC9F,WAAW,CAAC,CAAC,CAAC,CACX,eAAM,SAAS,EAAC,uBAAuB,YACnC,cAAK,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,GAAI,GACvC,CACV,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,uBAAuB,YAAE,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxE,CACT,CAAC;IACN,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,KAAI,QAAQ,CAAC;IACxE,IAAM,SAAS,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,MAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACzE,IAAM,QAAQ,GAAG,UAAU,KAAK,QAAQ,CAAC;IACzC,IAAM,MAAM,GAAG,UAAU,KAAK,MAAM,CAAC;IACrC,IAAM,OAAO,GAAG,UAAU,KAAK,OAAO,CAAC;IACvC,IAAM,wBAAwB,GAAG,OAAO,CACpC,cAAM,OAAA,CAAC;QACH,iBAAiB,mBAAA;QACjB,qBAAqB,uBAAA;QACrB,kBAAkB,EAAE,gBAAgB;KACvC,CAAC,EAJI,CAIJ,EACF,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,CAC/D,CAAC;IAEF,IAAM,QAAQ,GAAG,CACb,cAAK,SAAS,EAAC,0CAA0C,YACrD,eAAK,SAAS,EAAC,4BAA4B,aACtC,WAAW,CAAC,OAAO,CAAC,EACpB,YAAY,IACX,GACJ,CACT,CAAC;IAEF,IAAM,SAAS,GAAG,CACd,eACI,SAAS,EAAE,kDAA2C,MAAM,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,iCAAiC,CAAE,CAAC,IAAI,EAAE,EAC7I,KAAK,EAAE,EAAE,eAAe,EAAE,cAAO,eAAe,EAAE,MAAG,EAAE,aAEtD,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,eAAe;gBACzD,cAAK,SAAS,EAAE,mDAA4C,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,CAAE,YAClG,KAAC,KAAK,IACF,GAAG,EAAC,YAAY,EAChB,GAAG,EAAE,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,OAAO,KAAI,SAAS,EAClD,SAAS,EAAC,UAAU,EACpB,IAAI,SACN,GACA,EAET,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe;gBACrC,cAAK,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YACxC,cAAK,SAAS,EAAC,MAAM,YACjB,eAAK,SAAS,EAAC,eAAe,aACzB,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,WAAW,KAAI,aAAI,SAAS,EAAC,+BAA+B,YAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,WAAW,GAAM,EACjI,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,QAAQ,KAAI,aAAI,SAAS,EAAC,6BAA6B,YAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,QAAQ,GAAM,EACzH,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,cAAc,KAAI,YAAG,SAAS,EAAC,8BAA8B,YAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,cAAc,GAAK,IACnI,GACJ,GACJ,IAER,CACT,CAAC;IAEF,OAAO,CACH,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,wBAAwB,YAC7D,eAAK,SAAS,EAAE,mCAA4B,UAAU,yBAAe,SAAS,CAAE,qBAAmB,SAAS,aACvG,CAAC,QAAQ,IAAI,CACV,eAAK,SAAS,EAAC,kBAAkB,aAC5B,MAAM,IAAI,QAAQ,EAClB,SAAS,EACT,OAAO,IAAI,QAAQ,IAClB,CACT,EACA,QAAQ,IAAI,cAAK,SAAS,EAAC,qBAAqB,YAC7C,eAAK,SAAS,EAAC,yBAAyB,aACnC,WAAW,CAAC,QAAQ,CAAC,EACrB,YAAY,IACX,GACJ,EAEN,eAAK,SAAS,EAAE,kCAA2B,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,QAAQ,CAAC,CAAC,CAAC,2FAA2F,CAAC,CAAC,CAAC,0BAA0B,CAAE,aACxN,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,MAAM;4BAChD,cAAK,SAAS,EAAE,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,QAAQ,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE,YAC9H,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,cAAc,MAAK,IAAI;oCAC7C,aAAG,SAAS,EAAE,6CAAsC,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,CAAE,2BAAY,eAAK,SAAS,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,aAAC,YAAG,EAAE,EAAC,mBAAmB,kBAAc,GAAG,GAAK,EAAA,YAAG,EAAE,EAAC,uBAAuB,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAK,EAAA,aAAG,EAAE,EAAC,qBAAqB,kBAAE,eAAM,CAAC,EAAC,qSAAqS,EAAC,IAAI,EAAC,SAAS,GAAQ,SAAK,IAAM,kBAAc,GAExtB,EAEV,eAAK,SAAS,EAAE,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,QAAQ,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,aAC3G,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,cAAc,MAAK,IAAI,IAAI,eAAK,SAAS,EAAE,kGAA2F,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,aAC9N,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,MAAM,MAAK,EAAE,IAAI,aAAG,SAAS,EAAC,MAAM,kBAAE,KAAC,IAAI,IAAC,SAAS,EAAC,kCAAkC,EAAC,IAAI,EAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,MAAM,iCAAyB,IAAI,EACpL,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,gBAAgB,MAAK,EAAE,IAAI,aAAG,SAAS,EAAC,MAAM,kBAAE,KAAC,IAAI,IAAC,SAAS,EAAC,kCAAkC,EAAC,IAAI,EAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,gBAAgB,gCAAwB,IAAI,IACtM,EAEL,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,SAAS,MAAK,EAAE;oCACtC,cAAK,SAAS,EAAC,MAAM,YACjB,YAAG,SAAS,EAAC,yBAAyB,YAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,SAAS,GAAK,GAC7E,IAER,EAEF,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,MAAM;4BACnD,cAAK,SAAS,EAAE,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,QAAQ,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE,YAC9H,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,cAAc,MAAK,IAAI;oCAC7C,aAAG,SAAS,EAAE,0CAA0C,2BAAY,eAAK,SAAS,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,aAAC,YAAG,EAAE,EAAC,mBAAmB,kBAAc,GAAG,GAAK,EAAA,YAAG,EAAE,EAAC,uBAAuB,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAK,EAAA,aAAG,EAAE,EAAC,qBAAqB,kBAAE,eAAM,CAAC,EAAC,qSAAqS,EAAC,IAAI,EAAC,SAAS,GAAQ,SAAK,IAAM,kBAAc,GAElrB,IAEP,EAGP,MAAC,WAAW,IACR,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAC,mBAAmB,EAC1B,eAAe,EAAC,MAAM,EAAC,gBAAgB,EAAC,WAAW,EACnD,SAAS,EAAC,uBAAuB,EACjC,MAAM,EACF,cAAM,SAAS,EAAC,+CAA+C,YAC3D,KAAC,WAAW,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,kBAAkB,sBAAqB,GACpE,aAGX,KAAC,YAAY,IAAC,SAAS,EAAC,KAAK,GAAG,EAChC,cAAK,SAAS,EAAC,KAAK,YAChB,8EAA0D,GACxD,IACK,IACZ,GACwB,CAClC,CAAA;AACL,CAAC,CAAA","sourcesContent":["import Link from \"../common/Link\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport Image from \"../common/Image\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { env } from \"../../adapters/env\";\nimport { SolidButton, SolidDialog, SolidDivider } from \"../shad-cn-ui\";\nimport { LayoutContext } from \"../layout/context/layoutcontext\";\nimport { solidGet } from \"../../http/solidHttp\";\nimport { AuthSettingsContext } from \"./AuthSettingsContext\";\nimport { toLegacySettingsShape } from \"../../helpers/settingsPayload\";\n\nconst SHADCN_PLACEHOLDER_IMAGE = \"https://ui.shadcn.com/placeholder.svg\";\n\nexport const AuthLayout = ({ children }: { children: React.ReactNode }) => {\n const layoutContext = useContext(LayoutContext);\n const [solidSettingsData, setSolidSettingsData] = useState<any>(null);\n const [isLoadingAuthSettings, setIsLoadingAuthSettings] = useState(true);\n\n const [allowRegistration, setAllowRegistration] = useState<boolean | null>(null);\n const [isRestricted, setIsRestricted] = useState(false);\n const pathname = usePathname();\n const router = useRouter();\n\n const loadAuthSettings = useCallback(async () => {\n setIsLoadingAuthSettings(true);\n try {\n const response = await solidGet(\"/setting/wrapped\");\n setSolidSettingsData(toLegacySettingsShape(response?.data ?? null));\n } catch (error) {\n console.error(\"Failed to load auth settings\", error);\n setSolidSettingsData(null);\n } finally {\n setIsLoadingAuthSettings(false);\n }\n }, []);\n\n useEffect(() => {\n loadAuthSettings();\n }, [loadAuthSettings]);\n\n useEffect(() => {\n const allowPublicRegistration = solidSettingsData?.data?.allowPublicRegistration;\n if (allowPublicRegistration === false) {\n setAllowRegistration(false);\n if (pathname === \"/auth/register\") {\n setIsRestricted(true);\n } else {\n setIsRestricted(false);\n }\n } else if (allowPublicRegistration === true) {\n setAllowRegistration(true);\n setIsRestricted(false);\n }\n }, [solidSettingsData, pathname]);\n\n if (isLoadingAuthSettings && pathname === \"/auth/register\") {\n return null;\n }\n\n const authChildren = allowRegistration !== false || pathname !== \"/auth/register\" ? children : null;\n const handleRegistration = () => {\n router.push(\"/auth/login\");\n setIsRestricted(false);\n }\n\n const solidSideBanner = () => {\n const layout = solidSettingsData?.data?.authPagesLayout;\n\n let src = '';\n\n if (layout === 'left') {\n src = solidSettingsData?.data?.authScreenLeftBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'right') {\n src = solidSettingsData?.data?.authScreenRightBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'center') {\n src = solidSettingsData?.data?.authScreenCenterBackgroundImage || (AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage;\n }\n\n // Normalize image path if coming from API\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n if (!isBlobOrAbsolute && !src?.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return src;\n };\n\n const normalizeAssetUrl = (src?: string) => {\n if (!src) return \"\";\n const isBlobOrAbsolute = src.startsWith(\"blob:\") || src.startsWith(\"http\");\n if (isBlobOrAbsolute || src.startsWith(\"/\")) return src;\n return `${env(\"API_URL\")}/${src}`;\n };\n\n const authLogoSrc = normalizeAssetUrl(solidSettingsData?.data?.appLogo || \"\");\n const appName = solidSettingsData?.data?.appTitle?.trim() || \"\";\n\n const renderBrand = (align: \"center\" | \"start\" = \"start\") => {\n if (!authLogoSrc && !appName) return null;\n\n const brandLabel = appName || \"Application logo\";\n\n return (\n <div className={`solid-auth-brand ${align === \"center\" ? \"is-center\" : \"\"}`} aria-label={brandLabel}>\n {authLogoSrc ? (\n <span className=\"solid-auth-brand-logo\">\n <img src={authLogoSrc} alt={brandLabel} />\n </span>\n ) : null}\n {appName ? <span className=\"solid-auth-brand-text\">{appName}</span> : null}\n </div>\n );\n };\n\n const authLayout = solidSettingsData?.data?.authPagesLayout || \"center\";\n const authTheme = layoutContext?.themeMode === \"dark\" ? \"dark\" : \"light\";\n const isCenter = authLayout === \"center\";\n const isLeft = authLayout === \"left\";\n const isRight = authLayout === \"right\";\n const authSettingsContextValue = useMemo(\n () => ({\n solidSettingsData,\n isLoadingAuthSettings,\n reloadAuthSettings: loadAuthSettings,\n }),\n [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]\n );\n\n const formPane = (\n <div className=\"solid-auth-form-pane solid-login-dark-bg\">\n <div className=\"solid-auth-form-pane-inner\">\n {renderBrand(\"start\")}\n {authChildren}\n </div>\n </div>\n );\n\n const imagePane = (\n <div\n className={`solid-auth-image-pane position-relative ${isLeft ? \"solid-left-layout pane-on-right\" : \"solid-right-layout pane-on-left\"}`.trim()}\n style={{ backgroundImage: `url(${solidSideBanner()})` }}\n >\n {solidSettingsData?.data?.appLogoPosition === \"in_image_view\" &&\n <div className={`solid-logo flex align-items-center gap-3 ${solidSettingsData?.data?.appLogoPosition}`}>\n <Image\n alt=\"solid logo\"\n src={solidSettingsData?.data?.appLogo || SolidLogo}\n className=\"relative\"\n fill\n />\n </div>\n }\n {solidSettingsData?.data?.showAuthContent &&\n <div className=\"w-full\" style={{ zIndex: 1 }}>\n <div className=\"grid\">\n <div className=\"col-8 mx-auto\">\n {solidSettingsData?.data?.appSubtitle && <h1 className=\"solid-auth-image-subtitle m-0\">{solidSettingsData?.data?.appSubtitle}</h1>}\n {solidSettingsData?.data?.appTitle && <h1 className=\"solid-auth-image-title mt-0\">{solidSettingsData?.data?.appTitle}</h1>}\n {solidSettingsData?.data?.appDescription && <p className=\"solid-auth-image-helper-text\">{solidSettingsData?.data?.appDescription}</p>}\n </div>\n </div>\n </div>\n }\n </div>\n );\n\n return (\n <AuthSettingsContext.Provider value={authSettingsContextValue}>\n <div className={`solid-auth-theme-wrapper ${authLayout} auth-theme-${authTheme}`} data-auth-theme={authTheme}>\n {!isCenter && (\n <div className=\"solid-auth-split\">\n {isLeft && formPane}\n {imagePane}\n {isRight && formPane}\n </div>\n )}\n {isCenter && <div className=\"solid-center-layout\">\n <div className=\"solid-auth-center-stack\">\n {renderBrand(\"center\")}\n {authChildren}\n </div>\n </div>}\n {/* {solidSettingsData?.data?.showLegalLinks === true && */}\n <div className={`absolute hidden md:flex ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'solid-auth-footer flex flex-column sm:flex-row align-items-center justify-content-between' : 'solid-auth-footer-2 grid'}`}>\n {solidSettingsData?.data?.authPagesLayout !== 'left' &&\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 lg:col-5 xl:col-6 flex justify-content-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true &&\n <p className={`solid-auth-input-label text-sm m-0 ${solidSettingsData?.data?.authPagesLayout}`}>Made with <svg className=\"mx-1\" width=\"12px\" height=\"12px\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" strokeLinecap=\"round\" strokeLinejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <path d=\"M1.24264 8.24264L8 15L14.7574 8.24264C15.553 7.44699 16 6.36786 16 5.24264V5.05234C16 2.8143 14.1857 1 11.9477 1C10.7166 1 9.55233 1.55959 8.78331 2.52086L8 3.5L7.21669 2.52086C6.44767 1.55959 5.28338 1 4.05234 1C1.8143 1 0 2.8143 0 5.05234V5.24264C0 6.36786 0.44699 7.44699 1.24264 8.24264Z\" fill=\"#ff0000\"></path> </g></svg> in Mumbai</p>\n }\n </div>\n }\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 flex justify-content-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true && <div className={`flex flex-column sm:flex-row align-items-center gap-1 sm:gap-5 solid-auth-subtitle mr-3 ${solidSettingsData?.data?.authPagesLayout === 'left' ? 'left' : ''}`}>\n {solidSettingsData?.data?.appTnc !== \"\" && <p className=\"m-0 \"> <Link className=\"text-sm no-underline font-normal\" href={solidSettingsData?.data?.appTnc}>Terms of Service</Link></p>}\n {solidSettingsData?.data?.appPrivacyPolicy !== \"\" && <p className=\"m-0 \"> <Link className=\"text-sm no-underline font-normal\" href={solidSettingsData?.data?.appPrivacyPolicy}>Privacy Policy.</Link></p>}\n </div>\n }\n {solidSettingsData?.data?.copyright !== \"\" &&\n <div className=\"mt-1\">\n <p className=\"m-0 text-sm font-normal\">{solidSettingsData?.data?.copyright}</p>\n </div>\n }\n </div>\n {\n solidSettingsData?.data?.authPagesLayout === 'left' &&\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 lg:col-5 xl:col-6 flex justify-content-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true &&\n <p className={`solid-auth-input-label text-sm m-0 right`}>Made with <svg className=\"mx-1\" width=\"12px\" height=\"12px\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" strokeLinecap=\"round\" strokeLinejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <path d=\"M1.24264 8.24264L8 15L14.7574 8.24264C15.553 7.44699 16 6.36786 16 5.24264V5.05234C16 2.8143 14.1857 1 11.9477 1C10.7166 1 9.55233 1.55959 8.78331 2.52086L8 3.5L7.21669 2.52086C6.44767 1.55959 5.28338 1 4.05234 1C1.8143 1 0 2.8143 0 5.05234V5.24264C0 6.36786 0.44699 7.44699 1.24264 8.24264Z\" fill=\"#ff0000\"></path> </g></svg> in Mumbai</p>\n }\n </div>\n }\n </div >\n\n {/* } */}\n <SolidDialog\n visible={isRestricted}\n onHide={handleRegistration}\n header=\"Access Restricted\"\n headerClassName=\"py-2\" contentClassName=\"px-0 pb-0\"\n className=\"solid-confirm-dialog \"\n footer={\n < div className=\"flex align-items-center justify-content-start\" >\n <SolidButton size=\"sm\" onClick={handleRegistration}>Close</SolidButton>\n </div >\n }\n >\n <SolidDivider className=\"m-0\" />\n <div className=\"p-4\">\n <p>Sign-up is not available. Please contact the admin.</p>\n </div>\n </SolidDialog >\n </div >\n </AuthSettingsContext.Provider>\n )\n}\n"]}
@@ -10,6 +10,7 @@ import { SolidButton, SolidDialog, SolidDivider } from "../shad-cn-ui";
10
10
  import { LayoutContext } from "../layout/context/layoutcontext";
11
11
  import { solidGet } from "../../http/solidHttp";
12
12
  import { AuthSettingsContext } from "./AuthSettingsContext";
13
+ import { toLegacySettingsShape } from "../../helpers/settingsPayload";
13
14
 
14
15
  const SHADCN_PLACEHOLDER_IMAGE = "https://ui.shadcn.com/placeholder.svg";
15
16
 
@@ -27,7 +28,7 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
27
28
  setIsLoadingAuthSettings(true);
28
29
  try {
29
30
  const response = await solidGet("/setting/wrapped");
30
- setSolidSettingsData(response?.data ?? null);
31
+ setSolidSettingsData(toLegacySettingsShape(response?.data ?? null));
31
32
  } catch (error) {
32
33
  console.error("Failed to load auth settings", error);
33
34
  setSolidSettingsData(null);
@@ -0,0 +1,2 @@
1
+ export declare const FacebookAuthChecking: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FacebookAuthChecking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FacebookAuthChecking.d.ts","sourceRoot":"","sources":["../../../src/components/auth/FacebookAuthChecking.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,oBAAoB,+CAmDhC,CAAA"}