@databiosphere/findable-ui 50.7.1 → 51.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 (196) hide show
  1. package/lib/auth/constants/auth.d.ts +5 -0
  2. package/lib/{providers/authentication/auth/constants.js → auth/constants/auth.js} +4 -1
  3. package/lib/auth/constants/authentication.d.ts +5 -0
  4. package/lib/{providers/authentication/authentication/constants.js → auth/constants/authentication.js} +4 -1
  5. package/lib/auth/constants/credentials.d.ts +5 -0
  6. package/lib/{providers/authentication/credentials/constants.js → auth/constants/credentials.js} +3 -0
  7. package/lib/auth/constants/token.d.ts +5 -0
  8. package/lib/{providers/authentication/token/constants.js → auth/constants/token.js} +3 -0
  9. package/lib/{providers/authentication/auth/context.d.ts → auth/contexts/auth.d.ts} +4 -1
  10. package/lib/{providers/authentication/auth/context.js → auth/contexts/auth.js} +4 -1
  11. package/lib/auth/contexts/authentication.d.ts +5 -0
  12. package/lib/{providers/authentication/authentication/context.js → auth/contexts/authentication.js} +4 -1
  13. package/lib/auth/contexts/credentials.d.ts +5 -0
  14. package/lib/{providers/authentication/credentials/context.js → auth/contexts/credentials.js} +4 -1
  15. package/lib/{providers/authentication/auth/dispatch.d.ts → auth/dispatch/auth.d.ts} +2 -2
  16. package/lib/{providers/authentication/auth/dispatch.js → auth/dispatch/auth.js} +2 -2
  17. package/lib/{providers/authentication/authentication/dispatch.d.ts → auth/dispatch/authentication.d.ts} +2 -2
  18. package/lib/{providers/authentication/authentication/dispatch.js → auth/dispatch/authentication.js} +2 -2
  19. package/lib/auth/dispatch/credentials.d.ts +12 -0
  20. package/lib/{providers/authentication/credentials/dispatch.js → auth/dispatch/credentials.js} +3 -3
  21. package/lib/{providers/authentication/token/dispatch.d.ts → auth/dispatch/token.d.ts} +3 -3
  22. package/lib/{providers/authentication/token/dispatch.js → auth/dispatch/token.js} +3 -3
  23. package/lib/{providers/authentication/auth/hook.d.ts → auth/hooks/useAuth.d.ts} +1 -1
  24. package/lib/{providers/authentication/auth/hook.js → auth/hooks/useAuth.js} +1 -1
  25. package/lib/auth/hooks/useAuthReducer.d.ts +7 -0
  26. package/lib/auth/hooks/useAuthReducer.js +13 -0
  27. package/lib/{providers/authentication/authentication/hook.d.ts → auth/hooks/useAuthentication.d.ts} +1 -1
  28. package/lib/{providers/authentication/authentication/hook.js → auth/hooks/useAuthentication.js} +1 -1
  29. package/lib/auth/hooks/useAuthenticationReducer.d.ts +7 -0
  30. package/lib/auth/hooks/useAuthenticationReducer.js +13 -0
  31. package/lib/{providers/authentication/credentials/hook.d.ts → auth/hooks/useCredentials.d.ts} +1 -1
  32. package/lib/{providers/authentication/credentials/hook.js → auth/hooks/useCredentials.js} +1 -1
  33. package/lib/auth/hooks/useCredentialsReducer.d.ts +6 -0
  34. package/lib/{hooks/authentication/credentials → auth/hooks}/useCredentialsReducer.js +6 -2
  35. package/lib/{providers/authentication/auth/reducer.d.ts → auth/reducers/auth.d.ts} +1 -1
  36. package/lib/{providers/authentication/auth/reducer.js → auth/reducers/auth.js} +13 -2
  37. package/lib/{providers/authentication/authentication/reducer.d.ts → auth/reducers/authentication.d.ts} +1 -1
  38. package/lib/{providers/authentication/authentication/reducer.js → auth/reducers/authentication.js} +13 -2
  39. package/lib/{providers/authentication/credentials/reducer.d.ts → auth/reducers/credentials.d.ts} +1 -1
  40. package/lib/{providers/authentication/credentials/reducer.js → auth/reducers/credentials.js} +14 -3
  41. package/lib/{providers/authentication/token/reducer.d.ts → auth/reducers/token.d.ts} +1 -1
  42. package/lib/{providers/authentication/token/reducer.js → auth/reducers/token.js} +2 -2
  43. package/lib/{providers/authentication/auth/types.d.ts → auth/types/auth.d.ts} +41 -5
  44. package/lib/{providers/authentication/auth/types.js → auth/types/auth.js} +6 -0
  45. package/lib/{providers/authentication/authentication/types.d.ts → auth/types/authentication.d.ts} +46 -4
  46. package/lib/{providers/authentication/authentication/types.js → auth/types/authentication.js} +6 -0
  47. package/lib/auth/types/common.d.ts +4 -0
  48. package/lib/{providers/authentication/credentials/types.d.ts → auth/types/credentials.d.ts} +31 -4
  49. package/lib/{providers/authentication/credentials/types.js → auth/types/credentials.js} +3 -0
  50. package/lib/auth/types/loginProvider.d.ts +11 -0
  51. package/lib/{providers/authentication/token/types.d.ts → auth/types/token.d.ts} +29 -5
  52. package/lib/{providers/authentication/token/types.js → auth/types/token.js} +3 -0
  53. package/lib/common/entities.d.ts +11 -1
  54. package/lib/common/entities.js +6 -0
  55. package/lib/components/ComponentCreator/ComponentCreator.js +1 -1
  56. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +1 -1
  57. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +2 -2
  58. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +1 -1
  59. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +1 -1
  60. package/lib/components/Login/components/Buttons/buttons.d.ts +1 -1
  61. package/lib/components/Login/components/Buttons/buttons.js +1 -1
  62. package/lib/components/Login/components/Buttons/types.d.ts +5 -5
  63. package/lib/components/Login/hooks/useUserLogin/types.d.ts +1 -1
  64. package/lib/components/Login/hooks/useUserLogin/useUserLogin.js +1 -1
  65. package/lib/components/Login/login.d.ts +1 -1
  66. package/lib/components/Login/login.js +1 -1
  67. package/lib/components/Login/types.d.ts +3 -4
  68. package/lib/config/entities.d.ts +3 -3
  69. package/lib/google/config.d.ts +7 -0
  70. package/lib/google/config.js +14 -0
  71. package/lib/google/constants.d.ts +16 -0
  72. package/lib/google/constants.js +24 -0
  73. package/lib/google/hooks/useGoogleSignInService.d.ts +8 -0
  74. package/lib/{providers/googleSignInAuthentication → google}/hooks/useGoogleSignInService.js +7 -2
  75. package/lib/{hooks/authentication/token → google/hooks}/useTokenReducer.d.ts +2 -1
  76. package/lib/{hooks/authentication/token → google/hooks}/useTokenReducer.js +3 -2
  77. package/lib/google/provider.d.ts +11 -0
  78. package/lib/{providers/googleSignInAuthentication → google}/provider.js +19 -11
  79. package/lib/google/service.d.ts +18 -0
  80. package/lib/{providers/googleSignInAuthentication/service → google}/service.js +20 -9
  81. package/lib/google/session-controller.d.ts +11 -0
  82. package/lib/{components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js → google/session-controller.js} +14 -6
  83. package/lib/google/types.d.ts +58 -0
  84. package/lib/{providers/authentication/authentication/utils.d.ts → google/utils/auth.d.ts} +6 -0
  85. package/lib/{providers/authentication/authentication/utils.js → google/utils/auth.js} +10 -0
  86. package/lib/{providers/googleSignInAuthentication/profile/utils.d.ts → google/utils/profile.d.ts} +2 -2
  87. package/lib/{providers/googleSignInAuthentication/profile/utils.js → google/utils/profile.js} +1 -1
  88. package/lib/hooks/authentication/profile/types.d.ts +1 -1
  89. package/lib/hooks/authentication/profile/useProfile.js +3 -3
  90. package/lib/hooks/authentication/providers/types.d.ts +1 -1
  91. package/lib/hooks/authentication/session/useSessionActive.d.ts +2 -2
  92. package/lib/hooks/authentication/session/useSessionActive.js +2 -2
  93. package/lib/hooks/authentication/terra/useAuthenticationForm.js +1 -1
  94. package/lib/hooks/authentication/terra/useAuthenticationNIHExpiry.js +2 -2
  95. package/lib/hooks/authentication/token/types.d.ts +1 -1
  96. package/lib/hooks/authentication/token/useToken.js +1 -1
  97. package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/constants.d.ts +8 -2
  98. package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/constants.js +8 -2
  99. package/lib/nextauth/hooks/useNextAuthService.d.ts +6 -0
  100. package/lib/{providers/nextAuthAuthentication → nextauth}/hooks/useNextAuthService.js +7 -3
  101. package/lib/nextauth/provider.d.ts +12 -0
  102. package/lib/{providers/nextAuthAuthentication → nextauth}/provider.js +16 -7
  103. package/lib/nextauth/service.d.ts +20 -0
  104. package/lib/{providers/nextAuthAuthentication/service → nextauth}/service.js +14 -0
  105. package/lib/nextauth/session-controller.d.ts +10 -0
  106. package/lib/{components/Authentication/components/SessionController/components/NextSessionController/SessionController.js → nextauth/session-controller.js} +11 -4
  107. package/lib/{providers/nextAuthAuthentication → nextauth}/types.d.ts +9 -0
  108. package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/utils.d.ts +2 -2
  109. package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/utils.js +2 -2
  110. package/lib/providers/loginGuard/provider.js +1 -1
  111. package/lib/terra/constants.d.ts +28 -0
  112. package/lib/{providers/authentication/terra/hooks/common → terra}/constants.js +16 -1
  113. package/lib/terra/context.d.ts +5 -0
  114. package/lib/{providers/authentication/terra → terra}/context.js +4 -1
  115. package/lib/{providers/authentication/terra → terra}/hooks/useFetchProfiles.d.ts +12 -4
  116. package/lib/{providers/authentication/terra → terra}/hooks/useFetchProfiles.js +9 -4
  117. package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraNIHProfile.d.ts +2 -6
  118. package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraNIHProfile.js +4 -5
  119. package/lib/terra/hooks/useFetchTerraProfile.d.ts +10 -0
  120. package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraProfile.js +4 -5
  121. package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraTermsOfService.d.ts +2 -7
  122. package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraTermsOfService.js +4 -5
  123. package/lib/{providers/authentication/terra/hook.d.ts → terra/hooks/useTerraProfile.d.ts} +1 -1
  124. package/lib/{providers/authentication/terra/hook.js → terra/hooks/useTerraProfile.js} +1 -1
  125. package/lib/terra/provider.d.ts +10 -0
  126. package/lib/{providers/authentication/terra → terra}/provider.js +13 -6
  127. package/lib/terra/types/common.d.ts +50 -0
  128. package/lib/terra/types/common.js +19 -0
  129. package/lib/terra/types/context.d.ts +12 -0
  130. package/lib/terra/types/terra-nih.d.ts +8 -0
  131. package/lib/{providers/authentication/terra/hooks/useFetchTerraProfile.d.ts → terra/types/terra-profile.d.ts} +9 -8
  132. package/lib/terra/types/terra-tos.d.ts +9 -0
  133. package/lib/terra/types/terra-tos.js +1 -0
  134. package/lib/terra/utils.d.ts +47 -0
  135. package/lib/{providers/authentication/terra → terra}/utils.js +45 -2
  136. package/lib/views/LoginView/loginView.d.ts +2 -2
  137. package/package.json +15 -1
  138. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +0 -3
  139. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +0 -6
  140. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +0 -3
  141. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +0 -4
  142. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +0 -2
  143. package/lib/hooks/authentication/auth/useAuthReducer.js +0 -8
  144. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +0 -2
  145. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +0 -8
  146. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +0 -2
  147. package/lib/providers/authentication/auth/actions.d.ts +0 -8
  148. package/lib/providers/authentication/auth/actions.js +0 -12
  149. package/lib/providers/authentication/auth/constants.d.ts +0 -2
  150. package/lib/providers/authentication/authentication/actions.d.ts +0 -8
  151. package/lib/providers/authentication/authentication/actions.js +0 -12
  152. package/lib/providers/authentication/authentication/constants.d.ts +0 -2
  153. package/lib/providers/authentication/authentication/context.d.ts +0 -2
  154. package/lib/providers/authentication/common/types.d.ts +0 -1
  155. package/lib/providers/authentication/credentials/actions.d.ts +0 -8
  156. package/lib/providers/authentication/credentials/actions.js +0 -12
  157. package/lib/providers/authentication/credentials/constants.d.ts +0 -2
  158. package/lib/providers/authentication/credentials/context.d.ts +0 -2
  159. package/lib/providers/authentication/credentials/dispatch.d.ts +0 -12
  160. package/lib/providers/authentication/terra/context.d.ts +0 -2
  161. package/lib/providers/authentication/terra/hooks/common/constants.d.ts +0 -6
  162. package/lib/providers/authentication/terra/hooks/common/entities.d.ts +0 -21
  163. package/lib/providers/authentication/terra/hooks/common/entities.js +0 -7
  164. package/lib/providers/authentication/terra/hooks/common/utils.d.ts +0 -15
  165. package/lib/providers/authentication/terra/hooks/common/utils.js +0 -25
  166. package/lib/providers/authentication/terra/hooks/utils.d.ts +0 -16
  167. package/lib/providers/authentication/terra/hooks/utils.js +0 -19
  168. package/lib/providers/authentication/terra/provider.d.ts +0 -3
  169. package/lib/providers/authentication/terra/types.d.ts +0 -20
  170. package/lib/providers/authentication/terra/types.js +0 -6
  171. package/lib/providers/authentication/terra/utils.d.ts +0 -19
  172. package/lib/providers/authentication/token/constants.d.ts +0 -2
  173. package/lib/providers/googleSignInAuthentication/common/types.d.ts +0 -17
  174. package/lib/providers/googleSignInAuthentication/constants.d.ts +0 -4
  175. package/lib/providers/googleSignInAuthentication/constants.js +0 -12
  176. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +0 -3
  177. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +0 -14
  178. package/lib/providers/googleSignInAuthentication/provider.d.ts +0 -3
  179. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +0 -4
  180. package/lib/providers/googleSignInAuthentication/service/constants.js +0 -9
  181. package/lib/providers/googleSignInAuthentication/service/service.d.ts +0 -6
  182. package/lib/providers/googleSignInAuthentication/types.d.ts +0 -6
  183. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +0 -2
  184. package/lib/providers/nextAuthAuthentication/provider.d.ts +0 -3
  185. package/lib/providers/nextAuthAuthentication/service/service.d.ts +0 -6
  186. /package/lib/{hooks/authentication/session → auth/hooks}/useSessionIdleTimer.d.ts +0 -0
  187. /package/lib/{hooks/authentication/session → auth/hooks}/useSessionIdleTimer.js +0 -0
  188. /package/lib/{components/Authentication/components/SessionController/components/GoogleSessionController/types.js → auth/types/common.js} +0 -0
  189. /package/lib/{components/Authentication/components/SessionController/components/NextSessionController/types.js → auth/types/loginProvider.js} +0 -0
  190. /package/lib/{providers/authentication/common/utils.d.ts → auth/utils/initializer.d.ts} +0 -0
  191. /package/lib/{providers/authentication/common/utils.js → auth/utils/initializer.js} +0 -0
  192. /package/lib/{providers/authentication/common → google}/types.js +0 -0
  193. /package/lib/{providers/googleSignInAuthentication/common → nextauth}/types.js +0 -0
  194. /package/lib/{providers/googleSignInAuthentication/profile/types.js → terra/types/context.js} +0 -0
  195. /package/lib/{providers/googleSignInAuthentication/types.js → terra/types/terra-nih.js} +0 -0
  196. /package/lib/{providers/nextAuthAuthentication/types.js → terra/types/terra-profile.js} +0 -0
