@databiosphere/findable-ui 50.8.0 → 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.
- package/lib/auth/constants/auth.d.ts +5 -0
- package/lib/{providers/authentication/auth/constants.js → auth/constants/auth.js} +4 -1
- package/lib/auth/constants/authentication.d.ts +5 -0
- package/lib/{providers/authentication/authentication/constants.js → auth/constants/authentication.js} +4 -1
- package/lib/auth/constants/credentials.d.ts +5 -0
- package/lib/{providers/authentication/credentials/constants.js → auth/constants/credentials.js} +3 -0
- package/lib/auth/constants/token.d.ts +5 -0
- package/lib/{providers/authentication/token/constants.js → auth/constants/token.js} +3 -0
- package/lib/{providers/authentication/auth/context.d.ts → auth/contexts/auth.d.ts} +4 -1
- package/lib/{providers/authentication/auth/context.js → auth/contexts/auth.js} +4 -1
- package/lib/auth/contexts/authentication.d.ts +5 -0
- package/lib/{providers/authentication/authentication/context.js → auth/contexts/authentication.js} +4 -1
- package/lib/auth/contexts/credentials.d.ts +5 -0
- package/lib/{providers/authentication/credentials/context.js → auth/contexts/credentials.js} +4 -1
- package/lib/{providers/authentication/auth/dispatch.d.ts → auth/dispatch/auth.d.ts} +2 -2
- package/lib/{providers/authentication/auth/dispatch.js → auth/dispatch/auth.js} +2 -2
- package/lib/{providers/authentication/authentication/dispatch.d.ts → auth/dispatch/authentication.d.ts} +2 -2
- package/lib/{providers/authentication/authentication/dispatch.js → auth/dispatch/authentication.js} +2 -2
- package/lib/auth/dispatch/credentials.d.ts +12 -0
- package/lib/{providers/authentication/credentials/dispatch.js → auth/dispatch/credentials.js} +3 -3
- package/lib/{providers/authentication/token/dispatch.d.ts → auth/dispatch/token.d.ts} +3 -3
- package/lib/{providers/authentication/token/dispatch.js → auth/dispatch/token.js} +3 -3
- package/lib/{providers/authentication/auth/hook.d.ts → auth/hooks/useAuth.d.ts} +1 -1
- package/lib/{providers/authentication/auth/hook.js → auth/hooks/useAuth.js} +1 -1
- package/lib/auth/hooks/useAuthReducer.d.ts +7 -0
- package/lib/auth/hooks/useAuthReducer.js +13 -0
- package/lib/{providers/authentication/authentication/hook.d.ts → auth/hooks/useAuthentication.d.ts} +1 -1
- package/lib/{providers/authentication/authentication/hook.js → auth/hooks/useAuthentication.js} +1 -1
- package/lib/auth/hooks/useAuthenticationReducer.d.ts +7 -0
- package/lib/auth/hooks/useAuthenticationReducer.js +13 -0
- package/lib/{providers/authentication/credentials/hook.d.ts → auth/hooks/useCredentials.d.ts} +1 -1
- package/lib/{providers/authentication/credentials/hook.js → auth/hooks/useCredentials.js} +1 -1
- package/lib/auth/hooks/useCredentialsReducer.d.ts +6 -0
- package/lib/{hooks/authentication/credentials → auth/hooks}/useCredentialsReducer.js +6 -2
- package/lib/{providers/authentication/auth/reducer.d.ts → auth/reducers/auth.d.ts} +1 -1
- package/lib/{providers/authentication/auth/reducer.js → auth/reducers/auth.js} +13 -2
- package/lib/{providers/authentication/authentication/reducer.d.ts → auth/reducers/authentication.d.ts} +1 -1
- package/lib/{providers/authentication/authentication/reducer.js → auth/reducers/authentication.js} +13 -2
- package/lib/{providers/authentication/credentials/reducer.d.ts → auth/reducers/credentials.d.ts} +1 -1
- package/lib/{providers/authentication/credentials/reducer.js → auth/reducers/credentials.js} +14 -3
- package/lib/{providers/authentication/token/reducer.d.ts → auth/reducers/token.d.ts} +1 -1
- package/lib/{providers/authentication/token/reducer.js → auth/reducers/token.js} +2 -2
- package/lib/{providers/authentication/auth/types.d.ts → auth/types/auth.d.ts} +41 -5
- package/lib/{providers/authentication/auth/types.js → auth/types/auth.js} +6 -0
- package/lib/{providers/authentication/authentication/types.d.ts → auth/types/authentication.d.ts} +46 -4
- package/lib/{providers/authentication/authentication/types.js → auth/types/authentication.js} +6 -0
- package/lib/auth/types/common.d.ts +4 -0
- package/lib/{providers/authentication/credentials/types.d.ts → auth/types/credentials.d.ts} +31 -4
- package/lib/{providers/authentication/credentials/types.js → auth/types/credentials.js} +3 -0
- package/lib/auth/types/loginProvider.d.ts +11 -0
- package/lib/{providers/authentication/token/types.d.ts → auth/types/token.d.ts} +29 -5
- package/lib/{providers/authentication/token/types.js → auth/types/token.js} +3 -0
- package/lib/components/ComponentCreator/ComponentCreator.js +1 -1
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +1 -1
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +2 -2
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +1 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +1 -1
- package/lib/components/Login/components/Buttons/buttons.d.ts +1 -1
- package/lib/components/Login/components/Buttons/buttons.js +1 -1
- package/lib/components/Login/components/Buttons/types.d.ts +5 -5
- package/lib/components/Login/hooks/useUserLogin/types.d.ts +1 -1
- package/lib/components/Login/hooks/useUserLogin/useUserLogin.js +1 -1
- package/lib/components/Login/login.d.ts +1 -1
- package/lib/components/Login/login.js +1 -1
- package/lib/components/Login/types.d.ts +3 -4
- package/lib/config/entities.d.ts +3 -3
- package/lib/google/config.d.ts +7 -0
- package/lib/google/config.js +14 -0
- package/lib/google/constants.d.ts +16 -0
- package/lib/google/constants.js +24 -0
- package/lib/google/hooks/useGoogleSignInService.d.ts +8 -0
- package/lib/{providers/googleSignInAuthentication → google}/hooks/useGoogleSignInService.js +7 -2
- package/lib/{hooks/authentication/token → google/hooks}/useTokenReducer.d.ts +2 -1
- package/lib/{hooks/authentication/token → google/hooks}/useTokenReducer.js +3 -2
- package/lib/google/provider.d.ts +11 -0
- package/lib/{providers/googleSignInAuthentication → google}/provider.js +19 -11
- package/lib/google/service.d.ts +18 -0
- package/lib/{providers/googleSignInAuthentication/service → google}/service.js +20 -9
- package/lib/google/session-controller.d.ts +11 -0
- package/lib/{components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js → google/session-controller.js} +14 -6
- package/lib/google/types.d.ts +58 -0
- package/lib/{providers/authentication/authentication/utils.d.ts → google/utils/auth.d.ts} +6 -0
- package/lib/{providers/authentication/authentication/utils.js → google/utils/auth.js} +10 -0
- package/lib/{providers/googleSignInAuthentication/profile/utils.d.ts → google/utils/profile.d.ts} +2 -2
- package/lib/{providers/googleSignInAuthentication/profile/utils.js → google/utils/profile.js} +1 -1
- package/lib/hooks/authentication/profile/types.d.ts +1 -1
- package/lib/hooks/authentication/profile/useProfile.js +3 -3
- package/lib/hooks/authentication/providers/types.d.ts +1 -1
- package/lib/hooks/authentication/session/useSessionActive.d.ts +2 -2
- package/lib/hooks/authentication/session/useSessionActive.js +2 -2
- package/lib/hooks/authentication/terra/useAuthenticationForm.js +1 -1
- package/lib/hooks/authentication/terra/useAuthenticationNIHExpiry.js +2 -2
- package/lib/hooks/authentication/token/types.d.ts +1 -1
- package/lib/hooks/authentication/token/useToken.js +1 -1
- package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/constants.d.ts +8 -2
- package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/constants.js +8 -2
- package/lib/nextauth/hooks/useNextAuthService.d.ts +6 -0
- package/lib/{providers/nextAuthAuthentication → nextauth}/hooks/useNextAuthService.js +7 -3
- package/lib/nextauth/provider.d.ts +12 -0
- package/lib/{providers/nextAuthAuthentication → nextauth}/provider.js +16 -7
- package/lib/nextauth/service.d.ts +20 -0
- package/lib/{providers/nextAuthAuthentication/service → nextauth}/service.js +14 -0
- package/lib/nextauth/session-controller.d.ts +10 -0
- package/lib/{components/Authentication/components/SessionController/components/NextSessionController/SessionController.js → nextauth/session-controller.js} +11 -4
- package/lib/{providers/nextAuthAuthentication → nextauth}/types.d.ts +9 -0
- package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/utils.d.ts +2 -2
- package/lib/{components/Authentication/components/SessionController/components/NextSessionController → nextauth}/utils.js +2 -2
- package/lib/providers/loginGuard/provider.js +1 -1
- package/lib/terra/constants.d.ts +28 -0
- package/lib/{providers/authentication/terra/hooks/common → terra}/constants.js +16 -1
- package/lib/terra/context.d.ts +5 -0
- package/lib/{providers/authentication/terra → terra}/context.js +4 -1
- package/lib/{providers/authentication/terra → terra}/hooks/useFetchProfiles.d.ts +12 -4
- package/lib/{providers/authentication/terra → terra}/hooks/useFetchProfiles.js +9 -4
- package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraNIHProfile.d.ts +2 -6
- package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraNIHProfile.js +4 -5
- package/lib/terra/hooks/useFetchTerraProfile.d.ts +10 -0
- package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraProfile.js +4 -5
- package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraTermsOfService.d.ts +2 -7
- package/lib/{providers/authentication/terra → terra}/hooks/useFetchTerraTermsOfService.js +4 -5
- package/lib/{providers/authentication/terra/hook.d.ts → terra/hooks/useTerraProfile.d.ts} +1 -1
- package/lib/{providers/authentication/terra/hook.js → terra/hooks/useTerraProfile.js} +1 -1
- package/lib/terra/provider.d.ts +10 -0
- package/lib/{providers/authentication/terra → terra}/provider.js +13 -6
- package/lib/terra/types/common.d.ts +50 -0
- package/lib/terra/types/common.js +19 -0
- package/lib/terra/types/context.d.ts +12 -0
- package/lib/terra/types/terra-nih.d.ts +8 -0
- package/lib/{providers/authentication/terra/hooks/useFetchTerraProfile.d.ts → terra/types/terra-profile.d.ts} +9 -8
- package/lib/terra/types/terra-tos.d.ts +9 -0
- package/lib/terra/types/terra-tos.js +1 -0
- package/lib/terra/utils.d.ts +47 -0
- package/lib/{providers/authentication/terra → terra}/utils.js +45 -2
- package/lib/views/LoginView/loginView.d.ts +2 -2
- package/package.json +15 -1
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +0 -3
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +0 -6
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +0 -3
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +0 -4
- package/lib/hooks/authentication/auth/useAuthReducer.d.ts +0 -2
- package/lib/hooks/authentication/auth/useAuthReducer.js +0 -8
- package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +0 -2
- package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +0 -8
- package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +0 -2
- package/lib/providers/authentication/auth/actions.d.ts +0 -8
- package/lib/providers/authentication/auth/actions.js +0 -12
- package/lib/providers/authentication/auth/constants.d.ts +0 -2
- package/lib/providers/authentication/authentication/actions.d.ts +0 -8
- package/lib/providers/authentication/authentication/actions.js +0 -12
- package/lib/providers/authentication/authentication/constants.d.ts +0 -2
- package/lib/providers/authentication/authentication/context.d.ts +0 -2
- package/lib/providers/authentication/common/types.d.ts +0 -1
- package/lib/providers/authentication/credentials/actions.d.ts +0 -8
- package/lib/providers/authentication/credentials/actions.js +0 -12
- package/lib/providers/authentication/credentials/constants.d.ts +0 -2
- package/lib/providers/authentication/credentials/context.d.ts +0 -2
- package/lib/providers/authentication/credentials/dispatch.d.ts +0 -12
- package/lib/providers/authentication/terra/context.d.ts +0 -2
- package/lib/providers/authentication/terra/hooks/common/constants.d.ts +0 -6
- package/lib/providers/authentication/terra/hooks/common/entities.d.ts +0 -21
- package/lib/providers/authentication/terra/hooks/common/entities.js +0 -7
- package/lib/providers/authentication/terra/hooks/common/utils.d.ts +0 -15
- package/lib/providers/authentication/terra/hooks/common/utils.js +0 -25
- package/lib/providers/authentication/terra/hooks/utils.d.ts +0 -16
- package/lib/providers/authentication/terra/hooks/utils.js +0 -19
- package/lib/providers/authentication/terra/provider.d.ts +0 -3
- package/lib/providers/authentication/terra/types.d.ts +0 -20
- package/lib/providers/authentication/terra/types.js +0 -6
- package/lib/providers/authentication/terra/utils.d.ts +0 -19
- package/lib/providers/authentication/token/constants.d.ts +0 -2
- package/lib/providers/googleSignInAuthentication/common/types.d.ts +0 -17
- package/lib/providers/googleSignInAuthentication/constants.d.ts +0 -4
- package/lib/providers/googleSignInAuthentication/constants.js +0 -12
- package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +0 -3
- package/lib/providers/googleSignInAuthentication/profile/types.d.ts +0 -14
- package/lib/providers/googleSignInAuthentication/provider.d.ts +0 -3
- package/lib/providers/googleSignInAuthentication/service/constants.d.ts +0 -4
- package/lib/providers/googleSignInAuthentication/service/constants.js +0 -9
- package/lib/providers/googleSignInAuthentication/service/service.d.ts +0 -6
- package/lib/providers/googleSignInAuthentication/types.d.ts +0 -6
- package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +0 -2
- package/lib/providers/nextAuthAuthentication/provider.d.ts +0 -3
- package/lib/providers/nextAuthAuthentication/service/service.d.ts +0 -6
- /package/lib/{hooks/authentication/session → auth/hooks}/useSessionIdleTimer.d.ts +0 -0
- /package/lib/{hooks/authentication/session → auth/hooks}/useSessionIdleTimer.js +0 -0
- /package/lib/{components/Authentication/components/SessionController/components/GoogleSessionController/types.js → auth/types/common.js} +0 -0
- /package/lib/{components/Authentication/components/SessionController/components/NextSessionController/types.js → auth/types/loginProvider.js} +0 -0
- /package/lib/{providers/authentication/common/utils.d.ts → auth/utils/initializer.d.ts} +0 -0
- /package/lib/{providers/authentication/common/utils.js → auth/utils/initializer.js} +0 -0
- /package/lib/{providers/authentication/common → google}/types.js +0 -0
- /package/lib/{providers/googleSignInAuthentication/common → nextauth}/types.js +0 -0
- /package/lib/{providers/googleSignInAuthentication/profile/types.js → terra/types/context.js} +0 -0
- /package/lib/{providers/googleSignInAuthentication/types.js → terra/types/terra-nih.js} +0 -0
- /package/lib/{providers/nextAuthAuthentication/types.js → terra/types/terra-profile.js} +0 -0
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
import { useAuthentication } from "../../
|
|
3
|
-
import { TERRA_PROFILE_STATUS } from "../types";
|
|
2
|
+
import { useAuthentication } from "../../auth/hooks/useAuthentication";
|
|
3
|
+
import { TERRA_PROFILE_STATUS } from "../types/common";
|
|
4
4
|
import { getProfileStatus } from "../utils";
|
|
5
|
-
import { useFetchTerraNIHProfile
|
|
5
|
+
import { useFetchTerraNIHProfile } from "./useFetchTerraNIHProfile";
|
|
6
6
|
import { useFetchTerraProfile } from "./useFetchTerraProfile";
|
|
7
|
-
import { useFetchTerraTermsOfService
|
|
7
|
+
import { useFetchTerraTermsOfService } from "./useFetchTerraTermsOfService";
|
|
8
|
+
/**
|
|
9
|
+
* Fetches all Terra profiles.
|
|
10
|
+
* @param token - Token.
|
|
11
|
+
* @returns fetch profiles state.
|
|
12
|
+
*/
|
|
8
13
|
export const useFetchProfiles = (token) => {
|
|
9
14
|
const [status, setStatus] = useState(TERRA_PROFILE_STATUS.PENDING);
|
|
10
15
|
const { authenticationState: { profile }, } = useAuthentication();
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { LoginStatus } from "
|
|
1
|
+
import { LoginStatus } from "../types/common";
|
|
2
|
+
import { TerraNIHResponse } from "../types/terra-nih";
|
|
2
3
|
type Status = LoginStatus<TerraNIHResponse>;
|
|
3
|
-
export interface TerraNIHResponse {
|
|
4
|
-
authenticated?: boolean;
|
|
5
|
-
expirationTimestamp: string;
|
|
6
|
-
externalUserId: string;
|
|
7
|
-
}
|
|
8
4
|
/**
|
|
9
5
|
* Returns Terra NIH login status from configured endpoint.
|
|
10
6
|
* @param token - Token.
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import { useAuthenticationConfig } from "
|
|
3
|
-
import { LOGIN_STATUS_FAILED, LOGIN_STATUS_NOT_STARTED, LOGIN_STATUS_PENDING, TERRA_SERVICE_ID, } from "
|
|
4
|
-
import { REQUEST_STATUS } from "
|
|
5
|
-
import { getAuthenticationRequestOptions, initLoginStatus, } from "
|
|
6
|
-
import { getServiceEndpoint } from "./utils";
|
|
2
|
+
import { useAuthenticationConfig } from "../../hooks/authentication/config/useAuthenticationConfig";
|
|
3
|
+
import { LOGIN_STATUS_FAILED, LOGIN_STATUS_NOT_STARTED, LOGIN_STATUS_PENDING, TERRA_SERVICE_ID, } from "../constants";
|
|
4
|
+
import { REQUEST_STATUS } from "../types/common";
|
|
5
|
+
import { getAuthenticationRequestOptions, getServiceEndpoint, initLoginStatus, } from "../utils";
|
|
7
6
|
const ENDPOINT_ID = "nihStatus";
|
|
8
7
|
/**
|
|
9
8
|
* Returns Terra NIH login status from configured endpoint.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LoginStatus } from "../types/common";
|
|
2
|
+
import { TerraResponse } from "../types/terra-profile";
|
|
3
|
+
type Status = LoginStatus<TerraResponse>;
|
|
4
|
+
/**
|
|
5
|
+
* Returns Terra profile login status from configured endpoint.
|
|
6
|
+
* @param token - Token.
|
|
7
|
+
* @returns Terra profile login status.
|
|
8
|
+
*/
|
|
9
|
+
export declare const useFetchTerraProfile: (token?: string) => Status;
|
|
10
|
+
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import { useAuthenticationConfig } from "
|
|
3
|
-
import { LOGIN_STATUS_FAILED, LOGIN_STATUS_NOT_STARTED, LOGIN_STATUS_PENDING, TERRA_SERVICE_ID, } from "
|
|
4
|
-
import { REQUEST_STATUS, } from "
|
|
5
|
-
import { getAuthenticationRequestOptions, initLoginStatus, } from "
|
|
6
|
-
import { getServiceEndpoint } from "./utils";
|
|
2
|
+
import { useAuthenticationConfig } from "../../hooks/authentication/config/useAuthenticationConfig";
|
|
3
|
+
import { LOGIN_STATUS_FAILED, LOGIN_STATUS_NOT_STARTED, LOGIN_STATUS_PENDING, TERRA_SERVICE_ID, } from "../constants";
|
|
4
|
+
import { REQUEST_STATUS, } from "../types/common";
|
|
5
|
+
import { getAuthenticationRequestOptions, getServiceEndpoint, initLoginStatus, } from "../utils";
|
|
7
6
|
const ENDPOINT_ID = "profile";
|
|
8
7
|
/**
|
|
9
8
|
* Returns Terra profile login status from configured endpoint.
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import { LoginStatus } from "
|
|
1
|
+
import { LoginStatus } from "../types/common";
|
|
2
|
+
import { TerraTermsOfServiceResponse } from "../types/terra-tos";
|
|
2
3
|
type Status = LoginStatus<TerraTermsOfServiceResponse>;
|
|
3
|
-
export interface TerraTermsOfServiceResponse {
|
|
4
|
-
currentVersion: string;
|
|
5
|
-
isEnabled: boolean;
|
|
6
|
-
isGracePeriodEnabled: boolean;
|
|
7
|
-
userAcceptedVersion?: string;
|
|
8
|
-
}
|
|
9
4
|
/**
|
|
10
5
|
* Returns Terra terms of service login status from configured endpoint.
|
|
11
6
|
* @param token - Token.
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import { useAuthenticationConfig } from "
|
|
3
|
-
import { LOGIN_STATUS_FAILED, LOGIN_STATUS_NOT_STARTED, LOGIN_STATUS_PENDING, TERRA_SERVICE_ID, } from "
|
|
4
|
-
import { REQUEST_STATUS, } from "
|
|
5
|
-
import { getAuthenticationRequestOptions, initLoginStatus, } from "
|
|
6
|
-
import { getServiceEndpoint } from "./utils";
|
|
2
|
+
import { useAuthenticationConfig } from "../../hooks/authentication/config/useAuthenticationConfig";
|
|
3
|
+
import { LOGIN_STATUS_FAILED, LOGIN_STATUS_NOT_STARTED, LOGIN_STATUS_PENDING, TERRA_SERVICE_ID, } from "../constants";
|
|
4
|
+
import { REQUEST_STATUS, } from "../types/common";
|
|
5
|
+
import { getAuthenticationRequestOptions, getServiceEndpoint, initLoginStatus, } from "../utils";
|
|
7
6
|
const ENDPOINT_ID = "tos";
|
|
8
7
|
/**
|
|
9
8
|
* Returns Terra terms of service login status from configured endpoint.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JSX } from "react";
|
|
2
|
+
import { TerraProfileProviderProps } from "./types/common";
|
|
3
|
+
/**
|
|
4
|
+
* Terra profile provider.
|
|
5
|
+
* @param props - Provider props.
|
|
6
|
+
* @param props.children - Children components.
|
|
7
|
+
* @param props.token - OAuth access token.
|
|
8
|
+
* @returns terra profile provider component.
|
|
9
|
+
*/
|
|
10
|
+
export declare function TerraProfileProvider({ children, token, }: TerraProfileProviderProps): JSX.Element;
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
-
import { authComplete } from "../auth/dispatch";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { useCredentials } from "../
|
|
3
|
+
import { authComplete } from "../auth/dispatch/auth";
|
|
4
|
+
import { authenticationComplete } from "../auth/dispatch/authentication";
|
|
5
|
+
import { updateCredentials } from "../auth/dispatch/credentials";
|
|
6
|
+
import { useAuth } from "../auth/hooks/useAuth";
|
|
7
|
+
import { useAuthentication } from "../auth/hooks/useAuthentication";
|
|
8
|
+
import { useCredentials } from "../auth/hooks/useCredentials";
|
|
9
9
|
import { TerraProfileContext } from "./context";
|
|
10
10
|
import { useFetchProfiles } from "./hooks/useFetchProfiles";
|
|
11
|
+
/**
|
|
12
|
+
* Terra profile provider.
|
|
13
|
+
* @param props - Provider props.
|
|
14
|
+
* @param props.children - Children components.
|
|
15
|
+
* @param props.token - OAuth access token.
|
|
16
|
+
* @returns terra profile provider component.
|
|
17
|
+
*/
|
|
11
18
|
export function TerraProfileProvider({ children, token, }) {
|
|
12
19
|
const { authDispatch } = useAuth();
|
|
13
20
|
const { authenticationDispatch } = useAuthentication();
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { TokenState } from "../../auth/types/token";
|
|
3
|
+
/**
|
|
4
|
+
* Terra profile status enum.
|
|
5
|
+
*/
|
|
6
|
+
export declare enum TERRA_PROFILE_STATUS {
|
|
7
|
+
AUTHENTICATED = "AUTHENTICATED",
|
|
8
|
+
PENDING = "PENDING",
|
|
9
|
+
UNAUTHENTICATED = "UNAUTHENTICATED"
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Request status enum.
|
|
13
|
+
*/
|
|
14
|
+
export declare enum REQUEST_STATUS {
|
|
15
|
+
COMPLETED = "COMPLETED",
|
|
16
|
+
FAILED = "FAILED",
|
|
17
|
+
NOT_STARTED = "NOT_STARTED",
|
|
18
|
+
PENDING = "PENDING"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Terra profile provider props.
|
|
22
|
+
*/
|
|
23
|
+
export interface TerraProfileProviderProps {
|
|
24
|
+
children: ReactNode;
|
|
25
|
+
token: TokenState["token"];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Login response error.
|
|
29
|
+
*/
|
|
30
|
+
export interface LoginResponseError {
|
|
31
|
+
message: string;
|
|
32
|
+
source: string;
|
|
33
|
+
statusCode: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Login status.
|
|
37
|
+
*/
|
|
38
|
+
export interface LoginStatus<T> {
|
|
39
|
+
isSuccess: boolean;
|
|
40
|
+
isSupported: boolean;
|
|
41
|
+
requestStatus: REQUEST_STATUS;
|
|
42
|
+
response: T | undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Auth service configuration.
|
|
46
|
+
*/
|
|
47
|
+
export interface AuthService {
|
|
48
|
+
endpoint: Record<string, string>;
|
|
49
|
+
id: string;
|
|
50
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terra profile status enum.
|
|
3
|
+
*/
|
|
4
|
+
export var TERRA_PROFILE_STATUS;
|
|
5
|
+
(function (TERRA_PROFILE_STATUS) {
|
|
6
|
+
TERRA_PROFILE_STATUS["AUTHENTICATED"] = "AUTHENTICATED";
|
|
7
|
+
TERRA_PROFILE_STATUS["PENDING"] = "PENDING";
|
|
8
|
+
TERRA_PROFILE_STATUS["UNAUTHENTICATED"] = "UNAUTHENTICATED";
|
|
9
|
+
})(TERRA_PROFILE_STATUS || (TERRA_PROFILE_STATUS = {}));
|
|
10
|
+
/**
|
|
11
|
+
* Request status enum.
|
|
12
|
+
*/
|
|
13
|
+
export var REQUEST_STATUS;
|
|
14
|
+
(function (REQUEST_STATUS) {
|
|
15
|
+
REQUEST_STATUS["COMPLETED"] = "COMPLETED";
|
|
16
|
+
REQUEST_STATUS["FAILED"] = "FAILED";
|
|
17
|
+
REQUEST_STATUS["NOT_STARTED"] = "NOT_STARTED";
|
|
18
|
+
REQUEST_STATUS["PENDING"] = "PENDING";
|
|
19
|
+
})(REQUEST_STATUS || (REQUEST_STATUS = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LoginStatus } from "./common";
|
|
2
|
+
import { TerraNIHResponse } from "./terra-nih";
|
|
3
|
+
import { TerraResponse } from "./terra-profile";
|
|
4
|
+
import { TerraTermsOfServiceResponse } from "./terra-tos";
|
|
5
|
+
/**
|
|
6
|
+
* Terra profile context props.
|
|
7
|
+
*/
|
|
8
|
+
export interface TerraProfileContextProps {
|
|
9
|
+
terraNIHProfileLoginStatus: LoginStatus<TerraNIHResponse>;
|
|
10
|
+
terraProfileLoginStatus: LoginStatus<TerraResponse>;
|
|
11
|
+
terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>;
|
|
12
|
+
}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Terra profile response.
|
|
3
|
+
*/
|
|
3
4
|
export interface TerraResponse {
|
|
4
5
|
enabled: TerraResponseEnabled;
|
|
5
6
|
userInfo: TerraResponseUserInfo;
|
|
6
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Terra enabled flags.
|
|
10
|
+
*/
|
|
7
11
|
interface TerraResponseEnabled {
|
|
8
12
|
adminEnabled: boolean;
|
|
9
13
|
allUsersGroup: boolean;
|
|
@@ -11,14 +15,11 @@ interface TerraResponseEnabled {
|
|
|
11
15
|
ldap: boolean;
|
|
12
16
|
tosAccepted: boolean;
|
|
13
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Terra user info.
|
|
20
|
+
*/
|
|
14
21
|
interface TerraResponseUserInfo {
|
|
15
22
|
userEmail: string;
|
|
16
23
|
userSubjectId: string;
|
|
17
24
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Returns Terra profile login status from configured endpoint.
|
|
20
|
-
* @param token - Token.
|
|
21
|
-
* @returns Terra profile login status.
|
|
22
|
-
*/
|
|
23
|
-
export declare const useFetchTerraProfile: (token?: string) => Status;
|
|
24
25
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AuthService, LoginStatus, TERRA_PROFILE_STATUS } from "./types/common";
|
|
2
|
+
import { TerraNIHResponse } from "./types/terra-nih";
|
|
3
|
+
import { TerraResponse } from "./types/terra-profile";
|
|
4
|
+
import { TerraTermsOfServiceResponse } from "./types/terra-tos";
|
|
5
|
+
/**
|
|
6
|
+
* Returns the options for an authentication request.
|
|
7
|
+
* @param token - Token.
|
|
8
|
+
* @returns request options.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getAuthenticationRequestOptions(token: string): RequestInit;
|
|
11
|
+
/**
|
|
12
|
+
* Returns login status.
|
|
13
|
+
* An undefined endpoint will return a not supported login status,
|
|
14
|
+
* otherwise a not started login status is returned.
|
|
15
|
+
* @param endpoint - Endpoint.
|
|
16
|
+
* @returns initial login status.
|
|
17
|
+
*/
|
|
18
|
+
export declare function initLoginStatus<T>(endpoint?: string): LoginStatus<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Returns service endpoint.
|
|
21
|
+
* @param services - Services.
|
|
22
|
+
* @param serviceId - Service ID.
|
|
23
|
+
* @param endpointId - Endpoint ID.
|
|
24
|
+
* @returns Service endpoint.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getServiceEndpoint(services: AuthService[] | undefined, serviceId: string, endpointId: string): string | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Find a service by service ID.
|
|
29
|
+
* @param services - Services.
|
|
30
|
+
* @param serviceId - Service ID.
|
|
31
|
+
* @returns Service.
|
|
32
|
+
*/
|
|
33
|
+
export declare function findService(services: AuthService[] | undefined, serviceId: string): AuthService | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Determines the status of a user based on authentication and Terra service statuses.
|
|
36
|
+
* **Logic:**
|
|
37
|
+
* - **Pending** if the user is not authenticated.
|
|
38
|
+
* - **Pending** if any supported Terra service request is not started or pending.
|
|
39
|
+
* - **Unauthenticated** if the Terra profile is supported but the Terms of Service have not been accepted.
|
|
40
|
+
* - **Authenticated** in all other cases.
|
|
41
|
+
* @param isUserAuthenticated - User authentication status.
|
|
42
|
+
* @param terraNIHProfileLoginStatus - Terra NIH profile login status.
|
|
43
|
+
* @param terraProfileLoginStatus - Terra profile login status.
|
|
44
|
+
* @param terraTOSLoginStatus - Terra terms of service login status.
|
|
45
|
+
* @returns Terra profile status.
|
|
46
|
+
*/
|
|
47
|
+
export declare function getProfileStatus(isUserAuthenticated: boolean, terraNIHProfileLoginStatus: LoginStatus<TerraNIHResponse>, terraProfileLoginStatus: LoginStatus<TerraResponse>, terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>): TERRA_PROFILE_STATUS;
|
|
@@ -1,5 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TERRA_PROFILE_STATUS } from "./types";
|
|
1
|
+
import { LOGIN_STATUS_NOT_STARTED, LOGIN_STATUS_NOT_SUPPORTED, } from "./constants";
|
|
2
|
+
import { REQUEST_STATUS, TERRA_PROFILE_STATUS, } from "./types/common";
|
|
3
|
+
/**
|
|
4
|
+
* Returns the options for an authentication request.
|
|
5
|
+
* @param token - Token.
|
|
6
|
+
* @returns request options.
|
|
7
|
+
*/
|
|
8
|
+
export function getAuthenticationRequestOptions(token) {
|
|
9
|
+
const headers = new Headers();
|
|
10
|
+
headers.append("authorization", "Bearer " + token);
|
|
11
|
+
return { headers };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns login status.
|
|
15
|
+
* An undefined endpoint will return a not supported login status,
|
|
16
|
+
* otherwise a not started login status is returned.
|
|
17
|
+
* @param endpoint - Endpoint.
|
|
18
|
+
* @returns initial login status.
|
|
19
|
+
*/
|
|
20
|
+
export function initLoginStatus(endpoint) {
|
|
21
|
+
if (!endpoint) {
|
|
22
|
+
// Endpoint not supported.
|
|
23
|
+
return LOGIN_STATUS_NOT_SUPPORTED;
|
|
24
|
+
}
|
|
25
|
+
return LOGIN_STATUS_NOT_STARTED;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns service endpoint.
|
|
29
|
+
* @param services - Services.
|
|
30
|
+
* @param serviceId - Service ID.
|
|
31
|
+
* @param endpointId - Endpoint ID.
|
|
32
|
+
* @returns Service endpoint.
|
|
33
|
+
*/
|
|
34
|
+
export function getServiceEndpoint(services, serviceId, endpointId) {
|
|
35
|
+
return findService(services, serviceId)?.endpoint[endpointId];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Find a service by service ID.
|
|
39
|
+
* @param services - Services.
|
|
40
|
+
* @param serviceId - Service ID.
|
|
41
|
+
* @returns Service.
|
|
42
|
+
*/
|
|
43
|
+
export function findService(services, serviceId) {
|
|
44
|
+
return services?.find(({ id }) => id === serviceId);
|
|
45
|
+
}
|
|
3
46
|
/**
|
|
4
47
|
* Determines the status of a user based on authentication and Terra service statuses.
|
|
5
48
|
* **Logic:**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ClientSafeProvider } from "next-auth/react";
|
|
2
1
|
import { JSX } from "react";
|
|
2
|
+
import { LoginProvider } from "../../auth/types/loginProvider";
|
|
3
3
|
export interface LoginViewProps {
|
|
4
|
-
providers?:
|
|
4
|
+
providers?: LoginProvider[];
|
|
5
5
|
}
|
|
6
6
|
export declare const LoginView: ({ providers, }: LoginViewProps) => JSX.Element | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@databiosphere/findable-ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "51.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
@@ -25,6 +25,14 @@
|
|
|
25
25
|
"lib",
|
|
26
26
|
"types"
|
|
27
27
|
],
|
|
28
|
+
"exports": {
|
|
29
|
+
".": "./lib/index.js",
|
|
30
|
+
"./lib/*": "./lib/*",
|
|
31
|
+
"./nextauth/*": "./lib/nextauth/*",
|
|
32
|
+
"./google/*": "./lib/google/*",
|
|
33
|
+
"./terra/*": "./lib/terra/*",
|
|
34
|
+
"./auth/*": "./lib/auth/*"
|
|
35
|
+
},
|
|
28
36
|
"devDependencies": {
|
|
29
37
|
"@commitlint/cli": "^20.2.0",
|
|
30
38
|
"@commitlint/config-conventional": "^20.2.0",
|
|
@@ -54,6 +62,7 @@
|
|
|
54
62
|
"jest": "^29.7.0",
|
|
55
63
|
"jest-environment-jsdom": "^29.7.0",
|
|
56
64
|
"jest-fetch-mock": "^3.0.3",
|
|
65
|
+
"next-auth": "^4.24.13",
|
|
57
66
|
"prettier": "^3.7.4",
|
|
58
67
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
59
68
|
"storybook": "^10.3.3",
|
|
@@ -93,6 +102,11 @@
|
|
|
93
102
|
"uuid": "^13.0.0",
|
|
94
103
|
"yup": "^1.7.1"
|
|
95
104
|
},
|
|
105
|
+
"peerDependenciesMeta": {
|
|
106
|
+
"next-auth": {
|
|
107
|
+
"optional": true
|
|
108
|
+
}
|
|
109
|
+
},
|
|
96
110
|
"overrides": {
|
|
97
111
|
"glob": "^11.0.4"
|
|
98
112
|
},
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { useReducer } from "react";
|
|
2
|
-
import { DEFAULT_AUTH_STATE } from "../../../providers/authentication/auth/constants";
|
|
3
|
-
import { authReducer } from "../../../providers/authentication/auth/reducer";
|
|
4
|
-
import { initializer } from "../../../providers/authentication/common/utils";
|
|
5
|
-
export const useAuthReducer = (initialState = DEFAULT_AUTH_STATE) => {
|
|
6
|
-
const [authState, authDispatch] = useReducer(authReducer, initialState, initializer);
|
|
7
|
-
return { authDispatch, authState };
|
|
8
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { AuthenticationContextProps } from "../../../providers/authentication/authentication/types";
|
|
2
|
-
export declare const useAuthenticationReducer: (initialState?: import("../../../providers/authentication/authentication/types").AuthenticationState) => AuthenticationContextProps;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { useReducer } from "react";
|
|
2
|
-
import { DEFAULT_AUTHENTICATION_STATE } from "../../../providers/authentication/authentication/constants";
|
|
3
|
-
import { authenticationReducer } from "../../../providers/authentication/authentication/reducer";
|
|
4
|
-
import { initializer } from "../../../providers/authentication/common/utils";
|
|
5
|
-
export const useAuthenticationReducer = (initialState = DEFAULT_AUTHENTICATION_STATE) => {
|
|
6
|
-
const [authenticationState, authenticationDispatch] = useReducer(authenticationReducer, initialState, initializer);
|
|
7
|
-
return { authenticationDispatch, authenticationState };
|
|
8
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AuthState, UpdateAuthStatePayload } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* Update auth state.
|
|
4
|
-
* @param state - State.
|
|
5
|
-
* @param payload - Payload.
|
|
6
|
-
* @returns state.
|
|
7
|
-
*/
|
|
8
|
-
export declare function updateAuthState(state: AuthState, payload: UpdateAuthStatePayload): AuthState;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AuthenticationState, UpdateAuthenticationPayload } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* Update authentication action.
|
|
4
|
-
* @param state - State.
|
|
5
|
-
* @param payload - Payload.
|
|
6
|
-
* @returns state.
|
|
7
|
-
*/
|
|
8
|
-
export declare function updateAuthenticationAction(state: AuthenticationState, payload: UpdateAuthenticationPayload): AuthenticationState;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type ProviderId = string;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CredentialsState, UpdateCredentialsPayload } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* Update credentials action.
|
|
4
|
-
* @param state - State.
|
|
5
|
-
* @param payload - Payload.
|
|
6
|
-
* @returns state.
|
|
7
|
-
*/
|
|
8
|
-
export declare function updateCredentialsAction(state: CredentialsState, payload: UpdateCredentialsPayload): CredentialsState;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ResetStateAction, UpdateCredentialsAction, UpdateCredentialsPayload } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* Update credentials action.
|
|
4
|
-
* @returns Action.
|
|
5
|
-
*/
|
|
6
|
-
export declare function resetState(): ResetStateAction;
|
|
7
|
-
/**
|
|
8
|
-
* Update credentials action.
|
|
9
|
-
* @param payload - Payload.
|
|
10
|
-
* @returns Action.
|
|
11
|
-
*/
|
|
12
|
-
export declare function updateCredentials(payload: UpdateCredentialsPayload): UpdateCredentialsAction;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { LoginResponse, LoginStatus } from "./entities";
|
|
2
|
-
export declare const LOGIN_STATUS_FAILED: LoginStatus<LoginResponse>;
|
|
3
|
-
export declare const LOGIN_STATUS_NOT_STARTED: LoginStatus<LoginResponse>;
|
|
4
|
-
export declare const LOGIN_STATUS_NOT_SUPPORTED: LoginStatus<LoginResponse>;
|
|
5
|
-
export declare const LOGIN_STATUS_PENDING: LoginStatus<LoginResponse>;
|
|
6
|
-
export declare const TERRA_SERVICE_ID = "terra";
|