@databiosphere/findable-ui 19.0.0 → 21.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 (510) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +22 -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/Table/common/columnDef.js +18 -2
  42. package/lib/components/Table/common/columnIdentifier.d.ts +4 -0
  43. package/lib/components/Table/common/columnIdentifier.js +4 -0
  44. package/lib/components/Table/common/typeGuards.d.ts +11 -0
  45. package/lib/components/Table/common/typeGuards.js +8 -0
  46. package/lib/components/Table/common/utils.d.ts +1 -28
  47. package/lib/components/Table/common/utils.js +5 -88
  48. package/lib/components/Table/components/TableCell/common/utils.js +3 -3
  49. package/lib/components/Table/components/TableCell/components/RowSelectionCell/rowSelectionCell.d.ts +2 -5
  50. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.d.ts +7 -18
  51. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.js +20 -31
  52. package/lib/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.d.ts +2 -5
  53. package/lib/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.js +2 -2
  54. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.js +5 -17
  55. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.d.ts +3 -0
  56. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.js +10 -0
  57. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.d.ts +1 -1
  58. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.js +22 -10
  59. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.d.ts +1 -2
  60. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.d.ts +27 -0
  61. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.js +45 -0
  62. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.d.ts +1 -3
  63. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.js +0 -10
  64. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.d.ts +3 -13
  65. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.js +22 -27
  66. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.d.ts +3 -0
  67. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.js +13 -0
  68. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.d.ts +3 -0
  69. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.js +11 -0
  70. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.d.ts +2 -0
  71. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.js +7 -0
  72. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.d.ts +3 -0
  73. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.js +22 -0
  74. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.d.ts +2 -0
  75. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.js +16 -0
  76. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.d.ts +4 -0
  77. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.js +1 -0
  78. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.d.ts +26 -0
  79. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.js +32 -0
  80. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/constants.d.ts +2 -0
  81. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/constants.js +3 -0
  82. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/types.d.ts +4 -0
  83. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/types.js +1 -0
  84. package/lib/components/Table/components/TableToolbar/tableToolbar.js +5 -12
  85. package/lib/components/Table/features/RowPosition/constants.js +5 -3
  86. package/lib/components/Table/features/RowPosition/types.d.ts +3 -0
  87. package/lib/components/Table/features/RowPosition/utils.d.ts +1 -7
  88. package/lib/components/Table/features/RowPosition/utils.js +0 -20
  89. package/lib/components/Table/features/RowPreview/constants.js +1 -1
  90. package/lib/components/Table/features/entities.d.ts +2 -2
  91. package/lib/components/Table/table.d.ts +2 -4
  92. package/lib/components/Table/table.js +9 -31
  93. package/lib/components/TableCreator/common/utils.js +1 -4
  94. package/lib/components/TableCreator/options/columnTrackSizing/typeGuards.d.ts +7 -0
  95. package/lib/components/TableCreator/options/columnTrackSizing/typeGuards.js +8 -0
  96. package/lib/components/TableCreator/options/columnTrackSizing/utils.d.ts +30 -0
  97. package/lib/components/TableCreator/options/columnTrackSizing/utils.js +83 -0
  98. package/lib/components/TableCreator/options/hook.js +8 -7
  99. package/lib/components/TableCreator/options/initialState/columnVisibility.d.ts +7 -0
  100. package/lib/components/TableCreator/options/initialState/columnVisibility.js +16 -0
  101. package/lib/components/TableCreator/options/initialState/hook.d.ts +2 -0
  102. package/lib/components/TableCreator/options/initialState/hook.js +10 -0
  103. package/lib/components/TableCreator/options/visibility/constants.d.ts +2 -0
  104. package/lib/components/TableCreator/options/visibility/constants.js +3 -0
  105. package/lib/components/TableCreator/options/visibility/hook.d.ts +2 -0
  106. package/lib/components/TableCreator/options/visibility/hook.js +11 -0
  107. package/lib/components/TableCreator/tableCreator.js +4 -18
  108. package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
  109. package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
  110. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
  111. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
  112. package/lib/config/entities.d.ts +22 -27
  113. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
  114. package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
  115. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
  116. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
  117. package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
  118. package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
  119. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
  120. package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
  121. package/lib/hooks/authentication/profile/types.d.ts +5 -0
  122. package/lib/hooks/authentication/profile/types.js +1 -0
  123. package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
  124. package/lib/hooks/authentication/profile/useProfile.js +15 -0
  125. package/lib/hooks/authentication/providers/types.d.ts +6 -0
  126. package/lib/hooks/authentication/providers/types.js +1 -0
  127. package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
  128. package/lib/hooks/authentication/providers/useProviders.js +14 -0
  129. package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
  130. package/lib/hooks/authentication/session/useSessionActive.js +36 -0
  131. package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
  132. package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
  133. package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
  134. package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
  135. package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
  136. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
  137. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
  138. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
  139. package/lib/hooks/authentication/token/types.d.ts +4 -0
  140. package/lib/hooks/authentication/token/types.js +1 -0
  141. package/lib/hooks/authentication/token/useToken.d.ts +2 -0
  142. package/lib/hooks/authentication/token/useToken.js +5 -0
  143. package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
  144. package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
  145. package/lib/hooks/useEntityList.js +2 -2
  146. package/lib/hooks/useFetchEntity.js +4 -3
  147. package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
  148. package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
  149. package/lib/hooks/useRequestFileLocation.js +2 -3
  150. package/lib/hooks/useRouteHistory.d.ts +14 -0
  151. package/lib/hooks/useRouteHistory.js +40 -0
  152. package/lib/hooks/useRouteRoot.d.ts +1 -0
  153. package/lib/hooks/useRouteRoot.js +8 -0
  154. package/lib/hooks/useSummary.js +3 -3
  155. package/lib/providers/authentication/auth/actions.d.ts +8 -0
  156. package/lib/providers/authentication/auth/actions.js +12 -0
  157. package/lib/providers/authentication/auth/constants.d.ts +2 -0
  158. package/lib/providers/authentication/auth/constants.js +5 -0
  159. package/lib/providers/authentication/auth/context.d.ts +2 -0
  160. package/lib/providers/authentication/auth/context.js +7 -0
  161. package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
  162. package/lib/providers/authentication/auth/dispatch.js +43 -0
  163. package/lib/providers/authentication/auth/hook.d.ts +6 -0
  164. package/lib/providers/authentication/auth/hook.js +9 -0
  165. package/lib/providers/authentication/auth/reducer.d.ts +8 -0
  166. package/lib/providers/authentication/auth/reducer.js +24 -0
  167. package/lib/providers/authentication/auth/types.d.ts +48 -0
  168. package/lib/providers/authentication/auth/types.js +11 -0
  169. package/lib/providers/authentication/authentication/actions.d.ts +8 -0
  170. package/lib/providers/authentication/authentication/actions.js +12 -0
  171. package/lib/providers/authentication/authentication/constants.d.ts +2 -0
  172. package/lib/providers/authentication/authentication/constants.js +5 -0
  173. package/lib/providers/authentication/authentication/context.d.ts +2 -0
  174. package/lib/providers/authentication/authentication/context.js +6 -0
  175. package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
  176. package/lib/providers/authentication/authentication/dispatch.js +42 -0
  177. package/lib/providers/authentication/authentication/hook.d.ts +6 -0
  178. package/lib/providers/authentication/authentication/hook.js +9 -0
  179. package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
  180. package/lib/providers/authentication/authentication/reducer.js +25 -0
  181. package/lib/providers/authentication/authentication/types.d.ts +47 -0
  182. package/lib/providers/authentication/authentication/types.js +11 -0
  183. package/lib/providers/authentication/authentication/utils.d.ts +12 -0
  184. package/lib/providers/authentication/authentication/utils.js +18 -0
  185. package/lib/providers/authentication/common/types.d.ts +1 -0
  186. package/lib/providers/authentication/common/types.js +1 -0
  187. package/lib/providers/authentication/common/utils.d.ts +6 -0
  188. package/lib/providers/authentication/common/utils.js +11 -0
  189. package/lib/providers/authentication/credentials/actions.d.ts +8 -0
  190. package/lib/providers/authentication/credentials/actions.js +12 -0
  191. package/lib/providers/authentication/credentials/constants.d.ts +2 -0
  192. package/lib/providers/authentication/credentials/constants.js +3 -0
  193. package/lib/providers/authentication/credentials/context.d.ts +2 -0
  194. package/lib/providers/authentication/credentials/context.js +6 -0
  195. package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
  196. package/lib/providers/authentication/credentials/dispatch.js +22 -0
  197. package/lib/providers/authentication/credentials/hook.d.ts +6 -0
  198. package/lib/providers/authentication/credentials/hook.js +9 -0
  199. package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
  200. package/lib/providers/authentication/credentials/reducer.js +22 -0
  201. package/lib/providers/authentication/credentials/types.d.ts +24 -0
  202. package/lib/providers/authentication/credentials/types.js +5 -0
  203. package/lib/providers/authentication/terra/context.d.ts +2 -0
  204. package/lib/providers/authentication/terra/context.js +7 -0
  205. package/lib/providers/authentication/terra/hook.d.ts +6 -0
  206. package/lib/providers/authentication/terra/hook.js +9 -0
  207. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
  208. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
  209. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
  210. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
  211. package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
  212. package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
  213. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
  214. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
  215. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
  216. package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
  217. package/lib/providers/authentication/terra/hooks/utils.js +19 -0
  218. package/lib/providers/authentication/terra/provider.d.ts +2 -0
  219. package/lib/providers/authentication/terra/provider.js +42 -0
  220. package/lib/providers/authentication/terra/types.d.ts +20 -0
  221. package/lib/providers/authentication/terra/types.js +6 -0
  222. package/lib/providers/authentication/terra/utils.d.ts +19 -0
  223. package/lib/providers/authentication/terra/utils.js +36 -0
  224. package/lib/providers/authentication/token/constants.d.ts +2 -0
  225. package/lib/providers/authentication/token/constants.js +4 -0
  226. package/lib/providers/authentication/token/dispatch.d.ts +12 -0
  227. package/lib/providers/authentication/token/dispatch.js +22 -0
  228. package/lib/providers/authentication/token/reducer.d.ts +8 -0
  229. package/lib/providers/authentication/token/reducer.js +22 -0
  230. package/lib/providers/authentication/token/types.d.ts +28 -0
  231. package/lib/providers/authentication/token/types.js +5 -0
  232. package/lib/providers/exploreState/actions/updateVisibility/action.d.ts +10 -0
  233. package/lib/providers/exploreState/actions/updateVisibility/action.js +16 -0
  234. package/lib/providers/exploreState/actions/updateVisibility/dispatch.d.ts +7 -0
  235. package/lib/providers/exploreState/actions/updateVisibility/dispatch.js +12 -0
  236. package/lib/providers/exploreState/actions/updateVisibility/types.d.ts +9 -0
  237. package/lib/providers/exploreState/actions/updateVisibility/types.js +1 -0
  238. package/lib/providers/exploreState/actions/updateVisibility/utils.d.ts +10 -0
  239. package/lib/providers/exploreState/actions/updateVisibility/utils.js +21 -0
  240. package/lib/providers/exploreState/entities.d.ts +1 -1
  241. package/lib/providers/exploreState/initializer/utils.js +5 -13
  242. package/lib/providers/exploreState/payloads/entities.d.ts +1 -5
  243. package/lib/providers/exploreState/utils.d.ts +1 -1
  244. package/lib/providers/exploreState/utils.js +5 -5
  245. package/lib/providers/exploreState.d.ts +2 -8
  246. package/lib/providers/exploreState.js +5 -10
  247. package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
  248. package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
  249. package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
  250. package/lib/providers/googleSignInAuthentication/constants.js +12 -0
  251. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
  252. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
  253. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
  254. package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
  255. package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
  256. package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
  257. package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
  258. package/lib/providers/googleSignInAuthentication/provider.js +40 -0
  259. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
  260. package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
  261. package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
  262. package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
  263. package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
  264. package/lib/providers/googleSignInAuthentication/types.js +1 -0
  265. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
  266. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
  267. package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
  268. package/lib/providers/nextAuthAuthentication/provider.js +30 -0
  269. package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
  270. package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
  271. package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
  272. package/lib/providers/nextAuthAuthentication/types.js +1 -0
  273. package/lib/routes/constants.d.ts +3 -0
  274. package/lib/routes/constants.js +3 -0
  275. package/lib/styles/common/mui/button.d.ts +3 -0
  276. package/lib/styles/common/mui/button.js +17 -0
  277. package/lib/styles/common/mui/paper.d.ts +2 -0
  278. package/lib/styles/common/mui/paper.js +9 -0
  279. package/lib/styles/common/mui/popover.d.ts +3 -0
  280. package/lib/styles/common/mui/popover.js +10 -0
  281. package/lib/theme/common/entities.d.ts +6 -0
  282. package/lib/theme/common/entities.js +1 -0
  283. package/lib/views/LoginView/loginView.d.ts +5 -1
  284. package/lib/views/LoginView/loginView.js +6 -4
  285. package/package.json +3 -2
  286. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
  287. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
  288. package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
  289. package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
  290. package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
  291. package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
  292. package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
  293. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
  294. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  295. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
  296. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
  297. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
  298. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
  299. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
  300. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
  301. package/src/components/Layout/components/Header/header.tsx +1 -1
  302. package/src/components/Login/components/Button/button.styles.ts +12 -0
  303. package/src/components/Login/components/Button/button.tsx +8 -0
  304. package/src/components/Login/components/Button/constants.ts +8 -0
  305. package/src/components/Login/components/Button/types.ts +4 -0
  306. package/src/components/Login/login.tsx +28 -28
  307. package/src/components/Login/types.ts +11 -0
  308. package/src/components/Table/common/columnDef.ts +18 -2
  309. package/src/components/Table/common/columnIdentifier.ts +4 -0
  310. package/src/components/Table/common/typeGuards.ts +12 -0
  311. package/src/components/Table/common/utils.ts +5 -115
  312. package/src/components/Table/components/TableCell/common/utils.ts +3 -3
  313. package/src/components/Table/components/TableCell/components/RowSelectionCell/rowSelectionCell.tsx +3 -7
  314. package/src/components/Table/components/TableFeatures/ColumnVisibility/utils.ts +25 -44
  315. package/src/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.tsx +5 -9
  316. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.tsx +4 -22
  317. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.ts +13 -0
  318. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.tsx +47 -20
  319. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.ts +1 -2
  320. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.ts +58 -0
  321. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/constants.ts +1 -13
  322. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/utils.ts +26 -33
  323. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.ts +12 -0
  324. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.tsx +28 -0
  325. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.ts +9 -0
  326. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.ts +17 -0
  327. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.tsx +53 -0
  328. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.ts +5 -0
  329. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.ts +44 -0
  330. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/constants.ts +5 -0
  331. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/types.ts +5 -0
  332. package/src/components/Table/components/TableToolbar/tableToolbar.tsx +5 -19
  333. package/src/components/Table/features/RowPosition/constants.ts +8 -5
  334. package/src/components/Table/features/RowPosition/types.ts +4 -0
  335. package/src/components/Table/features/RowPosition/utils.ts +1 -30
  336. package/src/components/Table/features/RowPreview/constants.ts +1 -1
  337. package/src/components/Table/features/entities.ts +2 -2
  338. package/src/components/Table/table.tsx +8 -46
  339. package/src/components/TableCreator/common/utils.ts +0 -4
  340. package/src/components/TableCreator/options/columnTrackSizing/typeGuards.ts +12 -0
  341. package/src/components/TableCreator/options/columnTrackSizing/utils.ts +99 -0
  342. package/src/components/TableCreator/options/hook.ts +8 -11
  343. package/src/components/TableCreator/options/initialState/columnVisibility.ts +22 -0
  344. package/src/components/TableCreator/options/initialState/hook.ts +24 -0
  345. package/src/components/TableCreator/options/visibility/constants.ts +5 -0
  346. package/src/components/TableCreator/options/visibility/hook.ts +22 -0
  347. package/src/components/TableCreator/tableCreator.tsx +3 -27
  348. package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
  349. package/src/components/common/CustomIcon/common/entities.ts +1 -4
  350. package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
  351. package/src/config/entities.ts +22 -29
  352. package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
  353. package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
  354. package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
  355. package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
  356. package/src/hooks/authentication/profile/types.ts +9 -0
  357. package/src/hooks/authentication/profile/useProfile.ts +21 -0
  358. package/src/hooks/authentication/providers/types.ts +7 -0
  359. package/src/hooks/authentication/providers/useProviders.ts +23 -0
  360. package/src/hooks/authentication/session/useSessionActive.ts +51 -0
  361. package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
  362. package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
  363. package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
  364. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
  365. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
  366. package/src/hooks/authentication/token/types.ts +5 -0
  367. package/src/hooks/authentication/token/useToken.ts +9 -0
  368. package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
  369. package/src/hooks/useEntityList.ts +2 -2
  370. package/src/hooks/useFetchEntity.tsx +3 -3
  371. package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
  372. package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
  373. package/src/hooks/useRequestFileLocation.ts +2 -3
  374. package/src/hooks/useRouteHistory.ts +65 -0
  375. package/src/hooks/useRouteRoot.ts +11 -0
  376. package/src/hooks/useSummary.ts +3 -3
  377. package/src/providers/authentication/auth/actions.ts +17 -0
  378. package/src/providers/authentication/auth/constants.ts +6 -0
  379. package/src/providers/authentication/auth/context.ts +9 -0
  380. package/src/providers/authentication/auth/dispatch.ts +58 -0
  381. package/src/providers/authentication/auth/hook.ts +11 -0
  382. package/src/providers/authentication/auth/reducer.ts +25 -0
  383. package/src/providers/authentication/auth/types.ts +63 -0
  384. package/src/providers/authentication/authentication/actions.ts +17 -0
  385. package/src/providers/authentication/authentication/constants.ts +6 -0
  386. package/src/providers/authentication/authentication/context.ts +8 -0
  387. package/src/providers/authentication/authentication/dispatch.ts +55 -0
  388. package/src/providers/authentication/authentication/hook.ts +11 -0
  389. package/src/providers/authentication/authentication/reducer.ts +34 -0
  390. package/src/providers/authentication/authentication/types.ts +64 -0
  391. package/src/providers/authentication/authentication/utils.ts +25 -0
  392. package/src/providers/authentication/common/types.ts +1 -0
  393. package/src/providers/authentication/common/utils.ts +11 -0
  394. package/src/providers/authentication/credentials/actions.ts +17 -0
  395. package/src/providers/authentication/credentials/constants.ts +5 -0
  396. package/src/providers/authentication/credentials/context.ts +8 -0
  397. package/src/providers/authentication/credentials/dispatch.ts +31 -0
  398. package/src/providers/authentication/credentials/hook.ts +11 -0
  399. package/src/providers/authentication/credentials/reducer.ts +30 -0
  400. package/src/providers/authentication/credentials/types.ts +33 -0
  401. package/src/providers/authentication/terra/context.ts +16 -0
  402. package/src/providers/authentication/terra/hook.ts +11 -0
  403. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
  404. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
  405. package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
  406. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
  407. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
  408. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
  409. package/src/providers/authentication/terra/hooks/utils.ts +29 -0
  410. package/src/providers/authentication/terra/provider.tsx +60 -0
  411. package/src/providers/authentication/terra/types.ts +23 -0
  412. package/src/providers/authentication/terra/utils.ts +49 -0
  413. package/src/providers/authentication/token/constants.ts +6 -0
  414. package/src/providers/authentication/token/dispatch.ts +29 -0
  415. package/src/providers/authentication/token/reducer.ts +26 -0
  416. package/src/providers/authentication/token/types.ts +36 -0
  417. package/src/providers/exploreState/actions/updateVisibility/action.ts +29 -0
  418. package/src/providers/exploreState/actions/updateVisibility/dispatch.ts +19 -0
  419. package/src/providers/exploreState/actions/updateVisibility/types.ts +11 -0
  420. package/src/providers/exploreState/actions/updateVisibility/utils.ts +28 -0
  421. package/src/providers/exploreState/entities.ts +1 -1
  422. package/src/providers/exploreState/initializer/utils.ts +5 -21
  423. package/src/providers/exploreState/payloads/entities.ts +0 -6
  424. package/src/providers/exploreState/utils.ts +5 -5
  425. package/src/providers/exploreState.tsx +6 -22
  426. package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
  427. package/src/providers/googleSignInAuthentication/constants.ts +17 -0
  428. package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
  429. package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
  430. package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
  431. package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
  432. package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
  433. package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
  434. package/src/providers/googleSignInAuthentication/types.ts +7 -0
  435. package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
  436. package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
  437. package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
  438. package/src/providers/nextAuthAuthentication/types.ts +9 -0
  439. package/src/routes/constants.ts +3 -0
  440. package/src/styles/common/mui/button.ts +20 -0
  441. package/src/styles/common/mui/paper.ts +11 -0
  442. package/src/styles/common/mui/popover.ts +19 -0
  443. package/src/theme/common/entities.ts +7 -0
  444. package/src/views/LoginView/loginView.tsx +15 -9
  445. package/tests/getProfileStatus.test.ts +290 -0
  446. package/tests/terraProfileProvider.test.tsx +121 -0
  447. package/tests/transformRoute.test.ts +21 -0
  448. package/tests/useRouteHistory.test.ts +97 -0
  449. package/tests/useSessionActive.test.ts +107 -0
  450. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
  451. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
  452. package/lib/components/Login/login.stories.d.ts +0 -6
  453. package/lib/components/Login/login.stories.js +0 -31
  454. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.d.ts +0 -16
  455. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.js +0 -28
  456. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.stories.d.ts +0 -5
  457. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.stories.js +0 -46
  458. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.styles.d.ts +0 -3
  459. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.styles.js +0 -21
  460. package/lib/components/Table/features/constants.d.ts +0 -6
  461. package/lib/components/Table/features/constants.js +0 -8
  462. package/lib/components/TableCreator/common/constants.d.ts +0 -7
  463. package/lib/components/TableCreator/common/constants.js +0 -21
  464. package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
  465. package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
  466. package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
  467. package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
  468. package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
  469. package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
  470. package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
  471. package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
  472. package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
  473. package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
  474. package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
  475. package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
  476. package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
  477. package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
  478. package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
  479. package/lib/hooks/useAuthenticationConfig.js +0 -14
  480. package/lib/providers/authentication.d.ts +0 -51
  481. package/lib/providers/authentication.js +0 -110
  482. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
  483. package/src/components/Login/login.stories.tsx +0 -43
  484. package/src/components/Table/components/CheckboxMenu/checkboxMenu.stories.tsx +0 -54
  485. package/src/components/Table/components/CheckboxMenu/checkboxMenu.styles.ts +0 -22
  486. package/src/components/Table/components/CheckboxMenu/checkboxMenu.tsx +0 -87
  487. package/src/components/Table/features/constants.ts +0 -10
  488. package/src/components/TableCreator/common/constants.ts +0 -25
  489. package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
  490. package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
  491. package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
  492. package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
  493. package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
  494. package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
  495. package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
  496. package/src/hooks/useAuthenticationConfig.ts +0 -18
  497. package/src/providers/authentication.tsx +0 -181
  498. package/tests/authentication.test.ts +0 -142
  499. package/tests/useAuthenticationStatus.test.ts +0 -155
  500. /package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.d.ts → components/MenuItems/menuItems.styles.d.ts} +0 -0
  501. /package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.js → components/MenuItems/menuItems.styles.js} +0 -0
  502. /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
  503. /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
  504. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
  505. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
  506. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
  507. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
  508. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
  509. /package/src/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.ts → components/MenuItems/menuItems.styles.ts} +0 -0
  510. /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
