asma-helpers 0.2.45 → 0.2.47
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/global.d.ts +4 -0
- package/lib/global.d.ts.map +1 -1
- package/lib/global.js.map +1 -1
- package/lib/helpers/generateGenqlClient.d.ts +4 -0
- package/lib/helpers/generateGenqlClient.d.ts.map +1 -1
- package/lib/helpers/generateGenqlClient.js +11 -1
- package/lib/helpers/generateGenqlClient.js.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.d.ts +11 -7
- package/lib/helpers/generateSrvAuthBindings.d.ts.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.js +48 -12
- package/lib/helpers/generateSrvAuthBindings.js.map +1 -1
- package/package.json +2 -1
- package/src/global.ts +4 -0
- package/src/helpers/generateGenqlClient.ts +13 -2
- package/src/helpers/generateSrvAuthBindings.ts +58 -13
package/lib/global.d.ts
CHANGED
|
@@ -18,7 +18,11 @@ declare global {
|
|
|
18
18
|
auth_bindings?: unknown;
|
|
19
19
|
isLogged?: () => boolean;
|
|
20
20
|
logoutUser?: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* @experimental need to be tested
|
|
23
|
+
*/
|
|
21
24
|
logoutMfes?: (() => void)[];
|
|
25
|
+
abortController?: AbortController;
|
|
22
26
|
};
|
|
23
27
|
_env_cloud?: Record<'adopus' | 'adcuris', Record<string, string>>;
|
|
24
28
|
_srvUrls?: Record<string, string>;
|
package/lib/global.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG5D,OAAO,EAAE,CAAA;AAET,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,WAAW,EAAE;YACT,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACxC,CAAA;QACD,mBAAmB,CAAC,EAAE;YAClB,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;YAClC,UAAU,EAAE,MAAM,CAAA;SACrB,EAAE,CAAA;QACH,eAAe,CAAC,EAAE;YACd,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,aAAa,CAAC,EAAE,OAAO,CAAA;YACvB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;YACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;YACvB,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG5D,OAAO,EAAE,CAAA;AAET,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,WAAW,EAAE;YACT,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACxC,CAAA;QACD,mBAAmB,CAAC,EAAE;YAClB,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;YAClC,UAAU,EAAE,MAAM,CAAA;SACrB,EAAE,CAAA;QACH,eAAe,CAAC,EAAE;YACd,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,aAAa,CAAC,EAAE,OAAO,CAAA;YACvB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;YACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;YACvB;;eAEG;YACH,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;YAC3B,eAAe,CAAC,EAAE,eAAe,CAAA;SACpC,CAAA;QAED,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QACjE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC;;;;WAIG;QACH,QAAQ,EAAE,OAAO,CAAA;QACjB;;;WAGG;QACH,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,GAAG,CAAA;KACpB;CACJ;AAED,eAAO,MAAM,OAAO,SAA4D,CAAA;AAEhF,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
package/lib/global.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,oBAAoB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA+C5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,OAAO,KAAI,oBAAoB,EAAE,CAAA;AAEhF,OAAO,EAAW,oBAAoB,EAAE,CAAA"}
|
|
@@ -7,6 +7,10 @@ export declare function generateGenqlClient<T extends ReturnType<typeof createCl
|
|
|
7
7
|
setReqConfig: () => Promise<AxiosRequestConfig<any>>;
|
|
8
8
|
createClient: (options?: ClientOptions | undefined) => T;
|
|
9
9
|
serviceUrl: () => string;
|
|
10
|
+
/**
|
|
11
|
+
* Returns true whenether token and refresh token is epired! this helps to cancel all concurent requests after first request is invalidated.
|
|
12
|
+
* @returns true if request should be cancelled
|
|
13
|
+
*/
|
|
10
14
|
path?: string;
|
|
11
15
|
}): {
|
|
12
16
|
getGenqlClient: () => Promise<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateGenqlClient.d.ts","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"generateGenqlClient.d.ts","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,gBAAgB,CAAA;AAKjE,UAAU,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAoB,GACvB,EAAE;IAEC,YAAY,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,KAAK,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,MAAM,CAAA;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;;4BA8CuC,UAAU,KAAQ,QAAQ,CAAC,CAAC;;EAgDnE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { httpToWs } from './Config';
|
|
2
|
+
import { getAbortController } from './generateSrvAuthBindings';
|
|
2
3
|
export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, path = '/v1/graphql', }) {
|
|
3
4
|
// let jwt_exp = 0
|
|
4
5
|
let client = null;
|
|
@@ -9,6 +10,11 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
9
10
|
// //set exp time -20sec for token to be refreshed early
|
|
10
11
|
// return jwt_exp - 10 <= nowTime
|
|
11
12
|
//}
|
|
13
|
+
/**
|
|
14
|
+
* This method caches the client and returns it if token or/and access is not expired
|
|
15
|
+
* in case if request is cancelled it returns null
|
|
16
|
+
* @returns genql client for gql requests
|
|
17
|
+
*/
|
|
12
18
|
async function getGenqlClient() {
|
|
13
19
|
if ( /* accessTokenHasExpired() || */client === null) {
|
|
14
20
|
client = await genqlClient();
|
|
@@ -34,7 +40,8 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
34
40
|
*/
|
|
35
41
|
async function genqlClient(options = {}) {
|
|
36
42
|
//let req_headers: Record<string, string> = {}
|
|
37
|
-
|
|
43
|
+
var _a;
|
|
44
|
+
const { anonymous, headers, signal, ...rest } = options;
|
|
38
45
|
if (!serviceUrl()) {
|
|
39
46
|
console.warn('requred param srv_url is undefined, please check EnvConfig object!');
|
|
40
47
|
}
|
|
@@ -51,11 +58,13 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
51
58
|
...headers,
|
|
52
59
|
});
|
|
53
60
|
},
|
|
61
|
+
signal: signal !== null && signal !== void 0 ? signal : (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
|
|
54
62
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
55
63
|
...rest,
|
|
56
64
|
});
|
|
57
65
|
}
|
|
58
66
|
async function genqlClientWs() {
|
|
67
|
+
var _a;
|
|
59
68
|
if ( /* accessTokenHasExpired() || */!wsClient) {
|
|
60
69
|
//const req_headers = ((await setReqConfig()).headers ?? {}) as Record<string, string>
|
|
61
70
|
//setJwtExp(req_headers['Authorization'])
|
|
@@ -63,6 +72,7 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
63
72
|
url: `${httpToWs(serviceUrl())}${path}`,
|
|
64
73
|
cache: 'reload',
|
|
65
74
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
75
|
+
signal: (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
|
|
66
76
|
subscription: {
|
|
67
77
|
reconnect: true,
|
|
68
78
|
reconnectionAttempts: 5,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateGenqlClient.js","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"generateGenqlClient.js","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAO9D,MAAM,UAAU,mBAAmB,CAA4C,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAI,GAAG,aAAa,GAWvB;IACG,kBAAkB;IAElB,IAAI,MAAM,GAAa,IAAI,CAAA;IAE3B,IAAI,QAAQ,GAAa,IAAI,CAAA;IAE7B,oCAAoC;IACpC,6DAA6D;IAC7D,EAAE;IACF,2DAA2D;IAC3D,oCAAoC;IACpC,GAAG;IACH;;;;OAIG;IACH,KAAK,UAAU,cAAc;QACzB,KAAI,gCAAiC,MAAM,KAAK,IAAI,EAAE;YAClD,MAAM,GAAG,MAAM,WAAW,EAAE,CAAA;YAE5B,OAAO,MAAM,CAAA;SAChB;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,SAAS,gBAAgB;QACrB,MAAM,GAAG,IAAI,CAAA;QACb,QAAQ,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,uCAAuC;IACvC,yBAAyB;IACzB,EAAE;IACF,+DAA+D;IAC/D,EAAE;IACF,gCAAgC;IAChC,IAAI;IAEJ;;;;OAIG;IACH,KAAK,UAAU,WAAW,CAAC,UAAsB,EAAE;QAC/C,8CAA8C;;QAE9C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;QAEvD,IAAI,CAAC,UAAU,EAAE,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;SACrF;QACD,mBAAmB;QACnB,gFAAgF;QAChF,0CAA0C;QAC1C,IAAI;QAEJ,OAAO,YAAY,CAAC;YAChB,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE;YAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;;gBAAC,OAAA,CAAC;oBAClB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,MAAA,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,mCAAI,EAAE,CAA4B,CAAC;oBAChG,GAAG,OAAO;iBACb,CAAC,CAAA;aAAA;YACF,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,MAAA,kBAAkB,EAAE,0CAAE,MAAM;YAC9C,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;YAC/C,GAAG,IAAI;SACV,CAAC,CAAA;IACN,CAAC;IAED,KAAK,UAAU,aAAa;;QACxB,KAAI,gCAAiC,CAAC,QAAQ,EAAE;YAC5C,sFAAsF;YAEtF,yCAAyC;YAEzC,QAAQ,GAAG,YAAY,CAAC;gBACpB,GAAG,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE;gBACvC,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;gBAC/C,MAAM,EAAE,MAAA,kBAAkB,EAAE,0CAAE,MAAM;gBACpC,YAAY,EAAE;oBACV,SAAS,EAAE,IAAI;oBACf,oBAAoB,EAAE,CAAC;oBACvB,OAAO,EAAE,KAAK,IAAI,EAAE,WAAC,OAAA,CAAC,MAAA,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,mCAAI,EAAE,CAA2B,CAAA,EAAA;iBACxF;aACJ,CAAC,CAAA;SACL;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,CAAA;AAC3E,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type AxiosResponse, type ResponseType } from 'axios';
|
|
2
2
|
import { EnvironmentEnums } from '..';
|
|
3
|
+
export declare function getAbortController(): AbortController | undefined;
|
|
3
4
|
export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, EnvironmentToOperateFn: () => string, logout?: () => void): {
|
|
4
5
|
hasFeature: (featureName: FeatureEnums) => boolean;
|
|
5
6
|
getFeatures: () => Set<FeatureEnums> | undefined;
|
|
@@ -15,23 +16,26 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
|
|
|
15
16
|
responseType: ResponseType | undefined;
|
|
16
17
|
headers: Record<string, string>;
|
|
17
18
|
}>;
|
|
18
|
-
getJwtTokenAsync: () => Promise<string
|
|
19
|
-
getNewJwtToken: () => Promise<string
|
|
19
|
+
getJwtTokenAsync: () => Promise<string>;
|
|
20
|
+
getNewJwtToken: () => Promise<string>;
|
|
21
|
+
registerOnJwtChanges: <Key_1 extends "jwt_changed">(event: Key_1, callback: (val: {
|
|
22
|
+
jwt_changed: {};
|
|
23
|
+
}[Key_1]) => void) => {
|
|
24
|
+
unregister: () => void;
|
|
25
|
+
};
|
|
20
26
|
getUserId: () => string;
|
|
27
|
+
setCallbackToJwtNotifier: (callback: () => void) => void;
|
|
21
28
|
getParsedJwt: <R_1 = {
|
|
22
29
|
user_id: string;
|
|
23
30
|
exp: number;
|
|
24
31
|
}>() => R_1 | undefined;
|
|
32
|
+
abortController: AbortController;
|
|
25
33
|
getJwtToken: () => string;
|
|
26
34
|
accessTokenHasExpired: () => boolean;
|
|
27
35
|
};
|
|
28
36
|
/**
|
|
29
37
|
* @deprecated use generateSrvAuthBindings
|
|
30
|
-
*
|
|
31
|
-
* @param DEVELOPMENT
|
|
32
|
-
* @param ENVIRONMENT_TO_OPERATE
|
|
33
|
-
* @param logout
|
|
34
|
-
* @returns
|
|
38
|
+
*
|
|
35
39
|
*/
|
|
36
40
|
export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void): {};
|
|
37
41
|
//# sourceMappingURL=generateSrvAuthBindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAc,
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAM/C,wBAAgB,kBAAkB,gCAEjC;AAED,wBAAgB,uBAAuB,CAAC,YAAY,GAAG,KAAK,EACxD,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,MAAM,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI;8BA0Mc,YAAY;;;kBAnHlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eAKpB,MAAM;kBAAY,YAAY,EAAE;;yBA5C7C,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAwFR,YAAY;;;;;;;;qBArHvB,EAAE;;;;qBAsFnC,MAAM;yCA9EgB,MAAM,IAAI;;iBAiKjB,MAAM;aAAO,MAAM;;;;iCAhHtB,OAAO;EA0J5C;AACD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,gBAAgB,EAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,MAMtB"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import { EventBus } from 'asma-event-bus/lib/event-buss';
|
|
2
3
|
import { EnvironmentEnums, parseJwt } from '..';
|
|
3
|
-
let logoutsuccesfull = false
|
|
4
|
+
//let logoutsuccesfull = false
|
|
5
|
+
let abortController = new AbortController();
|
|
6
|
+
export function getAbortController() {
|
|
7
|
+
var _a;
|
|
8
|
+
return (_a = window.__ASMA__SHELL__) === null || _a === void 0 ? void 0 : _a.abortController;
|
|
9
|
+
}
|
|
4
10
|
export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOperateFn, logout) {
|
|
5
11
|
var _a, _b;
|
|
6
12
|
let logoutMfes = [];
|
|
@@ -14,13 +20,31 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
14
20
|
let jwtToken = '';
|
|
15
21
|
let features;
|
|
16
22
|
let parsed_jwt;
|
|
23
|
+
const { dispatch, register } = EventBus('auth-bindings');
|
|
24
|
+
let changed_jwt_notifier_registry = [];
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* Regiser a callback to be called when the jwt token changes
|
|
28
|
+
*/
|
|
29
|
+
function setCallbackToJwtNotifier(callback) {
|
|
30
|
+
changed_jwt_notifier_registry.push(callback);
|
|
31
|
+
}
|
|
32
|
+
function notifyChangedJwt() {
|
|
33
|
+
changed_jwt_notifier_registry.forEach((c) => c());
|
|
34
|
+
return () => { };
|
|
35
|
+
}
|
|
17
36
|
let fetchJwtPromise = null;
|
|
18
37
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
|
|
19
38
|
const isJwtValid = () => !isJwtInvalid();
|
|
39
|
+
//function cancelRequest() {
|
|
40
|
+
// return logoutsuccesfull
|
|
41
|
+
// }
|
|
20
42
|
async function srvAuthGet(url, headers) {
|
|
43
|
+
var _a;
|
|
21
44
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
22
45
|
if (EnvironmentToOperateFn() in EnvironmentEnums) {
|
|
23
46
|
url = `${url}&env=${EnvironmentToOperateFn()}`;
|
|
47
|
+
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
|
|
24
48
|
url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url;
|
|
25
49
|
}
|
|
26
50
|
else {
|
|
@@ -28,6 +52,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
28
52
|
}
|
|
29
53
|
}
|
|
30
54
|
return axios.get(`${SRV_AUTH()}${url}`, {
|
|
55
|
+
signal: (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
|
|
31
56
|
headers: {
|
|
32
57
|
...headers,
|
|
33
58
|
'asma-origin': window.location.origin,
|
|
@@ -43,9 +68,12 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
43
68
|
return accessTokenExpDate - 10 <= nowTime;
|
|
44
69
|
}
|
|
45
70
|
async function signin(url, headers) {
|
|
71
|
+
if (abortController.signal.aborted) {
|
|
72
|
+
abortController = new AbortController();
|
|
73
|
+
}
|
|
46
74
|
const { data } = await srvAuthGet(url, headers);
|
|
47
75
|
setAuthData(data);
|
|
48
|
-
logoutsuccesfull = false
|
|
76
|
+
// logoutsuccesfull = false
|
|
49
77
|
return data;
|
|
50
78
|
}
|
|
51
79
|
async function signoutAuth() {
|
|
@@ -58,6 +86,11 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
58
86
|
}
|
|
59
87
|
function setAuthData(data) {
|
|
60
88
|
jwtToken = data.token;
|
|
89
|
+
if (jwtToken) {
|
|
90
|
+
dispatch('jwt_changed', {}, false);
|
|
91
|
+
parsed_jwt = parseJwt(jwtToken);
|
|
92
|
+
}
|
|
93
|
+
notifyChangedJwt();
|
|
61
94
|
features = new Set(data.features);
|
|
62
95
|
parsed_jwt = undefined;
|
|
63
96
|
}
|
|
@@ -86,8 +119,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
86
119
|
return res;
|
|
87
120
|
}
|
|
88
121
|
async function getNewJwtToken() {
|
|
89
|
-
if (logoutsuccesfull)
|
|
90
|
-
return;
|
|
122
|
+
//if (logoutsuccesfull) return
|
|
91
123
|
try {
|
|
92
124
|
if (!fetchJwtPromise) {
|
|
93
125
|
fetchJwtPromise = srvAuthGet('/token');
|
|
@@ -95,14 +127,18 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
95
127
|
const { data } = await fetchJwtPromise;
|
|
96
128
|
if (!data || data.errors || data.message != 'Success' || !data.token) {
|
|
97
129
|
logout === null || logout === void 0 ? void 0 : logout();
|
|
98
|
-
logoutsuccesfull = true
|
|
130
|
+
//logoutsuccesfull = true
|
|
131
|
+
abortController === null || abortController === void 0 ? void 0 : abortController.abort();
|
|
132
|
+
logoutMfes.forEach((l) => l());
|
|
99
133
|
//signoutAuth()
|
|
100
134
|
}
|
|
101
135
|
setAuthData({ token: data.token || '', features: data.features || [] });
|
|
102
136
|
}
|
|
103
137
|
catch (error) {
|
|
104
|
-
|
|
105
|
-
logoutsuccesfull = true
|
|
138
|
+
// logout?.()
|
|
139
|
+
// logoutsuccesfull = true
|
|
140
|
+
abortController === null || abortController === void 0 ? void 0 : abortController.abort();
|
|
141
|
+
logoutMfes.forEach((l) => l());
|
|
106
142
|
//signoutAuth()
|
|
107
143
|
setAuthData({ token: '', features: [] });
|
|
108
144
|
console.error(error);
|
|
@@ -139,9 +175,13 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
139
175
|
setReqConfig,
|
|
140
176
|
getJwtTokenAsync,
|
|
141
177
|
getNewJwtToken,
|
|
178
|
+
registerOnJwtChanges: register,
|
|
142
179
|
getUserId,
|
|
180
|
+
setCallbackToJwtNotifier,
|
|
143
181
|
getParsedJwt,
|
|
182
|
+
abortController,
|
|
144
183
|
getJwtToken,
|
|
184
|
+
// cancelRequest,
|
|
145
185
|
accessTokenHasExpired,
|
|
146
186
|
};
|
|
147
187
|
window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {};
|
|
@@ -150,11 +190,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
150
190
|
}
|
|
151
191
|
/**
|
|
152
192
|
* @deprecated use generateSrvAuthBindings
|
|
153
|
-
*
|
|
154
|
-
* @param DEVELOPMENT
|
|
155
|
-
* @param ENVIRONMENT_TO_OPERATE
|
|
156
|
-
* @param logout
|
|
157
|
-
* @returns
|
|
193
|
+
*
|
|
158
194
|
*/
|
|
159
195
|
export function generateSrvAuthBindingsMicroApp(SRV_AUTH, DEVELOPMENT, ENVIRONMENT_TO_OPERATE, logout) {
|
|
160
196
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAE/C,IAAI,
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "asma-helpers",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.47",
|
|
4
4
|
"description": "helpers methods for asma",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@genql/runtime": "^2.10.0",
|
|
23
|
+
"asma-event-bus": "^0.0.41",
|
|
23
24
|
"axios": "1.0.0",
|
|
24
25
|
"history": "~5.0.0",
|
|
25
26
|
"idb-keyval": "^6.2.0",
|
package/src/global.ts
CHANGED
|
@@ -21,7 +21,11 @@ declare global {
|
|
|
21
21
|
auth_bindings?: unknown //IGenerateSRVAuthBindings
|
|
22
22
|
isLogged?: () => boolean
|
|
23
23
|
logoutUser?: () => void
|
|
24
|
+
/**
|
|
25
|
+
* @experimental need to be tested
|
|
26
|
+
*/
|
|
24
27
|
logoutMfes?: (() => void)[]
|
|
28
|
+
abortController?: AbortController
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
_env_cloud?: Record<'adopus' | 'adcuris', Record<string, string>>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AxiosRequestConfig } from 'axios'
|
|
2
2
|
import type { ClientOptions, createClient } from '@genql/runtime'
|
|
3
3
|
import { httpToWs } from './Config'
|
|
4
|
+
import { getAbortController } from './generateSrvAuthBindings'
|
|
4
5
|
//import { parseJwt } from '../helpers/parseJwt'
|
|
5
6
|
|
|
6
7
|
interface CliOptions extends Omit<ClientOptions, 'url'> {
|
|
@@ -17,6 +18,10 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
17
18
|
setReqConfig: () => Promise<AxiosRequestConfig<any>>
|
|
18
19
|
createClient: (options?: ClientOptions | undefined) => T
|
|
19
20
|
serviceUrl: () => string
|
|
21
|
+
/**
|
|
22
|
+
* Returns true whenether token and refresh token is epired! this helps to cancel all concurent requests after first request is invalidated.
|
|
23
|
+
* @returns true if request should be cancelled
|
|
24
|
+
*/
|
|
20
25
|
path?: string
|
|
21
26
|
}) {
|
|
22
27
|
// let jwt_exp = 0
|
|
@@ -31,7 +36,11 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
31
36
|
// //set exp time -20sec for token to be refreshed early
|
|
32
37
|
// return jwt_exp - 10 <= nowTime
|
|
33
38
|
//}
|
|
34
|
-
|
|
39
|
+
/**
|
|
40
|
+
* This method caches the client and returns it if token or/and access is not expired
|
|
41
|
+
* in case if request is cancelled it returns null
|
|
42
|
+
* @returns genql client for gql requests
|
|
43
|
+
*/
|
|
35
44
|
async function getGenqlClient() {
|
|
36
45
|
if (/* accessTokenHasExpired() || */ client === null) {
|
|
37
46
|
client = await genqlClient()
|
|
@@ -63,7 +72,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
63
72
|
async function genqlClient(options: CliOptions = {}): Promise<T> {
|
|
64
73
|
//let req_headers: Record<string, string> = {}
|
|
65
74
|
|
|
66
|
-
const { anonymous, headers, ...rest } = options
|
|
75
|
+
const { anonymous, headers, signal, ...rest } = options
|
|
67
76
|
|
|
68
77
|
if (!serviceUrl()) {
|
|
69
78
|
console.warn('requred param srv_url is undefined, please check EnvConfig object!')
|
|
@@ -79,6 +88,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
79
88
|
...(options.anonymous ? {} : (((await setReqConfig()).headers ?? {}) as Record<string, string>)),
|
|
80
89
|
...headers,
|
|
81
90
|
}),
|
|
91
|
+
signal: signal ?? getAbortController()?.signal,
|
|
82
92
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
83
93
|
...rest,
|
|
84
94
|
})
|
|
@@ -94,6 +104,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
94
104
|
url: `${httpToWs(serviceUrl())}${path}`,
|
|
95
105
|
cache: 'reload',
|
|
96
106
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
107
|
+
signal: getAbortController()?.signal,
|
|
97
108
|
subscription: {
|
|
98
109
|
reconnect: true,
|
|
99
110
|
reconnectionAttempts: 5,
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import axios, {type
|
|
1
|
+
import axios, { type AxiosResponse, type ResponseType } from 'axios'
|
|
2
|
+
import { EventBus } from 'asma-event-bus/lib/event-buss'
|
|
2
3
|
import { EnvironmentEnums, parseJwt } from '..'
|
|
3
4
|
|
|
4
|
-
let logoutsuccesfull = false
|
|
5
|
+
//let logoutsuccesfull = false
|
|
6
|
+
|
|
7
|
+
let abortController = new AbortController()
|
|
8
|
+
|
|
9
|
+
export function getAbortController() {
|
|
10
|
+
return window.__ASMA__SHELL__?.abortController
|
|
11
|
+
}
|
|
5
12
|
|
|
6
13
|
export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
7
14
|
SRV_AUTH: () => string,
|
|
@@ -26,6 +33,23 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
26
33
|
|
|
27
34
|
let parsed_jwt: any | undefined
|
|
28
35
|
|
|
36
|
+
const { dispatch, register } = EventBus<{ jwt_changed: {} }>('auth-bindings')
|
|
37
|
+
|
|
38
|
+
let changed_jwt_notifier_registry: (() => void)[] = []
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* Regiser a callback to be called when the jwt token changes
|
|
43
|
+
*/
|
|
44
|
+
function setCallbackToJwtNotifier(callback: () => void) {
|
|
45
|
+
changed_jwt_notifier_registry.push(callback)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function notifyChangedJwt() {
|
|
49
|
+
changed_jwt_notifier_registry.forEach((c) => c())
|
|
50
|
+
return () => {}
|
|
51
|
+
}
|
|
52
|
+
|
|
29
53
|
let fetchJwtPromise: Promise<{
|
|
30
54
|
data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
|
|
31
55
|
}> | null = null
|
|
@@ -34,11 +58,16 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
34
58
|
|
|
35
59
|
const isJwtValid = () => !isJwtInvalid()
|
|
36
60
|
|
|
61
|
+
//function cancelRequest() {
|
|
62
|
+
// return logoutsuccesfull
|
|
63
|
+
// }
|
|
64
|
+
|
|
37
65
|
async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
|
|
38
66
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
39
67
|
if (EnvironmentToOperateFn() in EnvironmentEnums) {
|
|
40
68
|
url = `${url}&env=${EnvironmentToOperateFn()}`
|
|
41
69
|
|
|
70
|
+
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
|
|
42
71
|
url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
|
|
43
72
|
} else {
|
|
44
73
|
console.warn(
|
|
@@ -52,6 +81,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
52
81
|
}
|
|
53
82
|
|
|
54
83
|
return axios.get<unknown, AxiosResponse<R>>(`${SRV_AUTH()}${url}`, {
|
|
84
|
+
signal: getAbortController()?.signal,
|
|
55
85
|
headers: {
|
|
56
86
|
...headers,
|
|
57
87
|
'asma-origin': window.location.origin,
|
|
@@ -72,11 +102,15 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
72
102
|
}
|
|
73
103
|
|
|
74
104
|
async function signin(url: string, headers?: Record<string, string>) {
|
|
105
|
+
if (abortController.signal.aborted) {
|
|
106
|
+
abortController = new AbortController()
|
|
107
|
+
}
|
|
108
|
+
|
|
75
109
|
const { data } = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
|
|
76
110
|
|
|
77
111
|
setAuthData(data)
|
|
78
112
|
|
|
79
|
-
logoutsuccesfull = false
|
|
113
|
+
// logoutsuccesfull = false
|
|
80
114
|
|
|
81
115
|
return data
|
|
82
116
|
}
|
|
@@ -91,6 +125,13 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
91
125
|
|
|
92
126
|
function setAuthData(data: { token: string; features?: FeatureEnums[] }) {
|
|
93
127
|
jwtToken = data.token
|
|
128
|
+
|
|
129
|
+
if (jwtToken) {
|
|
130
|
+
dispatch('jwt_changed', {}, false)
|
|
131
|
+
|
|
132
|
+
parsed_jwt = parseJwt(jwtToken)
|
|
133
|
+
}
|
|
134
|
+
notifyChangedJwt()
|
|
94
135
|
features = new Set(data.features)
|
|
95
136
|
parsed_jwt = undefined
|
|
96
137
|
}
|
|
@@ -126,7 +167,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
126
167
|
}
|
|
127
168
|
|
|
128
169
|
async function getNewJwtToken() {
|
|
129
|
-
if(logoutsuccesfull) return
|
|
170
|
+
//if (logoutsuccesfull) return
|
|
130
171
|
try {
|
|
131
172
|
if (!fetchJwtPromise) {
|
|
132
173
|
fetchJwtPromise = srvAuthGet('/token')
|
|
@@ -136,15 +177,19 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
136
177
|
|
|
137
178
|
if (!data || data.errors || data.message != 'Success' || !data.token) {
|
|
138
179
|
logout?.()
|
|
139
|
-
logoutsuccesfull = true
|
|
140
|
-
|
|
180
|
+
//logoutsuccesfull = true
|
|
181
|
+
abortController?.abort()
|
|
182
|
+
logoutMfes.forEach((l) => l())
|
|
141
183
|
//signoutAuth()
|
|
142
184
|
}
|
|
143
185
|
|
|
144
186
|
setAuthData({ token: data.token || '', features: data.features || [] })
|
|
145
187
|
} catch (error) {
|
|
146
|
-
logout?.()
|
|
147
|
-
logoutsuccesfull = true
|
|
188
|
+
// logout?.()
|
|
189
|
+
// logoutsuccesfull = true
|
|
190
|
+
abortController?.abort()
|
|
191
|
+
logoutMfes.forEach((l) => l())
|
|
192
|
+
|
|
148
193
|
//signoutAuth()
|
|
149
194
|
|
|
150
195
|
setAuthData({ token: '', features: [] })
|
|
@@ -185,9 +230,13 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
185
230
|
setReqConfig,
|
|
186
231
|
getJwtTokenAsync,
|
|
187
232
|
getNewJwtToken,
|
|
233
|
+
registerOnJwtChanges: register,
|
|
188
234
|
getUserId,
|
|
235
|
+
setCallbackToJwtNotifier,
|
|
189
236
|
getParsedJwt,
|
|
237
|
+
abortController,
|
|
190
238
|
getJwtToken,
|
|
239
|
+
// cancelRequest,
|
|
191
240
|
accessTokenHasExpired,
|
|
192
241
|
}
|
|
193
242
|
window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {}
|
|
@@ -198,11 +247,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
198
247
|
}
|
|
199
248
|
/**
|
|
200
249
|
* @deprecated use generateSrvAuthBindings
|
|
201
|
-
*
|
|
202
|
-
* @param DEVELOPMENT
|
|
203
|
-
* @param ENVIRONMENT_TO_OPERATE
|
|
204
|
-
* @param logout
|
|
205
|
-
* @returns
|
|
250
|
+
*
|
|
206
251
|
*/
|
|
207
252
|
export function generateSrvAuthBindingsMicroApp(
|
|
208
253
|
SRV_AUTH: () => string,
|