asma-helpers 0.2.40 → 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 +32 -11
- package/lib/helpers/generateSrvAuthBindings.js.map +1 -1
- package/package.json +2 -1
- package/src/helpers/generateSrvAuthBindings.ts +37 -10
|
@@ -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,6 +1,7 @@
|
|
|
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
|
|
4
5
|
let abortController = new AbortController();
|
|
5
6
|
export function getAbortController() {
|
|
6
7
|
var _a;
|
|
@@ -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()) {
|
|
@@ -58,7 +72,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
58
72
|
}
|
|
59
73
|
const { data } = await srvAuthGet(url, headers);
|
|
60
74
|
setAuthData(data);
|
|
61
|
-
logoutsuccesfull = false
|
|
75
|
+
// logoutsuccesfull = false
|
|
62
76
|
return data;
|
|
63
77
|
}
|
|
64
78
|
async function signoutAuth() {
|
|
@@ -71,6 +85,10 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
71
85
|
}
|
|
72
86
|
function setAuthData(data) {
|
|
73
87
|
jwtToken = data.token;
|
|
88
|
+
if (jwtToken) {
|
|
89
|
+
dispatch('jwt_changed', {}, false);
|
|
90
|
+
}
|
|
91
|
+
notifyChangedJwt();
|
|
74
92
|
features = new Set(data.features);
|
|
75
93
|
parsed_jwt = undefined;
|
|
76
94
|
}
|
|
@@ -99,8 +117,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
99
117
|
return res;
|
|
100
118
|
}
|
|
101
119
|
async function getNewJwtToken() {
|
|
102
|
-
if (logoutsuccesfull)
|
|
103
|
-
return;
|
|
120
|
+
//if (logoutsuccesfull) return
|
|
104
121
|
try {
|
|
105
122
|
if (!fetchJwtPromise) {
|
|
106
123
|
fetchJwtPromise = srvAuthGet('/token');
|
|
@@ -108,16 +125,18 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
108
125
|
const { data } = await fetchJwtPromise;
|
|
109
126
|
if (!data || data.errors || data.message != 'Success' || !data.token) {
|
|
110
127
|
logout === null || logout === void 0 ? void 0 : logout();
|
|
111
|
-
logoutsuccesfull = true
|
|
128
|
+
//logoutsuccesfull = true
|
|
112
129
|
abortController === null || abortController === void 0 ? void 0 : abortController.abort();
|
|
130
|
+
logoutMfes.forEach((l) => l());
|
|
113
131
|
//signoutAuth()
|
|
114
132
|
}
|
|
115
133
|
setAuthData({ token: data.token || '', features: data.features || [] });
|
|
116
134
|
}
|
|
117
135
|
catch (error) {
|
|
118
|
-
|
|
119
|
-
logoutsuccesfull = true
|
|
136
|
+
// logout?.()
|
|
137
|
+
// logoutsuccesfull = true
|
|
120
138
|
abortController === null || abortController === void 0 ? void 0 : abortController.abort();
|
|
139
|
+
logoutMfes.forEach((l) => l());
|
|
121
140
|
//signoutAuth()
|
|
122
141
|
setAuthData({ token: '', features: [] });
|
|
123
142
|
console.error(error);
|
|
@@ -154,11 +173,13 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
154
173
|
setReqConfig,
|
|
155
174
|
getJwtTokenAsync,
|
|
156
175
|
getNewJwtToken,
|
|
176
|
+
registerOnJwtChanges: register,
|
|
157
177
|
getUserId,
|
|
178
|
+
setCallbackToJwtNotifier,
|
|
158
179
|
getParsedJwt,
|
|
159
180
|
abortController,
|
|
160
181
|
getJwtToken,
|
|
161
|
-
cancelRequest,
|
|
182
|
+
// cancelRequest,
|
|
162
183
|
accessTokenHasExpired,
|
|
163
184
|
};
|
|
164
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,
|
|
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,7 +1,8 @@
|
|
|
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
7
|
let abortController = new AbortController()
|
|
7
8
|
|
|
@@ -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()) {
|
|
@@ -91,7 +109,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
91
109
|
|
|
92
110
|
setAuthData(data)
|
|
93
111
|
|
|
94
|
-
logoutsuccesfull = false
|
|
112
|
+
// logoutsuccesfull = false
|
|
95
113
|
|
|
96
114
|
return data
|
|
97
115
|
}
|
|
@@ -106,6 +124,11 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
106
124
|
|
|
107
125
|
function setAuthData(data: { token: string; features?: FeatureEnums[] }) {
|
|
108
126
|
jwtToken = data.token
|
|
127
|
+
|
|
128
|
+
if (jwtToken) {
|
|
129
|
+
dispatch('jwt_changed', {}, false)
|
|
130
|
+
}
|
|
131
|
+
notifyChangedJwt()
|
|
109
132
|
features = new Set(data.features)
|
|
110
133
|
parsed_jwt = undefined
|
|
111
134
|
}
|
|
@@ -141,7 +164,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
141
164
|
}
|
|
142
165
|
|
|
143
166
|
async function getNewJwtToken() {
|
|
144
|
-
if (logoutsuccesfull) return
|
|
167
|
+
//if (logoutsuccesfull) return
|
|
145
168
|
try {
|
|
146
169
|
if (!fetchJwtPromise) {
|
|
147
170
|
fetchJwtPromise = srvAuthGet('/token')
|
|
@@ -151,16 +174,18 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
151
174
|
|
|
152
175
|
if (!data || data.errors || data.message != 'Success' || !data.token) {
|
|
153
176
|
logout?.()
|
|
154
|
-
logoutsuccesfull = true
|
|
177
|
+
//logoutsuccesfull = true
|
|
155
178
|
abortController?.abort()
|
|
179
|
+
logoutMfes.forEach((l) => l())
|
|
156
180
|
//signoutAuth()
|
|
157
181
|
}
|
|
158
182
|
|
|
159
183
|
setAuthData({ token: data.token || '', features: data.features || [] })
|
|
160
184
|
} catch (error) {
|
|
161
|
-
logout?.()
|
|
162
|
-
logoutsuccesfull = true
|
|
185
|
+
// logout?.()
|
|
186
|
+
// logoutsuccesfull = true
|
|
163
187
|
abortController?.abort()
|
|
188
|
+
logoutMfes.forEach((l) => l())
|
|
164
189
|
|
|
165
190
|
//signoutAuth()
|
|
166
191
|
|
|
@@ -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__ || {}
|