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.
@@ -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 | undefined>;
20
- getNewJwtToken: () => Promise<string | undefined>;
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;AACpE,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;8BA6Kc,YAAY;;;kBAxGlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eAGpB,MAAM;kBAAY,YAAY,EAAE;;yBAzC7C,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEA8ER,YAAY;;;;;;;qBAxBxD,MAAM;;iBA0ES,MAAM;aAAO,MAAM;;;;;iCArGtB,OAAO;EA+I5C;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
+ {"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 = null;
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
- return logoutsuccesfull;
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
- abortController = new AbortController();
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
- logout === null || logout === void 0 ? void 0 : logout();
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":"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"}
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.39",
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: AbortController | null = null
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
- return logoutsuccesfull
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
- abortController = new AbortController()
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__ || {}