asma-helpers 0.4.1 → 0.4.3
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/helpers/generateSrvAuthBindings.d.ts +6 -8
- package/lib/helpers/generateSrvAuthBindings.d.ts.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.js +16 -18
- package/lib/helpers/generateSrvAuthBindings.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers/generateSrvAuthBindings.ts +25 -26
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EnvironmentEnums } from '..';
|
|
1
|
+
import { EnvironmentEnums } from '../interfaces/enums';
|
|
3
2
|
export declare const dispatchSrvAuthEvents: <Key extends "logout_event" | "jwt_changed" | "customer_changed">(event: Key, arg: {
|
|
4
3
|
jwt_changed: {};
|
|
5
4
|
logout_event: {};
|
|
@@ -17,21 +16,20 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
|
|
|
17
16
|
getConnector: () => string | undefined;
|
|
18
17
|
getFeatures: () => Set<FeatureEnums> | undefined;
|
|
19
18
|
isJwtValid: () => boolean;
|
|
20
|
-
signin: (url: string, headers?: Record<string, string>) => Promise<
|
|
19
|
+
signin: (url: string, headers?: Record<string, string>) => Promise<{
|
|
21
20
|
token: string;
|
|
22
21
|
features: FeatureEnums[];
|
|
23
22
|
connector?: string | undefined;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<AxiosResponse<R, any>>;
|
|
23
|
+
}>;
|
|
24
|
+
srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<R>;
|
|
27
25
|
/**
|
|
28
26
|
* @deprecated use dispatchLogoutEvent directly
|
|
29
27
|
*/
|
|
30
28
|
signoutAuth: typeof dispatchLogoutEvent;
|
|
31
29
|
dispatchLogoutEvent: typeof dispatchLogoutEvent;
|
|
32
|
-
setReqConfig: <T = unknown>(data?: T | undefined, responseType?:
|
|
30
|
+
setReqConfig: <T = unknown>(data?: T | undefined, responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream') => Promise<{
|
|
33
31
|
data: T | undefined;
|
|
34
|
-
responseType:
|
|
32
|
+
responseType: "arraybuffer" | "blob" | "document" | "json" | "text" | "stream" | undefined;
|
|
35
33
|
headers: Record<string, string>;
|
|
36
34
|
}>;
|
|
37
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAMtD,eAAO,MAAkB,qBAAqB;iBAC7B,EAAE;kBACD,EAAE;sBACE,EAAE;sDAHkC,+BAA+B;iBACxE,EAAE;kBACD,EAAE;sBACE,EAAE;;;CACL,CAAA;AAEnB,iBAAS,mBAAmB,SAE3B;AAKD,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;8BAqMc,YAAY;;;;kBAhHlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACxB,MAAM;kBAAY,YAAY,EAAE;;;yBA7DzC,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;IA2LtE;;OAEG;;;qEA7EY,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ;;;;;IAiF/E;;UAEM;;;;IAIN;;OAEG;;;;;;;;qBArIe,MAAM;;iBA0FS,MAAM;aAAO,MAAM;;;iCAtHtB,OAAO;EA8K5C;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,7 +1,9 @@
|
|
|
1
|
-
import axios from 'axios'
|
|
1
|
+
//import axios, { type AxiosResponse, type ResponseType } from 'axios'
|
|
2
2
|
import { EventBus } from 'asma-event-bus/lib/event-buss';
|
|
3
|
-
import { EnvironmentEnums
|
|
4
|
-
|
|
3
|
+
import { EnvironmentEnums } from '../interfaces/enums';
|
|
4
|
+
import { setTheme } from './checkForRegisteredSubdomains';
|
|
5
|
+
import { parseJwt } from './parseJwt';
|
|
6
|
+
//let logoutsuccesfull = false
|
|
5
7
|
export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus('auth-bindings');
|
|
6
8
|
function dispatchLogoutEvent() {
|
|
7
9
|
dispatchSrvAuthEvents('logout_event', {}, false);
|
|
@@ -23,17 +25,13 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
23
25
|
let parsed_jwt;
|
|
24
26
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
|
|
25
27
|
const isJwtValid = () => !isJwtInvalid();
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
29
|
const promiseRegistry = {};
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* 1.req /singing
|
|
30
|
-
* 2.req /token
|
|
31
|
-
*/
|
|
32
30
|
async function srvAuthGet(url, headers) {
|
|
33
31
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
34
32
|
if (EnvironmentToOperateFn() in EnvironmentEnums) {
|
|
35
33
|
url = `${url}&env=${EnvironmentToOperateFn()}`;
|
|
36
|
-
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first
|
|
34
|
+
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
|
|
37
35
|
url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url;
|
|
38
36
|
}
|
|
39
37
|
else {
|
|
@@ -41,13 +39,14 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
41
|
const promise = promiseRegistry[url] ||
|
|
44
|
-
|
|
42
|
+
fetch(`${SRV_AUTH()}${url}`, {
|
|
45
43
|
headers: {
|
|
46
44
|
...headers,
|
|
47
45
|
'asma-origin': window.location.origin,
|
|
48
46
|
},
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
credentials: 'include',
|
|
48
|
+
//withCredentials: true,
|
|
49
|
+
}).then((res) => res.json());
|
|
51
50
|
if (!promiseRegistry[url]) {
|
|
52
51
|
promiseRegistry[url] = promise;
|
|
53
52
|
}
|
|
@@ -64,7 +63,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
65
|
*
|
|
67
|
-
* TODO: need to investigate smarter way of
|
|
66
|
+
* TODO: need to investigate smarter way of registerning and unregistering on `logout_event`
|
|
68
67
|
**/
|
|
69
68
|
registerCallbackOnSrvAuthEvents('logout_event', () => {
|
|
70
69
|
setAuthData({ token: '' });
|
|
@@ -72,7 +71,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
72
71
|
});
|
|
73
72
|
async function signin(url, headers) {
|
|
74
73
|
const data = await srvAuthGet(url, headers);
|
|
75
|
-
setAuthData(data
|
|
74
|
+
setAuthData(data);
|
|
76
75
|
return data;
|
|
77
76
|
}
|
|
78
77
|
function getUserId() {
|
|
@@ -85,8 +84,8 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
85
84
|
features = new Set(data.features);
|
|
86
85
|
connector = data.connector;
|
|
87
86
|
parsed_jwt = parseJwt(jwtToken);
|
|
88
|
-
data.theme && setTheme(data.theme);
|
|
89
87
|
dispatchJwtChangedEvent();
|
|
88
|
+
data.theme && setTheme(data.theme);
|
|
90
89
|
return;
|
|
91
90
|
}
|
|
92
91
|
jwtToken = '';
|
|
@@ -119,17 +118,16 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
119
118
|
return res;
|
|
120
119
|
}
|
|
121
120
|
async function getNewJwtToken() {
|
|
122
|
-
var _a;
|
|
123
121
|
try {
|
|
124
122
|
/* if (!fetchJwtPromise) {
|
|
125
123
|
fetchJwtPromise = srvAuthGet('/token')
|
|
126
124
|
} */
|
|
127
125
|
const data = await srvAuthGet('/token');
|
|
128
|
-
if (!data || (
|
|
126
|
+
if (!data || (data === null || data === void 0 ? void 0 : data.errors) || !data.token) {
|
|
129
127
|
dispatchLogoutEvent();
|
|
130
128
|
return;
|
|
131
129
|
}
|
|
132
|
-
setAuthData({ token: data.
|
|
130
|
+
setAuthData({ token: data.token, features: data.features || [], connector: data.connector });
|
|
133
131
|
return jwtToken;
|
|
134
132
|
}
|
|
135
133
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import axios, { type AxiosResponse, type ResponseType } from 'axios'
|
|
1
|
+
//import axios, { type AxiosResponse, type ResponseType } from 'axios'
|
|
2
2
|
import { EventBus } from 'asma-event-bus/lib/event-buss'
|
|
3
|
-
import { EnvironmentEnums
|
|
3
|
+
import { EnvironmentEnums } from '../interfaces/enums'
|
|
4
|
+
import { setTheme } from './checkForRegisteredSubdomains'
|
|
5
|
+
import { parseJwt } from './parseJwt'
|
|
4
6
|
|
|
5
|
-
//let
|
|
7
|
+
//let logoutsuccesfull = false
|
|
6
8
|
|
|
7
9
|
export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus<{
|
|
8
10
|
jwt_changed: {}
|
|
@@ -43,18 +45,15 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
43
45
|
|
|
44
46
|
const isJwtValid = () => !isJwtInvalid()
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* 1.req /singing
|
|
50
|
-
* 2.req /token
|
|
51
|
-
*/
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
const promiseRegistry: Record<string, Promise<any>> = <{}>{}
|
|
50
|
+
|
|
52
51
|
async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
|
|
53
52
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
54
53
|
if (EnvironmentToOperateFn() in EnvironmentEnums) {
|
|
55
54
|
url = `${url}&env=${EnvironmentToOperateFn()}`
|
|
56
55
|
|
|
57
|
-
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first
|
|
56
|
+
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
|
|
58
57
|
url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
|
|
59
58
|
} else {
|
|
60
59
|
console.warn(
|
|
@@ -67,15 +66,16 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
|
|
70
|
-
const promise =
|
|
69
|
+
const promise: Promise<R> =
|
|
71
70
|
promiseRegistry[url] ||
|
|
72
|
-
|
|
71
|
+
fetch(`${SRV_AUTH()}${url}`, {
|
|
73
72
|
headers: {
|
|
74
73
|
...headers,
|
|
75
74
|
'asma-origin': window.location.origin,
|
|
76
75
|
},
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
credentials: 'include',
|
|
77
|
+
//withCredentials: true,
|
|
78
|
+
}).then((res) => res.json())
|
|
79
79
|
|
|
80
80
|
if (!promiseRegistry[url]) {
|
|
81
81
|
promiseRegistry[url] = promise
|
|
@@ -85,7 +85,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
85
85
|
delete promiseRegistry[url]
|
|
86
86
|
})
|
|
87
87
|
|
|
88
|
-
return res
|
|
88
|
+
return res
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
function accessTokenHasExpired(): boolean {
|
|
@@ -100,7 +100,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
*
|
|
103
|
-
* TODO: need to investigate smarter way of
|
|
103
|
+
* TODO: need to investigate smarter way of registerning and unregistering on `logout_event`
|
|
104
104
|
**/
|
|
105
105
|
registerCallbackOnSrvAuthEvents('logout_event', () => {
|
|
106
106
|
setAuthData({ token: '' })
|
|
@@ -109,12 +109,9 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
109
109
|
})
|
|
110
110
|
|
|
111
111
|
async function signin(url: string, headers?: Record<string, string>) {
|
|
112
|
-
const data = await srvAuthGet<{ token: string; features: FeatureEnums[]; connector?: string
|
|
113
|
-
url,
|
|
114
|
-
headers,
|
|
115
|
-
)
|
|
112
|
+
const data = await srvAuthGet<{ token: string; features: FeatureEnums[]; connector?: string }>(url, headers)
|
|
116
113
|
|
|
117
|
-
setAuthData(data
|
|
114
|
+
setAuthData(data)
|
|
118
115
|
|
|
119
116
|
return data
|
|
120
117
|
}
|
|
@@ -133,9 +130,8 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
133
130
|
|
|
134
131
|
parsed_jwt = parseJwt(jwtToken)
|
|
135
132
|
|
|
136
|
-
data.theme && setTheme(data.theme)
|
|
137
|
-
|
|
138
133
|
dispatchJwtChangedEvent()
|
|
134
|
+
data.theme && setTheme(data.theme)
|
|
139
135
|
|
|
140
136
|
return
|
|
141
137
|
}
|
|
@@ -162,7 +158,10 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
162
158
|
}
|
|
163
159
|
}
|
|
164
160
|
|
|
165
|
-
async function setReqConfig<T = unknown>(
|
|
161
|
+
async function setReqConfig<T = unknown>(
|
|
162
|
+
data?: T,
|
|
163
|
+
responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream',
|
|
164
|
+
) {
|
|
166
165
|
const token = await getCachedJwt()
|
|
167
166
|
|
|
168
167
|
const res = {
|
|
@@ -191,12 +190,12 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
191
190
|
connector: string
|
|
192
191
|
}>('/token')
|
|
193
192
|
|
|
194
|
-
if (!data || data
|
|
193
|
+
if (!data || data?.errors || !data.token) {
|
|
195
194
|
dispatchLogoutEvent()
|
|
196
195
|
return
|
|
197
196
|
}
|
|
198
197
|
|
|
199
|
-
setAuthData({ token: data.
|
|
198
|
+
setAuthData({ token: data.token, features: data.features || [], connector: data.connector })
|
|
200
199
|
return jwtToken
|
|
201
200
|
} catch (error) {
|
|
202
201
|
dispatchLogoutEvent()
|