@@ -1,46 +1,88 @@
1
1
  import { Dispatch } from "react";
2
+ /**
3
+ * Authentication status enum.
4
+ */
2
5
  export declare enum AUTHENTICATION_STATUS {
3
6
  PENDING = "PENDING",
4
7
  SETTLED = "SETTLED"
5
8
  }
6
- export type AuthenticationAction = RequestAuthenticationAction | ResetStateAction | UpdateAuthenticationAction;
9
+ /**
10
+ * Authentication action type - union of all possible authentication actions.
11
+ */
12
+ export type AuthenticationAction = RequestAuthenticationAction | AuthenticationResetStateAction | UpdateAuthenticationAction;
13
+ /**
14
+ * Authentication action kinds.
15
+ */
7
16
  export declare enum AuthenticationActionKind {
8
17
  RequestAuthentication = "REQUEST_AUTHENTICATION",
9
18
  ResetState = "RESET_STATE",
10
19
  UpdateAuthentication = "UPDATE_AUTHENTICATION"
11
20
  }
21
+ /**
22
+ * Authentication context properties.
23
+ */
12
24
  export interface AuthenticationContextProps {
13
25
  authenticationDispatch: Dispatch<AuthenticationAction> | null;
14
26
  authenticationState: AuthenticationState;
15
27
  }
