@databiosphere/findable-ui 19.0.0 → 20.0.0

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 (363) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +2 -0
  4. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js +29 -0
  5. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +6 -0
  6. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.js +1 -0
  7. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +2 -0
  8. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
  9. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
  10. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
  11. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
  12. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
  13. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
  14. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
  15. package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
  16. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
  17. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
  18. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
  19. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
  20. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
  21. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
  22. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
  23. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  24. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
  25. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
  26. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
  27. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
  28. package/lib/components/Layout/components/Header/header.js +1 -1
  29. package/lib/components/Login/components/Button/button.d.ts +2 -0
  30. package/lib/components/Login/components/Button/button.js +6 -0
  31. package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
  32. package/lib/components/Login/components/Button/button.styles.js +11 -0
  33. package/lib/components/Login/components/Button/constants.d.ts +2 -0
  34. package/lib/components/Login/components/Button/constants.js +6 -0
  35. package/lib/components/Login/components/Button/types.d.ts +3 -0
  36. package/lib/components/Login/components/Button/types.js +1 -0
  37. package/lib/components/Login/login.d.ts +2 -9
  38. package/lib/components/Login/login.js +9 -10
  39. package/lib/components/Login/types.d.ts +10 -0
  40. package/lib/components/Login/types.js +1 -0
  41. package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
  42. package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
  43. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
  44. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
  45. package/lib/config/entities.d.ts +22 -23
  46. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
  47. package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
  48. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
  49. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
  50. package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
  51. package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
  52. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
  53. package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
  54. package/lib/hooks/authentication/profile/types.d.ts +5 -0
  55. package/lib/hooks/authentication/profile/types.js +1 -0
  56. package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
  57. package/lib/hooks/authentication/profile/useProfile.js +15 -0
  58. package/lib/hooks/authentication/providers/types.d.ts +6 -0
  59. package/lib/hooks/authentication/providers/types.js +1 -0
  60. package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
  61. package/lib/hooks/authentication/providers/useProviders.js +14 -0
  62. package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
  63. package/lib/hooks/authentication/session/useSessionActive.js +36 -0
  64. package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
  65. package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
  66. package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
  67. package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
  68. package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
  69. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
  70. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
  71. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
  72. package/lib/hooks/authentication/token/types.d.ts +4 -0
  73. package/lib/hooks/authentication/token/types.js +1 -0
  74. package/lib/hooks/authentication/token/useToken.d.ts +2 -0
  75. package/lib/hooks/authentication/token/useToken.js +5 -0
  76. package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
  77. package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
  78. package/lib/hooks/useEntityList.js +2 -2
  79. package/lib/hooks/useFetchEntity.js +4 -3
  80. package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
  81. package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
  82. package/lib/hooks/useRequestFileLocation.js +2 -3
  83. package/lib/hooks/useRouteHistory.d.ts +14 -0
  84. package/lib/hooks/useRouteHistory.js +40 -0
  85. package/lib/hooks/useRouteRoot.d.ts +1 -0
  86. package/lib/hooks/useRouteRoot.js +8 -0
  87. package/lib/hooks/useSummary.js +3 -3
  88. package/lib/providers/authentication/auth/actions.d.ts +8 -0
  89. package/lib/providers/authentication/auth/actions.js +12 -0
  90. package/lib/providers/authentication/auth/constants.d.ts +2 -0
  91. package/lib/providers/authentication/auth/constants.js +5 -0
  92. package/lib/providers/authentication/auth/context.d.ts +2 -0
  93. package/lib/providers/authentication/auth/context.js +7 -0
  94. package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
  95. package/lib/providers/authentication/auth/dispatch.js +43 -0
  96. package/lib/providers/authentication/auth/hook.d.ts +6 -0
  97. package/lib/providers/authentication/auth/hook.js +9 -0
  98. package/lib/providers/authentication/auth/reducer.d.ts +8 -0
  99. package/lib/providers/authentication/auth/reducer.js +24 -0
  100. package/lib/providers/authentication/auth/types.d.ts +48 -0
  101. package/lib/providers/authentication/auth/types.js +11 -0
  102. package/lib/providers/authentication/authentication/actions.d.ts +8 -0
  103. package/lib/providers/authentication/authentication/actions.js +12 -0
  104. package/lib/providers/authentication/authentication/constants.d.ts +2 -0
  105. package/lib/providers/authentication/authentication/constants.js +5 -0
  106. package/lib/providers/authentication/authentication/context.d.ts +2 -0
  107. package/lib/providers/authentication/authentication/context.js +6 -0
  108. package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
  109. package/lib/providers/authentication/authentication/dispatch.js +42 -0
  110. package/lib/providers/authentication/authentication/hook.d.ts +6 -0
  111. package/lib/providers/authentication/authentication/hook.js +9 -0
  112. package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
  113. package/lib/providers/authentication/authentication/reducer.js +25 -0
  114. package/lib/providers/authentication/authentication/types.d.ts +47 -0
  115. package/lib/providers/authentication/authentication/types.js +11 -0
  116. package/lib/providers/authentication/authentication/utils.d.ts +12 -0
  117. package/lib/providers/authentication/authentication/utils.js +18 -0
  118. package/lib/providers/authentication/common/types.d.ts +1 -0
  119. package/lib/providers/authentication/common/types.js +1 -0
  120. package/lib/providers/authentication/common/utils.d.ts +6 -0
  121. package/lib/providers/authentication/common/utils.js +11 -0
  122. package/lib/providers/authentication/credentials/actions.d.ts +8 -0
  123. package/lib/providers/authentication/credentials/actions.js +12 -0
  124. package/lib/providers/authentication/credentials/constants.d.ts +2 -0
  125. package/lib/providers/authentication/credentials/constants.js +3 -0
  126. package/lib/providers/authentication/credentials/context.d.ts +2 -0
  127. package/lib/providers/authentication/credentials/context.js +6 -0
  128. package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
  129. package/lib/providers/authentication/credentials/dispatch.js +22 -0
  130. package/lib/providers/authentication/credentials/hook.d.ts +6 -0
  131. package/lib/providers/authentication/credentials/hook.js +9 -0
  132. package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
  133. package/lib/providers/authentication/credentials/reducer.js +22 -0
  134. package/lib/providers/authentication/credentials/types.d.ts +24 -0
  135. package/lib/providers/authentication/credentials/types.js +5 -0
  136. package/lib/providers/authentication/terra/context.d.ts +2 -0
  137. package/lib/providers/authentication/terra/context.js +7 -0
  138. package/lib/providers/authentication/terra/hook.d.ts +6 -0
  139. package/lib/providers/authentication/terra/hook.js +9 -0
  140. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
  141. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
  142. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
  143. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
  144. package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
  145. package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
  146. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
  147. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
  148. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
  149. package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
  150. package/lib/providers/authentication/terra/hooks/utils.js +19 -0
  151. package/lib/providers/authentication/terra/provider.d.ts +2 -0
  152. package/lib/providers/authentication/terra/provider.js +42 -0
  153. package/lib/providers/authentication/terra/types.d.ts +20 -0
  154. package/lib/providers/authentication/terra/types.js +6 -0
  155. package/lib/providers/authentication/terra/utils.d.ts +19 -0
  156. package/lib/providers/authentication/terra/utils.js +36 -0
  157. package/lib/providers/authentication/token/constants.d.ts +2 -0
  158. package/lib/providers/authentication/token/constants.js +4 -0
  159. package/lib/providers/authentication/token/dispatch.d.ts +12 -0
  160. package/lib/providers/authentication/token/dispatch.js +22 -0
  161. package/lib/providers/authentication/token/reducer.d.ts +8 -0
  162. package/lib/providers/authentication/token/reducer.js +22 -0
  163. package/lib/providers/authentication/token/types.d.ts +28 -0
  164. package/lib/providers/authentication/token/types.js +5 -0
  165. package/lib/providers/exploreState.js +3 -5
  166. package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
  167. package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
  168. package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
  169. package/lib/providers/googleSignInAuthentication/constants.js +12 -0
  170. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
  171. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
  172. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
  173. package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
  174. package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
  175. package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
  176. package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
  177. package/lib/providers/googleSignInAuthentication/provider.js +40 -0
  178. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
  179. package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
  180. package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
  181. package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
  182. package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
  183. package/lib/providers/googleSignInAuthentication/types.js +1 -0
  184. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
  185. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
  186. package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
  187. package/lib/providers/nextAuthAuthentication/provider.js +30 -0
  188. package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
  189. package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
  190. package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
  191. package/lib/providers/nextAuthAuthentication/types.js +1 -0
  192. package/lib/routes/constants.d.ts +3 -0
  193. package/lib/routes/constants.js +3 -0
  194. package/lib/styles/common/mui/button.d.ts +3 -0
  195. package/lib/styles/common/mui/button.js +17 -0
  196. package/lib/styles/common/mui/paper.d.ts +2 -0
  197. package/lib/styles/common/mui/paper.js +9 -0
  198. package/lib/styles/common/mui/popover.d.ts +3 -0
  199. package/lib/styles/common/mui/popover.js +10 -0
  200. package/lib/theme/common/entities.d.ts +6 -0
  201. package/lib/theme/common/entities.js +1 -0
  202. package/lib/views/LoginView/loginView.d.ts +5 -1
  203. package/lib/views/LoginView/loginView.js +6 -4
  204. package/package.json +3 -2
  205. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
  206. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
  207. package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
  208. package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
  209. package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
  210. package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
  211. package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
  212. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
  213. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  214. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
  215. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
  216. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
  217. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
  218. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
  219. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
  220. package/src/components/Layout/components/Header/header.tsx +1 -1
  221. package/src/components/Login/components/Button/button.styles.ts +12 -0
  222. package/src/components/Login/components/Button/button.tsx +8 -0
  223. package/src/components/Login/components/Button/constants.ts +8 -0
  224. package/src/components/Login/components/Button/types.ts +4 -0
  225. package/src/components/Login/login.tsx +28 -28
  226. package/src/components/Login/types.ts +11 -0
  227. package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
  228. package/src/components/common/CustomIcon/common/entities.ts +1 -4
  229. package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
  230. package/src/config/entities.ts +20 -25
  231. package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
  232. package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
  233. package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
  234. package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
  235. package/src/hooks/authentication/profile/types.ts +9 -0
  236. package/src/hooks/authentication/profile/useProfile.ts +21 -0
  237. package/src/hooks/authentication/providers/types.ts +7 -0
  238. package/src/hooks/authentication/providers/useProviders.ts +23 -0
  239. package/src/hooks/authentication/session/useSessionActive.ts +51 -0
  240. package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
  241. package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
  242. package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
  243. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
  244. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
  245. package/src/hooks/authentication/token/types.ts +5 -0
  246. package/src/hooks/authentication/token/useToken.ts +9 -0
  247. package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
  248. package/src/hooks/useEntityList.ts +2 -2
  249. package/src/hooks/useFetchEntity.tsx +3 -3
  250. package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
  251. package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
  252. package/src/hooks/useRequestFileLocation.ts +2 -3
  253. package/src/hooks/useRouteHistory.ts +65 -0
  254. package/src/hooks/useRouteRoot.ts +11 -0
  255. package/src/hooks/useSummary.ts +3 -3
  256. package/src/providers/authentication/auth/actions.ts +17 -0
  257. package/src/providers/authentication/auth/constants.ts +6 -0
  258. package/src/providers/authentication/auth/context.ts +9 -0
  259. package/src/providers/authentication/auth/dispatch.ts +58 -0
  260. package/src/providers/authentication/auth/hook.ts +11 -0
  261. package/src/providers/authentication/auth/reducer.ts +25 -0
  262. package/src/providers/authentication/auth/types.ts +63 -0
  263. package/src/providers/authentication/authentication/actions.ts +17 -0
  264. package/src/providers/authentication/authentication/constants.ts +6 -0
  265. package/src/providers/authentication/authentication/context.ts +8 -0
  266. package/src/providers/authentication/authentication/dispatch.ts +55 -0
  267. package/src/providers/authentication/authentication/hook.ts +11 -0
  268. package/src/providers/authentication/authentication/reducer.ts +34 -0
  269. package/src/providers/authentication/authentication/types.ts +64 -0
  270. package/src/providers/authentication/authentication/utils.ts +25 -0
  271. package/src/providers/authentication/common/types.ts +1 -0
  272. package/src/providers/authentication/common/utils.ts +11 -0
  273. package/src/providers/authentication/credentials/actions.ts +17 -0
  274. package/src/providers/authentication/credentials/constants.ts +5 -0
  275. package/src/providers/authentication/credentials/context.ts +8 -0
  276. package/src/providers/authentication/credentials/dispatch.ts +31 -0
  277. package/src/providers/authentication/credentials/hook.ts +11 -0
  278. package/src/providers/authentication/credentials/reducer.ts +30 -0
  279. package/src/providers/authentication/credentials/types.ts +33 -0
  280. package/src/providers/authentication/terra/context.ts +16 -0
  281. package/src/providers/authentication/terra/hook.ts +11 -0
  282. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
  283. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
  284. package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
  285. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
  286. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
  287. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
  288. package/src/providers/authentication/terra/hooks/utils.ts +29 -0
  289. package/src/providers/authentication/terra/provider.tsx +60 -0
  290. package/src/providers/authentication/terra/types.ts +23 -0
  291. package/src/providers/authentication/terra/utils.ts +49 -0
  292. package/src/providers/authentication/token/constants.ts +6 -0
  293. package/src/providers/authentication/token/dispatch.ts +29 -0
  294. package/src/providers/authentication/token/reducer.ts +26 -0
  295. package/src/providers/authentication/token/types.ts +36 -0
  296. package/src/providers/exploreState.tsx +3 -4
  297. package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
  298. package/src/providers/googleSignInAuthentication/constants.ts +17 -0
  299. package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
  300. package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
  301. package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
  302. package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
  303. package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
  304. package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
  305. package/src/providers/googleSignInAuthentication/types.ts +7 -0
  306. package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
  307. package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
  308. package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
  309. package/src/providers/nextAuthAuthentication/types.ts +9 -0
  310. package/src/routes/constants.ts +3 -0
  311. package/src/styles/common/mui/button.ts +20 -0
  312. package/src/styles/common/mui/paper.ts +11 -0
  313. package/src/styles/common/mui/popover.ts +19 -0
  314. package/src/theme/common/entities.ts +7 -0
  315. package/src/views/LoginView/loginView.tsx +15 -9
  316. package/tests/getProfileStatus.test.ts +290 -0
  317. package/tests/terraProfileProvider.test.tsx +121 -0
  318. package/tests/transformRoute.test.ts +21 -0
  319. package/tests/useRouteHistory.test.ts +97 -0
  320. package/tests/useSessionActive.test.ts +107 -0
  321. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
  322. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
  323. package/lib/components/Login/login.stories.d.ts +0 -6
  324. package/lib/components/Login/login.stories.js +0 -31
  325. package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
  326. package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
  327. package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
  328. package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
  329. package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
  330. package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
  331. package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
  332. package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
  333. package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
  334. package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
  335. package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
  336. package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
  337. package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
  338. package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
  339. package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
  340. package/lib/hooks/useAuthenticationConfig.js +0 -14
  341. package/lib/providers/authentication.d.ts +0 -51
  342. package/lib/providers/authentication.js +0 -110
  343. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
  344. package/src/components/Login/login.stories.tsx +0 -43
  345. package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
  346. package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
  347. package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
  348. package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
  349. package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
  350. package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
  351. package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
  352. package/src/hooks/useAuthenticationConfig.ts +0 -18
  353. package/src/providers/authentication.tsx +0 -181
  354. package/tests/authentication.test.ts +0 -142
  355. package/tests/useAuthenticationStatus.test.ts +0 -155
  356. /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
  357. /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
  358. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
  359. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
  360. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
  361. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
  362. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
  363. /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