@@ -1,49 +0,0 @@
1
- import {
2
- AUTHENTICATION_STATUS,
3
- LoginResponse,
4
- LoginStatus,
5
- REQUEST_STATUS,
6
- } from "./common/entities";
7
- import { GoogleResponse } from "./useFetchGoogleProfile";
8
- import { TerraNIHResponse } from "./useFetchTerraNIHProfile";
9
- import { TerraResponse } from "./useFetchTerraProfile";
10
- import { TerraTermsOfServiceResponse } from "./useFetchTerraTermsOfService";
11
-
12
- /**
13
- * Handles the status of the authentication process.
14
- * @param userProfileLoginStatus - User profile login status.
15
- * @param terraProfileLoginStatus - Terra profile login status.
16
- * @param terraTOSLoginStatus - Terra terms of service login status.
17
- * @param terraNIHProfileLoginStatus - Terra NIH profile login status.
18
- * @returns authentication status.
19
- */
20
- export const useAuthenticationStatus = (
21
- userProfileLoginStatus: LoginStatus<GoogleResponse>,
22
- terraProfileLoginStatus: LoginStatus<TerraResponse>,
23
- terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>,
24
- terraNIHProfileLoginStatus: LoginStatus<TerraNIHResponse>
25
- ): AUTHENTICATION_STATUS => {
26
- return getAuthenticationStatus([
27
- terraNIHProfileLoginStatus,
28
- terraProfileLoginStatus,
29
- terraTOSLoginStatus,
30
- userProfileLoginStatus,
31
- ]);
32
- };
33
-
34
- /**
35
- * Returns the authentication status ("INCOMPLETE" or "COMPLETE").
36
- * @param loginStatuses - Login statuses.
37
- * @returns authentication status.
38
- */
39
- export function getAuthenticationStatus(
40
- loginStatuses: LoginStatus<LoginResponse>[]
41
- ): AUTHENTICATION_STATUS {
42
- for (const loginStatus of loginStatuses) {
43
- if (!loginStatus.isSupported) continue;
44
- if (loginStatus.requestStatus === REQUEST_STATUS.NOT_STARTED) {
45
- return AUTHENTICATION_STATUS.INCOMPLETE;
46
- }
47
- }
48
- return AUTHENTICATION_STATUS.COMPLETED;
49
- }
@@ -1,68 +0,0 @@
1
- import { useCallback, useEffect, useState } from "react";
2
- import { useAuthenticationConfig } from "../useAuthenticationConfig";
3
- import {
4
- LOGIN_STATUS_FAILED,
5
- LOGIN_STATUS_NOT_STARTED,
6
- } from "./common/constants";
7
- import { LoginStatus, REQUEST_STATUS } from "./common/entities";
8
- import { getAuthenticationRequestOptions } from "./common/utils";
9
-
10
- export type UserProfile = GoogleResponse;
11
-
12
- export interface GoogleResponse {
13
- email: string;
14
- email_verified: boolean;
15
- family_name: string;
16
- given_name: string;
17
- hd: string;
18
- locale: string;
19
- name: string;
20
- picture: string;
21
- sub: string;
22
- }
23
-
24
- type Status = LoginStatus<GoogleResponse>;
25
-
26
- /**
27
- * Returns user profile login status from configured endpoint.
28
- * @param token - Token.
29
- * @returns google profile login status.
30
- */
31
- export const useFetchGoogleProfile = (token?: string): Status => {
32
- const authenticationConfig = useAuthenticationConfig();
33
- const { googleGISAuthConfig: { googleProfileEndpoint: endpoint } = {} } =
34
- authenticationConfig;
35
- const [loginStatus, setLoginStatus] = useState<Status>(
36
- LOGIN_STATUS_NOT_STARTED as Status
37
- );
38
-
39
- // Fetch google user profile.
40
- const fetchEndpointData = useCallback(
41
- (endpoint: string, accessToken: string): void => {
42
- fetch(endpoint, getAuthenticationRequestOptions(accessToken))
43
- .then((response) => response.json())
44
- .then((profile: GoogleResponse) => {
45
- setLoginStatus((prevStatus) => ({
46
- ...prevStatus,
47
- isSuccess: true,
48
- requestStatus: REQUEST_STATUS.COMPLETED,
49
- response: profile,
50
- }));
51
- })
52
- .catch((err) => {
53
- console.log(err); // TODO handle error.
54
- setLoginStatus(LOGIN_STATUS_FAILED as Status);
55
- });
56
- },
57
- []
58
- );
59
-
60
- // Fetches user profile.
61
- useEffect(() => {
62
- if (!token) return;
63
- if (!endpoint) return;
64
- fetchEndpointData(endpoint, token);
65
- }, [endpoint, fetchEndpointData, token]);
66
-
67
- return loginStatus;
68
- };
@@ -1,54 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { useAuthenticationConfig } from "../useAuthenticationConfig";
3
-
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO see https://github.com/clevercanary/data-browser/issues/544.
5
- declare const google: any;
6
-
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO see https://github.com/clevercanary/data-browser/issues/544.
8
- type TokenClient = any;
9
-
10
- interface TokenResponse {
11
- access_token: string;
12
- expires_in: number;
13
- refresh_token?: string;
14
- scope?: string;
15
- token_type: string;
16
- }
17
-
18
- export interface UseTokenClient {
19
- token: string | undefined;
20
- tokenClient: TokenClient | undefined;
21
- }
22
-
23
- /**
24
- * Initializes the token client, sets token from token client callback.
25
- * @returns initialized token client.
26
- */
27
- export const useTokenClient = (): UseTokenClient => {
28
- const [token, setToken] = useState<string>();
29
- const [tokenClient, setTokenClient] = useState<TokenClient>();
30
- const authenticationConfig = useAuthenticationConfig();
31
- const { googleGISAuthConfig: { clientId, scope } = {} } =
32
- authenticationConfig;
33
-
34
- // Initializes token client - (authorization client id must be configured).
35
- useEffect(() => {
36
- if (clientId) {
37
- setTokenClient(
38
- google.accounts.oauth2.initTokenClient({
39
- callback: (tokenResponse: TokenResponse) => {
40
- const access_token = tokenResponse.access_token;
41
- setToken(access_token);
42
- },
43
- client_id: clientId,
44
- scope,
45
- })
46
- );
47
- }
48
- }, [clientId, scope]);
49
-
50
- return {
51
- token,
52
- tokenClient,
53
- };
54
- };
@@ -1,18 +0,0 @@
1
- import { AuthenticationConfig } from "../config/entities";
2
- import { useConfig } from "./useConfig";
3
-
4
- /**
5
- * Hook to get the authentication config
6
- * @returns @see AuthenticationConfig used in the current config.
7
- */
8
- export const useAuthenticationConfig = (): AuthenticationConfig => {
9
- const { config } = useConfig();
10
-
11
- if (!config.authentication) {
12
- return {
13
- title: "",
14
- };
15
- }
16
-
17
- return config.authentication;
18
- };
@@ -1,181 +0,0 @@
1
- import Router, { useRouter } from "next/router";
2
- import React, { createContext, ReactNode, useCallback } from "react";
3
- import { useIdleTimer } from "react-idle-timer";
4
- import { LOGIN_STATUS_NOT_STARTED } from "../hooks/useAuthentication/common/constants";
5
- import {
6
- AUTHENTICATION_STATUS,
7
- LoginStatus,
8
- } from "../hooks/useAuthentication/common/entities";
9
- import { useAuthenticationComplete } from "../hooks/useAuthentication/useAuthenticationComplete";
10
- import { useAuthenticationStatus } from "../hooks/useAuthentication/useAuthenticationStatus";
11
- import {
12
- useFetchGoogleProfile,
13
- UserProfile,
14
- } from "../hooks/useAuthentication/useFetchGoogleProfile";
15
- import {
16
- TerraNIHResponse,
17
- useFetchTerraNIHProfile,
18
- } from "../hooks/useAuthentication/useFetchTerraNIHProfile";
19
- import {
20
- TerraResponse,
21
- useFetchTerraProfile,
22
- } from "../hooks/useAuthentication/useFetchTerraProfile";
23
- import {
24
- TerraTermsOfServiceResponse,
25
- useFetchTerraTermsOfService,
26
- } from "../hooks/useAuthentication/useFetchTerraTermsOfService";
27
- import { useTokenClient } from "../hooks/useAuthentication/useTokenClient";
28
- import { useConfig } from "../hooks/useConfig";
29
- import { INACTIVITY_PARAM } from "../hooks/useSessionTimeout";
30
-
31
- // Template constants
32
- export const ROUTE_LOGIN = "/login";
33
-
34
- type AuthenticateUserFn = () => void;
35
- type RequestAuthenticationFn = () => void;
36
-
37
- /**
38
- * Model of authentication context.
39
- */
40
- export interface AuthContextProps {
41
- authenticateUser: AuthenticateUserFn;
42
- authenticationStatus: AUTHENTICATION_STATUS;
43
- isAuthenticated: boolean;
44
- isEnabled: boolean;
45
- requestAuthentication: RequestAuthenticationFn;
46
- terraNIHProfileLoginStatus: LoginStatus<TerraNIHResponse>;
47
- terraProfileLoginStatus: LoginStatus<TerraResponse>;
48
- terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>;
49
- token?: string;
50
- userProfile?: UserProfile;
51
- }
52
-
53
- /**
54
- * Auth context for storing and using auth-related state.
55
- */
56
- export const AuthContext = createContext<AuthContextProps>({
57
- // eslint-disable-next-line @typescript-eslint/no-empty-function -- allow dummy function for default state.
58
- authenticateUser: () => {},
59
- authenticationStatus: AUTHENTICATION_STATUS.INCOMPLETE,
60
- isAuthenticated: false,
61
- isEnabled: false,
62
- // eslint-disable-next-line @typescript-eslint/no-empty-function -- allow dummy function for default state.
63
- requestAuthentication: () => {},
64
- terraNIHProfileLoginStatus:
65
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraNIHResponse>,
66
- terraProfileLoginStatus:
67
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraResponse>,
68
- terraTOSLoginStatus:
69
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraTermsOfServiceResponse>,
70
- token: undefined,
71
- userProfile: undefined,
72
- });
73
-
74
- interface Props {
75
- children: ReactNode | ReactNode[];
76
- sessionTimeout?: number;
77
- }
78
-
79
- /**
80
- * Auth provider for consuming components to subscribe to changes in auth-related state.
81
- * @param props - Component inputs.
82
- * @param props.children - Set of children components that can possibly consume the query provider.
83
- * @param props.sessionTimeout - If provided, will set the value for a session timeout (in milliseconds).
84
- * @returns Provider element to be used by consumers to both update authentication state and subscribe to changes in authentication state.
85
- */
86
- export function AuthProvider({ children, sessionTimeout }: Props): JSX.Element {
87
- const { config } = useConfig();
88
- const { authentication, redirectRootToPath } = config;
89
- const { basePath } = useRouter();
90
- const { token, tokenClient } = useTokenClient();
91
- const terraNIHProfileLoginStatus = useFetchTerraNIHProfile(token);
92
- const terraProfileLoginStatus = useFetchTerraProfile(token);
93
- const terraTOSLoginStatus = useFetchTerraTermsOfService(token);
94
- const userProfileLoginStatus = useFetchGoogleProfile(token);
95
- const isEnabled = Boolean(authentication);
96
- const isAuthenticated = userProfileLoginStatus.isSuccess;
97
- const releaseToken = shouldReleaseToken(
98
- userProfileLoginStatus,
99
- terraProfileLoginStatus,
100
- terraTOSLoginStatus
101
- );
102
- const authenticationStatus = useAuthenticationStatus(
103
- userProfileLoginStatus,
104
- terraProfileLoginStatus,
105
- terraTOSLoginStatus,
106
- terraNIHProfileLoginStatus
107
- );
108
-
109
- // Handle completion of authentication process.
110
- useAuthenticationComplete(authenticationStatus);
111
-
112
- /**
113
- * If sessionTimeout is set and user is authenticated, the app will reload and redirect to
114
- * origin, including base path, root path, and query param.
115
- */
116
- useIdleTimer({
117
- onIdle: () =>
118
- isAuthenticated &&
119
- sessionTimeout &&
120
- (window.location.href =
121
- window.location.origin +
122
- basePath +
123
- redirectRootToPath +
124
- "?" +
125
- `${INACTIVITY_PARAM}=true`),
126
- timeout: sessionTimeout,
127
- });
128
-
129
- /**
130
- * Requests access token and authenticates user.
131
- */
132
- const authenticateUser = useCallback((): void => {
133
- tokenClient.requestAccessToken();
134
- }, [tokenClient]);
135
-
136
- /**
137
- * Navigates to login page.
138
- */
139
- const requestAuthentication = useCallback((): void => {
140
- Router.push(ROUTE_LOGIN);
141
- }, []);
142
-
143
- return (
144
- <AuthContext.Provider
145
- value={{
146
- authenticateUser,
147
- authenticationStatus,
148
- isAuthenticated,
149
- isEnabled,
150
- requestAuthentication,
151
- terraNIHProfileLoginStatus,
152
- terraProfileLoginStatus,
153
- terraTOSLoginStatus,
154
- token: releaseToken ? token : undefined,
155
- userProfile: userProfileLoginStatus.response,
156
- }}
157
- >
158
- {children}
159
- </AuthContext.Provider>
160
- );
161
- }
162
-
163
- /**
164
- * Token is released for the following conditions:
165
- * - Terra endpoint is configured and the terms of service response is successful, or
166
- * - Terra endpoint is not configured and the user profile response is successful.
167
- * @param userProfileLoginStatus - User profile login status.
168
- * @param terraProfileLoginStatus - Terra profile login status.
169
- * @param terraTOSLoginStatus - Terra terms of service login status.
170
- * @returns true if the token should be released.
171
- */
172
- export function shouldReleaseToken(
173
- userProfileLoginStatus: LoginStatus<UserProfile>,
174
- terraProfileLoginStatus: LoginStatus<TerraResponse>,
175
- terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>
176
- ): boolean {
177
- if (terraProfileLoginStatus.isSupported) {
178
- return terraTOSLoginStatus.isSuccess;
179
- }
180
- return userProfileLoginStatus.isSuccess;
181
- }
@@ -1,142 +0,0 @@
1
- import { jest } from "@jest/globals";
2
- import { LOGIN_STATUS_NOT_STARTED } from "../src/hooks/useAuthentication/common/constants";
3
- import {
4
- LoginStatus,
5
- REQUEST_STATUS,
6
- } from "../src/hooks/useAuthentication/common/entities";
7
- import { GoogleResponse } from "../src/hooks/useAuthentication/useFetchGoogleProfile";
8
- import { TerraResponse } from "../src/hooks/useAuthentication/useFetchTerraProfile";
9
- import { TerraTermsOfServiceResponse } from "../src/hooks/useAuthentication/useFetchTerraTermsOfService";
10
-
11
- jest.unstable_mockModule("react-idle-timer", () => ({
12
- useIdleTimer: jest.fn(),
13
- }));
14
-
15
- const { shouldReleaseToken } = await import("../src/providers/authentication");
16
-
17
- describe("authentication", () => {
18
- // Boolean constants.
19
- const IS_NOT_SUCCESS = false;
20
- const IS_NOT_SUPPORTED = false;
21
- const IS_SUCCESS = true;
22
- const IS_SUPPORTED = true;
23
- // Response objects.
24
- const GOOGLE_RESPONSE = {} as GoogleResponse;
25
- const TERRA_RESPONSE = {} as TerraResponse;
26
- const TERRA_TOS_RESPONSE = {} as TerraTermsOfServiceResponse;
27
- // Login statuses - not started, not supported.
28
- const LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA: LoginStatus<TerraResponse> =
29
- {
30
- isSuccess: IS_NOT_SUCCESS,
31
- isSupported: IS_NOT_SUPPORTED,
32
- requestStatus: REQUEST_STATUS.NOT_STARTED,
33
- response: TERRA_RESPONSE,
34
- };
35
- const LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS: LoginStatus<TerraTermsOfServiceResponse> =
36
- {
37
- isSuccess: IS_NOT_SUCCESS,
38
- isSupported: IS_NOT_SUPPORTED,
39
- requestStatus: REQUEST_STATUS.NOT_STARTED,
40
- response: TERRA_TOS_RESPONSE,
41
- };
42
- // Login statuses - not started, supported.
43
- const LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA =
44
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraResponse>;
45
- const LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA_TOS =
46
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraTermsOfServiceResponse>;
47
- const LOGIN_STATUS_NOT_STARTED_SUPPORTED_USER_PROFILE =
48
- LOGIN_STATUS_NOT_STARTED as LoginStatus<GoogleResponse>;
49
- // Login statuses - completed, not successful.
50
- const LOGIN_STATUS_COMPLETED_NOT_SUCCESS_TERRA_TOS: LoginStatus<TerraTermsOfServiceResponse> =
51
- {
52
- isSuccess: IS_NOT_SUCCESS,
53
- isSupported: IS_SUPPORTED,
54
- requestStatus: REQUEST_STATUS.COMPLETED,
55
- response: TERRA_TOS_RESPONSE,
56
- };
57
- const LOGIN_STATUS_COMPLETED_NOT_SUCCESS_USER_PROFILE: LoginStatus<GoogleResponse> =
58
- {
59
- isSuccess: IS_NOT_SUCCESS,
60
- isSupported: IS_SUPPORTED,
61
- requestStatus: REQUEST_STATUS.COMPLETED,
62
- response: GOOGLE_RESPONSE,
63
- };
64
- // Login statuses - completed, successful.
65
- const LOGIN_STATUS_COMPLETED_SUCCESS_TERRA: LoginStatus<TerraResponse> = {
66
- isSuccess: IS_SUCCESS,
67
- isSupported: IS_SUPPORTED,
68
- requestStatus: REQUEST_STATUS.COMPLETED,
69
- response: TERRA_RESPONSE,
70
- };
71
- const LOGIN_STATUS_COMPLETED_SUCCESS_TERRA_TOS: LoginStatus<TerraTermsOfServiceResponse> =
72
- {
73
- isSuccess: IS_SUCCESS,
74
- isSupported: IS_SUPPORTED,
75
- requestStatus: REQUEST_STATUS.COMPLETED,
76
- response: TERRA_TOS_RESPONSE,
77
- };
78
- const LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE: LoginStatus<GoogleResponse> =
79
- {
80
- isSuccess: IS_SUCCESS,
81
- isSupported: IS_SUPPORTED,
82
- requestStatus: REQUEST_STATUS.COMPLETED,
83
- response: GOOGLE_RESPONSE,
84
- };
85
-
86
- describe("Should Release Token", () => {
87
- describe("shouldReleaseToken", () => {
88
- describe("Terra endpoint is configured", () => {
89
- test("login not started", () => {
90
- const releaseToken = shouldReleaseToken(
91
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_USER_PROFILE,
92
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA,
93
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA_TOS
94
- );
95
- expect(releaseToken).toBeFalsy();
96
- });
97
- test("login completed and Terra terms of service is not successful", () => {
98
- const releaseToken = shouldReleaseToken(
99
- LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE,
100
- LOGIN_STATUS_COMPLETED_SUCCESS_TERRA,
101
- LOGIN_STATUS_COMPLETED_NOT_SUCCESS_TERRA_TOS
102
- );
103
- expect(releaseToken).toBeFalsy();
104
- });
105
- test("login completed and Terra terms of service is successful", () => {
106
- const releaseToken = shouldReleaseToken(
107
- LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE,
108
- LOGIN_STATUS_COMPLETED_SUCCESS_TERRA,
109
- LOGIN_STATUS_COMPLETED_SUCCESS_TERRA_TOS
110
- );
111
- expect(releaseToken).toBeTruthy();
112
- });
113
- });
114
- describe("Terra endpoint is not configured", () => {
115
- test("login not started", () => {
116
- const releaseToken = shouldReleaseToken(
117
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_USER_PROFILE,
118
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA,
119
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS
120
- );
121
- expect(releaseToken).toBeFalsy();
122
- });
123
- test("user profile is not successful", () => {
124
- const releaseToken = shouldReleaseToken(
125
- LOGIN_STATUS_COMPLETED_NOT_SUCCESS_USER_PROFILE,
126
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA,
127
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS
128
- );
129
- expect(releaseToken).toBeFalsy();
130
- });
131
- test("user profile is successful", () => {
132
- const releaseToken = shouldReleaseToken(
133
- LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE,
134
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA,
135
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS
136
- );
137
- expect(releaseToken).toBeTruthy();
138
- });
139
- });
140
- });
141
- });
142
- });
@@ -1,155 +0,0 @@
1
- import {
2
- LOGIN_STATUS_NOT_STARTED,
3
- LOGIN_STATUS_NOT_SUPPORTED,
4
- } from "../src/hooks/useAuthentication/common/constants";
5
- import {
6
- AUTHENTICATION_STATUS,
7
- LoginResponse,
8
- LoginStatus,
9
- REQUEST_STATUS,
10
- } from "../src/hooks/useAuthentication/common/entities";
11
- import { getAuthenticationStatus } from "../src/hooks/useAuthentication/useAuthenticationStatus";
12
-
13
- const TEST_LOGIN_IS_COMPLETE = "login is complete";
14
- const TEST_LOGIN_NOT_STARTED = "login not started";
15
- const TEST_USER_PROFILE_AND_TERRA_AND_TOS_IS_COMPLETE =
16
- "user profile, terra and terms of service is complete";
17
- const TEST_USER_PROFILE_AND_TERRA_IS_COMPLETE =
18
- "user profile and terra is complete";
19
- const TEST_USER_PROFILE_IS_COMPLETE = "user profile is complete";
20
-
21
- describe("useAuthenticationStatus", () => {
22
- // Login statuses - completed, successful.
23
- const LOGIN_STATUS_COMPLETED_SUCCESS: LoginStatus<LoginResponse> = {
24
- isSuccess: true,
25
- isSupported: true,
26
- requestStatus: REQUEST_STATUS.COMPLETED,
27
- response: {} as LoginResponse,
28
- };
29
-
30
- describe("Calculate Authentication Status", () => {
31
- describe("getAuthenticationStatus", () => {
32
- describe("endpoints are configured", () => {
33
- test(TEST_LOGIN_NOT_STARTED, () => {
34
- const authenticationStatus = getAuthenticationStatus([
35
- LOGIN_STATUS_NOT_STARTED,
36
- LOGIN_STATUS_NOT_STARTED,
37
- LOGIN_STATUS_NOT_STARTED,
38
- LOGIN_STATUS_NOT_STARTED,
39
- ]);
40
- expect(authenticationStatus).toEqual(
41
- AUTHENTICATION_STATUS.INCOMPLETE
42
- );
43
- });
44
- test(TEST_USER_PROFILE_IS_COMPLETE, () => {
45
- const authenticationStatus = getAuthenticationStatus([
46
- LOGIN_STATUS_NOT_STARTED,
47
- LOGIN_STATUS_NOT_STARTED,
48
- LOGIN_STATUS_NOT_STARTED,
49
- LOGIN_STATUS_COMPLETED_SUCCESS,
50
- ]);
51
- expect(authenticationStatus).toEqual(
52
- AUTHENTICATION_STATUS.INCOMPLETE
53
- );
54
- });
55
- test(TEST_USER_PROFILE_AND_TERRA_IS_COMPLETE, () => {
56
- const authenticationStatus = getAuthenticationStatus([
57
- LOGIN_STATUS_NOT_STARTED,
58
- LOGIN_STATUS_COMPLETED_SUCCESS,
59
- LOGIN_STATUS_NOT_STARTED,
60
- LOGIN_STATUS_COMPLETED_SUCCESS,
61
- ]);
62
- expect(authenticationStatus).toEqual(
63
- AUTHENTICATION_STATUS.INCOMPLETE
64
- );
65
- });
66
- test(TEST_USER_PROFILE_AND_TERRA_AND_TOS_IS_COMPLETE, () => {
67
- const authenticationStatus = getAuthenticationStatus([
68
- LOGIN_STATUS_NOT_STARTED,
69
- LOGIN_STATUS_COMPLETED_SUCCESS,
70
- LOGIN_STATUS_COMPLETED_SUCCESS,
71
- LOGIN_STATUS_COMPLETED_SUCCESS,
72
- ]);
73
- expect(authenticationStatus).toEqual(
74
- AUTHENTICATION_STATUS.INCOMPLETE
75
- );
76
- });
77
- test(TEST_LOGIN_IS_COMPLETE, () => {
78
- const authenticationStatus = getAuthenticationStatus([
79
- LOGIN_STATUS_COMPLETED_SUCCESS,
80
- LOGIN_STATUS_COMPLETED_SUCCESS,
81
- LOGIN_STATUS_COMPLETED_SUCCESS,
82
- LOGIN_STATUS_COMPLETED_SUCCESS,
83
- ]);
84
- expect(authenticationStatus).toEqual(AUTHENTICATION_STATUS.COMPLETED);
85
- });
86
- });
87
- describe("NIH endpoint is not configured", () => {
88
- test(TEST_LOGIN_NOT_STARTED, () => {
89
- const authenticationStatus = getAuthenticationStatus([
90
- LOGIN_STATUS_NOT_SUPPORTED,
91
- LOGIN_STATUS_NOT_STARTED,
92
- LOGIN_STATUS_NOT_STARTED,
93
- LOGIN_STATUS_NOT_STARTED,
94
- ]);
95
- expect(authenticationStatus).toEqual(
96
- AUTHENTICATION_STATUS.INCOMPLETE
97
- );
98
- });
99
- test(TEST_USER_PROFILE_IS_COMPLETE, () => {
100
- const authenticationStatus = getAuthenticationStatus([
101
- LOGIN_STATUS_NOT_SUPPORTED,
102
- LOGIN_STATUS_NOT_STARTED,
103
- LOGIN_STATUS_NOT_STARTED,
104
- LOGIN_STATUS_COMPLETED_SUCCESS,
105
- ]);
106
- expect(authenticationStatus).toEqual(
107
- AUTHENTICATION_STATUS.INCOMPLETE
108
- );
109
- });
110
- test(TEST_USER_PROFILE_AND_TERRA_IS_COMPLETE, () => {
111
- const authenticationStatus = getAuthenticationStatus([
112
- LOGIN_STATUS_NOT_SUPPORTED,
113
- LOGIN_STATUS_COMPLETED_SUCCESS,
114
- LOGIN_STATUS_NOT_STARTED,
115
- LOGIN_STATUS_COMPLETED_SUCCESS,
116
- ]);
117
- expect(authenticationStatus).toEqual(
118
- AUTHENTICATION_STATUS.INCOMPLETE
119
- );
120
- });
121
- test(TEST_LOGIN_IS_COMPLETE, () => {
122
- const authenticationStatus = getAuthenticationStatus([
123
- LOGIN_STATUS_NOT_SUPPORTED,
124
- LOGIN_STATUS_COMPLETED_SUCCESS,
125
- LOGIN_STATUS_COMPLETED_SUCCESS,
126
- LOGIN_STATUS_COMPLETED_SUCCESS,
127
- ]);
128
- expect(authenticationStatus).toEqual(AUTHENTICATION_STATUS.COMPLETED);
129
- });
130
- });
131
- describe("Terra endpoint is not configured", () => {
132
- test(TEST_LOGIN_NOT_STARTED, () => {
133
- const authenticationStatus = getAuthenticationStatus([
134
- LOGIN_STATUS_NOT_SUPPORTED,
135
- LOGIN_STATUS_NOT_SUPPORTED,
136
- LOGIN_STATUS_NOT_SUPPORTED,
137
- LOGIN_STATUS_NOT_STARTED,
138
- ]);
139
- expect(authenticationStatus).toEqual(
140
- AUTHENTICATION_STATUS.INCOMPLETE
141
- );
142
- });
143
- test(TEST_LOGIN_IS_COMPLETE, () => {
144
- const authenticationStatus = getAuthenticationStatus([
145
- LOGIN_STATUS_NOT_SUPPORTED,
146
- LOGIN_STATUS_NOT_SUPPORTED,
147
- LOGIN_STATUS_NOT_SUPPORTED,
148
- LOGIN_STATUS_COMPLETED_SUCCESS,
149
- ]);
150
- expect(authenticationStatus).toEqual(AUTHENTICATION_STATUS.COMPLETED);
151
- });
152
- });
153
- });
154
- });
155
- });