asma-helpers 0.2.39 → 0.2.41
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 +8 -3
- package/lib/helpers/generateSrvAuthBindings.d.ts.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.js +36 -14
- package/lib/helpers/generateSrvAuthBindings.js.map +1 -1
- package/package.json +2 -1
- package/src/helpers/generateSrvAuthBindings.ts +41 -14
|
@@ -16,16 +16,21 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
|
|
|
16
16
|
responseType: ResponseType | undefined;
|
|
17
17
|
headers: Record<string, string>;
|
|
18
18
|
}>;
|
|
19
|
-
getJwtTokenAsync: () => Promise<string
|
|
20
|
-
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
|
+
};
|
|
21
26
|
getUserId: () => string;
|
|
27
|
+
setCallbackToJwtNotifier: (callback: () => void) => void;
|
|
22
28
|
getParsedJwt: <R_1 = {
|
|
23
29
|
user_id: string;
|
|
24
30
|
exp: number;
|
|
25
31
|
}>() => R_1 | undefined;
|
|
26
32
|
abortController: AbortController;
|
|
27
33
|
getJwtToken: () => string;
|
|
28
|
-
cancelRequest: () => boolean;
|
|
29
34
|
accessTokenHasExpired: () => boolean;
|
|
30
35
|
};
|
|
31
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;8BAuMc,YAAY;;;kBAjHlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eAKpB,MAAM;kBAAY,YAAY,EAAE;;yBA3C7C,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAqFR,YAAY;;;;;;;;qBAlHvB,EAAE;;;;qBAqFnC,MAAM;yCA7EgB,MAAM,IAAI;;iBA8JjB,MAAM;aAAO,MAAM;;;;iCA9GtB,OAAO;EAwJ5C;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,8 @@
|
|
|
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 abortController =
|
|
4
|
+
//let logoutsuccesfull = false
|
|
5
|
+
let abortController = new AbortController();
|
|
5
6
|
export function getAbortController() {
|
|
6
7
|
var _a;
|
|
7
8
|
return (_a = window.__ASMA__SHELL__) === null || _a === void 0 ? void 0 : _a.abortController;
|
|
@@ -19,12 +20,25 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
19
20
|
let jwtToken = '';
|
|
20
21
|
let features;
|
|
21
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
|
+
}
|
|
22
36
|
let fetchJwtPromise = null;
|
|
23
37
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
|
|
24
38
|
const isJwtValid = () => !isJwtInvalid();
|
|
25
|
-
function cancelRequest() {
|
|
26
|
-
|
|
27
|
-
}
|
|
39
|
+
//function cancelRequest() {
|
|
40
|
+
// return logoutsuccesfull
|
|
41
|
+
// }
|
|
28
42
|
async function srvAuthGet(url, headers) {
|
|
29
43
|
var _a;
|
|
30
44
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
@@ -53,10 +67,12 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
53
67
|
return accessTokenExpDate - 10 <= nowTime;
|
|
54
68
|
}
|
|
55
69
|
async function signin(url, headers) {
|
|
56
|
-
|
|
70
|
+
if (abortController.signal.aborted) {
|
|
71
|
+
abortController = new AbortController();
|
|
72
|
+
}
|
|
57
73
|
const { data } = await srvAuthGet(url, headers);
|
|
58
74
|
setAuthData(data);
|
|
59
|
-
logoutsuccesfull = false
|
|
75
|
+
// logoutsuccesfull = false
|
|
60
76
|
return data;
|
|
61
77
|
}
|
|
62
78
|
async function signoutAuth() {
|
|
@@ -69,6 +85,10 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
69
85
|
}
|
|
70
86
|
function setAuthData(data) {
|
|
71
87
|
jwtToken = data.token;
|
|
88
|
+
if (jwtToken) {
|
|
89
|
+
dispatch('jwt_changed', {}, false);
|
|
90
|
+
}
|
|
91
|
+
notifyChangedJwt();
|
|
72
92
|
features = new Set(data.features);
|
|
73
93
|
parsed_jwt = undefined;
|
|
74
94
|
}
|
|
@@ -97,8 +117,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
97
117
|
return res;
|
|
98
118
|
}
|
|
99
119
|
async function getNewJwtToken() {
|
|
100
|
-
if (logoutsuccesfull)
|
|
101
|
-
return;
|
|
120
|
+
//if (logoutsuccesfull) return
|
|
102
121
|
try {
|
|
103
122
|
if (!fetchJwtPromise) {
|
|
104
123
|
fetchJwtPromise = srvAuthGet('/token');
|
|
@@ -106,16 +125,18 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
106
125
|
const { data } = await fetchJwtPromise;
|
|
107
126
|
if (!data || data.errors || data.message != 'Success' || !data.token) {
|
|
108
127
|
logout === null || logout === void 0 ? void 0 : logout();
|
|
109
|
-
logoutsuccesfull = true
|
|
128
|
+
//logoutsuccesfull = true
|
|
110
129
|
abortController === null || abortController === void 0 ? void 0 : abortController.abort();
|
|
130
|
+
logoutMfes.forEach((l) => l());
|
|
111
131
|
//signoutAuth()
|
|
112
132
|
}
|
|
113
133
|
setAuthData({ token: data.token || '', features: data.features || [] });
|
|
114
134
|
}
|
|
115
135
|
catch (error) {
|
|
116
|
-
|
|
117
|
-
logoutsuccesfull = true
|
|
136
|
+
// logout?.()
|
|
137
|
+
// logoutsuccesfull = true
|
|
118
138
|
abortController === null || abortController === void 0 ? void 0 : abortController.abort();
|
|
139
|
+
logoutMfes.forEach((l) => l());
|
|
119
140
|
//signoutAuth()
|
|
120
141
|
setAuthData({ token: '', features: [] });
|
|
121
142
|
console.error(error);
|
|
@@ -142,7 +163,6 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
142
163
|
function hasFeature(featureName) {
|
|
143
164
|
return !!(features === null || features === void 0 ? void 0 : features.has(featureName));
|
|
144
165
|
}
|
|
145
|
-
abortController = new AbortController();
|
|
146
166
|
const auth_bindings = {
|
|
147
167
|
hasFeature,
|
|
148
168
|
getFeatures,
|
|
@@ -153,11 +173,13 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
153
173
|
setReqConfig,
|
|
154
174
|
getJwtTokenAsync,
|
|
155
175
|
getNewJwtToken,
|
|
176
|
+
registerOnJwtChanges: register,
|
|
156
177
|
getUserId,
|
|
178
|
+
setCallbackToJwtNotifier,
|
|
157
179
|
getParsedJwt,
|
|
158
180
|
abortController,
|
|
159
181
|
getJwtToken,
|
|
160
|
-
cancelRequest,
|
|
182
|
+
// cancelRequest,
|
|
161
183
|
accessTokenHasExpired,
|
|
162
184
|
};
|
|
163
185
|
window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {};
|
|
@@ -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.41",
|
|
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",
|
|
@@ -1,9 +1,10 @@
|
|
|
1
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
|
|
5
6
|
|
|
6
|
-
let abortController
|
|
7
|
+
let abortController = new AbortController()
|
|
7
8
|
|
|
8
9
|
export function getAbortController() {
|
|
9
10
|
return window.__ASMA__SHELL__?.abortController
|
|
@@ -32,6 +33,23 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
32
33
|
|
|
33
34
|
let parsed_jwt: any | undefined
|
|
34
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
|
+
|
|
35
53
|
let fetchJwtPromise: Promise<{
|
|
36
54
|
data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
|
|
37
55
|
}> | null = null
|
|
@@ -40,9 +58,9 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
40
58
|
|
|
41
59
|
const isJwtValid = () => !isJwtInvalid()
|
|
42
60
|
|
|
43
|
-
function cancelRequest() {
|
|
44
|
-
|
|
45
|
-
}
|
|
61
|
+
//function cancelRequest() {
|
|
62
|
+
// return logoutsuccesfull
|
|
63
|
+
// }
|
|
46
64
|
|
|
47
65
|
async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
|
|
48
66
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
@@ -83,13 +101,15 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
83
101
|
}
|
|
84
102
|
|
|
85
103
|
async function signin(url: string, headers?: Record<string, string>) {
|
|
86
|
-
|
|
104
|
+
if (abortController.signal.aborted) {
|
|
105
|
+
abortController = new AbortController()
|
|
106
|
+
}
|
|
87
107
|
|
|
88
108
|
const { data } = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
|
|
89
109
|
|
|
90
110
|
setAuthData(data)
|
|
91
111
|
|
|
92
|
-
logoutsuccesfull = false
|
|
112
|
+
// logoutsuccesfull = false
|
|
93
113
|
|
|
94
114
|
return data
|
|
95
115
|
}
|
|
@@ -104,6 +124,11 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
104
124
|
|
|
105
125
|
function setAuthData(data: { token: string; features?: FeatureEnums[] }) {
|
|
106
126
|
jwtToken = data.token
|
|
127
|
+
|
|
128
|
+
if (jwtToken) {
|
|
129
|
+
dispatch('jwt_changed', {}, false)
|
|
130
|
+
}
|
|
131
|
+
notifyChangedJwt()
|
|
107
132
|
features = new Set(data.features)
|
|
108
133
|
parsed_jwt = undefined
|
|
109
134
|
}
|
|
@@ -139,7 +164,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
139
164
|
}
|
|
140
165
|
|
|
141
166
|
async function getNewJwtToken() {
|
|
142
|
-
if (logoutsuccesfull) return
|
|
167
|
+
//if (logoutsuccesfull) return
|
|
143
168
|
try {
|
|
144
169
|
if (!fetchJwtPromise) {
|
|
145
170
|
fetchJwtPromise = srvAuthGet('/token')
|
|
@@ -149,16 +174,18 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
149
174
|
|
|
150
175
|
if (!data || data.errors || data.message != 'Success' || !data.token) {
|
|
151
176
|
logout?.()
|
|
152
|
-
logoutsuccesfull = true
|
|
177
|
+
//logoutsuccesfull = true
|
|
153
178
|
abortController?.abort()
|
|
179
|
+
logoutMfes.forEach((l) => l())
|
|
154
180
|
//signoutAuth()
|
|
155
181
|
}
|
|
156
182
|
|
|
157
183
|
setAuthData({ token: data.token || '', features: data.features || [] })
|
|
158
184
|
} catch (error) {
|
|
159
|
-
logout?.()
|
|
160
|
-
logoutsuccesfull = true
|
|
185
|
+
// logout?.()
|
|
186
|
+
// logoutsuccesfull = true
|
|
161
187
|
abortController?.abort()
|
|
188
|
+
logoutMfes.forEach((l) => l())
|
|
162
189
|
|
|
163
190
|
//signoutAuth()
|
|
164
191
|
|
|
@@ -190,8 +217,6 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
190
217
|
return !!features?.has(featureName)
|
|
191
218
|
}
|
|
192
219
|
|
|
193
|
-
abortController = new AbortController()
|
|
194
|
-
|
|
195
220
|
const auth_bindings = {
|
|
196
221
|
hasFeature,
|
|
197
222
|
getFeatures,
|
|
@@ -202,11 +227,13 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
202
227
|
setReqConfig,
|
|
203
228
|
getJwtTokenAsync,
|
|
204
229
|
getNewJwtToken,
|
|
230
|
+
registerOnJwtChanges: register,
|
|
205
231
|
getUserId,
|
|
232
|
+
setCallbackToJwtNotifier,
|
|
206
233
|
getParsedJwt,
|
|
207
234
|
abortController,
|
|
208
235
|
getJwtToken,
|
|
209
|
-
cancelRequest,
|
|
236
|
+
// cancelRequest,
|
|
210
237
|
accessTokenHasExpired,
|
|
211
238
|
}
|
|
212
239
|
window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {}
|