@@ -0,0 +1,40 @@
1
+ import Router, { useRouter } from "next/router";
2
+ import { useCallback, useEffect, useRef } from "react";
3
+ import { useRouteRoot } from "./useRouteRoot";
4
+ const ROUTE_CHANGE_EVENT = "routeChangeComplete";
5
+ const MAX_HISTORY_LENGTH = 4;
6
+ export function useRouteHistory(maxHistory = MAX_HISTORY_LENGTH) {
7
+ const { asPath } = useRouter();
8
+ const rootPath = useRouteRoot();
9
+ const historyRef = useRef([asPath]);
10
+ const onRouteChange = useCallback((route) => {
11
+ if (route === historyRef.current[0])
12
+ return;
13
+ historyRef.current.unshift(route);
14
+ if (historyRef.current.length > maxHistory) {
15
+ historyRef.current.pop();
16
+ }
17
+ }, [maxHistory]);
18
+ useEffect(() => {
19
+ Router.events.on(ROUTE_CHANGE_EVENT, onRouteChange);
20
+ return () => {
21
+ Router.events.off(ROUTE_CHANGE_EVENT, onRouteChange);
22
+ };
23
+ }, [onRouteChange]);
24
+ const callbackUrl = useCallback((transformFn) => getCallbackUrl(historyRef.current, rootPath, transformFn), [rootPath]);
25
+ return { callbackUrl };
26
+ }
27
+ /**
28
+ * Generates a callback URL based on the provided history and root path.
29
+ * Returns the callback URL determined by the transform function or the second item in history and if neither condition is met, returns the root path.
30
+ * @param history - Navigation history.
31
+ * @param rootPath - The default root path to return if no other conditions are met.
32
+ * @param [transformFn] - An optional function that transforms the history array to a specific route.
33
+ * @returns {string} - The callback UR.
34
+ */
35
+ export function getCallbackUrl(history, rootPath, transformFn) {
36
+ if (transformFn) {
37
+ return transformFn(history) || rootPath;
38
+ }
39
+ return history[1] || rootPath;
40
+ }
@@ -0,0 +1 @@
1
+ export declare function useRouteRoot(): string;
@@ -0,0 +1,8 @@
1
+ import { useRouter } from "next/router";
2
+ import { useMemo } from "react";
3
+ import { useConfig } from "./useConfig";
4
+ export function useRouteRoot() {
5
+ const { config: { redirectRootToPath: path }, } = useConfig();
6
+ const { basePath } = useRouter();
7
+ return useMemo(() => `${basePath}${path}`, [basePath, path]);
8
+ }
@@ -1,6 +1,6 @@
1
1
  import { useEffect } from "react";
