@equinor/subsurface-app-management 4.0.0 → 4.1.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/dist/api/core/OpenAPI.d.ts +11 -0
- package/dist/api/core/OpenAPI.js +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/components/Feature/Feature.js +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useSignalRMessages.d.ts +12 -0
- package/dist/hooks/useSignalRMessages.js +1 -0
- package/dist/index.js +1 -1
- package/dist/providers/TutorialProvider/TutorialProvider.js +1 -1
- package/dist/providers/TutorialProvider/hooks/usePrefetchTutorialStepImages.js +1 -1
- package/package.json +2 -1
|
@@ -14,6 +14,12 @@ export type OpenAPIConfig = {
|
|
|
14
14
|
ENCODE_PATH?: (path: string) => string;
|
|
15
15
|
};
|
|
16
16
|
export declare class TokenService {
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated
|
|
19
|
+
* @returns string Success
|
|
20
|
+
* @throws ApiError
|
|
21
|
+
*/
|
|
22
|
+
static getAmplifyPortalToken(): CancelablePromise<string>;
|
|
17
23
|
/**
|
|
18
24
|
* @returns string Success
|
|
19
25
|
* @throws ApiError
|
|
@@ -25,6 +31,11 @@ export declare class TokenService {
|
|
|
25
31
|
*/
|
|
26
32
|
static getSamPortalProductionToken(): CancelablePromise<string>;
|
|
27
33
|
}
|
|
34
|
+
export declare const getJSEmbarkToken: () => Promise<string>;
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated - Use getJSEmbarkToken instead
|
|
37
|
+
*/
|
|
38
|
+
export declare const getPortalToken: () => Promise<string>;
|
|
28
39
|
export declare const getSAMToken: () => Promise<string>;
|
|
29
40
|
export declare const OpenAPI_APP: OpenAPIConfig;
|
|
30
41
|
export declare const OpenAPI_SAM: OpenAPIConfig;
|
package/dist/api/core/OpenAPI.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as t from"../../utils/environment.js";import{request as o}from"./request.js";import{getLocalStorage as e,updateLocalStorage as r}from"../../utils/localStorage.js";import{jwtDecode as i}from"jwt-decode";const{getEnvironmentName:n,getApiUrl:a}=t,E=n(import.meta.env.VITE_ENVIRONMENT_NAME),m="localhost"===E?"development":E;class d{static getAmplifyPortalToken(){return o(A,{method:"GET",url:"/api/v1/Token/AmplifyPortal"})}static getSamPortalToken(){return o(A,{method:"GET",url:"/api/v1/Token/SamPortal"})}static getSamPortalProductionToken(){return o(A,{method:"GET",url:"/api/v1/Token/SamPortal/Production"})}}const S=t=>{if(0===t.length)return!1;try{return!(t=>{const o=i(t),e=(new Date).getTime()/1e3;return o.exp&&e>o.exp})(t)}catch(t){return!1}},T=async(t,o)=>{const i=e(t,"");if(S(i))return i;const n=await o();return r(t,n),n},c=async()=>T(`amplify-portal-${E}`,d.getAmplifyPortalToken),l=()=>c(),s=async()=>T(`sam-${E}`,d.getSamPortalToken),A={BASE:a(import.meta.env.VITE_API_URL),VERSION:"1.0",WITH_CREDENTIALS:!1,CREDENTIALS:"include",TOKEN:void 0,USERNAME:void 0,PASSWORD:void 0,HEADERS:void 0,ENCODE_PATH:void 0},p={BASE:`https://api-sam-backend-${m}.radix.equinor.com`,VERSION:"1.0",WITH_CREDENTIALS:!1,CREDENTIALS:"include",TOKEN:s,USERNAME:void 0,PASSWORD:void 0,HEADERS:void 0,ENCODE_PATH:void 0},u={BASE:"https://api-sam-backend-production.radix.equinor.com",VERSION:"1.0",WITH_CREDENTIALS:!1,CREDENTIALS:"include",TOKEN:async()=>T("sam-production",d.getSamPortalProductionToken),USERNAME:void 0,PASSWORD:void 0,HEADERS:void 0,ENCODE_PATH:void 0};export{A as OpenAPI_APP,p as OpenAPI_SAM,u as OpenAPI_SAM_Prod,d as TokenService,c as getJSEmbarkToken,l as getPortalToken,s as getSAMToken};
|
package/dist/api/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ApiError } from './core/ApiError';
|
|
2
2
|
export { CancelablePromise, CancelError } from './core/CancelablePromise';
|
|
3
|
-
export { OpenAPI_APP, getSAMToken } from './core/OpenAPI';
|
|
3
|
+
export { OpenAPI_APP, getSAMToken, getJSEmbarkToken, getPortalToken, } from './core/OpenAPI';
|
|
4
4
|
export { request } from './core/request';
|
|
5
5
|
export type { OpenAPIConfig } from './core/OpenAPI';
|
|
6
6
|
export type { AmplifyApplication } from './models/AmplifyApplication';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,Fragment as
|
|
1
|
+
import{jsx as o,Fragment as r}from"react/jsx-runtime";import"../../providers/FeatureToggleProvider.js";import{useFeatureToggling as e}from"../../hooks/useFeatureToggling.js";import"@tanstack/react-query";import"../../api/core/OpenAPI.js";import"../../api/models/ApplicationCategory.js";import"../../api/models/ServiceNowUrgency.js";import"../../api/models/TutorialPosition.js";import"../../types/Environment.js";import"../../types/ReleaseNotes.js";import"react";import"@microsoft/signalr";const t=({children:t,fallback:i,...s})=>{const{showContent:p}=e({...s});return p?o(r,{children:t}):void 0===i?null:o(r,{children:i})};export{t as Feature};
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export { useFeatureToggling } from './useFeatureToggling';
|
|
|
3
3
|
export { useReleaseNotesQuery } from './useReleaseNotesQuery';
|
|
4
4
|
export { useTutorialsQuery } from './useTutorialsQuery';
|
|
5
5
|
export { useTutorialStepImage } from './useTutorialStepImage';
|
|
6
|
+
export { useSignalRMessages } from './useSignalRMessages';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function useSignalRMessages<T extends {
|
|
2
|
+
SequenceNumber?: number | null;
|
|
3
|
+
Read?: boolean | null;
|
|
4
|
+
Subject?: string | null;
|
|
5
|
+
}>(topic: string): {
|
|
6
|
+
messages: T[];
|
|
7
|
+
hasUnreadMessages: boolean;
|
|
8
|
+
setMessageAsRead: (message: T) => void;
|
|
9
|
+
setAllMessagesAsRead: () => void;
|
|
10
|
+
deleteMessage: (message: T) => Promise<void>;
|
|
11
|
+
closeConnection: () => Promise<void>;
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useRef as e,useState as r,useMemo as t,useEffect as n}from"react";import*as o from"@microsoft/signalr";import{LogLevel as i}from"@microsoft/signalr";import{useQuery as s}from"@tanstack/react-query";import{getJSEmbarkToken as c}from"../api/core/OpenAPI.js";import"../api/models/ApplicationCategory.js";import"../api/models/ServiceNowUrgency.js";import"../api/models/TutorialPosition.js";import{EnvironmentType as a}from"../types/Environment.js";import{getEnvironmentName as u}from"../utils/environment.js";function m(m){const p=e(void 0),[d,l]=r([]),[f,g]=r(),[b,v]=r(),w=e(void 0),y=e(void 0),{data:S}=s({queryKey:["get-amplify-portal-token"],queryFn:()=>c()}),N=t((()=>{const e=u(import.meta.env.VITE_ENVIRONMENT_NAME);return`wss://api-amplify-portal-${e===a.LOCALHOST?a.DEVELOP:e}.radix.equinor.com`}),[]);n((()=>{(async function(){if(void 0===S||w.current===m&&y.current===S)return;void 0!==p.current&&w.current&&y.current&&(w.current!==m||y.current!==S)&&await p.current.stop(),y.current=S,w.current=m;const e=(new o.HubConnectionBuilder).configureLogging(i.Error).withUrl(`${N}/hubs/notifications`,{accessTokenFactory:()=>S,withCredentials:!1,skipNegotiation:!0,transport:o.HttpTransportType.WebSockets}).withAutomaticReconnect().build();try{await e.start(),e.on("ActiveMessages",((e,r)=>{l(r.map((r=>({...r,Subject:e}))).reverse())})),e.onreconnected((()=>e.invoke("Subscribe",m))),e.on("NewMessage",((e,r)=>{l((t=>[{...r,Subject:e},...t]))})),e.on("UpdateMessage",((e,r)=>{v({...r,Subject:e})})),e.on("Delete",((e,r)=>{g(r)})),e.on("Error",(e=>{throw new Error("Connection error: "+e)})),await e.invoke("Subscribe",m),await e.invoke("PeekMessages")}catch(e){console.error("Connection failed",e)}p.current=e})().catch((e=>{console.error("Error setting up connection",e)}))}),[N,m,S]),n((()=>{if(b){const e=d.findIndex((e=>e.SequenceNumber===b.SequenceNumber)),r=[...d];e>-1&&(r[e]=b,l(r),v(void 0))}}),[b,d]),n((()=>{if(f){const e=d.findIndex((e=>e.SequenceNumber===f)),r=[...d];e>-1&&(r.splice(e,1),l(r),g(void 0))}}),[f,d]);const E=e=>{p.current&&(e.Read=!e.Read,p.current.invoke("PatchMessage",e.SequenceNumber,e).catch((e=>{console.error("Error setting message as read",e)})))},M=t((()=>d.some((e=>!1===e.Read))),[d]);return{messages:d,hasUnreadMessages:M,setMessageAsRead:E,setAllMessagesAsRead:()=>{d.forEach((e=>{e.Read||E(e)}))},deleteMessage:async function(e){p.current&&null!==e.SequenceNumber&&(await p.current.invoke("DeleteMessage",e.SequenceNumber),g(e.SequenceNumber))},closeConnection:async()=>{if(p.current)return await p.current.stop()}}}export{m as useSignalRMessages};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Feature}from"./components/Feature/Feature.js";export{FeatureRoute}from"./components/FeatureRoute/FeatureRoute.js";export{FeatureToggleProvider,useFeatureToggleContext}from"./providers/FeatureToggleProvider.js";export{useFeatureToggling}from"./hooks/useFeatureToggling.js";export{useReleaseNotesQuery}from"./hooks/useReleaseNotesQuery.js";export{useTutorialsQuery}from"./hooks/useTutorialsQuery.js";export{useTutorialStepImage}from"./hooks/useTutorialStepImage.js";export{TutorialProvider,useTutorials}from"./providers/TutorialProvider/TutorialProvider.js";export{ApplicationInsightsProvider}from"./providers/ApplicationInsightsProvider.js";export{EnvironmentType}from"./types/Environment.js";export{RELEASENOTE_TYPES_INFORMATION,ReleaseNoteType}from"./types/ReleaseNotes.js";import*as e from"./utils/environment.js";export{e as environment};export{ApiError}from"./api/core/ApiError.js";export{CancelError,CancelablePromise}from"./api/core/CancelablePromise.js";export{OpenAPI_APP,getSAMToken}from"./api/core/OpenAPI.js";export{request}from"./api/core/request.js";export{ApplicationCategory}from"./api/models/ApplicationCategory.js";export{ServiceNowUrgency}from"./api/models/ServiceNowUrgency.js";export{TutorialPosition}from"./api/models/TutorialPosition.js";export{AmplifyApplicationService}from"./api/services/AmplifyApplicationService.js";export{FeatureToggleService}from"./api/services/FeatureToggleService.js";export{ImpersonateUserService}from"./api/services/ImpersonateUserService.js";export{ReleaseNotesService}from"./api/services/ReleaseNotesService.js";export{ServiceNowService}from"./api/services/ServiceNowService.js";export{SlackService}from"./api/services/SlackService.js";export{TutorialService}from"./api/services/TutorialService.js";export{GET_FEATURE_TOGGLES_FOR_APP,GET_RELEASE_NOTES,GET_TUTORIALS_FOR_APP,GET_TUTORIALS_SAS_TOKEN,GET_TUTORIAL_STEP_IMAGE,SAM_QUERIES}from"./constants/queryKeys.js";
|
|
1
|
+
export{Feature}from"./components/Feature/Feature.js";export{FeatureRoute}from"./components/FeatureRoute/FeatureRoute.js";export{FeatureToggleProvider,useFeatureToggleContext}from"./providers/FeatureToggleProvider.js";export{useFeatureToggling}from"./hooks/useFeatureToggling.js";export{useReleaseNotesQuery}from"./hooks/useReleaseNotesQuery.js";export{useTutorialsQuery}from"./hooks/useTutorialsQuery.js";export{useTutorialStepImage}from"./hooks/useTutorialStepImage.js";export{useSignalRMessages}from"./hooks/useSignalRMessages.js";export{TutorialProvider,useTutorials}from"./providers/TutorialProvider/TutorialProvider.js";export{ApplicationInsightsProvider}from"./providers/ApplicationInsightsProvider.js";export{EnvironmentType}from"./types/Environment.js";export{RELEASENOTE_TYPES_INFORMATION,ReleaseNoteType}from"./types/ReleaseNotes.js";import*as e from"./utils/environment.js";export{e as environment};export{ApiError}from"./api/core/ApiError.js";export{CancelError,CancelablePromise}from"./api/core/CancelablePromise.js";export{OpenAPI_APP,getJSEmbarkToken,getPortalToken,getSAMToken}from"./api/core/OpenAPI.js";export{request}from"./api/core/request.js";export{ApplicationCategory}from"./api/models/ApplicationCategory.js";export{ServiceNowUrgency}from"./api/models/ServiceNowUrgency.js";export{TutorialPosition}from"./api/models/TutorialPosition.js";export{AmplifyApplicationService}from"./api/services/AmplifyApplicationService.js";export{FeatureToggleService}from"./api/services/FeatureToggleService.js";export{ImpersonateUserService}from"./api/services/ImpersonateUserService.js";export{ReleaseNotesService}from"./api/services/ReleaseNotesService.js";export{ServiceNowService}from"./api/services/ServiceNowService.js";export{SlackService}from"./api/services/SlackService.js";export{TutorialService}from"./api/services/TutorialService.js";export{GET_FEATURE_TOGGLES_FOR_APP,GET_RELEASE_NOTES,GET_TUTORIALS_FOR_APP,GET_TUTORIALS_SAS_TOKEN,GET_TUTORIAL_STEP_IMAGE,SAM_QUERIES}from"./constants/queryKeys.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{createContext as r,useState as i,useMemo as t,useContext as e}from"react";import{useLocation as s,matchPath as n}from"react-router";import{useSeenTutorials as a}from"./useSeenTutorials.js";import"../FeatureToggleProvider.js";import"@tanstack/react-query";import"../../api/core/OpenAPI.js";import{useTutorialsQuery as u}from"../../hooks/useTutorialsQuery.js";import"@microsoft/signalr";import"../../api/models/ApplicationCategory.js";import"../../api/models/ServiceNowUrgency.js";import"../../api/models/TutorialPosition.js";import"../../types/Environment.js";import{usePrefetchTutorialStepImages as l}from"./hooks/usePrefetchTutorialStepImages.js";const p=r(void 0);function d(){const o=e(p);if(void 0===o)throw new Error("'useTutorials' must be used within provider");return o}const m=({children:r})=>{const{pathname:e}=s(),{data:d=[]}=u(),[m,c]=i(void 0),[v,f]=i(void 0),[h,T]=a();l();const w=t((()=>d?.filter((o=>null!==n(o.path,e)))),[e,d]),g=t((()=>w?.filter((o=>!h.includes(o.id)&&o.willPopUp))),[h,w]);return o(p.Provider,{value:{allTutorials:d,tutorialsOnThisPage:w,unseenTutorialsOnThisPage:g,activeTutorial:m,activeStep:v,seenTutorialIDs:h,startTutorial:o=>{if(!d?.some((r=>o===r.id)))throw new Error("Tutorial not found");c(d.find((r=>o===r.id))),f(0)},skipTutorial:o=>{m&&m.id===o&&(c(void 0),f(void 0)),T(o)},goToNextStep:()=>{if(!m)throw new Error("No currently active tutorial!");if(void 0===v)throw new Error("activeStep is undefined!");v+1>=m.steps.length?(T(m.id),c(void 0),f(void 0)):f(v+1)},goToPreviousStep:()=>{if(!m)throw new Error("No currently active tutorial!");if(void 0===v)throw new Error("activeStep is undefined!");0===v?(c(void 0),f(void 0)):f(v-1)}},children:r})};export{p as TutorialDataContext,m as TutorialProvider,d as useTutorials};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useRef as r,useEffect as
|
|
1
|
+
import{useRef as r,useEffect as o}from"react";import{useQueryClient as e}from"@tanstack/react-query";import{TutorialService as t}from"../../../api/services/TutorialService.js";import{GET_TUTORIAL_STEP_IMAGE as i}from"../../../constants/queryKeys.js";import"../../FeatureToggleProvider.js";import"../../../api/core/OpenAPI.js";import{useTutorialsQuery as s}from"../../../hooks/useTutorialsQuery.js";import"@microsoft/signalr";import"../../../api/models/ApplicationCategory.js";import"../../../api/models/ServiceNowUrgency.js";import"../../../api/models/TutorialPosition.js";import"../../../types/Environment.js";function m(){const{data:m=[]}=s(),p=e(),a=r([]);o((()=>{const r=r=>{for(const o of r.steps)o.imgUrl&&p.prefetchQuery({queryKey:[i,o.imgUrl],queryFn:()=>t.getTutorialImage(o.imgUrl),staleTime:1/0,gcTime:1/0})};for(const o of m)a.current.includes(o.id)||(a.current.push(o.id),r(o))}),[p,m])}export{m as usePrefetchTutorialStepImages};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@equinor/subsurface-app-management",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "React Typescript components/hooks to communicate with equinor/sam",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -113,6 +113,7 @@
|
|
|
113
113
|
"@microsoft/applicationinsights-clickanalytics-js": "^3.3.6",
|
|
114
114
|
"@microsoft/applicationinsights-react-js": "^18.3.6",
|
|
115
115
|
"@microsoft/applicationinsights-web": "^3.3.6",
|
|
116
|
+
"@microsoft/signalr": "^8.0.7",
|
|
116
117
|
"jwt-decode": "^4.0.0"
|
|
117
118
|
}
|
|
118
119
|
}
|