asma-helpers 0.2.50 → 0.3.0

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.
@@ -7,10 +7,17 @@ export declare function generateGenqlClient<T extends ReturnType<typeof createCl
7
7
  setReqConfig: () => Promise<AxiosRequestConfig<any>>;
8
8
  createClient: (options?: ClientOptions | undefined) => T;
9
9
  serviceUrl: () => string;
10
+ /**
11
+ * Returns true whenether token and refresh token is epired! this helps to cancel all concurent requests after first request is invalidated.
12
+ * @returns true if request should be cancelled
13
+ */
10
14
  path?: string;
11
15
  }): {
12
16
  getGenqlClient: () => Promise<T>;
13
- genqlClient: (options?: CliOptions) => Promise<T>;
17
+ resetGenqlClient: () => void;
18
+ genqlClient: (options?: CliOptions & {
19
+ abortController?: AbortController;
20
+ }) => Promise<T>;
14
21
  genqlClientWs: () => Promise<T>;
15
22
  };
16
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"generateGenqlClient.d.ts","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,gBAAgB,CAAA;AAKjE,UAAU,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAoB,GACvB,EAAE;IAEC,YAAY,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,KAAK,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;4BA8CuC,UAAU,KAAQ,QAAQ,CAAC,CAAC;;EA8CnE"}
1
+ {"version":3,"file":"generateGenqlClient.d.ts","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,gBAAgB,CAAA;AAKjE,UAAU,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAoB,GACvB,EAAE;IAEC,YAAY,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,KAAK,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,MAAM,CAAA;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;;4BA2BuC,UAAU,GAAG;QAAE,eAAe,CAAC,EAAE,eAAe,CAAA;KAAE,KAAQ,QAAQ,CAAC,CAAC;;EAwD3G"}
@@ -1,51 +1,30 @@
1
1
  import { httpToWs } from './Config';
2
2
  import { registerCallbackOnSrvAuthEvents } from './generateSrvAuthBindings';
3
3
  export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, path = '/v1/graphql', }) {
4
- // let jwt_exp = 0
5
4
  let client = null;
6
5
  let wsClient = null;
7
- registerCallbackOnSrvAuthEvents('jwt_changed', () => {
6
+ function resetClients() {
8
7
  client = null;
9
8
  wsClient = null;
10
- });
11
- //function accessTokenHasExpired() {
12
- // const nowTime = Math.floor(new Date().getTime() / 1000)
13
- //
14
- // //set exp time -20sec for token to be refreshed early
15
- // return jwt_exp - 10 <= nowTime
16
- //}
9
+ }
10
+ registerCallbackOnSrvAuthEvents('jwt_changed', resetClients);
17
11
  async function getGenqlClient() {
18
- if ( /* accessTokenHasExpired() || */client === null) {
12
+ if (client === null) {
19
13
  client = await genqlClient();
20
14
  return client;
21
15
  }
22
16
  return client;
23
17
  }
24
- //function resetGenqlClient() {
25
- // client = null
26
- //}
27
- // function setJwtExp(token?: string) {
28
- // if (!token) return
29
- //
30
- // const parsed_jwt = parseJwt<{ exp: number }>(token)?.exp
31
- //
32
- // jwt_exp = parsed_jwt || 0
33
- // }
34
- /**
35
- *
36
- * This is used for anonymous requests as well as authenticated requests
37
- *
38
- */
18
+ function resetGenqlClient() {
19
+ client = null;
20
+ wsClient = null;
21
+ }
39
22
  async function genqlClient(options = {}) {
40
- //let req_headers: Record<string, string> = {}
41
- const { anonymous, headers, ...rest } = options;
23
+ const { anonymous, headers, abortController, ...rest } = options;
42
24
  if (!serviceUrl()) {
43
25
  console.warn('requred param srv_url is undefined, please check EnvConfig object!');
44
26
  }
45
- //if (!anonymous) {
46
- //req_headers = ((await setReqConfig()).headers ?? {}) as Record<string, string>
47
- // setJwtExp(req_headers['Authorization'])
48
- // }
27
+ const localAbrotController = createabortControllerAndAbortOnLogoutEvent(abortController);
49
28
  return createClient({
50
29
  url: `${serviceUrl()}${path}`,
51
30
  headers: async () => {
@@ -55,18 +34,19 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
55
34
  ...headers,
56
35
  });
57
36
  },
37
+ signal: localAbrotController.signal,
58
38
  batch: { batchInterval: 50, maxBatchSize: 100 },
59
39
  ...rest,
60
40
  });
61
41
  }