2
+ import { useToken } from "./authentication/token/useToken";
2
3
  import { useAsync } from "./useAsync";
3
- import { useAuthentication } from "./useAuthentication/useAuthentication";
4
4
  import { useConfig } from "./useConfig";
5
5
  import { useEntityService } from "./useEntityService";
6
6
  import { useExploreState } from "./useExploreState";
@@ -9,7 +9,7 @@ import { useExploreState } from "./useExploreState";
9
9
  * @returns an object with the loaded data and a flag indicating is the data is loading
10
10
  */
11
11
  export const useSummary = () => {
12
- const { token } = useAuthentication();
12
+ const { token } = useToken();
13
13
  const { config } = useConfig();
14
14
  const { exploreState } = useExploreState();
15
15
  const { filterState } = exploreState;
@@ -25,7 +25,7 @@ export const useSummary = () => {
25
25
  if (!summaryConfig) {
26
26
  return { isLoading: false }; //TODO: return a summary placeholder
27
27
  }
28
- // Return the fetch status and summary data once fetch is complete..
28
+ // Return the fetch status and summary data once fetch is complete.
29
29
  return {
30
30
  isLoading: apiIsLoading,
31
31
  response,
@@ -0,0 +1,8 @@
1
+ import { AuthState, UpdateAuthStatePayload } from "./types";
2
+ /**
3
+ * Update auth state.
4
+ * @param state - State.
5
+ * @param payload - Payload.
6
+ * @returns state.
7
+ */
8
+ export declare function updateAuthState(state: AuthState, payload: UpdateAuthStatePayload): AuthState;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Update auth state.
3
+ * @param state - State.
4
+ * @param payload - Payload.
5
+ * @returns state.
6
+ */
7
+ export function updateAuthState(state, payload) {
8
+ return {
9
+ ...state,
10
+ ...payload,
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ import { AuthState } from "./types";
2
+ export declare const DEFAULT_AUTH_STATE: AuthState;
@@ -0,0 +1,5 @@
1
+ import { AUTH_STATUS } from "./types";
2
+ export const DEFAULT_AUTH_STATE = {
3
+ isAuthenticated: false,
4
+ status: AUTH_STATUS.PENDING,
5
+ };
@@ -0,0 +1,2 @@
1
+ import { AuthContextProps } from "./types";
2
+ export declare const AuthContext: import("react").Context<AuthContextProps>;
@@ -0,0 +1,7 @@
1
+ import { createContext } from "react";
2
+ import { DEFAULT_AUTH_STATE } from "./constants";
3
+ export const AuthContext = createContext({
4
+ authDispatch: null,
5
+ authState: DEFAULT_AUTH_STATE,
6
+ service: undefined,
7
+ });
@@ -0,0 +1,23 @@
1
+ import { RequestAuthAction, ResetStateAction, UpdateAuthStateAction, UpdateAuthStatePayload } from "./types";
2
+ /**
3
+ * Auth is complete.
4
+ * @param payload - Payload.
5
+ * @returns Action.
6
+ */
7
+ export declare function authComplete(payload: UpdateAuthStatePayload): UpdateAuthStateAction;
8
+ /**
9
+ * Request auth action.
10
+ * @returns Action.
11
+ */
12
+ export declare function requestAuth(): RequestAuthAction;
13
+ /**
14
+ * Reset state action.
15
+ * @returns state.
16
+ */
17
+ export declare function resetState(): ResetStateAction;
18
+ /**
19
+ * Update auth state action.
20
+ * @param payload - Payload.
21
+ * @returns Action.
22
+ */
23
+ export declare function updateAuthState(payload: UpdateAuthStatePayload): UpdateAuthStateAction;
@@ -0,0 +1,43 @@
1
+ import { AUTH_STATUS, AuthActionKind, } from "./types";
2
+ /**
3
+ * Auth is complete.
4
+ * @param payload - Payload.
5
+ * @returns Action.
6
+ */
7
+ export function authComplete(payload) {
8
+ return {
9
+ payload: { ...payload, status: AUTH_STATUS.SETTLED },
10
+ type: AuthActionKind.UpdateAuthState,
11
+ };
12
+ }
13
+ /**
14
+ * Request auth action.
15
+ * @returns Action.
16
+ */
17
+ export function requestAuth() {
18
+ return {
19
+ payload: undefined,
20
+ type: AuthActionKind.RequestAuth,
21
+ };
22
+ }
23
+ /**
24
+ * Reset state action.
25
+ * @returns state.
26
+ */
27
+ export function resetState() {
28
+ return {
29
+ payload: undefined,
30
+ type: AuthActionKind.ResetState,
31
+ };
32
+ }
33
+ /**
34
+ * Update auth state action.
35
+ * @param payload - Payload.
36
+ * @returns Action.
37
+ */
38
+ export function updateAuthState(payload) {
39
+ return {
40
+ payload,
41
+ type: AuthActionKind.UpdateAuthState,
42
+ };
43
+ }
@@ -0,0 +1,6 @@
1
+ import { AuthContextProps } from "./types";
2
+ /**
3
+ * Auth hook.
4
+ * @returns auth context.
5
+ */
6
+ export declare const useAuth: () => AuthContextProps;
@@ -0,0 +1,9 @@
1
+ import { useContext } from "react";
2
+ import { AuthContext } from "./context";
3
+ /**
4
+ * Auth hook.
5
+ * @returns auth context.
6
+ */
7
+ export const useAuth = () => {
8
+ return useContext(AuthContext);
9
+ };
@@ -0,0 +1,8 @@
1
+ import { AuthAction, AuthState } from "./types";
2
+ /**
3
+ * Auth reducer.
4
+ * @param state - State.
5
+ * @param action - Action.
6
+ * @returns state.
7
+ */
8
+ export declare function authReducer(state: AuthState, action: AuthAction): AuthState;
@@ -0,0 +1,24 @@
1
+ import { updateAuthState } from "./actions";
2
+ import { AUTH_STATUS, AuthActionKind } from "./types";
3
+ /**
4
+ * Auth reducer.
5
+ * @param state - State.
6
+ * @param action - Action.
7
+ * @returns state.
8
+ */
9
+ export function authReducer(state, action) {
10
+ const { payload, type } = action;
11
+ switch (type) {
12
+ case AuthActionKind.RequestAuth: {
13
+ return { ...state, status: AUTH_STATUS.PENDING };
14
+ }
15
+ case AuthActionKind.ResetState: {
16
+ return { ...state, ...state.initialState };
17
+ }
18
+ case AuthActionKind.UpdateAuthState: {
19
+ return updateAuthState(state, payload);
20
+ }
21
+ default:
22
+ return state;
23
+ }
24
+ }
@@ -0,0 +1,48 @@
1
+ import { Dispatch } from "react";
2
+ import { ProviderId } from "../common/types";
3
+ export type AuthAction = RequestAuthAction | ResetStateAction | UpdateAuthStateAction;
4
+ export declare enum AuthActionKind {
5
+ RequestAuth = "REQUEST_AUTH",
6
+ ResetState = "RESET_STATE",
7
+ UpdateAuthState = "UPDATE_AUTH_STATE"
8
+ }
9
+ export interface AuthContextProps {
10
+ authDispatch: Dispatch<AuthAction> | null;
11
+ authState: AuthState;
12
+ service: Service | undefined;
13
+ }
14
+ export interface AuthState {
15
+ initialState?: AuthState;
16
+ isAuthenticated: boolean;
17
+ status: AUTH_STATUS;
18
+ }
19
+ export type RequestAuthAction = {
20
+ payload: RequestAuthPayload;
21
+ type: AuthActionKind.RequestAuth;
22
+ };
23
+ export type RequestAuthPayload = undefined;
24
+ export type ResetStateAction = {
25
+ payload: ResetStatePayload;
26
+ type: AuthActionKind.ResetState;
27
+ };
28
+ export type ResetStatePayload = undefined;
29
+ export interface Service {
30
+ [key: string]: unknown;
31
+ requestLogin: (providerId: ProviderId) => void;
32
+ requestLogout: (options?: {
33
+ callbackUrl?: string;
34
+ redirect?: boolean;
35
+ }) => void;
36
+ }
37
+ export declare enum AUTH_STATUS {
38
+ PENDING = "PENDING",
39
+ SETTLED = "SETTLED"
40
+ }
41
+ export interface UpdateAuthStateAction {
42
+ payload: UpdateAuthStatePayload;
43
+ type: AuthActionKind.UpdateAuthState;
44
+ }
45
+ export interface UpdateAuthStatePayload {
46
+ isAuthenticated?: boolean;
47
+ status?: AUTH_STATUS;
48
+ }
@@ -0,0 +1,11 @@
1
+ export var AuthActionKind;
2
+ (function (AuthActionKind) {
3
+ AuthActionKind["RequestAuth"] = "REQUEST_AUTH";
4
+ AuthActionKind["ResetState"] = "RESET_STATE";
5
+ AuthActionKind["UpdateAuthState"] = "UPDATE_AUTH_STATE";
6
+ })(AuthActionKind || (AuthActionKind = {}));
7
+ export var AUTH_STATUS;
8
+ (function (AUTH_STATUS) {
9
+ AUTH_STATUS["PENDING"] = "PENDING";
10
+ AUTH_STATUS["SETTLED"] = "SETTLED";
11
+ })(AUTH_STATUS || (AUTH_STATUS = {}));
@@ -0,0 +1,8 @@
1
+ import { AuthenticationState, UpdateAuthenticationPayload } from "./types";
2
+ /**
3
+ * Update authentication action.
4
+ * @param state - State.
5
+ * @param payload - Payload.
6
+ * @returns state.
7
+ */
8
+ export declare function updateAuthenticationAction(state: AuthenticationState, payload: UpdateAuthenticationPayload): AuthenticationState;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Update authentication action.
3
+ * @param state - State.
4
+ * @param payload - Payload.
5
+ * @returns state.
6
+ */
7
+ export function updateAuthenticationAction(state, payload) {
8
+ return {
9
+ ...state,
10
+ ...payload,
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ import { AuthenticationState } from "./types";
2
+ export declare const DEFAULT_AUTHENTICATION_STATE: AuthenticationState;
@@ -0,0 +1,5 @@
1
+ import { AUTHENTICATION_STATUS } from "./types";
2
+ export const DEFAULT_AUTHENTICATION_STATE = {
3
+ profile: undefined,
4
+ status: AUTHENTICATION_STATUS.PENDING,
5
+ };
@@ -0,0 +1,2 @@
1
+ import { AuthenticationContextProps } from "./types";
2
+ export declare const AuthenticationContext: import("react").Context<AuthenticationContextProps>;
@@ -0,0 +1,6 @@
1
+ import { createContext } from "react";
2
+ import { DEFAULT_AUTHENTICATION_STATE } from "./constants";
3
+ export const AuthenticationContext = createContext({
4
+ authenticationDispatch: null,
5
+ authenticationState: DEFAULT_AUTHENTICATION_STATE,
6
+ });
@@ -0,0 +1,22 @@
1
+ import { RequestAuthenticationAction, ResetStateAction, UpdateAuthenticationAction, UpdateAuthenticationPayload } from "./types";
2
+ /**
3
+ * Authentication is complete.
4
+ * @returns Action.
5
+ */
6
+ export declare function authenticationComplete(): UpdateAuthenticationAction;
7
+ /**
8
+ * Request authentication action.
9
+ * @returns Action.
10
+ */
11
+ export declare function requestAuthentication(): RequestAuthenticationAction;
12
+ /**
13
+ * Reset authentication action.
14
+ * @returns Action.
15
+ */
16
+ export declare function resetState(): ResetStateAction;
17
+ /**
18
+ * Update authentication action.
19
+ * @param payload - Payload.
20
+ * @returns Action.
21
+ */
22
+ export declare function updateAuthentication(payload: UpdateAuthenticationPayload): UpdateAuthenticationAction;
@@ -0,0 +1,42 @@
1
+ import { AUTHENTICATION_STATUS, AuthenticationActionKind, } from "./types";
2
+ /**
3
+ * Authentication is complete.
4
+ * @returns Action.
5
+ */
6
+ export function authenticationComplete() {
7
+ return {
8
+ payload: { status: AUTHENTICATION_STATUS.SETTLED },
9
+ type: AuthenticationActionKind.UpdateAuthentication,
10
+ };
11
+ }
12
+ /**
13
+ * Request authentication action.
14
+ * @returns Action.
15
+ */
16
+ export function requestAuthentication() {
17
+ return {
18
+ payload: undefined,
19
+ type: AuthenticationActionKind.RequestAuthentication,
20
+ };
21
+ }
22
+ /**
23
+ * Reset authentication action.
24
+ * @returns Action.
25
+ */
26
+ export function resetState() {
27
+ return {
28
+ payload: undefined,
29
+ type: AuthenticationActionKind.ResetState,
30
+ };
31
+ }
32
+ /**
33
+ * Update authentication action.
34
+ * @param payload - Payload.
35
+ * @returns Action.
36
+ */
37
+ export function updateAuthentication(payload) {
38
+ return {
39
+ payload,
40
+ type: AuthenticationActionKind.UpdateAuthentication,
41
+ };
42
+ }
@@ -0,0 +1,6 @@
1
+ import { AuthenticationContextProps } from "./types";
2
+ /**
3
+ * Authentication hook.
4
+ * @returns authentication context.
5
+ */
6
+ export declare const useAuthentication: () => AuthenticationContextProps;
@@ -0,0 +1,9 @@
1
+ import { useContext } from "react";
2
+ import { AuthenticationContext } from "./context";
3
+ /**
4
+ * Authentication hook.
5
+ * @returns authentication context.
6
+ */
7
+ export const useAuthentication = () => {
8
+ return useContext(AuthenticationContext);
9
+ };
@@ -0,0 +1,9 @@
1
+ import { AuthenticationAction, AuthenticationState } from "./types";
2
+ /**
3
+ * Authentication reducer.
4
+ * Reducer for user profile and status.
5
+ * @param state - State.
6
+ * @param action - Action.
7
+ * @returns state.
8
+ */
9
+ export declare function authenticationReducer(state: AuthenticationState, action: AuthenticationAction): AuthenticationState;
@@ -0,0 +1,25 @@
1
+ import { updateAuthenticationAction } from "./actions";
2
+ import { AUTHENTICATION_STATUS, AuthenticationActionKind, } from "./types";
3
+ /**
4
+ * Authentication reducer.
5
+ * Reducer for user profile and status.
6
+ * @param state - State.
7
+ * @param action - Action.
8
+ * @returns state.
9
+ */
10
+ export function authenticationReducer(state, action) {
11
+ const { payload, type } = action;
12
+ switch (type) {
13
+ case AuthenticationActionKind.RequestAuthentication: {
14
+ return { ...state, status: AUTHENTICATION_STATUS.PENDING };
15
+ }
16
+ case AuthenticationActionKind.ResetState: {
17
+ return { ...state, ...state.initialState };
18
+ }
19
+ case AuthenticationActionKind.UpdateAuthentication: {
20
+ return updateAuthenticationAction(state, payload);
21
+ }
22
+ default:
23
+ return state;
24
+ }
25
+ }
@@ -0,0 +1,47 @@
1
+ import { Dispatch } from "react";
2
+ export declare enum AUTHENTICATION_STATUS {
3
+ PENDING = "PENDING",
4
+ SETTLED = "SETTLED"
5
+ }
6
+ export type AuthenticationAction = RequestAuthenticationAction | ResetStateAction | UpdateAuthenticationAction;
7
+ export declare enum AuthenticationActionKind {
8
+ RequestAuthentication = "REQUEST_AUTHENTICATION",
9
+ ResetState = "RESET_STATE",
10
+ UpdateAuthentication = "UPDATE_AUTHENTICATION"
11
+ }
12
+ export interface AuthenticationContextProps {
13
+ authenticationDispatch: Dispatch<AuthenticationAction> | null;
14
+ authenticationState: AuthenticationState;
15
+ }
16
+ export interface AuthenticationState {
17
+ initialState?: AuthenticationState;
18
+ profile: Profile<UserProfile>;
19
+ status: AUTHENTICATION_STATUS;
20
+ }
21
+ export interface BaseProfile {
22
+ id?: string;
23
+ name: string;
24
+ }
25
+ export type Profile<P extends BaseProfile> = P | undefined;
26
+ export type RequestAuthenticationAction = {
27
+ payload: RequestAuthenticationPayload;
28
+ type: AuthenticationActionKind.RequestAuthentication;
29
+ };
30
+ export type RequestAuthenticationPayload = undefined;
31
+ export type ResetStateAction = {
32
+ payload: ResetStatePayload;
33
+ type: AuthenticationActionKind.ResetState;
34
+ };
35
+ export type ResetStatePayload = undefined;
36
+ export type UpdateAuthenticationAction = {
37
+ payload: UpdateAuthenticationPayload;
38
+ type: AuthenticationActionKind.UpdateAuthentication;
39
+ };
40
+ export interface UpdateAuthenticationPayload {
41
+ profile?: Profile<UserProfile>;
42
+ status?: AUTHENTICATION_STATUS;
43
+ }
44
+ export interface UserProfile extends BaseProfile {
45
+ email: string;
46
+ image?: string;
47
+ }
@@ -0,0 +1,11 @@
1
+ export var AUTHENTICATION_STATUS;
2
+ (function (AUTHENTICATION_STATUS) {
3
+ AUTHENTICATION_STATUS["PENDING"] = "PENDING";
4
+ AUTHENTICATION_STATUS["SETTLED"] = "SETTLED";
5
+ })(AUTHENTICATION_STATUS || (AUTHENTICATION_STATUS = {}));
6
+ export var AuthenticationActionKind;
7
+ (function (AuthenticationActionKind) {
8
+ AuthenticationActionKind["RequestAuthentication"] = "REQUEST_AUTHENTICATION";
9
+ AuthenticationActionKind["ResetState"] = "RESET_STATE";
10
+ AuthenticationActionKind["UpdateAuthentication"] = "UPDATE_AUTHENTICATION";
11
+ })(AuthenticationActionKind || (AuthenticationActionKind = {}));
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Fetches data from given endpoint and options.
3
+ * @param endpoint - Endpoint.
4
+ * @param options - Request options.
5
+ * @param callback - Callback.
6
+ * @param callback.onError - Error callback.
7
+ * @param callback.onSuccess - Success callback.
8
+ */
9
+ export declare function fetchProfile<R, E>(endpoint: string, options?: RequestInit, callback?: {
10
+ onError: (error: E) => void;
11
+ onSuccess: (response: R) => void;
12
+ }): void;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Fetches data from given endpoint and options.
3
+ * @param endpoint - Endpoint.
4
+ * @param options - Request options.
5
+ * @param callback - Callback.
6
+ * @param callback.onError - Error callback.
7
+ * @param callback.onSuccess - Success callback.
8
+ */
9
+ export function fetchProfile(endpoint, options, callback) {
10
+ fetch(endpoint, options)
11
+ .then((response) => response.json())
12
+ .then((r) => {
13
+ callback?.onSuccess(r);
14
+ })
15
+ .catch((e) => {
16
+ callback?.onError(e);
17
+ });
18
+ }
@@ -0,0 +1 @@
1
+ export type ProviderId = string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reducer state initializer.
3
+ * @param initialState - Initial state.
4
+ * @returns initial reducer state.
5
+ */
6
+ export declare function initializer<S>(initialState: S): S;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Reducer state initializer.
3
+ * @param initialState - Initial state.
4
+ * @returns initial reducer state.
5
+ */
6
+ export function initializer(initialState) {
7
+ return {
8
+ ...initialState,
9
+ initialState,
10
+ };
11
+ }
@@ -0,0 +1,8 @@
1
+ import { CredentialsState, UpdateCredentialsPayload } from "./types";
2
+ /**
3
+ * Update credentials action.
4
+ * @param state - State.
5
+ * @param payload - Payload.
6
+ * @returns state.
7
+ */
8
+ export declare function updateCredentialsAction(state: CredentialsState, payload: UpdateCredentialsPayload): CredentialsState;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Update credentials action.
3
+ * @param state - State.
4
+ * @param payload - Payload.
5
+ * @returns state.
6
+ */
7
+ export function updateCredentialsAction(state, payload) {
8
+ return {
9
+ ...state,
10
+ credentials: payload,
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ import { CredentialsState } from "./types";
2
+ export declare const DEFAULT_CREDENTIALS_STATE: CredentialsState;
@@ -0,0 +1,3 @@
1
+ export const DEFAULT_CREDENTIALS_STATE = {
2
+ credentials: undefined,
3
+ };
@@ -0,0 +1,2 @@
1
+ import { CredentialsContextProps } from "./types";
2
+ export declare const CredentialsContext: import("react").Context<CredentialsContextProps>;
@@ -0,0 +1,6 @@
1
+ import { createContext } from "react";
2
+ import { DEFAULT_CREDENTIALS_STATE } from "./constants";
3
+ export const CredentialsContext = createContext({
4
+ credentialsDispatch: null,
5
+ credentialsState: DEFAULT_CREDENTIALS_STATE,
6
+ });