@solidstarters/solid-core-ui 1.1.16 → 1.1.18

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 (241) hide show
  1. package/dist/components/auth/AuthLayout.d.ts +4 -0
  2. package/dist/components/auth/AuthLayout.d.ts.map +1 -0
  3. package/dist/components/auth/AuthLayout.js +80 -0
  4. package/dist/components/auth/AuthLayout.js.map +1 -0
  5. package/dist/components/auth/ForgotPasswordThankYou.d.ts +2 -0
  6. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -0
  7. package/dist/components/auth/ForgotPasswordThankYou.js +16 -0
  8. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -0
  9. package/dist/components/auth/GoogleAuthChecking.d.ts +2 -0
  10. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -0
  11. package/dist/components/auth/GoogleAuthChecking.js +99 -0
  12. package/dist/components/auth/GoogleAuthChecking.js.map +1 -0
  13. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  14. package/dist/components/auth/SolidChangeForcePassword.js +44 -39
  15. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  16. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  17. package/dist/components/auth/SolidForgotPassword.js +1 -2
  18. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  19. package/dist/components/auth/SolidInitialLoginOtp.d.ts +1 -3
  20. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  21. package/dist/components/auth/SolidInitialLoginOtp.js +16 -12
  22. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  23. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts +1 -3
  24. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  25. package/dist/components/auth/SolidInitiateRegisterOtp.js +16 -12
  26. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  27. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  28. package/dist/components/auth/SolidLogin.js +12 -8
  29. package/dist/components/auth/SolidLogin.js.map +1 -1
  30. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  31. package/dist/components/auth/SolidRegister.js +13 -9
  32. package/dist/components/auth/SolidRegister.js.map +1 -1
  33. package/dist/components/auth/SolidResetPassword.d.ts +1 -4
  34. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  35. package/dist/components/auth/SolidResetPassword.js +14 -10
  36. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  37. package/dist/components/common/GeneralSettings.d.ts +1 -3
  38. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  39. package/dist/components/common/GeneralSettings.js +21 -18
  40. package/dist/components/common/GeneralSettings.js.map +1 -1
  41. package/dist/components/common/NotFound.d.ts +2 -0
  42. package/dist/components/common/NotFound.d.ts.map +1 -0
  43. package/dist/components/common/NotFound.js +7 -0
  44. package/dist/components/common/NotFound.js.map +1 -0
  45. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
  46. package/dist/components/common/SingleSelectAutoCompleteField.js +3 -1
  47. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
  48. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  49. package/dist/components/common/SocialMediaLogin.js +3 -2
  50. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  51. package/dist/components/common/SolidAdmin.d.ts +2 -0
  52. package/dist/components/common/SolidAdmin.d.ts.map +1 -0
  53. package/dist/components/common/SolidAdmin.js +5 -0
  54. package/dist/components/common/SolidAdmin.js.map +1 -0
  55. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  56. package/dist/components/common/SolidFormStepper.js +8 -1
  57. package/dist/components/common/SolidFormStepper.js.map +1 -1
  58. package/dist/components/common/SolidThemeLink.d.ts +2 -0
  59. package/dist/components/common/SolidThemeLink.d.ts.map +1 -0
  60. package/dist/components/common/SolidThemeLink.js +5 -0
  61. package/dist/components/common/SolidThemeLink.js.map +1 -0
  62. package/dist/components/common/error.d.ts +9 -0
  63. package/dist/components/common/error.d.ts.map +1 -0
  64. package/dist/components/common/error.js +7 -0
  65. package/dist/components/common/error.js.map +1 -0
  66. package/dist/components/core/common/FilterComponent.js +7 -7
  67. package/dist/components/core/common/FilterComponent.js.map +1 -1
  68. package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
  69. package/dist/components/core/common/SolidConfigureLayoutElement.js +4 -3
  70. package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
  71. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  72. package/dist/components/core/common/SolidGlobalSearchElement.js +38 -18
  73. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  74. package/dist/components/core/form/SolidFormLayouts.d.ts +3 -0
  75. package/dist/components/core/form/SolidFormLayouts.d.ts.map +1 -0
  76. package/dist/components/core/form/SolidFormLayouts.js +57 -0
  77. package/dist/components/core/form/SolidFormLayouts.js.map +1 -0
  78. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  79. package/dist/components/core/form/SolidFormView.js +13 -1
  80. package/dist/components/core/form/SolidFormView.js.map +1 -1
  81. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  82. package/dist/components/core/form/fields/SolidBooleanField.js +9 -7
  83. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  84. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  85. package/dist/components/core/form/fields/SolidDateField.js +7 -5
  86. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  87. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  88. package/dist/components/core/form/fields/SolidDateTimeField.js +7 -5
  89. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  90. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  91. package/dist/components/core/form/fields/SolidDecimalField.js +9 -7
  92. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  93. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  94. package/dist/components/core/form/fields/SolidIntegerField.js +9 -7
  95. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  96. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  97. package/dist/components/core/form/fields/SolidJsonField.js +6 -4
  98. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  99. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  100. package/dist/components/core/form/fields/SolidLongTextField.js +8 -6
  101. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  102. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  103. package/dist/components/core/form/fields/SolidMediaMultipleField.js +29 -23
  104. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  105. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  106. package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -19
  107. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  108. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  109. package/dist/components/core/form/fields/SolidRichTextField.js +9 -7
  110. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  111. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  112. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +10 -8
  113. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  114. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  115. package/dist/components/core/form/fields/SolidSelectionStaticField.js +10 -8
  116. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  117. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  118. package/dist/components/core/form/fields/SolidShortTextField.js +8 -6
  119. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  120. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  121. package/dist/components/core/form/fields/SolidTimeField.js +7 -5
  122. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  123. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  124. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +16 -12
  125. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  126. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +1 -0
  127. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  128. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +66 -7
  129. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  130. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  131. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -10
  132. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  133. package/dist/components/core/kanban/SolidKanbanView.js +2 -2
  134. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  135. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  136. package/dist/components/core/list/SolidListView.js +48 -62
  137. package/dist/components/core/list/SolidListView.js.map +1 -1
  138. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  139. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +9 -2
  140. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  141. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  142. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +10 -3
  143. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  144. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  145. package/dist/components/core/model/CreateModel.js +12 -1
  146. package/dist/components/core/model/CreateModel.js.map +1 -1
  147. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  148. package/dist/components/core/model/FieldMetaData.js +55 -2
  149. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  150. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
  151. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  152. package/dist/components/core/model/FieldMetaDataForm.js +128 -61
  153. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  154. package/dist/components/core/model/ModelMetaData.js +5 -5
  155. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  156. package/dist/components/core/module/CreateModule.js +7 -3
  157. package/dist/components/core/module/CreateModule.js.map +1 -1
  158. package/dist/components/core/users/CreateUser.js +2 -2
  159. package/dist/components/layout/AdminLayout.d.ts +4 -0
  160. package/dist/components/layout/AdminLayout.d.ts.map +1 -0
  161. package/dist/components/layout/AdminLayout.js +86 -0
  162. package/dist/components/layout/AdminLayout.js.map +1 -0
  163. package/dist/components/layout/AppConfig.d.ts.map +1 -1
  164. package/dist/components/layout/AppConfig.js +4 -9
  165. package/dist/components/layout/AppConfig.js.map +1 -1
  166. package/dist/components/layout/user-profile-menu.js +1 -1
  167. package/dist/components/layout/user-profile-menu.js.map +1 -1
  168. package/dist/index.d.ts +11 -0
  169. package/dist/index.d.ts.map +1 -1
  170. package/dist/index.js +12 -0
  171. package/dist/index.js.map +1 -1
  172. package/dist/nextAuth/authProviders.d.ts +4 -0
  173. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  174. package/dist/nextAuth/authProviders.js +231 -0
  175. package/dist/nextAuth/authProviders.js.map +1 -0
  176. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  177. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  178. package/dist/nextAuth/refreshAccessToken.js +76 -0
  179. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  180. package/dist/redux/api/modelApi.d.ts +2 -1
  181. package/dist/redux/api/modelApi.d.ts.map +1 -1
  182. package/dist/redux/api/modelApi.js +9 -2
  183. package/dist/redux/api/modelApi.js.map +1 -1
  184. package/package.json +1 -1
  185. package/src/components/auth/AuthLayout.tsx +126 -0
  186. package/src/components/auth/ForgotPasswordThankYou.tsx +45 -0
  187. package/src/components/auth/GoogleAuthChecking.tsx +60 -0
  188. package/src/components/auth/SolidChangeForcePassword.tsx +21 -32
  189. package/src/components/auth/SolidForgotPassword.tsx +3 -2
  190. package/src/components/auth/SolidInitialLoginOtp.tsx +16 -8
  191. package/src/components/auth/SolidInitiateRegisterOtp.tsx +17 -9
  192. package/src/components/auth/SolidLogin.tsx +16 -10
  193. package/src/components/auth/SolidRegister.tsx +17 -9
  194. package/src/components/auth/SolidResetPassword.tsx +13 -6
  195. package/src/components/common/GeneralSettings.tsx +7 -2
  196. package/src/components/common/NotFound.tsx +22 -0
  197. package/src/components/common/SingleSelectAutoCompleteField.tsx +3 -1
  198. package/src/components/common/SocialMediaLogin.tsx +24 -25
  199. package/src/components/common/SolidAdmin.tsx +7 -0
  200. package/src/components/common/SolidFormStepper.tsx +55 -2
  201. package/src/components/common/SolidThemeLink.tsx +5 -0
  202. package/src/components/common/error.tsx +30 -0
  203. package/src/components/core/common/FilterComponent.tsx +70 -70
  204. package/src/components/core/common/SolidConfigureLayoutElement.tsx +6 -1
  205. package/src/components/core/common/SolidGlobalSearchElement.tsx +48 -20
  206. package/src/components/core/form/SolidFormLayouts.tsx +93 -0
  207. package/src/components/core/form/SolidFormView.tsx +64 -3
  208. package/src/components/core/form/fields/SolidBooleanField.tsx +6 -3
  209. package/src/components/core/form/fields/SolidDateField.tsx +6 -3
  210. package/src/components/core/form/fields/SolidDateTimeField.tsx +6 -3
  211. package/src/components/core/form/fields/SolidDecimalField.tsx +6 -3
  212. package/src/components/core/form/fields/SolidIntegerField.tsx +6 -3
  213. package/src/components/core/form/fields/SolidJsonField.tsx +6 -3
  214. package/src/components/core/form/fields/SolidLongTextField.tsx +6 -3
  215. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +20 -12
  216. package/src/components/core/form/fields/SolidMediaSingleField.tsx +9 -6
  217. package/src/components/core/form/fields/SolidRichTextField.tsx +7 -3
  218. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -3
  219. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +6 -3
  220. package/src/components/core/form/fields/SolidShortTextField.tsx +8 -4
  221. package/src/components/core/form/fields/SolidTimeField.tsx +7 -4
  222. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +14 -8
  223. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +93 -3
  224. package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +5 -1
  225. package/src/components/core/kanban/SolidKanbanView.tsx +4 -4
  226. package/src/components/core/list/SolidListView.tsx +16 -64
  227. package/src/components/core/list/columns/SolidMediaMultipleColumn.tsx +18 -0
  228. package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +21 -0
  229. package/src/components/core/model/CreateModel.tsx +58 -0
  230. package/src/components/core/model/FieldMetaData.tsx +27 -1
  231. package/src/components/core/model/FieldMetaDataForm.tsx +134 -44
  232. package/src/components/core/model/ModelMetaData.tsx +5 -5
  233. package/src/components/core/module/CreateModule.tsx +12 -4
  234. package/src/components/core/users/CreateUser.tsx +2 -2
  235. package/src/components/layout/AdminLayout.tsx +62 -0
  236. package/src/components/layout/AppConfig.tsx +4 -3
  237. package/src/components/layout/user-profile-menu.tsx +1 -1
  238. package/src/index.ts +17 -1
  239. package/src/nextAuth/authProviders.tsx +220 -0
  240. package/src/nextAuth/refreshAccessToken.tsx +27 -0
  241. package/src/redux/api/modelApi.ts +9 -2