62
42
  async function genqlClientWs() {
63
- if ( /* accessTokenHasExpired() || */!wsClient) {
64
- //const req_headers = ((await setReqConfig()).headers ?? {}) as Record<string, string>
65
- //setJwtExp(req_headers['Authorization'])
43
+ if (!wsClient) {
44
+ const localAbrotController = createabortControllerAndAbortOnLogoutEvent();
66
45
  wsClient = createClient({
67
46
  url: `${httpToWs(serviceUrl())}${path}`,
68
47
  cache: 'reload',
69
48
  batch: { batchInterval: 50, maxBatchSize: 100 },
49
+ signal: localAbrotController.signal,
70
50
  subscription: {
71
51
  reconnect: true,
72
52
  reconnectionAttempts: 5,
@@ -76,6 +56,15 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
76
56
  }
77
57
  return wsClient;
78
58
  }
79
- return { getGenqlClient, /* resetGenqlClient, */ genqlClient, genqlClientWs };
59
+ function createabortControllerAndAbortOnLogoutEvent(abortController) {
60
+ let localAbrotController = abortController || new AbortController();
61
+ const { unregister } = registerCallbackOnSrvAuthEvents('logout_event', () => {
62
+ localAbrotController === null || localAbrotController === void 0 ? void 0 : localAbrotController.abort();
63
+ resetClients();
64
+ unregister();
65
+ });
66
+ return localAbrotController;
67
+ }
68
+ return { getGenqlClient, resetGenqlClient, genqlClient, genqlClientWs };
80
69
  }
81
70
  //# sourceMappingURL=generateGenqlClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateGenqlClient.js","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;AAO3E,MAAM,UAAU,mBAAmB,CAA4C,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAI,GAAG,aAAa,GAOvB;IACG,kBAAkB;IAElB,IAAI,MAAM,GAAa,IAAI,CAAA;IAE3B,IAAI,QAAQ,GAAa,IAAI,CAAA;IAE7B,+BAA+B,CAAC,aAAa,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,IAAI,CAAA;QACb,QAAQ,GAAG,IAAI,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,oCAAoC;IACpC,6DAA6D;IAC7D,EAAE;IACF,2DAA2D;IAC3D,oCAAoC;IACpC,GAAG;IAEH,KAAK,UAAU,cAAc;QACzB,KAAI,gCAAiC,MAAM,KAAK,IAAI,EAAE;YAClD,MAAM,GAAG,MAAM,WAAW,EAAE,CAAA;YAE5B,OAAO,MAAM,CAAA;SAChB;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,+BAA+B;IAC/B,mBAAmB;IACnB,GAAG;IAEH,uCAAuC;IACvC,yBAAyB;IACzB,EAAE;IACF,+DAA+D;IAC/D,EAAE;IACF,gCAAgC;IAChC,IAAI;IAEJ;;;;OAIG;IACH,KAAK,UAAU,WAAW,CAAC,UAAsB,EAAE;QAC/C,8CAA8C;QAE9C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;QAE/C,IAAI,CAAC,UAAU,EAAE,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;SACrF;QACD,mBAAmB;QACnB,gFAAgF;QAChF,0CAA0C;QAC1C,IAAI;QAEJ,OAAO,YAAY,CAAC;YAChB,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE;YAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;;gBAAC,OAAA,CAAC;oBAClB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,MAAA,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,mCAAI,EAAE,CAA4B,CAAC;oBAChG,GAAG,OAAO;iBACb,CAAC,CAAA;aAAA;YACF,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;YAC/C,GAAG,IAAI;SACV,CAAC,CAAA;IACN,CAAC;IAED,KAAK,UAAU,aAAa;QACxB,KAAI,gCAAiC,CAAC,QAAQ,EAAE;YAC5C,sFAAsF;YAEtF,yCAAyC;YAEzC,QAAQ,GAAG,YAAY,CAAC;gBACpB,GAAG,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE;gBACvC,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;gBAC/C,YAAY,EAAE;oBACV,SAAS,EAAE,IAAI;oBACf,oBAAoB,EAAE,CAAC;oBACvB,OAAO,EAAE,KAAK,IAAI,EAAE,WAAC,OAAA,CAAC,MAAA,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,mCAAI,EAAE,CAA2B,CAAA,EAAA;iBACxF;aACJ,CAAC,CAAA;SACL;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,uBAAuB,CAAC,WAAW,EAAE,aAAa,EAAE,CAAA;AACjF,CAAC"}
1
+ {"version":3,"file":"generateGenqlClient.js","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type AxiosResponse, type ResponseType } from 'axios';
2
2
  import { EnvironmentEnums } from '..';
3
- export declare const dispatch: <Key extends "logout_event" | "jwt_changed">(event: Key, arg: {
3
+ export declare const dispatchSrvAuthEvents: <Key extends "logout_event" | "jwt_changed">(event: Key, arg: {
4
4
  jwt_changed: {};
5
5
  logout_event: {};
6
6
  }[Key], shouldPersist?: boolean | undefined) => void, registerCallbackOnSrvAuthEvents: <Key_1 extends "logout_event" | "jwt_changed">(event: Key_1, callback: (val: {
@@ -13,11 +13,11 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
13
13
  hasFeature: (featureName: FeatureEnums) => boolean;
14
14
  getFeatures: () => Set<FeatureEnums> | undefined;
15
15
  isJwtValid: () => boolean;
16
- signin: (url: string, headers?: Record<string, string>) => Promise<{
16
+ signin: (url: string, headers?: Record<string, string>) => Promise<AxiosResponse<{
17
17
  token: string;
18
18
  features: FeatureEnums[];
19
- }>;
20
- srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<AxiosResponse<R, any>>;
19
+ }, any> | undefined>;
20
+ srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<AxiosResponse<R, any> | undefined>;
21
21
  signoutAuth: () => Promise<void>;
22
22
  setReqConfig: <T = unknown>(data?: T | undefined, responseType?: ResponseType) => Promise<{
23
23
  data: T | undefined;
@@ -26,6 +26,15 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
26
26
  }>;
27
27
  getJwtTokenAsync: () => Promise<string | undefined>;
28
28
  getNewJwtToken: () => Promise<string | undefined>;
29
+ /**
30
+ * @deprecated use registerCallbackOnSrvAuthEvents directly
31
+ */
32
+ registerOnJwtChanges: <Key_1 extends "logout_event" | "jwt_changed">(event: Key_1, callback: (val: {
33
+ jwt_changed: {};
34
+ logout_event: {};
35
+ }[Key_1]) => void) => {
36
+ unregister: () => void;
37
+ };
29
38
  getUserId: () => string;
30
39
  getParsedJwt: <R_1 = {
31
40
  user_id: string;
@@ -36,11 +45,7 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
36
45
  };
37
46
  /**
38
47
  * @deprecated use generateSrvAuthBindings
39
- * @param SRV_AUTH
40
- * @param DEVELOPMENT
41
- * @param ENVIRONMENT_TO_OPERATE
42
- * @param logout
43
- * @returns
48
+ *
44
49
  */
45
50
  export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void): {};
46
51
  //# 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,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAI/C,eAAO,MAAQ,QAAQ;iBAAwE,EAAE;kBAAgB,EAAE;sDAAhF,+BAA+B;iBAA6B,EAAE;kBAAgB,EAAE;;;CAElH,CAAA;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;;;kBA5GlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACpB,MAAM;kBAAY,YAAY,EAAE;;yBAtC7C,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAmFR,YAAY;;;;;;;qBAzBxD,MAAM;;iBAyES,MAAM;aAAO,MAAM;;;iCAzGtB,OAAO;EA+I5C;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
+ {"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;AAI/C,eAAO,MAAkB,qBAAqB;iBAC7B,EAAE;kBACD,EAAE;sDAFsC,+BAA+B;iBACxE,EAAE;kBACD,EAAE;;;CACD,CAAA;AAEnB,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;8BAkMc,YAAY;;;kBA9GlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACxB,MAAM;kBAAY,YAAY,EAAE;;yBAvDzC,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEA4GR,YAAY;;;;;;;IAsE1E;;OAEG;;;;;;;qBAtGe,MAAM;;iBAwES,MAAM;aAAO,MAAM;;;iCA3GtB,OAAO;EAsJ5C;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,41 +1,61 @@
1
1
  import axios from 'axios';
2
2
  import { EventBus } from 'asma-event-bus/lib/event-buss';
3
3
  import { EnvironmentEnums, parseJwt } from '..';
4
- let logoutsuccesfull = false;
5
- export const { dispatch, register: registerCallbackOnSrvAuthEvents } = EventBus('auth-bindings');
4
+ //let logoutsuccesfull = false
5
+ export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus('auth-bindings');
6
6
  export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOperateFn, logout) {
7
- // let logoutMfes: (() => void)[] = []
8
7
  var _a;
9
8
  if (logout) {
10
9
  registerCallbackOnSrvAuthEvents('logout_event', logout);
11
10
  }
12
11
  if ((_a = window.__ASMA__SHELL__) === null || _a === void 0 ? void 0 : _a.auth_bindings) {
13
- //window.__ASMA__SHELL__.logoutMfes = logoutMfes
14
12
  return window.__ASMA__SHELL__.auth_bindings;
15
13
  }
16
14
  let jwtToken = '';
17
15
  let features;
18
16
  let parsed_jwt;
19
- let fetchJwtPromise = null;
17
+ /* let fetchJwtPromise: Promise<{
18
+ data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
19
+ }> | null = null */
20
20
  const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
21
21
  const isJwtValid = () => !isJwtInvalid();
22
+ //function cancelRequest() {
23
+ // return logoutsuccesfull
24
+ // }
25
+ const promiseRegistry = {};
22
26
  async function srvAuthGet(url, headers) {
23
27
  if (DEVELOPMENT() && EnvironmentToOperateFn()) {
24
28
  if (EnvironmentToOperateFn() in EnvironmentEnums) {
25
29
  url = `${url}&env=${EnvironmentToOperateFn()}`;
30
+ // file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
26
31
  url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url;
27
32
  }
28
33
  else {
29
34
  console.warn('EnvironmentToOperateFn() is not a valid EnvironmentEnums', 'shall be one of:', EnvironmentEnums, 'actual value:', EnvironmentToOperateFn());
30
35
  }
31
36
  }
32
- return axios.get(`${SRV_AUTH()}${url}`, {
33
- headers: {
34
- ...headers,
35
- 'asma-origin': window.location.origin,
36
- },
37
- withCredentials: true,
38
- });
37
+ const promise = promiseRegistry[url] ||
38
+ axios.get(`${SRV_AUTH()}${url}`, {
39
+ headers: {
40
+ ...headers,
41
+ 'asma-origin': window.location.origin,
42
+ },
43
+ withCredentials: true,
44
+ });
45
+ if (!promiseRegistry[url]) {
46
+ promiseRegistry[url] = promise;
47
+ }
48
+ try {
49
+ const res = await promise;
50
+ return res;
51
+ }
52
+ catch (e) {
53
+ console.error(e);
54
+ return;
55
+ }
56
+ finally {
57
+ delete promiseRegistry[url];
58
+ }
39
59
  }
40
60
  function accessTokenHasExpired() {
41
61
  const tokenObj = getParsedJwt();
@@ -45,32 +65,31 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
45
65
  return accessTokenExpDate - 10 <= nowTime;
46
66
  }
47
67
  async function signin(url, headers) {
48
- const { data } = await srvAuthGet(url, headers);
49
- setAuthData(data);
50
- logoutsuccesfull = false;
68
+ const data = await srvAuthGet(url, headers);
69
+ setAuthData(data === null || data === void 0 ? void 0 : data.data);
70
+ // logoutsuccesfull = false
51
71
  return data;
52
72
  }
73
+ const { unregister } = registerCallbackOnSrvAuthEvents('logout_event', () => {
74
+ setAuthData({ token: '' });
75
+ srvAuthGet('/signout');
76
+ unregister();
77
+ });
53
78
  async function signoutAuth() {
54
- try {
55
- setAuthData({ token: '' });
56
- await srvAuthGet('/signout');
57
- }
58
- catch (e) {
59
- console.error(e);
60
- }
61
- finally {
62
- dispatch('logout_event', {}, false);
63
- }
79
+ dispatchSrvAuthEvents('logout_event', {}, false);
80
+ // return srvAuthGet('/signout')
64
81
  }
65
82
  function getUserId() {
66
83
  var _a;
67
84
  return ((_a = getParsedJwt()) === null || _a === void 0 ? void 0 : _a['user_id']) || '-1';
68
85
  }
69
86
  function setAuthData(data) {
70
- jwtToken = data.token;
71
- features = new Set(data.features);
72
- parsed_jwt = undefined;
73
- dispatch('jwt_changed', {}, false);
87
+ if (data) {
88
+ jwtToken = data === null || data === void 0 ? void 0 : data.token;
89
+ features = new Set(data.features);
90
+ parsed_jwt = parseJwt(jwtToken);
91
+ }
92
+ dispatchSrvAuthEvents('jwt_changed', {}, false);
74
93
  }
75
94
  function getJwtToken() {
76
95
  return jwtToken;
@@ -97,29 +116,24 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
97
116
  return res;
98
117
  }
99
118
  async function getNewJwtToken() {
100
- if (logoutsuccesfull)
101
- return;
119
+ var _a;
102
120
  try {
103
- if (!fetchJwtPromise) {
104
- fetchJwtPromise = srvAuthGet('/token');
105
- }
106
- const { data } = await fetchJwtPromise;
107
- if (!data || data.errors || data.message != 'Success' || !data.token) {
108
- logout === null || logout === void 0 ? void 0 : logout();
109
- logoutsuccesfull = true;
110
- //signoutAuth()
121
+ /* if (!fetchJwtPromise) {
122
+ fetchJwtPromise = srvAuthGet('/token')
123
+ } */
124
+ const data = await srvAuthGet('/token');
125
+ if (!data || ((_a = data.data) === null || _a === void 0 ? void 0 : _a.errors) || !data.data.token) {
126
+ dispatchSrvAuthEvents('logout_event', {}, false);
127
+ return;
111
128
  }
112
- setAuthData({ token: data.token || '', features: data.features || [] });
129
+ setAuthData({ token: data.data.token || '', features: data.data.features || [] });
113
130
  }
114
131
  catch (error) {
115
- logout === null || logout === void 0 ? void 0 : logout();
116
- logoutsuccesfull = true;
117
- //signoutAuth()
132
+ dispatchSrvAuthEvents('logout_event', {}, false);
118
133
  setAuthData({ token: '', features: [] });
119
134
  console.error(error);
120
135
  }
121
136
  finally {
122
- fetchJwtPromise = null;
123
137
  return jwtToken;
124
138
  }
125
139
  }
@@ -150,9 +164,14 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
150
164
  setReqConfig,
151
165
  getJwtTokenAsync,
152
166
  getNewJwtToken,
167
+ /**
168
+ * @deprecated use registerCallbackOnSrvAuthEvents directly
169
+ */
170
+ registerOnJwtChanges: registerCallbackOnSrvAuthEvents,
153
171
  getUserId,
154
172
  getParsedJwt,
155
173
  getJwtToken,
174
+ // cancelRequest,
156
175
  accessTokenHasExpired,
157
176
  };
158
177
  window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {};
@@ -161,11 +180,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
161
180
  }
162
181
  /**
163
182
  * @deprecated use generateSrvAuthBindings
164
- * @param SRV_AUTH
165
- * @param DEVELOPMENT
166
- * @param ENVIRONMENT_TO_OPERATE
167
- * @param logout
168
- * @returns
183
+ *
169
184
  */
170
185
  export function generateSrvAuthBindingsMicroApp(SRV_AUTH, DEVELOPMENT, ENVIRONMENT_TO_OPERATE, logout) {
171
186
  var _a;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseJwt.d.ts","sourceRoot":"","sources":["../../src/helpers/parseJwt.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAC,SAAS,CAQzD"}
1
+ {"version":3,"file":"parseJwt.d.ts","sourceRoot":"","sources":["../../src/helpers/parseJwt.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,iBAQ3C"}
@@ -1,7 +1,7 @@
1
1
  export function parseJwt(jwtToken) {
2
2
  const base64Url = jwtToken === null || jwtToken === void 0 ? void 0 : jwtToken.split('.')[1];
3
- if (base64Url === undefined) {
4
- return {};
3
+ if (!base64Url) {
4
+ return;
5
5
  }
6
6
  return JSON.parse(decodeURIComponent(escape(window.atob(base64Url))));
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parseJwt.js","sourceRoot":"","sources":["../../src/helpers/parseJwt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAI,QAAgB;IACxC,MAAM,SAAS,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAEzC,IAAI,SAAS,KAAK,SAAS,EAAE;QACzB,OAAO,EAAS,CAAA;KACnB;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AACzE,CAAC"}
1
+ {"version":3,"file":"parseJwt.js","sourceRoot":"","sources":["../../src/helpers/parseJwt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAI,QAAgB;IACxC,MAAM,SAAS,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAEzC,IAAI,CAAC,SAAS,EAAE;QACZ,OAAM;KACT;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAM,CAAA;AAC9E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asma-helpers",
3
- "version": "0.2.50",
3
+ "version": "0.3.0",
4
4
  "description": "helpers methods for asma",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",
@@ -18,28 +18,25 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
18
18
  setReqConfig: () => Promise<AxiosRequestConfig<any>>
19
19
  createClient: (options?: ClientOptions | undefined) => T
20
20
  serviceUrl: () => string
21
+ /**
22
+ * Returns true whenether token and refresh token is epired! this helps to cancel all concurent requests after first request is invalidated.
23
+ * @returns true if request should be cancelled
24
+ */
21
25
  path?: string
22
26
  }) {
23
- // let jwt_exp = 0
24
-
25
27
  let client: T | null = null
26
28
 
27
29
  let wsClient: T | null = null
28
30
 
29
- registerCallbackOnSrvAuthEvents('jwt_changed', () => {
31
+ function resetClients() {
30
32
  client = null
31
33
  wsClient = null
32
- })
34
+ }
33
35
 
34
- //function accessTokenHasExpired() {
35
- // const nowTime = Math.floor(new Date().getTime() / 1000)
36
- //
37
- // //set exp time -20sec for token to be refreshed early
38
- // return jwt_exp - 10 <= nowTime
39
- //}
36
+ registerCallbackOnSrvAuthEvents('jwt_changed', resetClients)
40
37
 
41
38
  async function getGenqlClient() {
42
- if (/* accessTokenHasExpired() || */ client === null) {
39
+ if (client === null) {
43
40
  client = await genqlClient()
44
41
 
45
42
  return client
@@ -48,35 +45,19 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
48
45
  return client
49
46
  }
50
47
 
51
- //function resetGenqlClient() {
52
- // client = null
53
- //}
54
-
55
- // function setJwtExp(token?: string) {
56
- // if (!token) return
57
- //
58
- // const parsed_jwt = parseJwt<{ exp: number }>(token)?.exp
59
- //
60
- // jwt_exp = parsed_jwt || 0
61
- // }
62
-
63
- /**
64
- *
65
- * This is used for anonymous requests as well as authenticated requests
66
- *
67
- */
68
- async function genqlClient(options: CliOptions = {}): Promise<T> {
69
- //let req_headers: Record<string, string> = {}
48
+ function resetGenqlClient() {
49
+ client = null
50
+ wsClient = null
51
+ }
70
52
 
71
- const { anonymous, headers, ...rest } = options
53
+ async function genqlClient(options: CliOptions & { abortController?: AbortController } = {}): Promise<T> {
54
+ const { anonymous, headers, abortController, ...rest } = options
72
55
 
73
56
  if (!serviceUrl()) {
74
57
  console.warn('requred param srv_url is undefined, please check EnvConfig object!')
75
58
  }
76
- //if (!anonymous) {
77
- //req_headers = ((await setReqConfig()).headers ?? {}) as Record<string, string>
78
- // setJwtExp(req_headers['Authorization'])
79
- // }
59
+
60
+ const localAbrotController = createabortControllerAndAbortOnLogoutEvent(abortController)
80
61
 
81
62
  return createClient({
82
63
  url: `${serviceUrl()}${path}`,
@@ -84,21 +65,21 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
84
65
  ...(options.anonymous ? {} : (((await setReqConfig()).headers ?? {}) as Record<string, string>)),
85
66
  ...headers,
86
67
  }),
68
+ signal: localAbrotController.signal,
87
69
  batch: { batchInterval: 50, maxBatchSize: 100 },
88
70
  ...rest,
89
71
  })
90
72
  }
91
73
 
92
74
  async function genqlClientWs() {
93
- if (/* accessTokenHasExpired() || */ !wsClient) {
94
- //const req_headers = ((await setReqConfig()).headers ?? {}) as Record<string, string>
95
-
96
- //setJwtExp(req_headers['Authorization'])
75
+ if (!wsClient) {
76
+ const localAbrotController = createabortControllerAndAbortOnLogoutEvent()
97
77
 
98
78
  wsClient = createClient({
99
79
  url: `${httpToWs(serviceUrl())}${path}`,
100
80
  cache: 'reload',
101
81
  batch: { batchInterval: 50, maxBatchSize: 100 },
82
+ signal: localAbrotController.signal,
102
83
  subscription: {
103
84
  reconnect: true,
104
85
  reconnectionAttempts: 5,
@@ -110,5 +91,19 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
110
91
  return wsClient
111
92
  }
112
93
 
113
- return { getGenqlClient, /* resetGenqlClient, */ genqlClient, genqlClientWs }
94
+ function createabortControllerAndAbortOnLogoutEvent(abortController?: AbortController) {
95
+ let localAbrotController = abortController || new AbortController()
96
+
97
+ const { unregister } = registerCallbackOnSrvAuthEvents('logout_event', () => {
98
+ localAbrotController?.abort()
99
+
100
+ resetClients()
101
+
102
+ unregister()
103
+ })
104
+
105
+ return localAbrotController
106
+ }
107
+
108
+ return { getGenqlClient, resetGenqlClient, genqlClient, genqlClientWs }
114
109
  }
@@ -2,11 +2,12 @@ import axios, { type AxiosResponse, type ResponseType } from 'axios'
2
2
  import { EventBus } from 'asma-event-bus/lib/event-buss'
3
3
  import { EnvironmentEnums, parseJwt } from '..'
4
4
 
5
- let logoutsuccesfull = false
5
+ //let logoutsuccesfull = false
6
6
 
7
- export const { dispatch, register: registerCallbackOnSrvAuthEvents } = EventBus<{ jwt_changed: {}; logout_event: {} }>(
8
- 'auth-bindings',
9
- )
7
+ export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus<{
8
+ jwt_changed: {}
9
+ logout_event: {}
10
+ }>('auth-bindings')
10
11
 
11
12
  export function generateSrvAuthBindings<FeatureEnums = never>(
12
13
  SRV_AUTH: () => string,
@@ -14,15 +15,11 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
14
15
  EnvironmentToOperateFn: () => string,
15
16
  logout?: () => void,
16
17
  ) {
17
- // let logoutMfes: (() => void)[] = []
18
-
19
18
  if (logout) {
20
19
  registerCallbackOnSrvAuthEvents('logout_event', logout)
21
20
  }
22
21
 
23
22
  if (window.__ASMA__SHELL__?.auth_bindings) {
24
- //window.__ASMA__SHELL__.logoutMfes = logoutMfes
25
-
26
23
  return window.__ASMA__SHELL__.auth_bindings as typeof auth_bindings
27
24
  }
28
25
 
@@ -30,21 +27,28 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
30
27
 
31
28
  let features: Set<FeatureEnums> | undefined
32
29
 
33
- let parsed_jwt: any | undefined
30
+ let parsed_jwt: unknown | undefined
34
31
 
35
- let fetchJwtPromise: Promise<{
32
+ /* let fetchJwtPromise: Promise<{
36
33
  data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
37
- }> | null = null
34
+ }> | null = null */
38
35
 
39
36
  const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken
40
37
 
41
38
  const isJwtValid = () => !isJwtInvalid()
42
39
 
40
+ //function cancelRequest() {
41
+ // return logoutsuccesfull
42
+ // }
43
+
44
+ const promiseRegistry: Record<string, Promise<unknown>> = <{}>{}
45
+
43
46
  async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
44
47
  if (DEVELOPMENT() && EnvironmentToOperateFn()) {
45
48
  if (EnvironmentToOperateFn() in EnvironmentEnums) {
46
49
  url = `${url}&env=${EnvironmentToOperateFn()}`
47
50
 
51
+ // file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
48
52
  url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
49
53
  } else {
50
54
  console.warn(
@@ -57,13 +61,29 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
57
61
  }
58
62
  }
59
63
 
60
- return axios.get<unknown, AxiosResponse<R>>(`${SRV_AUTH()}${url}`, {
61
- headers: {
62
- ...headers,
63
- 'asma-origin': window.location.origin,
64
- },
65
- withCredentials: true,
66
- })
64
+ const promise =
65
+ promiseRegistry[url] ||
66
+ axios.get<unknown, AxiosResponse<R>>(`${SRV_AUTH()}${url}`, {
67
+ headers: {
68
+ ...headers,
69
+ 'asma-origin': window.location.origin,
70
+ },
71
+ withCredentials: true,
72
+ })
73
+
74
+ if (!promiseRegistry[url]) {
75
+ promiseRegistry[url] = promise
76
+ }
77
+ try {
78
+ const res = await promise
79
+
80
+ return res as AxiosResponse<R, any>
81
+ } catch (e) {
82
+ console.error(e)
83
+ return
84
+ } finally {
85
+ delete promiseRegistry[url]
86
+ }
67
87
  }
68
88
 
69
89
  function accessTokenHasExpired(): boolean {
@@ -78,35 +98,43 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
78
98
  }
79
99
 
80
100
  async function signin(url: string, headers?: Record<string, string>) {
81
- const { data } = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
101
+ const data = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
82
102
 
83
- setAuthData(data)
103
+ setAuthData(data?.data)
84
104
 
85
- logoutsuccesfull = false
105
+ // logoutsuccesfull = false
86
106
 
87
107
  return data
88
108
  }
89
109
 
110
+ const { unregister } = registerCallbackOnSrvAuthEvents('logout_event', () => {
111
+ setAuthData({ token: '' })
112
+
113
+ srvAuthGet('/signout')
114
+
115
+ unregister()
116
+ })
117
+
90
118
  async function signoutAuth() {
91
- try {
92
- setAuthData({ token: '' })
119
+ dispatchSrvAuthEvents('logout_event', {}, false)
93
120
 
94
- await srvAuthGet('/signout')
95
- } catch (e) {
96
- console.error(e)
97
- } finally {
98
- dispatch('logout_event', {}, false)
99
- }
121
+ // return srvAuthGet('/signout')
100
122
  }
123
+
101
124
  function getUserId(): string {
102
125
  return getParsedJwt()?.['user_id'] || '-1'
103
126
  }
104
127
 
105
- function setAuthData(data: { token: string; features?: FeatureEnums[] }) {
106
- jwtToken = data.token
107
- features = new Set(data.features)
108
- parsed_jwt = undefined
109
- dispatch('jwt_changed', {}, false)
128
+ function setAuthData(data?: { token: string; features?: FeatureEnums[] }) {
129
+ if (data) {
130
+ jwtToken = data?.token
131
+
132
+ features = new Set(data.features)
133
+
134
+ parsed_jwt = parseJwt(jwtToken)
135
+ }
136
+
137
+ dispatchSrvAuthEvents('jwt_changed', {}, false)
110
138
  }
111
139
 
112
140
  function getJwtToken() {
@@ -140,33 +168,27 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
140
168
  }
141
169
 
142
170
  async function getNewJwtToken() {
143
- if (logoutsuccesfull) return
144
171
  try {
145
- if (!fetchJwtPromise) {
172
+ /* if (!fetchJwtPromise) {
146
173
  fetchJwtPromise = srvAuthGet('/token')
147
- }
174
+ } */
148
175
 
149
- const { data } = await fetchJwtPromise
176
+ const data = await srvAuthGet<{ errors?: string; token: string; features: FeatureEnums[] }>('/token')
150
177
 
151
- if (!data || data.errors || data.message != 'Success' || !data.token) {
152
- logout?.()
153
- logoutsuccesfull = true
178
+ if (!data || data.data?.errors || !data.data.token) {
179
+ dispatchSrvAuthEvents('logout_event', {}, false)
154
180
 
155
- //signoutAuth()
181
+ return
156
182
  }
157
183
 
158
- setAuthData({ token: data.token || '', features: data.features || [] })
184
+ setAuthData({ token: data.data.token || '', features: data.data.features || [] })
159
185
  } catch (error) {
160
- logout?.()
161
- logoutsuccesfull = true
162
- //signoutAuth()
186
+ dispatchSrvAuthEvents('logout_event', {}, false)
163
187
 
164
188
  setAuthData({ token: '', features: [] })
165
189
 
166
190
  console.error(error)
167
191
  } finally {
168
- fetchJwtPromise = null
169
-
170
192
  return jwtToken
171
193
  }
172
194
  }
@@ -175,7 +197,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
175
197
  if (!parsed_jwt) {
176
198
  parsed_jwt = parseJwt<R>(jwtToken)
177
199
  }
178
- return parsed_jwt
200
+ return parsed_jwt as R
179
201
  }
180
202
  function getFeatures() {
181
203
  return features
@@ -199,9 +221,14 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
199
221
  setReqConfig,
200
222
  getJwtTokenAsync,
201
223
  getNewJwtToken,
224
+ /**
225
+ * @deprecated use registerCallbackOnSrvAuthEvents directly
226
+ */
227
+ registerOnJwtChanges: registerCallbackOnSrvAuthEvents,
202
228
  getUserId,
203
229
  getParsedJwt,
204
230
  getJwtToken,
231
+ // cancelRequest,
205
232
  accessTokenHasExpired,
206
233
  }
207
234
  window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {}
@@ -212,11 +239,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
212
239
  }
213
240
  /**
214
241
  * @deprecated use generateSrvAuthBindings
215
- * @param SRV_AUTH
216
- * @param DEVELOPMENT
217
- * @param ENVIRONMENT_TO_OPERATE
218
- * @param logout
219
- * @returns
242
+ *
220
243
  */
221
244
  export function generateSrvAuthBindingsMicroApp(
222
245
  SRV_AUTH: () => string,
@@ -1,11 +1,11 @@
1
1
 
2
2
 
3
- export function parseJwt<R>(jwtToken: string): R|undefined {
3
+ export function parseJwt<R>(jwtToken: string){
4
4
  const base64Url = jwtToken?.split('.')[1]
5
5
 
6
- if (base64Url === undefined) {
7
- return {} as any
6
+ if (!base64Url) {
7
+ return
8
8
  }
9
9
 
10
- return JSON.parse(decodeURIComponent(escape(window.atob(base64Url))))
10
+ return JSON.parse(decodeURIComponent(escape(window.atob(base64Url)))) as R
11
11
  }