28
+ /**
29
+ * Authentication state.
30
+ */
16
31
  export interface AuthenticationState {
17
32
  initialState?: AuthenticationState;
18
33
  profile: Profile<UserProfile>;
19
34
  status: AUTHENTICATION_STATUS;
20
35
  }
36
+ /**
37
+ * Base profile interface.
38
+ */
21
39
  export interface BaseProfile {
22
40
  id?: string;
23
41
  name: string;
24
42
  }
43
+ /**
44
+ * Profile type - can be undefined.
45
+ */
25
46
  export type Profile<P extends BaseProfile> = P | undefined;
47
+ /**
48
+ * Request authentication action.
49
+ */
26
50
  export type RequestAuthenticationAction = {
27
51
  payload: RequestAuthenticationPayload;
28
52
  type: AuthenticationActionKind.RequestAuthentication;
29
53
  };
54
+ /**
55
+ * Request authentication payload.
56
+ */
30
57
  export type RequestAuthenticationPayload = undefined;
31
- export type ResetStateAction = {
32
- payload: ResetStatePayload;
58
+ /**
59
+ * Authentication reset state action.
60
+ */
61
+ export type AuthenticationResetStateAction = {
62
+ payload: AuthenticationResetStatePayload;
33
63
  type: AuthenticationActionKind.ResetState;
34
64
  };
35
- export type ResetStatePayload = undefined;
65
+ /**
66
+ * Authentication reset state payload.
67
+ */
68
+ export type AuthenticationResetStatePayload = undefined;
69
+ /**
70
+ * Update authentication action.
71
+ */
36
72
  export type UpdateAuthenticationAction = {
37
73
  payload: UpdateAuthenticationPayload;
38
74
  type: AuthenticationActionKind.UpdateAuthentication;
39
75
  };
76
+ /**
77
+ * Update authentication payload.
78
+ */
40
79
  export interface UpdateAuthenticationPayload {
41
80
  profile?: Profile<UserProfile>;
42
81
  status?: AUTHENTICATION_STATUS;
43
82
  }
83
+ /**
84
+ * User profile interface.
85
+ */
44
86
  export interface UserProfile extends BaseProfile {
45
87
  email: string;
46
88
  image?: string;
@@ -1,8 +1,14 @@
1
+ /**
2
+ * Authentication status enum.
3
+ */
1
4
  export var AUTHENTICATION_STATUS;
2
5
  (function (AUTHENTICATION_STATUS) {
3
6
  AUTHENTICATION_STATUS["PENDING"] = "PENDING";
4
7
  AUTHENTICATION_STATUS["SETTLED"] = "SETTLED";
5
8
  })(AUTHENTICATION_STATUS || (AUTHENTICATION_STATUS = {}));
9
+ /**
10
+ * Authentication action kinds.
11
+ */
6
12
  export var AuthenticationActionKind;
7
13
  (function (AuthenticationActionKind) {
8
14
  AuthenticationActionKind["RequestAuthentication"] = "REQUEST_AUTHENTICATION";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Provider identifier type.
3
+ */
4
+ export type ProviderId = string;
@@ -1,24 +1,51 @@
1
1
  import { Dispatch } from "react";
2
+ /**
3
+ * Credentials type.
4
+ */
2
5
  export type Credentials<C = string | undefined> = C;
3
- export type CredentialsAction = ResetStateAction | UpdateCredentialsAction;
6
+ /**
7
+ * Credentials action type - union of all possible credentials actions.
8
+ */
9
+ export type CredentialsAction = CredentialsResetStateAction | UpdateCredentialsAction;
10
+ /**
11
+ * Credentials action kinds.
12
+ */
4
13
  export declare enum CredentialsActionKind {
5
14
  ResetState = "RESET_STATE",
6
15
  UpdateCredentials = "STORE_CREDENTIALS"
7
16
  }
17
+ /**
18
+ * Credentials context properties.
19
+ */
8
20
  export interface CredentialsContextProps {
9
21
  credentialsDispatch: Dispatch<CredentialsAction> | null;
10
22
  credentialsState: CredentialsState;
11
23
  }
24
+ /**
25
+ * Credentials state.
26
+ */
12
27
  export interface CredentialsState {
13
28
  credentials: Credentials;
14
29
  }
15
- export type ResetStateAction = {
16
- payload: ResetStatePayload;
30
+ /**
31
+ * Credentials reset state action.
32
+ */
33
+ export type CredentialsResetStateAction = {
34
+ payload: CredentialsResetStatePayload;
17
35
  type: CredentialsActionKind.ResetState;
18
36
  };
19
- export type ResetStatePayload = undefined;
37
+ /**
38
+ * Credentials reset state payload.
39
+ */
40
+ export type CredentialsResetStatePayload = undefined;
41
+ /**
42
+ * Update credentials action.
43
+ */
20
44
  export type UpdateCredentialsAction = {
21
45
  payload: UpdateCredentialsPayload;
22
46
  type: CredentialsActionKind.UpdateCredentials;
23
47
  };
48
+ /**
49
+ * Update credentials payload.
50
+ */
24
51
  export type UpdateCredentialsPayload = Credentials;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Credentials action kinds.
3
+ */
1
4
  export var CredentialsActionKind;
2
5
  (function (CredentialsActionKind) {
3
6
  CredentialsActionKind["ResetState"] = "RESET_STATE";
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from "react";
2
+ import { ProviderId } from "./common";
3
+ /**
4
+ * Login provider interface - provider-agnostic representation of an auth provider.
5
+ * This is used by Login components instead of NextAuth's ClientSafeProvider.
6
+ */
7
+ export interface LoginProvider {
8
+ icon?: ReactNode;
9
+ id: ProviderId;
10
+ name: string;
11
+ }
@@ -1,27 +1,51 @@
1
1
  import { Dispatch } from "react";
2
- import { ProviderId } from "../common/types";
3
- export interface ResetStateAction {
4
- payload: ResetStatePayload;
2
+ import { ProviderId } from "./common";
3
+ /**
4
+ * Token reset state action.
5
+ */
6
+ export interface TokenResetStateAction {
7
+ payload: TokenResetStatePayload;
5
8
  type: TokenActionKind.ResetState;
6
9
  }
7
- export type ResetStatePayload = undefined;
8
- export type TokenAction = ResetStateAction | UpdateTokenAction;
10
+ /**
11
+ * Token reset state payload.
12
+ */
13
+ export type TokenResetStatePayload = undefined;
14
+ /**
15
+ * Token action type - union of all possible token actions.
16
+ */
17
+ export type TokenAction = TokenResetStateAction | UpdateTokenAction;
18
+ /**
19
+ * Token action kinds.
20
+ */
9
21
  export declare enum TokenActionKind {
10
22
  ResetState = "RESET_TOKEN",
11
23
  UpdateToken = "UPDATE_TOKEN"
12
24
  }
25
+ /**
26
+ * Token context properties.
27
+ */
13
28
  export interface TokenContextProps {
14
29
  tokenDispatch: Dispatch<TokenAction> | null;
15
30
  tokenState: TokenState;
16
31
  }
32
+ /**
33
+ * Token state.
34
+ */
17
35
  export interface TokenState {
18
36
  providerId: ProviderId | undefined;
19
37
  token: string | undefined;
20
38
  }
39
+ /**
40
+ * Update token action.
41
+ */
21
42
  export interface UpdateTokenAction {
22
43
  payload: UpdateTokenPayload;
23
44
  type: TokenActionKind.UpdateToken;
24
45
  }
46
+ /**
47
+ * Update token payload.
48
+ */
25
49
  export interface UpdateTokenPayload {
26
50
  providerId: ProviderId | undefined;
27
51
  token: string | undefined;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Token action kinds.
3
+ */
1
4
  export var TokenActionKind;
2
5
  (function (TokenActionKind) {
3
6
  TokenActionKind["ResetState"] = "RESET_TOKEN";
@@ -12,7 +12,7 @@ export interface Attribute {
12
12
  name: string;
13
13
  range: string;
14
14
  rationale?: string;
15
- required: boolean;
15
+ required: RequirementLevel;
16
16
  title: string;
17
17
  values?: string;
18
18
  }
@@ -103,6 +103,16 @@ export interface Pagination {
103
103
  * Possible pagination direction values.
104
104
  */
105
105
  export type PaginationDirectionType = "next" | "prev";
106
+ /**
107
+ * Requirement level for an attribute.
108
+ */
109
+ export declare const REQUIREMENT_LEVEL: {
110
+ readonly STRONGLY_RECOMMENDED: "strongly recommended";
111
+ };
112
+ /**
113
+ * Requirement level type.
114
+ */
115
+ export type RequirementLevel = boolean | (typeof REQUIREMENT_LEVEL)[keyof typeof REQUIREMENT_LEVEL];
106
116
  /**
107
117
  * Internal filter model of a multiselect category (e.g. library construction approach).
108
118
  */
@@ -2,3 +2,9 @@
2
2
  * Clear all filters key.
3
3
  */
4
4
  export const CLEAR_ALL = "CLEAR_ALL";
5
+ /**
6
+ * Requirement level for an attribute.
7
+ */
8
+ export const REQUIREMENT_LEVEL = {
9
+ STRONGLY_RECOMMENDED: "strongly recommended",
10
+ };
@@ -4,7 +4,7 @@ import { useConfig } from "../../hooks/useConfig";
4
4
  import { useExploreState } from "../../hooks/useExploreState";
5
5
  import { useFileManifestState } from "../../hooks/useFileManifestState";
6
6
  import { useSystemStatus } from "../../hooks/useSystemStatus";
7
- import { useAuth } from "../../providers/authentication/auth/hook";
7
+ import { useAuth } from "../../auth/hooks/useAuth";
8
8
  /**
9
9
  * ComponentCreator uses React API to create components based on the component configs, instead of using JSX.
10
10
  * That way we can continue to create UI components without having to worry about if they should be able to transform model data into props.
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useConfig } from "../../../../../../../../../../hooks/useConfig";
3
- import { useTerraProfile } from "../../../../../../../../../../providers/authentication/terra/hook";
3
+ import { useTerraProfile } from "../../../../../../../../../../terra/hooks/useTerraProfile";
4
4
  import { ButtonPrimary } from "../../../../../../../../../common/Button/components/ButtonPrimary/buttonPrimary";
5
5
  import { ANCHOR_TARGET, REL_ATTRIBUTE, } from "../../../../../../../../../Links/common/entities";
6
6
  import { FormStep } from "../../formStep";
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Typography } from "@mui/material";
3
3
  import { ONBOARDING_STEP, useAuthenticationForm, } from "../../../../../../hooks/authentication/terra/useAuthenticationForm";
4
- import { useAuth } from "../../../../../../providers/authentication/auth/hook";
5
- import { AUTH_STATUS } from "../../../../../../providers/authentication/auth/types";
4
+ import { useAuth } from "../../../../../../auth/hooks/useAuth";
5
+ import { AUTH_STATUS } from "../../../../../../auth/types/auth";
6
6
  import { TYPOGRAPHY_PROPS } from "../../../../../../styles/common/mui/typography";
7
7
  import { FluidPaper, GridPaper, } from "../../../../../common/Paper/paper.styles";
8
8
  import { SectionTitle } from "../../../../../common/Section/components/SectionTitle/sectionTitle";
@@ -1,5 +1,5 @@
1
1
  import { JSX } from "react";
2
- import { UserProfile } from "../../../../../../../../../../../../providers/authentication/authentication/types";
2
+ import { UserProfile } from "../../../../../../../../../../../../auth/types/authentication";
3
3
  export interface AuthenticationMenuProps {
4
4
  profile: UserProfile;
5
5
  }
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { MenuItem } from "@mui/material";
3
3
  import { Fragment } from "react";
4
- import { useAuth } from "../../../../../../../../../../../../providers/authentication/auth/hook";
4
+ import { useAuth } from "../../../../../../../../../../../../auth/hooks/useAuth";
5
5
  import { useMenu } from "../../../../../../../../../../../common/Menu/hooks/useMenu";
6
6
  import { AuthenticationMenu as Menu, StyledAvatar, UserIcon, UserNames, UserSummary, } from "./authenticationMenu.styles";
7
7
  import { MENU_PROPS } from "./constants";
@@ -1,3 +1,3 @@
1
1
  import { JSX } from "react";
2
2
  import { Props } from "./types";
3
- export declare const Buttons: <P>({ className, handleLogin, providers, ...props }: Props<P>) => JSX.Element[];
3
+ export declare const Buttons: ({ className, handleLogin, providers, ...props }: Props) => JSX.Element[];
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Button } from "../Button/button";
3
3
  export const Buttons = ({ className, handleLogin, providers = [], ...props /* Mui ButtonProps */ }) => {
4
- return providers?.map((provider) => (_jsx(Button, { className: className, endIcon: "icon" in provider && provider.icon, onClick: () => handleLogin(provider.id), ...props, children: provider.name }, provider.id)));
4
+ return providers?.map((provider) => (_jsx(Button, { className: className, endIcon: provider.icon, onClick: () => handleLogin(provider.id), ...props, children: provider.name }, provider.id)));
5
5
  };
@@ -1,8 +1,8 @@
1
1
  import { ButtonProps } from "@mui/material";
2
- import { ClientSafeProvider } from "next-auth/react";
3
- import { OAuthProvider } from "../../../../config/entities";
2
+ import { ProviderId } from "../../../../auth/types/common";
3
+ import { LoginProvider } from "../../../../auth/types/loginProvider";
4
4
  import { BaseComponentProps } from "../../../types";
5
- export interface Props<P> extends BaseComponentProps, ButtonProps {
6
- handleLogin: (providerId: string) => void;
7
- providers?: ClientSafeProvider[] | OAuthProvider<P>[];
5
+ export interface Props extends BaseComponentProps, ButtonProps {
6
+ handleLogin: (providerId: ProviderId) => void;
7
+ providers?: LoginProvider[];
8
8
  }
@@ -1,4 +1,4 @@
1
- import { ProviderId } from "../../../../providers/authentication/common/types";
1
+ import { ProviderId } from "../../../../auth/types/common";
2
2
  import { UseUserConsent } from "../useUserConsent/types";
3
3
  export interface UseUserLogin extends Omit<UseUserConsent, "handleError" | "state"> {
4
4
  consentState: Pick<UseUserConsent["state"], "isDisabled" | "isError">;
@@ -1,5 +1,5 @@
1
1
  import { useCallback } from "react";
2
- import { useAuth } from "../../../../providers/authentication/auth/hook";
2
+ import { useAuth } from "../../../../auth/hooks/useAuth";
3
3
  import { useUserConsent } from "../useUserConsent/useUserConsent";
4
4
  export const useUserLogin = () => {
5
5
  const { service: { requestLogin } = {} } = useAuth();
@@ -1,3 +1,3 @@
1
1
  import { JSX } from "react";
2
2
  import { Props } from "./types";
3
- export declare const Login: <P>({ providers, termsOfService, text, title, warning, }: Props<P>) => JSX.Element;
3
+ export declare const Login: ({ providers, termsOfService, text, title, warning, }: Props) => JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Checkbox, Typography } from "@mui/material";
3
3
  import { useCallback, useState } from "react";
4
- import { useAuth } from "../../providers/authentication/auth/hook";
4
+ import { useAuth } from "../../auth/hooks/useAuth";
5
5
  import { TYPOGRAPHY_PROPS } from "../../styles/common/mui/typography";
6
6
  import { CheckedIcon } from "../common/CustomIcon/components/CheckedIcon/checkedIcon";
7
7
  import { UncheckedErrorIcon } from "../common/CustomIcon/components/UncheckedErrorIcon/uncheckedErrorIcon";
@@ -1,8 +1,7 @@
1
- import { ClientSafeProvider } from "next-auth/react";
2
1
  import { ReactNode } from "react";
3
- import { OAuthProvider } from "../../config/entities";
4
- export interface Props<P> {
5
- providers?: ClientSafeProvider[] | OAuthProvider<P>[];
2
+ import { LoginProvider } from "../../auth/types/loginProvider";
3
+ export interface Props {
4
+ providers?: LoginProvider[];
6
5
  termsOfService?: ReactNode;
7
6
  text?: ReactNode;
8
7
  title: string;
@@ -8,9 +8,9 @@ import { FilterSortConfig } from "../common/filters/sort/config/types";
8
8
  import { FooterProps } from "../components/Layout/components/Footer/footer";
9
9
  import { HeaderProps } from "../components/Layout/components/Header/header";
10
10
  import { ExploreMode } from "../hooks/useExploreMode/types";
11
- import { AuthState } from "../providers/authentication/auth/types";
12
- import { UserProfile } from "../providers/authentication/authentication/types";
13
- import { ProviderId } from "../providers/authentication/common/types";
11
+ import { AuthState } from "../auth/types/auth";
12
+ import { UserProfile } from "../auth/types/authentication";
13
+ import { ProviderId } from "../auth/types/common";
14
14
  import { ExploreState } from "../providers/exploreState";
15
15
  import { FileManifestState } from "../providers/fileManifestState";
16
16
  import { SystemStatus, SystemStatusResponse } from "../providers/systemStatus";
@@ -0,0 +1,7 @@
1
+ import { OAuthProvider } from "../config/entities";
2
+ import { GoogleProfile } from "./types";
3
+ export { GOOGLE_SIGN_IN_PROVIDER_ID } from "./constants";
4
+ /**
5
+ * Google Sign-In provider configuration.
6
+ */
7
+ export declare const GOOGLE_SIGN_IN_PROVIDER: Pick<OAuthProvider<GoogleProfile>, "icon" | "id" | "name" | "profile">;
@@ -0,0 +1,14 @@
1
+ import { GoogleIcon } from "../components/common/CustomIcon/components/GoogleIcon/googleIcon";
2
+ import { GOOGLE_SIGN_IN_PROVIDER_ID } from "./constants";
3
+ import { mapProfile } from "./utils/profile";
4
+ // Re-export for convenience
5
+ export { GOOGLE_SIGN_IN_PROVIDER_ID } from "./constants";
6
+ /**
7
+ * Google Sign-In provider configuration.
8
+ */
9
+ export const GOOGLE_SIGN_IN_PROVIDER = {
10
+ icon: GoogleIcon({}),
11
+ id: GOOGLE_SIGN_IN_PROVIDER_ID,
12
+ name: "Google",
13
+ profile: mapProfile,
14
+ };
@@ -0,0 +1,16 @@
1
+ import { AuthState } from "../auth/types/auth";
2
+ import { AuthenticationState } from "../auth/types/authentication";
3
+ /**
4
+ * Google provider ID.
5
+ */
6
+ export declare const GOOGLE_SIGN_IN_PROVIDER_ID = "google";
7
+ /**
8
+ * Initial auth state for Google Sign-In.
9
+ * Status is settled because there's no initial session check.
10
+ */
11
+ export declare const AUTH_STATE: AuthState;
12
+ /**
13
+ * Initial authentication state for Google Sign-In.
14
+ * Status is settled because there's no initial session check.
15
+ */
16
+ export declare const AUTHENTICATION_STATE: AuthenticationState;
@@ -0,0 +1,24 @@
1
+ import { DEFAULT_AUTH_STATE } from "../auth/constants/auth";
2
+ import { DEFAULT_AUTHENTICATION_STATE } from "../auth/constants/authentication";
3
+ import { AUTH_STATUS } from "../auth/types/auth";
4
+ import { AUTHENTICATION_STATUS, } from "../auth/types/authentication";
5
+ /**
6
+ * Google provider ID.
7
+ */
8
+ export const GOOGLE_SIGN_IN_PROVIDER_ID = "google";
9
+ /**
10
+ * Initial auth state for Google Sign-In.
11
+ * Status is settled because there's no initial session check.
12
+ */
13
+ export const AUTH_STATE = {
14
+ ...DEFAULT_AUTH_STATE,
15
+ status: AUTH_STATUS.SETTLED,
16
+ };
17
+ /**
18
+ * Initial authentication state for Google Sign-In.
19
+ * Status is settled because there's no initial session check.
20
+ */
21
+ export const AUTHENTICATION_STATE = {
22
+ ...DEFAULT_AUTHENTICATION_STATE,
23
+ status: AUTHENTICATION_STATUS.SETTLED,
24
+ };
@@ -0,0 +1,8 @@
1
+ import { Service } from "../../auth/types/auth";
2
+ import { SessionReducer } from "../types";
3
+ /**
4
+ * Google Sign-In service hook.
5
+ * @param reducer - Session reducers.
6
+ * @returns auth service.
7
+ */
8
+ export declare const useGoogleSignInService: (reducer: SessionReducer) => Service;
@@ -1,7 +1,12 @@
1
1
  import { useRouter } from "next/router";
2
2
  import { useCallback } from "react";
3
- import { useProviders } from "../../../hooks/authentication/providers/useProviders";
4
- import { service } from "../service/service";
3
+ import { useProviders } from "../../hooks/authentication/providers/useProviders";
4
+ import { service } from "../service";
5
+ /**
6
+ * Google Sign-In service hook.
7
+ * @param reducer - Session reducers.
8
+ * @returns auth service.
9
+ */
5
10
  export const useGoogleSignInService = (reducer) => {
6
11
  const { findProvider } = useProviders();
7
12
  const { basePath } = useRouter();
@@ -1,7 +1,8 @@
1
- import { TokenContextProps } from "../../../providers/authentication/token/types";
1
+ import { TokenContextProps } from "../../auth/types/token";
2
2
  /**
3
3
  * Token reducer: Manages the internal state of the token within the OAuth provider.
4
4
  * This reducer handles the token locally until certain conditions are met.
5
5
  * For releasing the token to the rest of the app, use the credentials reducer.
6
+ * @returns token context props.
6
7
  */
7
8
  export declare const useTokenReducer: () => TokenContextProps;
@@ -1,10 +1,11 @@
1
1
  import { useReducer } from "react";
2
- import { DEFAULT_TOKEN_STATE } from "../../../providers/authentication/token/constants";
3
- import { tokenReducer } from "../../../providers/authentication/token/reducer";
2
+ import { DEFAULT_TOKEN_STATE } from "../../auth/constants/token";
3
+ import { tokenReducer } from "../../auth/reducers/token";
4
4
  /**
5
5
  * Token reducer: Manages the internal state of the token within the OAuth provider.
6
6
  * This reducer handles the token locally until certain conditions are met.
7
7
  * For releasing the token to the rest of the app, use the credentials reducer.
8
+ * @returns token context props.
8
9
  */
9
10
  export const useTokenReducer = () => {
10
11
  const [tokenState, tokenDispatch] = useReducer(tokenReducer, undefined, () => DEFAULT_TOKEN_STATE);
@@ -0,0 +1,11 @@
1
+ import { JSX } from "react";
2
+ import { GoogleSignInAuthenticationProviderProps } from "./types";
3
+ /**
4
+ * Google Sign-In authentication provider.
5
+ * @param props - Provider props.
6
+ * @param props.children - Children components.
7
+ * @param props.SessionController - Custom session controller component.
8
+ * @param props.timeout - Session timeout in milliseconds.
9
+ * @returns authentication provider component.
10
+ */
11
+ export declare function GoogleSignInAuthenticationProvider({ children, SessionController, timeout, }: GoogleSignInAuthenticationProviderProps): JSX.Element;
@@ -1,17 +1,25 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { SessionController as DefaultSessionController } from "../../components/Authentication/components/SessionController/components/GoogleSessionController/SessionController";
3
- import { useAuthReducer } from "../../hooks/authentication/auth/useAuthReducer";
4
- import { useAuthenticationReducer } from "../../hooks/authentication/authentication/useAuthenticationReducer";
5
- import { useCredentialsReducer } from "../../hooks/authentication/credentials/useCredentialsReducer";
6
- import { useSessionActive } from "../../hooks/authentication/session/useSessionActive";
7
- import { useSessionCallbackUrl } from "../../hooks/authentication/session/useSessionCallbackUrl";
8
- import { useSessionIdleTimer } from "../../hooks/authentication/session/useSessionIdleTimer";
9
- import { useTokenReducer } from "../../hooks/authentication/token/useTokenReducer";
10
- import { AuthContext } from "../authentication/auth/context";
11
- import { AuthenticationContext } from "../authentication/authentication/context";
12
- import { CredentialsContext } from "../authentication/credentials/context";
2
+ import { AuthContext } from "../auth/contexts/auth";
3
+ import { AuthenticationContext } from "../auth/contexts/authentication";
4
+ import { CredentialsContext } from "../auth/contexts/credentials";
5
+ import { useAuthenticationReducer } from "../auth/hooks/useAuthenticationReducer";
6
+ import { useAuthReducer } from "../auth/hooks/useAuthReducer";
7
+ import { useCredentialsReducer } from "../auth/hooks/useCredentialsReducer";
8
+ import { useSessionIdleTimer } from "../auth/hooks/useSessionIdleTimer";
9
+ import { useSessionActive } from "../hooks/authentication/session/useSessionActive";
10
+ import { useSessionCallbackUrl } from "../hooks/authentication/session/useSessionCallbackUrl";
13
11
  import { AUTH_STATE, AUTHENTICATION_STATE } from "./constants";
14
12
  import { useGoogleSignInService } from "./hooks/useGoogleSignInService";
13
+ import { useTokenReducer } from "./hooks/useTokenReducer";
14
+ import { SessionController as DefaultSessionController } from "./session-controller";
15
+ /**
16
+ * Google Sign-In authentication provider.
17
+ * @param props - Provider props.
18
+ * @param props.children - Children components.
19
+ * @param props.SessionController - Custom session controller component.
20
+ * @param props.timeout - Session timeout in milliseconds.
21
+ * @returns authentication provider component.
22
+ */
15
23
  export function GoogleSignInAuthenticationProvider({ children, SessionController = DefaultSessionController, timeout, }) {
16
24
  const authReducer = useAuthReducer(AUTH_STATE);
17
25
  const authenticationReducer = useAuthenticationReducer(AUTHENTICATION_STATE);
@@ -0,0 +1,18 @@
1
+ import { OAuthProvider } from "../config/entities";
2
+ import { SessionDispatch } from "./types";
3
+ /**
4
+ * Google Sign-In service.
5
+ */
6
+ export declare const service: {
7
+ /**
8
+ * Login with Google OAuth.
9
+ * @param provider - OAuth provider configuration.
10
+ * @param dispatch - Dispatch functions for auth state.
11
+ */
12
+ login: (provider: OAuthProvider, dispatch: Pick<SessionDispatch, "authDispatch" | "authenticationDispatch" | "tokenDispatch">) => void;
13
+ /**
14
+ * Logout and clear all auth state.
15
+ * @param dispatch - Dispatch functions for auth state.
16
+ */
17
+ logout: (dispatch: SessionDispatch) => void;
18
+ };