@@ -41,7 +41,8 @@ const AppConfig = (props: AppConfigProps) => {
41
41
  };
42
42
 
43
43
  const applyScale = () => {
44
- document.documentElement.style.fontSize = layoutConfig.scale + 'px';
44
+ // document.documentElement.style.fontSize = layoutConfig.scale + 'px';
45
+ document.documentElement.style.fontSize = 14 + 'px';
45
46
  };
46
47
 
47
48
  useEffect(() => {
@@ -51,7 +52,7 @@ const AppConfig = (props: AppConfigProps) => {
51
52
 
52
53
  return (
53
54
  <>
54
- <button className="layout-config-button config-link" type="button" onClick={onConfigButtonClick}>
55
+ {/* <button className="layout-config-button config-link" type="button" onClick={onConfigButtonClick}>
55
56
  <i className="pi pi-cog"></i>
56
57
  </button>
57
58
 
@@ -95,7 +96,7 @@ const AppConfig = (props: AppConfigProps) => {
95
96
  </button>
96
97
  </div>
97
98
  </div>
98
- </Sidebar>
99
+ </Sidebar> */}
99
100
  </>
100
101
  );
101
102
  };
@@ -82,7 +82,7 @@ const UserProfileMenu = () => {
82
82
  </div>
83
83
  <InputSwitch checked={checked} onChange={handleThemeToggle} />
84
84
  </div>
85
- <div className="user-profile-body p-3">
85
+ <div className="user-profile-body py-1">
86
86
  <Button
87
87
  text
88
88
  severity="secondary"
package/src/index.ts CHANGED
@@ -215,6 +215,9 @@ export { SingleSelectAutoCompleteField } from '@/components/common/SingleSelectA
215
215
  export { SocialMediaLogin } from '@/components/common/SocialMediaLogin';
216
216
  export { BackButton } from '@/components/common/BackButton'
217
217
  export { FileReaderExt } from '@/components/common/FileReaderExt'
218
+ export { NotFound } from '@/components/common/NotFound'
219
+ import Error from '@/components/common/error';
220
+ export { Error };
218
221
  export { SolidFormStepper } from '@/components/common/SolidFormStepper'
219
222
 
220
223
  // export { SolidListViewOptions } from '@/components/core/common/SolidListViewOptions';
@@ -468,6 +471,10 @@ export { setIsAuthenticated, setUser } from '@/redux/features/userSlice';
468
471
  // export type { AppDispatch} from '@/redux/store';
469
472
  // export {initializeStore} from '@/redux/store';
470
473
 
474
+ // Admin Parent Layout
475
+ export { AdminLayout } from '@/components/layout/AdminLayout';
476
+ export { SolidAdmin } from '@/components/common/SolidAdmin';
477
+
471
478
  // Re-export default exports
472
479
  //Login.tsx
473
480
  export { default as Login } from '@/components/auth/Login';
@@ -480,6 +487,9 @@ export { default as CodeEditor } from '@/components/common/CodeEditor';
480
487
  // export { default as FilterComponent } from '@/components/common/FilterComponent';
481
488
  //MarkdownViewer.tsx
482
489
  export { default as MarkdownViewer } from '@/components/common/MarkdownViewer';
490
+
491
+
492
+ export { default as SolidFormLayouts } from '@/components/core/form/SolidFormLayouts';
483
493
  //SolidFormView.tsx
484
494
  export { default as SolidFormView } from '@/components/core/form/SolidFormView';
485
495
  //KanbanBoard.tsx
@@ -582,6 +592,7 @@ export { default as UserSidebar } from '@/components/layout/UserSidebar';
582
592
  export { default as menu } from '@/helpers/menu';
583
593
 
584
594
  // Auth
595
+ export { AuthLayout } from '@/components/auth/AuthLayout';
585
596
  export { default as SolidForgotPassword } from '@/components/auth/SolidForgotPassword';
586
597
  export { default as SolidLogin } from '@/components/auth/SolidLogin';
587
598
  export { default as SolidOTPVerify } from '@/components/auth/SolidOTPVerify';
@@ -590,6 +601,8 @@ export { default as SolidResetPassword } from '@/components/auth/SolidResetPassw
590
601
  export { default as SolidChangeForcePassword } from '@/components/auth/SolidChangeForcePassword';
591
602
  export { default as SolidInitialLoginOtp } from '@/components/auth/SolidInitialLoginOtp';
592
603
  export { default as SolidInitiateRegisterOtp } from '@/components/auth/SolidInitiateRegisterOtp';
604
+ export { GoogleAuthChecking } from '@/components/auth/GoogleAuthChecking';
605
+ export { ForgotPasswordThankYou } from '@/components/auth/ForgotPasswordThankYou';
593
606
 
594
607
  //redux
595
608
  export { default as authenticationReducer } from '@/redux/features/authSlice';
@@ -603,4 +616,7 @@ export { default as GenerateModelCodeRowAction } from '@/components/core/extensi
603
616
 
604
617
  // types
605
618
  export type { LayoutConfig } from '@/types';
606
- export { GeneralSettings } from '@/components/common/GeneralSettings';
619
+ export { GeneralSettings } from '@/components/common/GeneralSettings';
620
+
621
+ export { default as authProviders } from '@/nextAuth/authProviders'
622
+ export { SolidThemeLink } from '@/components/common/SolidThemeLink';
@@ -0,0 +1,220 @@
1
+ import CredentialsProvider from "next-auth/providers/credentials";
2
+ import GoogleProvider from "next-auth/providers/google";
3
+ import { NextRequest } from "next/server";
4
+ import { jwtDecode } from "jwt-decode";
5
+ import { JWT } from "next-auth/jwt";
6
+ import axios from "axios";
7
+ import { signOut } from "next-auth/react";
8
+ import { refreshAccessToken } from "./refreshAccessToken";
9
+ import { NextAuthOptions } from "next-auth";
10
+
11
+ type Credentials = {
12
+ username: string,
13
+ email: string,
14
+ password: string,
15
+ accessToken: string,
16
+ accessCode: string,
17
+ };
18
+
19
+ const authProviders: NextAuthOptions = {
20
+ session: {
21
+ strategy: "jwt",
22
+ },
23
+ providers: [
24
+ GoogleProvider({
25
+ clientId: process.env.GOOGLE_ID!,
26
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET!
27
+ }),
28
+ CredentialsProvider({
29
+ // @ts-ignore
30
+ async authorize(credentials: Credentials) {
31
+ const { username, email, password, accessToken, accessCode } = credentials;
32
+
33
+ try {
34
+ if (accessCode) {
35
+ let config = {
36
+ method: 'get',
37
+ url: `${process.env.API_URL}/api/iam/google/authenticate?accessCode=${accessCode}`,
38
+ };
39
+
40
+
41
+ const loginResponse = await axios.request(config);
42
+ console.log("loginResponse", loginResponse.data);
43
+
44
+ if (loginResponse.status == 400) {
45
+ throw new Error(loginResponse.data.message);
46
+ }
47
+ if (loginResponse.status == 401) {
48
+ throw new Error(loginResponse.data.message);
49
+ }
50
+
51
+ let base64decoded = jwtDecode(loginResponse.data.data.accessToken);
52
+ let accessTokenExpires = base64decoded.exp;
53
+
54
+ return {
55
+ accessToken: loginResponse.data.data.accessToken,
56
+ refreshToken: loginResponse.data.data.refreshToken,
57
+ accessTokenExpires: accessTokenExpires,
58
+ ...loginResponse.data.data,
59
+ };
60
+
61
+ } else {
62
+ if (accessToken) {
63
+ let data = JSON.stringify({
64
+ username: email,
65
+ email: email,
66
+ password: password
67
+ });
68
+
69
+ let config = {
70
+ method: 'get',
71
+ url: `${process.env.API_URL}/api/iam/me`,
72
+ headers: {
73
+ 'accept': '*/*',
74
+ 'Content-Type': 'application/json',
75
+ 'Authorization': `Bearer ${accessToken}`
76
+ }
77
+ };
78
+
79
+
80
+ const loginResponse = await axios.request(config);
81
+
82
+ if (loginResponse.status == 400) {
83
+ throw new Error(loginResponse.data.message);
84
+ }
85
+ if (loginResponse.status == 401) {
86
+ throw new Error(loginResponse.data.message);
87
+ }
88
+
89
+ let base64decoded = jwtDecode(loginResponse.data.data.accessToken);
90
+ let accessTokenExpires = base64decoded.exp;
91
+
92
+ return {
93
+ accessToken: loginResponse.data.data.accessToken,
94
+ refreshToken: loginResponse.data.data.refreshToken,
95
+ accessTokenExpires: accessTokenExpires,
96
+ ...loginResponse.data.data,
97
+ };
98
+
99
+ } else {
100
+
101
+ let data = JSON.stringify({
102
+ username: email,
103
+ email: email,
104
+ password: password
105
+ });
106
+
107
+ let config = {
108
+ method: 'post',
109
+ maxBodyLength: Infinity,
110
+ url: `${process.env.API_URL}/api/iam/authenticate`,
111
+ headers: {
112
+ 'accept': '*/*',
113
+ 'Content-Type': 'application/json'
114
+ },
115
+ data: data
116
+ };
117
+
118
+
119
+ const loginResponse = await axios.request(config);
120
+
121
+ // const authenticateResponse = await fetch(
122
+ // `${process.env.API_URL}/api/iam/authenticate`,
123
+ // {
124
+ // method: "Post",
125
+ // headers: {
126
+ // 'accept': '*/*',
127
+ // "Content-Type": "application/json"
128
+ // },
129
+ // body: JSON.stringify({
130
+ // username: email,
131
+ // email: email,
132
+ // password: password
133
+ // })
134
+ // }
135
+ // );
136
+
137
+ // const loginResponse = await authenticateResponse.json();
138
+
139
+ // const response = await fetch(
140
+ // `${process.env.API_URL}/api/iam/me`,
141
+ // {
142
+ // method: "Get",
143
+ // headers: {
144
+ // "Content-Type": "application/json",
145
+ // "Authorization": `Bearer ${loginResponse.data.accessToken}`,
146
+ // },
147
+ // }
148
+ // );
149
+
150
+ // const responseData = await response.json();
151
+
152
+ if (loginResponse.status == 400) {
153
+ throw new Error(loginResponse.data.message);
154
+ }
155
+ if (loginResponse.status == 401) {
156
+ throw new Error(loginResponse.data.data.message);
157
+ }
158
+ let base64decoded = jwtDecode(loginResponse.data.data.accessToken);
159
+ let accessTokenExpires = base64decoded.exp;
160
+ const returnResponse = {
161
+ accessToken: loginResponse.data.data.accessToken,
162
+ refreshToken: loginResponse.data.data.refreshToken,
163
+ accessTokenExpires: accessTokenExpires,
164
+ ...loginResponse.data.data,
165
+ }
166
+ return returnResponse;
167
+ }
168
+ }
169
+ } catch (error: any) {
170
+ throw new Error(error.message ? error.message : error?.response?.data?.message);
171
+ }
172
+ },
173
+ }),
174
+ ],
175
+ callbacks: {
176
+ // @ts-ignore
177
+ jwt: async ({ token, user }) => {
178
+ if (Date.now() >= (token.accessTokenExpires as number)) {
179
+ return refreshAccessToken(token); // Call the refresh token function
180
+ }
181
+
182
+ // If there is no user (first time login or session), we return the user data
183
+ if (user) {
184
+ const base64decoded = jwtDecode(user.accessToken);
185
+ const accessTokenExpires = base64decoded.exp && base64decoded.exp * 1000; // Convert from seconds to milliseconds
186
+ return {
187
+ ...token,
188
+ accessToken: user.accessToken,
189
+ refreshToken: user.refreshToken,
190
+ accessTokenExpires: accessTokenExpires,
191
+ user: user, // Include the user data here
192
+ };
193
+ }
194
+
195
+ return token; // If no update needed, just return the existing token
196
+ },
197
+ // @ts-ignore
198
+ session: async ({ session, token }) => {
199
+ const user = token.user || {}; // Default to an empty object if user is undefined or null
200
+ session.error = token.error ? token.error : null;
201
+ // if (token.error) {
202
+ // return null
203
+ // }
204
+ session.user = {
205
+ ...user, // Include the user info from the token
206
+ accessToken: token?.accessToken, // Add the access token to session for client use
207
+ refreshToken: token?.refreshToken, // Add refresh token to session for future use
208
+ accessTokenExpires: token?.accessTokenExpires && token?.accessTokenExpires, // Store the expiry time
209
+ };
210
+ return session;
211
+
212
+ },
213
+ },
214
+ pages: {
215
+ signIn: "/auth/login",
216
+ },
217
+ secret: process.env.NEXTAUTH_SECRET,
218
+ }
219
+
220
+ export default authProviders
@@ -0,0 +1,27 @@
1
+ import axios from "axios";
2
+ import { jwtDecode } from "jwt-decode";
3
+
4
+ export async function refreshAccessToken(token: any) {
5
+ try {
6
+ const response = await axios.post(
7
+ `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/iam/refresh-tokens`,
8
+ { refreshToken: token.refreshToken }
9
+ );
10
+
11
+ const { accessToken, refreshToken } = response.data.data;
12
+ const { exp: accessTokenExpires } = jwtDecode<{ exp: number }>(accessToken);
13
+
14
+ return {
15
+ ...token,
16
+ accessToken,
17
+ refreshToken,
18
+ accessTokenExpires: accessTokenExpires * 1000, // Convert seconds to milliseconds
19
+ };
20
+ } catch (error: any) {
21
+ console.error("Failed to refresh access token:", error.message || error.response?.data);
22
+ return {
23
+ // ...token,
24
+ error: "RefreshAccessTokenError",
25
+ };
26
+ }
27
+ }
@@ -7,7 +7,7 @@ export const modelsApi = createApi({
7
7
  endpoints: (builder) => ({
8
8
  getModels: builder.query({
9
9
  query: (qs) => {
10
- return `/model-metadata?populate[0]=module&${qs}`
10
+ return `/model-metadata?&populate[1]=userKeyField&${qs}`
11
11
  },
12
12
  transformResponse: (response: any) => {
13
13
  if (response.error) {
@@ -64,7 +64,14 @@ export const modelsApi = createApi({
64
64
  method: 'DELETE',
65
65
  }),
66
66
  }),
67
+ updateUserKey: builder.mutation({
68
+ query: (data) => ({
69
+ url: `/model-metadata/update-user-key`,
70
+ method: 'POST',
71
+ body: data,
72
+ }),
73
+ }),
67
74
  })
68
75
  })
69
76
 
70
- export const { useGetModelsQuery,useLazyGetModelsQuery, useLazyGetmodelByIdQuery, useGetmodelByIdQuery, useCreatemodelMutation,useGenerateCodeForModelMutation,useUpdatemodelMutation, useDeleteMultipleModelsMutation ,useDeletemodelMutation } = modelsApi
77
+ export const { useGetModelsQuery,useLazyGetModelsQuery, useLazyGetmodelByIdQuery, useGetmodelByIdQuery, useCreatemodelMutation,useGenerateCodeForModelMutation,useUpdatemodelMutation, useDeleteMultipleModelsMutation ,useDeletemodelMutation, useUpdateUserKeyMutation } = modelsApi