asma-helpers 0.2.4 → 0.2.5
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 +1 -2
- package/lib/global.d.ts.map +1 -1
- package/lib/global.js.map +1 -1
- package/lib/helpers/Config.d.ts +1 -1
- package/lib/helpers/Config.d.ts.map +1 -1
- package/lib/helpers/generateEnvConfigsBindings.d.ts +3 -3
- package/lib/helpers/generateEnvConfigsBindings.d.ts.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.d.ts +18 -15
- package/lib/helpers/generateSrvAuthBindings.d.ts.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.js +29 -7
- package/lib/helpers/generateSrvAuthBindings.js.map +1 -1
- package/package.json +3 -3
- package/src/global.ts +3 -2
- package/src/helpers/generateSrvAuthBindings.ts +28 -13
package/lib/global.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type History, createBrowserHistory } from 'history';
|
|
2
|
-
import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings';
|
|
3
2
|
export {};
|
|
4
3
|
declare global {
|
|
5
4
|
interface Window {
|
|
@@ -16,7 +15,7 @@ declare global {
|
|
|
16
15
|
}[];
|
|
17
16
|
__ASMA__SHELL__?: {
|
|
18
17
|
history?: History;
|
|
19
|
-
auth_bindings?:
|
|
18
|
+
auth_bindings?: unknown;
|
|
20
19
|
isLogged?: () => boolean;
|
|
21
20
|
logoutUser?: () => void;
|
|
22
21
|
};
|
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;
|
|
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;SAC1B,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;AA0C5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,OAAO,KAAI,oBAAoB,EAAE,CAAA;AAEhF,OAAO,EAAW,oBAAoB,EAAE,CAAA"}
|
package/lib/helpers/Config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type ObjectType<T> = T extends string ? string : T extends boolean ? boolean : never;
|
|
2
2
|
export declare function config<T>(env_var: string, default_value: T): ObjectType<T>;
|
|
3
3
|
export declare function configWeb<T>(env_var: string, default_value: T): ObjectType<T>;
|
|
4
4
|
export declare function httpToWs(url: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/helpers/Config.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/helpers/Config.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;AAEpF,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAiB1E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAQ7E;AAcD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAInC"}
|
|
@@ -4,9 +4,9 @@ interface IBasicEnv {
|
|
|
4
4
|
ENVIRONMENT_TO_OPERATE: string;
|
|
5
5
|
ADVOCA_ACCESS_URL?: string;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
type IEnvironmentUrls = typeof EnvironmentsUrls.local;
|
|
8
|
+
type IKeyEnvironmentUrls = keyof IEnvironmentUrls;
|
|
9
|
+
type ISrvKeysTransformToWs<T> = T extends `SRV_${infer K}` ? `SRV_${K}_WS` : never;
|
|
10
10
|
export declare function generateEnvConfigsBindings<T extends IBasicEnv, K extends (keyof T | IKeyEnvironmentUrls | ISrvKeysTransformToWs<keyof T | IKeyEnvironmentUrls>) & string, S>(envs_import: Promise<{
|
|
11
11
|
envs: T;
|
|
12
12
|
}>, required_envs: K[], static_env: S): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEnvConfigsBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateEnvConfigsBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,UAAU,SAAS;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,
|
|
1
|
+
{"version":3,"file":"generateEnvConfigsBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateEnvConfigsBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,UAAU,SAAS;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,KAAK,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAA;AAErD,KAAK,mBAAmB,GAAG,MAAM,gBAAgB,CAAA;AAEjD,KAAK,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;AAIlF,wBAAgB,0BAA0B,CACtC,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,MAAM,EACzG,CAAC,EACH,WAAW,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;;;;;;;;;;;;;;;EA4DrE"}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
+
import type { feature_names_enum } from 'asma-genql-directory/lib';
|
|
1
2
|
import { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios';
|
|
2
3
|
import { EnvironmentEnums } from '..';
|
|
3
|
-
export
|
|
4
|
+
export declare function generateSrvAuthBindings(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, EnvironmentToOperateFn: () => string, logout?: () => void): {
|
|
5
|
+
hasFeature: (featureName: feature_names_enum) => boolean;
|
|
6
|
+
getFeatures: () => Set<feature_names_enum> | undefined;
|
|
4
7
|
isJwtValid: () => boolean;
|
|
5
|
-
signin(url: string, headers?: Record<string, string>)
|
|
8
|
+
signin: (url: string, headers?: Record<string, string>) => Promise<{
|
|
6
9
|
token: string;
|
|
10
|
+
features: feature_names_enum[];
|
|
7
11
|
}>;
|
|
8
|
-
srvAuthGet<R>(url: string, headers?: Record<string, string>)
|
|
9
|
-
signoutAuth()
|
|
10
|
-
setReqConfig<T = unknown>(data?: T, responseType?: ResponseType)
|
|
11
|
-
getJwtTokenAsync()
|
|
12
|
-
getNewJwtToken()
|
|
13
|
-
getUserId()
|
|
14
|
-
getParsedJwt<
|
|
12
|
+
srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<AxiosResponse<R, any>>;
|
|
13
|
+
signoutAuth: () => Promise<void>;
|
|
14
|
+
setReqConfig: <T = unknown>(data?: T | undefined, responseType?: ResponseType) => Promise<AxiosRequestConfig>;
|
|
15
|
+
getJwtTokenAsync: () => Promise<string>;
|
|
16
|
+
getNewJwtToken: () => Promise<string>;
|
|
17
|
+
getUserId: () => string;
|
|
18
|
+
getParsedJwt: <R_1 = {
|
|
15
19
|
user_id: string;
|
|
16
20
|
exp: number;
|
|
17
|
-
}>()
|
|
18
|
-
getJwtToken()
|
|
19
|
-
accessTokenHasExpired()
|
|
20
|
-
}
|
|
21
|
-
export declare function generateSrvAuthBindings(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, EnvironmentToOperateFn: () => string, logout?: () => void): IGenerateSRVAuthBindings;
|
|
21
|
+
}>() => R_1 | undefined;
|
|
22
|
+
getJwtToken: () => string;
|
|
23
|
+
accessTokenHasExpired: () => boolean;
|
|
24
|
+
};
|
|
22
25
|
/**
|
|
23
26
|
* @deprecated use generateSrvAuthBindings
|
|
24
27
|
* @param SRV_AUTH
|
|
@@ -27,5 +30,5 @@ export declare function generateSrvAuthBindings(SRV_AUTH: () => string, DEVELOPM
|
|
|
27
30
|
* @param logout
|
|
28
31
|
* @returns
|
|
29
32
|
*/
|
|
30
|
-
export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void):
|
|
33
|
+
export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void): {};
|
|
31
34
|
//# sourceMappingURL=generateSrvAuthBindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAc/C,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,MAAM,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI;8BAuJc,kBAAkB;;;kBA/FxB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACpB,MAAM;kBAAY,kBAAkB,EAAE;;yBAtCnD,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAwER,YAAY,KAAG,QAAQ,kBAAkB,CAAC;;;qBAvBtF,MAAM;;iBA0ES,MAAM;aAAO,MAAM;;;iCAjGtB,OAAO;EAiI5C;AACD;;;;;;;GAOG;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,12 +1,26 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { EnvironmentEnums, parseJwt } from '..';
|
|
3
|
+
/* export interface IGenerateSRVAuthBindings extends ReturnType<typeof generateSrvAuthBindings> {} */ /*{
|
|
4
|
+
isJwtValid: () => boolean
|
|
5
|
+
signin(url: string, headers?: Record<string, string>): Promise<{ token: string }>
|
|
6
|
+
srvAuthGet<R>(url: string, headers?: Record<string, string>): Promise<AxiosResponse<R, any>>
|
|
7
|
+
signoutAuth(): Promise<void>
|
|
8
|
+
setReqConfig<T = unknown>(data?: T, responseType?: ResponseType): Promise<AxiosRequestConfig>
|
|
9
|
+
getJwtTokenAsync(): Promise<string>
|
|
10
|
+
getNewJwtToken(): Promise<string>
|
|
11
|
+
getUserId(): string
|
|
12
|
+
getParsedJwt<R = { user_id: string; exp: number }>(): R | undefined
|
|
13
|
+
getJwtToken(): string
|
|
14
|
+
accessTokenHasExpired(): boolean
|
|
15
|
+
} */
|
|
3
16
|
export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOperateFn, logout) {
|
|
4
17
|
var _a;
|
|
5
18
|
if ((_a = window.__ASMA__SHELL__) === null || _a === void 0 ? void 0 : _a.auth_bindings) {
|
|
6
19
|
return window.__ASMA__SHELL__.auth_bindings;
|
|
7
20
|
}
|
|
8
21
|
let jwtToken = '';
|
|
9
|
-
let
|
|
22
|
+
let features;
|
|
23
|
+
let parsed_jwt;
|
|
10
24
|
let fetchJwtPromise = null;
|
|
11
25
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
|
|
12
26
|
const isJwtValid = () => !isJwtInvalid();
|
|
@@ -37,19 +51,20 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
37
51
|
}
|
|
38
52
|
async function signin(url, headers) {
|
|
39
53
|
const { data } = await srvAuthGet(url, headers);
|
|
40
|
-
|
|
54
|
+
setAuthData(data);
|
|
41
55
|
return data;
|
|
42
56
|
}
|
|
43
57
|
async function signoutAuth() {
|
|
44
|
-
|
|
58
|
+
setAuthData({ token: '' });
|
|
45
59
|
await srvAuthGet('/signout');
|
|
46
60
|
}
|
|
47
61
|
function getUserId() {
|
|
48
62
|
var _a;
|
|
49
63
|
return ((_a = getParsedJwt()) === null || _a === void 0 ? void 0 : _a['user_id']) || '-1';
|
|
50
64
|
}
|
|
51
|
-
function
|
|
52
|
-
jwtToken = token;
|
|
65
|
+
function setAuthData(data) {
|
|
66
|
+
jwtToken = data.token;
|
|
67
|
+
features = new Set(data.features);
|
|
53
68
|
}
|
|
54
69
|
function getJwtToken() {
|
|
55
70
|
return jwtToken;
|
|
@@ -79,7 +94,6 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
79
94
|
return res;
|
|
80
95
|
}
|
|
81
96
|
async function getNewJwtToken() {
|
|
82
|
-
var _a;
|
|
83
97
|
try {
|
|
84
98
|
if (!fetchJwtPromise) {
|
|
85
99
|
fetchJwtPromise = srvAuthGet('/token');
|
|
@@ -91,7 +105,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
91
105
|
if (!data.token) {
|
|
92
106
|
throw new Error('Token is not present in the result');
|
|
93
107
|
}
|
|
94
|
-
|
|
108
|
+
setAuthData({ token: data.token || '', features: data.features || [] });
|
|
95
109
|
fetchJwtPromise = null;
|
|
96
110
|
return jwtToken;
|
|
97
111
|
}
|
|
@@ -109,7 +123,15 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
109
123
|
}
|
|
110
124
|
return parsed_jwt;
|
|
111
125
|
}
|
|
126
|
+
function getFeatures() {
|
|
127
|
+
return features;
|
|
128
|
+
}
|
|
129
|
+
function hasFeature(featureName) {
|
|
130
|
+
return !!(features === null || features === void 0 ? void 0 : features.has(featureName));
|
|
131
|
+
}
|
|
112
132
|
const auth_bindings = {
|
|
133
|
+
hasFeature,
|
|
134
|
+
getFeatures,
|
|
113
135
|
isJwtValid,
|
|
114
136
|
signin,
|
|
115
137
|
srvAuthGet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"
|
|
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.5",
|
|
4
4
|
"description": "helpers methods for asma",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib",
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
"author": "",
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"typescript": "^4.
|
|
19
|
+
"typescript": "^4.9.3"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@genql/runtime": "^2.10.0",
|
|
23
|
-
"asma-genql-directory": "^1.0.
|
|
23
|
+
"asma-genql-directory": "^1.0.68",
|
|
24
24
|
"axios": "^0.27.2",
|
|
25
25
|
"history": "^5.3.0",
|
|
26
26
|
"idb-keyval": "^6.2.0",
|
package/src/global.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type History, createBrowserHistory } from 'history'
|
|
2
|
-
import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings'
|
|
2
|
+
//import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings'
|
|
3
|
+
//import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings'
|
|
3
4
|
export {}
|
|
4
5
|
|
|
5
6
|
declare global {
|
|
@@ -17,7 +18,7 @@ declare global {
|
|
|
17
18
|
}[]
|
|
18
19
|
__ASMA__SHELL__?: {
|
|
19
20
|
history?: History
|
|
20
|
-
auth_bindings?: IGenerateSRVAuthBindings
|
|
21
|
+
auth_bindings?: unknown //IGenerateSRVAuthBindings
|
|
21
22
|
isLogged?: () => boolean
|
|
22
23
|
logoutUser?: () => void
|
|
23
24
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { feature_names_enum } from 'asma-genql-directory/lib'
|
|
1
2
|
import axios, { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios'
|
|
2
3
|
import { EnvironmentEnums, parseJwt } from '..'
|
|
3
|
-
export interface IGenerateSRVAuthBindings {
|
|
4
|
+
/* export interface IGenerateSRVAuthBindings extends ReturnType<typeof generateSrvAuthBindings> {} */ /*{
|
|
4
5
|
isJwtValid: () => boolean
|
|
5
6
|
signin(url: string, headers?: Record<string, string>): Promise<{ token: string }>
|
|
6
7
|
srvAuthGet<R>(url: string, headers?: Record<string, string>): Promise<AxiosResponse<R, any>>
|
|
@@ -12,21 +13,25 @@ export interface IGenerateSRVAuthBindings {
|
|
|
12
13
|
getParsedJwt<R = { user_id: string; exp: number }>(): R | undefined
|
|
13
14
|
getJwtToken(): string
|
|
14
15
|
accessTokenHasExpired(): boolean
|
|
15
|
-
}
|
|
16
|
+
} */
|
|
16
17
|
export function generateSrvAuthBindings(
|
|
17
18
|
SRV_AUTH: () => string,
|
|
18
19
|
DEVELOPMENT: () => boolean,
|
|
19
20
|
EnvironmentToOperateFn: () => string,
|
|
20
21
|
logout?: () => void,
|
|
21
|
-
)
|
|
22
|
+
) {
|
|
22
23
|
if (window.__ASMA__SHELL__?.auth_bindings) {
|
|
23
|
-
return window.__ASMA__SHELL__.auth_bindings
|
|
24
|
+
return window.__ASMA__SHELL__.auth_bindings as typeof auth_bindings
|
|
24
25
|
}
|
|
25
26
|
let jwtToken = ''
|
|
26
|
-
let parsed_jwt: any | undefined = undefined
|
|
27
27
|
|
|
28
|
-
let
|
|
29
|
-
|
|
28
|
+
let features: Set<feature_names_enum> | undefined
|
|
29
|
+
|
|
30
|
+
let parsed_jwt: any | undefined
|
|
31
|
+
|
|
32
|
+
let fetchJwtPromise: Promise<{
|
|
33
|
+
data: { message: string; token?: string; features?: feature_names_enum[]; errors: { message: string }[] }
|
|
34
|
+
}> | null = null
|
|
30
35
|
|
|
31
36
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken
|
|
32
37
|
|
|
@@ -70,24 +75,26 @@ export function generateSrvAuthBindings(
|
|
|
70
75
|
}
|
|
71
76
|
|
|
72
77
|
async function signin(url: string, headers?: Record<string, string>) {
|
|
73
|
-
const { data } = await srvAuthGet<{ token: string }>(url, headers)
|
|
78
|
+
const { data } = await srvAuthGet<{ token: string; features: feature_names_enum[] }>(url, headers)
|
|
74
79
|
|
|
75
|
-
|
|
80
|
+
setAuthData(data)
|
|
76
81
|
|
|
77
82
|
return data
|
|
78
83
|
}
|
|
79
84
|
|
|
80
85
|
async function signoutAuth() {
|
|
81
|
-
|
|
86
|
+
setAuthData({ token: '' })
|
|
82
87
|
await srvAuthGet('/signout')
|
|
83
88
|
}
|
|
84
89
|
function getUserId(): string {
|
|
85
90
|
return getParsedJwt()?.['user_id'] || '-1'
|
|
86
91
|
}
|
|
87
92
|
|
|
88
|
-
function
|
|
89
|
-
jwtToken = token
|
|
93
|
+
function setAuthData(data: { token: string; features?: feature_names_enum[] }) {
|
|
94
|
+
jwtToken = data.token
|
|
95
|
+
features = new Set(data.features)
|
|
90
96
|
}
|
|
97
|
+
|
|
91
98
|
function getJwtToken() {
|
|
92
99
|
return jwtToken
|
|
93
100
|
}
|
|
@@ -136,7 +143,7 @@ export function generateSrvAuthBindings(
|
|
|
136
143
|
if (!data.token) {
|
|
137
144
|
throw new Error('Token is not present in the result')
|
|
138
145
|
}
|
|
139
|
-
|
|
146
|
+
setAuthData({ token: data.token || '', features: data.features || [] })
|
|
140
147
|
|
|
141
148
|
fetchJwtPromise = null
|
|
142
149
|
|
|
@@ -159,7 +166,15 @@ export function generateSrvAuthBindings(
|
|
|
159
166
|
}
|
|
160
167
|
return parsed_jwt
|
|
161
168
|
}
|
|
169
|
+
function getFeatures() {
|
|
170
|
+
return features
|
|
171
|
+
}
|
|
172
|
+
function hasFeature(featureName: feature_names_enum) {
|
|
173
|
+
return !!features?.has(featureName)
|
|
174
|
+
}
|
|
162
175
|
const auth_bindings = {
|
|
176
|
+
hasFeature,
|
|
177
|
+
getFeatures,
|
|
163
178
|
isJwtValid,
|
|
164
179
|
signin,
|
|
165
180
|
srvAuthGet,
|